INVESTIGACION DE OPERACIONES
Programación Dinámica Determinística
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
ELEMENTOS DE UN PROBLEMA DE
PROGRAMACION DINAMICA
EJEMPLO PROTOTIPO DE
PROGRAMACION DINAMICA
Logro de sesión:
Al término de la sesión el estudiante entiende la naturaleza de la programación dinámica y el
uso del cálculo recursivo para minimizar el proceso de cálculo al considerar solamente los
estados y las decisiones necesarias en cada etapa en las que se divide el problema,
alcanzando la solución óptima.
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
Temas
Una forma razonable y comúnmente empleada de resolver un
problema es definir o caracterizar su solución en términos de las
Programación Dinámica soluciones de subproblemas del mismo.
Programación Dinámica La programación dinámica encuentra la solución óptima de un
Determinística problema con n variables, descomponiéndolo en n etapas, siendo
cada etapa un subproblema de una sola variable.
Naturaleza Recursiva
de la PD A diferencia de la programación lineal, el modelado de problemas de
programación dinámica no sigue una forma estándar.
Principio de optimalidad: Dado el estado actual, la decisión óptima
para cada una de las etapas restantes no tiene que depender de los
estados ya alcanzados o de las decisiones tomadas previamente.
Ver Diagrama
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
ETAPA 1 ETAPA 2 ETAPA 3 ETAPA 4
Tomando en cuenta el 7
siguiente sistema de B 4
E 1
caminos, si se encuentra 6 4
inicialmente en el nodo A,
2
H 3
3
encontrar la trayectoria más 6
4 2
económica para llegar al A C F J
nodo J considerando que los 4
3
4
valores que se encuentran en
las ramas representan los
3
4 3
I
costos de trasladarse de un 1 3
nodo a otro. D 5 G
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
Temas
Una forma razonable y comúnmente empleada de resolver un
problema es definir o caracterizar su solución en términos de las
Programación Dinámica soluciones de subproblemas del mismo.
Programación Dinámica La programación dinámica encuentra la solución óptima de un
Determinística problema con n variables, descomponiéndolo en n etapas, siendo
cada etapa un subproblema de una sola variable.
Naturaleza Recursiva
de la PD A diferencia de la programación lineal, el modelado de problemas de
programación dinámica no sigue una forma estándar.
Principio de optimalidad: Dado el estado actual, la decisión óptima
para cada una de las etapas restantes no tiene que depender de los
estados ya alcanzados o de las decisiones tomadas previamente.
Ver Diagrama
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
Programación Dinámica
En este tipo de programación dinámica, el estado de la siguiente
Programación Dinámica etapa está determinado por completo por el estado y la política de
Determinística decisión de la etapa actual. El caso probabilístico es en el cual existe
una distribución de probabilidad del valor posible del siguiente
Naturaleza Recursiva estado.
de la PD
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
Temas
Los cálculos de programación dinámica se hacen en forma recursiva,
ya que la solución óptima de un subproblema se usa como dato para
Programación Dinámica el siguiente subproblema. Para cuando se resuelve el último
subproblema se obtiene la solución óptima de todo el problema.
Programación Dinámica
Determinística Al pasar de un subproblema al siguiente se debe mantener la
factibilidad de esas restricciones comunes.
Naturaleza Recursiva
de la PD Se usa la recursión en avance, cuando los cálculos se hacen de la
primera etapa a la última etapa; y se usa la recursión en reversa,
cuando los cálculos se hacen de la última etapa a la primera etapa.
Con las recursiones en avance y en reversa se obtiene la misma
solución. Se usa la recursión en reversa porque, en general, es más
eficiente desde el punto de vista computacional.
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
ELEMENTOS DE UN PROBLEMA DE
PROGRAMACION DINAMICA
EJEMPLO PROTOTIPO DE
PROGRAMACION DINAMICA
PROGRAMACION DINAMICA DETERMINISTICA
ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA
Elemento
Etapa (n)
n=1 n=2 n=3 n=4
Estado (sn)
Variable de decisión (xn)
Evolución del sistema
Función recurrente (fn)
Es el período de tiempo, lugar,
fase o situación en donde se
produce un cambio debido a una
decisión (xn).
PROGRAMACION DINAMICA DETERMINISTICA
ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA
Elemento
Etapa (n)
n=1 n=2 n=3 n=4
Estado (sn)
s1 s2 s3 s4
Variable de decisión (xn)
Evolución del sistema
Función recurrente (fn)
Muestra la situación actual de
cada etapa. Información que
enlaza las etapas, de tal modo
que se puedan tomar las
decisiones. También se puede
decir que es la información que
se necesita en cualquier etapa
para tomar una decisión óptima.
PROGRAMACION DINAMICA DETERMINISTICA
ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA
Elemento
Etapa (n)
n=1 n=2 n=3 n=4
Estado (sn)
s1 x1 s2 x2 s3 x3 s4 x4
Variable de decisión (xn)
Evolución del sistema
Función recurrente (fn)
Hacen referencia a toma de
decisiones (o política de
decisión) que se producen en
una etapa y que produce un
cambio en el estado actual del
sistema.
PROGRAMACION DINAMICA DETERMINISTICA
ELEMENTOS DE UN PROBLEMA DE PROGRAMACION DINAMICA
Elemento
Etapa (n)
n=1 n=2 n=3 n=4
Estado (sn)
s1 x1 s2 x2 s3 x3 s4 x4
Variable de decisión (xn)
f4(s4 , x4)
Evolución del sistema f3(s3 , x3)
Función recurrente (fn) f2(s2 , x2)
f1(s1 , x1)
Refleja el comportamiento del
sistema en función de los
estados y de las variables de
decisión. Relaciona el costo o la
contribución ganada durante
alguna etapa con el costo o la
contribución ganada en la etapa
posterior de forma acumulativa.
PROGRAMACION DINAMICA DETERMINISTICA
PERSPECTIVA DE LA RECURSION EN REVERSA
En la etapa n, el proceso se encuentra en algún estado sn.
Al tomar la decisión xn se mueve a algún estado sn+1 en la etapa n+1, etapa en la que
se habría contribuido con fn*+1(sn+1), que incluye las contribuciones acumuladas de las
etapas siguientes; al considerar esta cantidad con la contribución actual (llamémosle
csn,xn) a la función objetivo se tiene a fn(sn , xn) como la contribución de la etapa n en
adelante.
Dados n y sn para un problema de minimización, y sea xn* el mejor valor entre todos los
valores que pueda adoptar xn al calcular su propia fn(sn , xn), y sea fn*(sn) el valor
mínimo correspondiente a todos los fn(sn, xn). Entonces:
fn*(sn) = min fn(sn , xn) = fn(sn , xn*)
donde:
fn(sn , xn) = costo mín inmediato (etapa n) + costo mín futuro (etapas n+1 en adelante)
fn(sn , xn) = csnxn + fn*+1(sn+1)
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
ELEMENTOS DE UN PROBLEMA DE
PROGRAMACION DINAMICA
EJEMPLO PROTOTIPO DE
PROGRAMACION DINAMICA
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema Tomando en cuenta el siguiente sistema de caminos, si se
encuentra inicialmente en el nodo A, encontrar la trayectoria más
Enunciado económica para llegar al nodo J considerando que los valores que
se encuentran en las ramas representan los costos de trasladarse
de un nodo a otro.
Análisis
Etapa 4 7
B E
4 1
6 4
2 H
Etapa 3 3
3
6
4 2
A C F J
3
Etapa 2 4
4
3 I
4 3
1 3
Etapa 1 D 5 G
Interpretación
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema Si se tomara la decisión de ir por la ruta más barata en cada etapa, ésta
sería: A – B – F – I – J con un costo total asociado de 13. Pero note que
Enunciado si desde el nodo A llegamos al nodo F mediante D, en lugar de ir por B
el costo sería menor. El evaluar todas las posibles rutas y sus costos
asociados sería una tarea tediosa. Mediante la programación dinámica
Análisis se puede hallar la solución con mucho menor esfuerzo.
Variables de decisión: xn : destino inmediato de la etapa n,
Etapa 4
Estado: sn : lugar donde se encuentra en la etapa n
Etapa 3 Ruta a seleccionar: A – x1 – x2 – x3 – x4, donde x4 = J
Como el destino final es J se alcanza al terminar la etapa 4.
Etapa 2
El objetivo es encontrar f1*(A) y la ruta correspondiente. La
programación dinámica la encuentra al determinar en forma sucesiva
Etapa 1 f4*(s4), f3*(s3), f2*(s2) y f1*(s1)
Función recursiva: fn(sn , xn)= csnxn + fn+1*(xn)
Interpretación
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema Cuando se está en la última etapa, el destino final es x4 = J y su estado
actual s4 puede ser H o I , de manera que su último tramo es desde s4
hacia J. Por lo tanto, f4*(s4) = f4(s4, J) = cs4J
Enunciado
7
B E
4 1
Análisis 6 4
2 H
3
3
6
4 2
Etapa 4 A C F J
3
4
4
3 I
Etapa 3 4 3
1 3
D 5 G
Etapa 2
f4(s4 ,x4)= cs4x4 Solución óptima
Etapa 1 s4 x4 = J f4*(s4) x4*
H 3 3 J
Interpretación I 4 4 J
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema 7
B E
4 1
Enunciado 6 4
2 H
3
3
6
4 2
Análisis A C F J
3
4
4
3 I
Etapa 4 4 3
1 3
D 5 G
Etapa 3
f3(s3 ,x3)= cs3x3 + f4*(x3) Solución óptima
Etapa 2
s3 x3 = H x3 = I f3*(s3) x3*
E 1+3=4 4+4=8 4 H
Etapa 1
F 6+3=9 3+4=7 7 I
G 3+3=6 3+4=7 6 H
Interpretación
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema 7
B E
4 1
Enunciado 6 4
2 H
3
3
6
4 2
Análisis A C F J
3
4
4
3 I
Etapa 4 4 3
1 3
D 5 G
Etapa 3
f2(s2 ,x2)= cs2x2 + f3*(x2) Solución óptima
Etapa 2 s2 x2 =E x2 =F x2 =G f2*(s2) x2*
B 7+4=11 4+7=11 6+6=12 11 EoF
Etapa 1 C 3+4=7 2+7=9 4+6=10 7 E
D 4+4=8 1+7=8 5+6=11 8 EoF
Interpretación
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema 7
B E
4 1
Enunciado 6 4
2 H
3
3
6
4 2
Análisis A C F J
3
4
4
3 I
Etapa 4 4 3
1 3
D 5 G
Etapa 3
Etapa 2
f1(s1 ,x1)= cs1x1 + f2*(x1) Solución óptima
s1 x1 =B x1 =C x1 =D f1*(s1) x1*
Etapa 1
A 2+11=13 4+7=11 3+8=11 11 CoD
Interpretación
PROGRAMACION DINAMICA DETERMINISTICA
EJEMPLO DE APLICACION
Problema Costo total =11
Ruta1: A-C-E-H-J s4 x4
Enunciado Ruta2: A-D-E-H-J H J
Ruta3: A-D-F-I-J
I J
Análisis
s3 x3
E H
Etapa 4
F I
G H
Etapa 3
s2 x2
B EoF
Etapa 2
C E
D EoF
Etapa 1
s1 x1
A CoD
Interpretación
PROGRAMACION DINAMICA DETERMINISTICA
INTRODUCCION
ELEMENTOS DE UN PROBLEMA DE
PROGRAMACION DINAMICA
EJEMPLO PROTOTIPO DE
PROGRAMACION DINAMICA