2. Programación Dinámica
La programación dinámica es útil para tomar una sucesión de
decisiones interrelacionadas.
No existe un planteamiento matemático estándar del problema
de programación dinámica.
La programación dinámica suministra una solución con mucho
menos esfuerzo que la enumeración exhaustiva.
La programación dinámica parte de una pequeña porción del
problema y encuentra la solución óptima para este problema
más pequeño. Entonces gradualmente agranda el problema,
hallando la solución óptima en curso a partir de la anterior,
hasta que se resuelve por completo el problema original.
3. PROGRAMACIÓN DINÁMICA DETERMINÍSTICA
La programación dinámica es un método de
investigación de operaciones que permite resolver un
problema de n variables dividiéndolo en n problemas de
una variable cada uno, en el cual la solución particular
de cada etapa depende del contexto, por lo que no hay
un modelo general para programación dinámica.
4. Características
El problema original de n variables de decisión se puede dividir
en n etapas con una decisión por tomar en cada etapa
Cada etapa tiene un número de estados asociado a ella.
La decisión tomada en una etapa conduce a cierto estado en la
etapa siguiente (anterior).
Dado el estado actual, la decisión óptima para cada uno de los
estados restantes no depende de las decisiones o etapas previos.
Existe una relación recursiva que identifica la decisión óptima
para la etapa i, dado que la etapa i-1 (recursión hacia delante) o
i+1 (recursión hacia atrás) ha sido resuelta
La etapa final (inicial) debe ser resoluble sin hacer referencia a
las siguientes.
5. Etapas
Particiones del problema en los cuales se pueden
tomar decisiones que no dependan de estados
anteriores, sino sólo del estado actual.
Ej.: días, meses, años, etapas de producción en una
línea, etc. Para su programación debe existir una
etapa final (N)
6. Variables de decisión
Decisiones cuantificables cuyos valores se intenta
determinar por medio de la resolución del modelo. Su
valor determina el valor de las variables de estado de las
etapas futuras.
Estados
Los estados son las distintas condiciones posibles en las
que se puede encontrar el sistema en cada etapa del
problema. El número de estados puede ser finito o
infinito.
7. Función de efectividad
Ecuación que indica como se acumula la función de valor
desde la etapa n hasta la etapa final.
Objetivo
Criterio de comparación entre distintos valores de las
variables de estado. Es el objetivo a alcanzar por la
resolución del problema en cada etapa.
8. Notación
N: número de etapas.
n: etiqueta para la etapa actual.
sn: estado actual para la etapa n.
xn: variable de decisión para la etapa n.
x*n: valor óptimo de xn (dado sn).
fn(sn,xn): contribución a la función objetivo de las etapas n,
n+1, …, N, si el sistema se encuentra en el estado sn
en la etapa n, la decisión inmediata es xn y en
adelante se toman decisiones óptimas.
f*n(sn) = fn(sn,x*n):
9. Relación recursiva
f*n(sn) = máx{ fn(sn,xn)}
xn
f*n(sn) = min{ fn(sn,xn)}
x
n
11. Ejemplo
Supongamos que se trata de seleccionar la ruta más
corta entre dos ciudades como se muestra en la red
(iniciando en el nodo 1 y el destino en el nodo 7).
13. Formula recursiva
Sea f(xi) la distancia más corta hasta el nodo xi en
la etapa i
d(xi-1,xi) la distancia del nodo xi-1 hasta el nodo xi
Entonces calculamos f i a partir de f i-1
14. Fórmula recursiva
Al comenzar en i = 1, la recursión pone f0(x0) = 0.
La ecuación indica que las distancias más cortas
f i(xi) en la etapa i se debe expresar en función del
siguiente nodo, xi .
A xi se le llama estado del sistema en la etapa i.
15. Formula recursiva en reversa
f i(xi) = min {d(xi,xi+1)+f i+1(xi+1)}
todas las rutas
viables(xi,xi+1)