Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACION DINAMICA
La programacin dinmica es un enfoque general para la solucin de problemas en los que es necesario tomar
decisiones en etapas sucesivas. Las decisiones tomadas en una etapa condicionan la evolucin futura del sistema,
afectando a las situaciones en las que el sistema se encontrar en el futuro (denominadas estados), y a las
decisiones que se plantearn en el futuro.
Conviene resaltar que a diferencia de la programacin lineal, el modelado de problemas de programacin
dinmica no sigue una forma estndar. As, para cada problema ser necesario especificar cada uno de los
componentes que caracterizan un problema de programacin dinmica.
El procedimiento general de resolucin de estas situaciones se divide en el anlisis recursivo de cada una de las
etapas del problema, en orden inverso, es decir comenzando por la ltima y pasando en cada iteracin a la etapa
antecesora. El anlisis de la primera etapa finaliza con la obtencin del ptimo del problema.
La programacin dinmica (PD) es un procedimiento de optimizacin aplicable a problemas que requieren de una
secuencia interrelacionada de decisiones. Cada decisin transforma la situacin actual en una nueva situacin.
La PD es una tcnica de la programacin matemtica, para mejorar la eficiencia computacional de ciertos
problemas de optimizacin, y se basa en descomponer problemas de n variables a n subproblemas (cada uno de
una variable), tambin se le llama programacin de etapas mltiples, por sus decisiones secuenciales.
Principio de optimalidad
Cuando hablamos de optimizar nos referimos a buscar la mejor solucin de entre muchas alternativas posibles.
Dicho proceso de optimizacin puede ser visto como una secuencia de decisiones que nos proporcionan la
solucin correcta. Si, dada una subsecuencia de decisiones, siempre se conoce cul es la decisin que debe
tomarse a continuacin para obtener la secuencia ptima, el problema es elemental y se resuelve trivialmente
tomando una decisin detrs de otra, lo que se conoce como estrategia voraz.
A menudo, aunque no sea posible aplicar la estrategia voraz, se cumple el principio de optimalidad de Bellman
que dicta que dada una secuencia ptima de decisiones, toda subsecuencia de ella es, a su vez, ptima. En este
caso sigue siendo posible el ir tomando decisiones elementales, en la confianza de que la combinacin de ellas
seguir siendo ptima, pero ser entonces necesario explorar muchas secuencias de decisiones para dar con la
correcta, siendo aqu donde interviene la programacin dinmica.
Programacin Dinmica
Programacin Dinmica
dn
xn
xn-1
rn(dn)
Decisin
dn
Estado
Estado
n
Xn-1
Decisin
Decisin
dn-1
d1
Estado
Estado
n-1
Estado
..
Xn-1
Estado
1
Estado
X0
=tn(Xn, dn)
Retorno funcin
Retorno funcin
fn = rn (Xn, dn)
Retorno Funcin
f1 = r1 (X1, d1)
+
x
/
Funcin
xn + dn
xn - dn
xn * dn
xn / dn
xn-1=xn-dn
es equivalente a
Ejemplo 1.1:
Considrese el grfico que contempla las rutas posibles para ir desde la ciudad 1 hasta la ciudad 10. Cada nodo
representa una ciudad y los arcos la infraestructura vial disponible. La tabla recoge el costo asociado al
desplazamiento entre cada par de nodos para cada una de las etapas. Supondremos que todos los desplazamientos
tienen la misma duracin, y que el viaje ha de realizarse en cuatro etapas. Cada una de ellas se corresponde con un
Programacin Dinmica
Perodos o etapas: Sea N= {1, 2,....., n} un conjunto finito de elementos. Mediante el ndice N n , representamos
cada uno de ellos. N es el conjunto de perodos o etapas del proceso. En la ilustracin anterior N= {1, 2, 3, 4}, las
cuatro etapas del viaje, cada una de ellas es un perodo y se representa mediante un valor del ndice n, as cuando
n =1 nos estamos refiriendo a la primera etapa del proceso.
Espacio de estados: { N S } es una familia de conjuntos, uno para cada perodo n. S se denomina espacio de
estados en el perodo n. Cada uno de sus elementos, que se representa mediante Sn, es un estado, que describe una
posible situacin del proceso en ese perodo. En nuestro ejemplo, S1 = {1}, S2= {2, 3, 4}, S3= {5, 6, 7}, S4= {8,
9}.
Figura 1.1
La funcin recursiva: Dados unos nodos y unos arcos que conectan estos nodos, el problema de la diligencia
intenta encontrar la ruta ms corta que conecta un nodo de arranque con el nodo final (el destino).
Sea s: el estado de inicio; j: estado destino
n: la fase, normalmente representa el nmero de arcos hasta el destino.
C(s, j): costo o distancia de ir desde s hasta j.
f(n, s): la poltica de costo mnimo cuando se encuentra en el estado s de la etapa n.
La relacin recursiva dinmica se expresa como f(n, s) = mnimo [C(s, j) + f(n-1, j)] para todos los arcos ( s, j) en
la red
El concepto general es calcular las distancias (acumuladas) ms cortas a todos los nodos terminales de una etapa,
para usarlas a continuacin como datos de la etapa inmediata posterior.
Para resolver el problema con programacin dinmica primero se descompone en etapas, delimitadas por las
lneas verticales de la figura 1.2. A continuacin se hacen los clculos para cada etapa por separado.
Figura 1.2
Programacin Dinmica
10
( )
x1
8
9
Etapa 2
( )
5
6
7
Etapa 3
Programacin Dinmica
5
7+4=11
3+4=7
4+4=8
10
10
( )
( )
2
3
4
3
4
x2
x3
Solucin ptima
( )
Solucin ptima
( )
4
7
6
8
9
8
( )
Solucin ptima
( )
11
7
8
56
5
56
( )
x4
2
1
2+11=13
Distancia Mnima: 10
Ruta a seguir:
( )
Solucin ptima
( )
10
Problema 1.2: Supongamos que se trata de seleccionar la ruta ms corta entre dos ciudades. La red de la figura
siguiente muestra las rutas posibles entre el inicio en el nodo 1 y el destino en el nodo 11. Las rutas pasan por
ciudades intermedias, representadas por los nodos 2 al 10.
Para resolver el problema con programacin dinmica primero se descompone en etapas delimitadas por las lneas
verticales de la figura siguiente, a continuacin se hacen los clculos para cada etapa por separado.
Etapa 1
( )
x1
8
9
10
Etapa 2
( )
x2
5
6
7
Etapa 4
Programacin Dinmica
11
11
11
( )
( )
2
3
4
20
30
40
Etapa 3
x3
Solucin ptima
( )
5
10+60=70
30+60=90
Solucin ptima
( )
60
50
40
8o9
10
9
( )
( )
Solucin ptima
( )
70
90
70
56
5, 6 0 7
6
( )
6
x4
1
2
50+70=120
Solucin ptima
( )
90
Distancia Mnima: 90
Ruta a seguir:
r x
(6)
g x w
(6)
mx
t 1
Sujeto a
t T
t 1
xt
rt xt
INTERPRETACIN de
xt
g t xt
INTERPRETACIN de w
Peso mximo que puede resistir la
mochila.
mochila
Calificacin que obtenemos en el curso t si lo Nmero de horas/semana x que Nmero total de horas disponibles
t
por semana.
estudiamos x t horas por semana
pasamos estudiando el curso t
Ventas de un producto en la regin t si se asignan Costo por asignar
xt vendedores a la regin t
a la regin t
xt
Nmero de alarmas contra incendio por semana a las Costo semanal por mantener x Presupuesto semanal total para el
t
que responden dentro de un minuto si al recinto se le
mantenimiento de extintores auextintores automticos en el re- tomticos.
asignan x t extintores automticos
cinto t
Sujeto a
] donde [ ] es el
Mtodos de resolucin.
Este problema se resuelve utilizando Programacin Lineal Entera y programacin dinmica.
Ejemplo 2.1: Un barco de 4 toneladas se carga con uno o ms de tres artculos. La tabla siguiente muestra el peso
unitario wi, en toneladas, y el ingreso por unidad ri, en miles de dlares, para el artculo i. Cmo se debe cargar
el barco para maximizar los ingresos totales?
Articulo i
wi
ri
1
2
31
2
3
47
3
1
14
Programacin Dinmica
Etapa 3:
El peso exacto a ser asignado a la etapa 3 (artculo 3) no se conoce con anticipacin pero puede suponer uno de
los valores 0, 1,, y 4 (porque W = 4 toneladas y w3 = 1 tonelada).
w3 = 1 tonelada por unidad, la cantidad mxima de unidades que se pueden cargar del artculo 3 es = 4,
lo que significa que los valores posibles de m3 son 0, 1, 2, 3 y 4.
Cuando
Un valor de m3 es factible slo si w3m3 x3. Por lo tanto se excluyen todos los valores no factibles (con w3m3
x3). El ingreso para el artculo 3 es 14m3. En consecuencia, la ecuacin recursiva para la etapa 3 es
Programacin Dinmica
Resumiendo
Para x1 = 4, el retorno optimo = ( )
Para x2 = 4 (2*2)=0, el retorno optimo = ( )
Para x3 =0 0 = 0, el retorno optimo = ( )
Se debe llevar 2 unidades del artculo 1, con una ganancia de $ 62000
0
0
0
0
0
0
0
1
2
3
4
1
14
14
14
14
d3
2
28
28
28
3
42
42
Solucin ptima
f3(x3)
x3
0
0
14
1
28
2
42
3
56
4
4
56
Etapa 2
La etapa 2 queda representada por la estrategia siguiente:
F2(x2) = Max {47(d2) + (x2 3d2)}
d2
[ ]=1
d2
x2
0
1
2
3
4
0
0+0=0
0 + 14 = 14
0 + 28 = 28
0 + 42 = 42
0 + 56 = 56
Programacin Dinmica
Solucin ptima
f2(x2)
x2
0
0
14
0
28
0
47
1
61
1
1
47+0 = 47
47 + 14 = 61
10
f1(x1) = Max{31(d1) +
d2 [ ] = 2
x1
0
1
2
3
4
0
0+0=0
0 + 14 = 14
0 + 28 = 28
0 + 47 = 47
0 + 61 = 61
d1
1
31 + 0 = 31
31 + 14 = 45
31 + 28 = 59
2
62 + 0 = 62
Solucin ptima
f1(x1)
x1
0
0
14
0
31
1
47
0
62
2
La solucin ptima se determina ahora de la siguiente manera: dada W = 4 toneladas, x1 = 4 expresa la alternativa
ptima
= 2, que quiere decir que en el barco se cargan 2 unidades del artculo 1. Esta asignacin deja a x2 = x1 2
= 4 2*2 = 0. De la etapa 2, x2 = 0, produce
= 0, que a su vez produce x3 = x2 3d2 = 0 3*0 = 0. A
continuacin, de la etapa 3, x3 = 0 produce
= 0. As, la solucin completa es
= 2,
=0y
= 0. El
ingreso correspondiente es $ 62000.
En la tabla para la etapa 1 no se necesita en realidad obtener slo el ptimo de x1 = 4, porque es la ltima etapa
que se examina. Sin embargo, se incluyen los clculos para x1 = 0, 1, 2 y 3, para poder hacer un anlisis de
sensibilidad. Por ejemplo, Qu pasara si la capacidad del barco es 3 toneladas y no 4? La nueva solucin ptima
se puede determinar comenzando con x1 = 3 en la etapa 1 y continuando del mismo modo que usamos para x1 = 4.
La solucin nos indica que se deben transportar el tem 1, 2 unidades con un retorno total de $ 62000 y utilizacin
plena de la capacidad (en peso), disponible del barco.
Ejemplo No 2.2: Se consideran cuatro tipos de objetos (con un suministro ilimitado de cada tipo) para cargar un
aeroplano. Los pesos y valores de los cuatro tipos de objetos se dan en la Tabla siguiente.
Determinar qu objetos y en qu cantidades deberan cargarse en el avin si la mxima capacidad de carga es de
11 toneladas y el objetivo es maximizar el valor de la carga.
11
( )
( )
( )
Dnde:
Solucin
Como hay 4 objetos, habr 4 fases.
Fase 4: (Objeto D). La tabla siguiente muestra los estados en el lado izquierdo, En la parte superior se muestra el
nmero posible de unidades de D que pueden cargarse.
Estado x4 (Ton.
Asignables para D)
0
1
2
3
4
5
6
7
8
9
10
11
Tabla Fase 4: Objeto D
0
0
0
0
0
0
0
0
0
0
0
0
Solucin ptima
20
20
20
20
20
20
20
20
20
40
40
40
40
40
40
( )
60
60
60
0
0
0
20
20
20
40
40
40
60
60
60
0
0
0
1
1
1
2
2
2
3
3
3
Como el peso del objeto D es de 3 toneladas, pueden cargarse 0, 1, 2 o 3 uni dades. La tabla nos da el
beneficio calculado mediante la frmula indicada en su parte superior.
(
( ) , donde
( )=
( ) es el beneficio
La columna de solucin ptima viene dada por
ptimo, empezando desde el estado
y siguiendo una poltica ptima desde la fase 4 al final.
Fase 3: (Objeto C). En esta fase se hace la asignacin del objeto C, utilizando el peso restante de
acuerdo con la mejor poltica recomendada en la fase 4.
La Tabla 3.14 nos muestra los beneficios para los distintos estados.
Los beneficios ptimos totales son:
( )
( )=
( ). Por ejemplo, en
(
) , y el beneficio ptimo es el mximo de
el estado 10 si dispo nemos de 10 toneladas pueden considerarse las tres alternativas posibles:
1. Nada de C, entonces 10 van para D. En la Tabla 3.13 vemos que la asignacin ptima de 10 a D produce un
beneficio de 60.
2. Una de C, hay 5 toneladas restantes. La mejor asignacin de 5 a D. de la fase 1, produce 20, ms las 30
conseguidas de la asignacin de uno para C nos dan un total de 50.
3. Dos a C, lo que ocupa las 10 toneladas; por tanto, nada sobra. El beneficio es 2*30 = 60.
Estado x3 (Ton.
Asignables para C y
D)
0
1
2
3
4
5
6
7
8
Programacin Dinmica
0
0
0
0
20+0=20
20+0=20
20+0=20
40+0=40
40+0=40
40+0=40
30
30
30
30+20=50
12
Solucin ptima
( )
0
0
0
20
20
30
40
40
50
0
0
0
0
0
1
0
0
1
60+0=60
60+0=60
60+0=60
30+20=50
30+20=50
30+40=70
60
60
70
60
60
0
0o2
1
0
0
0
0
20+0=20
20+0=20
30+0=30
40+0=40
40+0=40
50+0=50
60+0=60
60+0=60
70+0=70
Solucin ptima
( )
25
25
25
25+20=45
25+20=45
25+20=45
25+40=65
25+40=65
0
0
0
20
25
30
40
45
50
60
65
90
50
50
50
50+40=90
0
0
0
0
1
0
0
1
0o2
0
1
2
Fase 1: (Objeto A). Los resultados se muestran en la tabla siguiente. La funcin de beneficio ptimo total es:
( )
( )=
(
)
Estado x1 (Ton.
Asignables para
A,B, C y D)
0
1
2
3
4
5
6
7
8
9
10
11
18
18
18
18+20=38
18+25=43
18+30=48
18+40=58
18+45=63
18+50=68
18+60=78
Solucin ptima
3
36
36
36
36+20=56
36+25=61
36+30=66
36+40=76
36+45=81
54
54
54
54+20=74
54+25=79
54+30=84
( )
90
90
0
0
18
20
36
38
54
56
72
74
90
92
72
72
72
72+20=92
0
0
1
0
2
1
3
2
4
3
5
4
PESO
BENEFICIO
Artculo 1
Artculo 2
Artculo 3
4 libras
3 libras
5 libras
11
7
12
Solucin Tabular
Programacin Dinmica
13
)}
[
, entonces
Se observa que
es el nmero de unidades del tem .
Para la etapa 3, se ha considerado al artculo 3, se tiene entonces:
Con
y ( )
Como
es un valor entero; y siendo
, entonces
Luego la etapa 3 es representada por la funcin ( )
x3
0
1
2
3
4
5
6
7
8
9
10
0
0
0
0
0
0
0
0
0
0
0
0
d3
1
_
_
_
_
_
12
12
12
12
12
12
]
( )
( )}
[ ] y
,
Solucin optima
2
_
_
_
_
_
_
_
_
_
_
24
(x3)
0
0
0
0
0
12
12
12
12
12
24
0
0
0
0
0
1
1
1
1
1
2
(
La etapa 2 queda representada por la estrategia siguiente: ( )
[ ] los resultados de los diferentes estados son mostrados en la tabla siguiente:
x2
0
1
2
3
4
5
6
7
8
9
10
d2
0
0+0=0
0+0=0
0+0=0
0+0=0
0+0=0
0+12=12
0+12=12
0+12=12
0+12=12
0+12=12
0+24=24
1
_
_
_
7+0=7
7+0=7
7+0=7
7+0=7
7+0=7
7+12=19
7+12=19
7+12=19
)}
Solucin optima
2
_
_
_
_
_
_
14+0=14
14+0=14
14+0=14
14+0=14
14+0=14
(x2)
_
_
_
_
_
_
_
_
_
21+0=21
21+0=21
0
0
0
7
7
12
14
14
19
21
24
(
La etapa 1 queda representada por la estrategia siguiente: ( )
[ ] los resultados de los diferentes estados son mostrados en la tabla siguiente:
x1
0
1
2
3
4
5
6
7
8
0
0+0=0
0+0=0
0+0=0
0+7=7
0+7=7
0+12=12
0+14=14
0+14=14
0+19=18
Programacin Dinmica
d1
1
_
_
_
_
11+0=11
11+0=11
11+0=11
11+7=19
11+7=19
0
0
0
1
1
0
2
2
1
3
0
)}
Solucin optima
2
_
_
_
_
_
_
_
_
22+0=22
14
(x1)
0
0
0
7
11
12
14
19
22
0
0
0
0
1
0
0
1
2
Docente: Mg. Ing. J. Paredes C.
0+21=21
0+24=24
11+12=23
11+14=25
22+0=22
22+0=22
23
25
1
1
Tenemos que f1 10 25 y x1 10 1
(
) } Por lo tanto, debemos poner un artculo del
La ecuacin recursiva es: ( )
tipo 1 en la mochila.
Luego tenemos lugar para 10 4 = 6 libras para artculos tipo 2 y tipo 3 y, por lo tanto, debemos poner ( )
artculos del tipo 2.
x3 0 0
Por ltimo, tenemos 6 - 2*3 = 0 libras de lugar para artculos del tipo 3, y colocamos ( )
a)
La funcin recursiva asociada al problema indicando los lmites mximos y mnimos de la variable de estado
y de la decisin para cualquier etapa n.
b) La solucin del problema.
Rn (Dn, Sn) : representa las ventas por tomar la decisin Dn (asignar 1, 2, 3, 4); agentes en la etapa n ( regin 1, 2
3) para pasar del estado Sn (agentes disponibles al inicio de la etapa n) al estado Sn+1.
Solucin
Obsrvese que solo se cuenta con 6 agentes y que por lo menos debe asignarse uno a cada regin, lo que significa
que cada vez que se evala una regin debe de los seis reservarse 2 para las otras dos regiones con lo cual lo
mximo disponible para cada regin es 4, por eso en la tabla se tiene asignaciones de 1 a 4. El diagrama de
bloques es:
Ahora antes de evaluar la funcin recursiva se deben determinar para cada etapa los intervalos de variacin tanto
de la decisin como del estado de los agentes disponibles, as tenemos:
Etapa 1:
1 D1 4 o se decide asignar 1 agente que es el mnimo o se asigna hasta 4 que es el mximo.
3 S1 6 la cantidad mnima para del recurso vendedores que deben haber para todas las etapas y cumplir con los
requisitos mnimos es 3; pues son 3 regiones, dado que por lo menos debe asignarse 1 vendedor en cada regin; y
lo mximo que debe asignarse para las tres etapas es lo que se tenga disponible (este mismo razonamiento vale
para las etapas siguientes).
Etapa 2:
1 D2 4 o se decide asignar 1 agente que es el mnimo o se asigna hasta 4 que es el mximo.
Programacin Dinmica
15
n=2
n=1
Solucin ptima:
Alternativa 1
Asignar 1 agente a la regin 1:
2 agentes a la regin 2:
3 agentes a la regin 3:
Alternativa 2
Asignar 3 agentes a la regin 1:
2 agentes a la regin 2:
1 agentes a la regin 3:
ventas obtenidas
ventas obtenidas
ventas obtenidas
35
42
63
ventas obtenidas
ventas obtenidas
ventas obtenidas
70
42
23
16
En este caso se divide el problema en 4 etapas, cada etapa representa un curso y para cada uno se decide cuantos
das estudiar, al inicio de la etapa 1, tenemos 7 das que sern asignados a todas las etapas, como se requiere las
notas mnimas especificadas se debe tomar la decisin de estudiar por lo menos un da cada curso y como mximo
4 das, para lo cual la cantidad de tiempo disponible al inicio de cada etapa n es: 4 n + 1 Sn 7 n + 1.
n=2 El diagrama de bloques de este problema es:
Rn (Dn,Sn) : representa la nota que se obtiene por tomar la decisin Dn (asignar 1, 2, 3, 4); das en la etapa n
(curso IOII, SO, RM Mat.) para pasar del estado Sn (das disponibles al inicio de la etapa n) al estado Sn+1.
Funcin Recursiva:
Para n = 4
Para n = 3
Para n = 2
Programacin Dinmica
17
Para n = 1
Respuesta
Asignar al curso IOII
Asignar al curso SO
Asignar al curso RM3
Asignar al curso Mat.
Programacin Dinmica
1 da
4 das
1 da
1 da
Nota
09
18
08
12
47
18