E N D
PROGRAMACION DINAMICA NATURALEZA RECURSIVIDAD DE LOS CALCULOS DE PROGRAMACION DINAMICA (PD).- La idea principal de la PD es descomponer el problema en subproblemas (más manejables). Los cálculos se realizan entonces recursivamente donde la solución óptima de un subproblema se utiliza como dato de entrada para el siguiente problema. La solución para todo el problema está disponible cuando se soluciona el último subproblema. La forma en que se realizan los cálculos recursivos depende de cómo se descomponga el problema original. En particular, normalmente los subproblemas están vinculados por restricciones comunes. La factibilidad de estas restricciones comunes en todas las iteracciones.
PROGRAMACION DINAMICA Ejemplo (Problema de la ruta más corta) Supongamos que deseamos seleccionar la ruta por carretera más corta entre dos ciudades. La red proporciona las posibles rutas entre la ciudad de inicio nodo 1 y la ciudad desino nodo 7. Las rutas pasan por ciudades intermedias designadas por los nodos 2 a 6 2 2 12 7 5 5 9 8 8 3 3 1 9 7 7 5 6 2 12 6 6 4 4 7 13 5 8 9 8 Podemos resolver este problema enumerando todas las rutas entre los nodos 1 y 7(hay 5 rutas). Sin embargo, la numeración exhaustiva es computacionalmente insoluble en redes grandes. Para resolver el problema por PD, primero lo descomponemos en ETAPAS como se indica mediante las líneas a rayas verticales, luego realizamos los cálculos en cada etapa. La línea general para determinar la ruta más corta es calcular las distancias (acumulativas) más cortas en todos los nodos terminales de una etapa, y luego utilizarlas como datos de entrada a la etapa subsiguiente. Partiendo del nodo 1, la etapa llega a tres nodos terminales (2,3y 4) y sus cálculos son simples. Distancia más corta del nodo 1 al 2 = 7 millas (desde nodo 1) Distancia más corta del nodo 1 al 3 = 8 millas (desde nodo 1) Distancia más corta del nodo 1 al 4 = 5 millas (desde nodo 1) 3 1 7 9 6 6 7 5 4 13
PROGRAMACION DINAMICA Ejemplo (Problema de la ruta más corta) Supongamos que deseamos seleccionar la ruta por carretera más corta entre dos ciudades. La red proporciona las posibles rutas entre la ciudad de inicio nodo 1 y la ciudad desino nodo 7. Las rutas pasan por ciudades intermedias designadas por los nodos 2 a 6 2 2 12 7 5 5 9 8 8 3 3 1 9 7 7 5 6 2 12 6 6 4 4 7 13 5 8 9 8 Podemos resolver este problema enumerando todas las rutas entre los nodos 1 y 7(hay 5 rutas). Sin embargo, la numeración exhaustiva es computacionalmente insoluble en redes grandes. Para resolver el problema por PD, primero lo descomponemos en ETAPAS como se indica mediante las líneas a rayas verticales, luego realizamos los cálculos en cada etapa. La línea general para determinar la ruta más corta es calcular las distancias (acumulativas) más cortas en todos los nodos terminales de una etapa, y luego utilizarlas como datos de entrada a la etapa subsiguiente. Partiendo del nodo 1, la etapa llega a tres nodos terminales (2,3y 4) y sus cálculos son simples. Distancia más corta del nodo 1 al 2 = 7 millas (desde nodo 1) Distancia más corta del nodo 1 al 3 = 8 millas (desde nodo 1) Distancia más corta del nodo 1 al 4 = 5 millas (desde nodo 1) 3 1 7 9 6 6 7 5 4 13
PROGRAMACION DINAMICA 2 2 12 7 5 5 8 8 9 3 3 1 9 7 7 5 6 6 6 4 4 13 2 12 Luego la segunda etapa tiene dos nodos terminales, 5 y 6. La figura muestra que se puede llegar al nodo 5 desde los nodos 2 y 3 por las rutas (2,5), (3,5) y (4,5). Esta información, junto con los resultados resumidos (distancias más cortas) en la etapa 1, determina la distancia (acumulativa) más corta al nodo 5 como 7 5 8 9 8 3 1 7 9 6 6 7 5 4 13
PROGRAMACION DINAMICA Ecuación de Recursividad .- Esta sección muestra como puede expresarse matemáticamente los cálculos recursivos. La ecuación de recursividad de PD se define como: fo ( Xo = 1 ) = 0 fi (x1) = min { d(xi-1 , xi ) + f i-1 (xi-1) } • La ecuación recursiva principal expresa la distancia más corta fi (x1) en la etapa i como una función del siguiente nodo. En terminología de PD, xi se conoce como estado en la etapa i. El estado conecta las etapas sucesivas de una marera que permite tomar decisiones factibles óptimas en una etapa futura independiente de las decisiones que se hayan tomado en todas las etapas precedentes. • Recursividad hacia Adelante (avance) y hacia atrás (retroseso).- El ejemplo utiliza recursividad hacia adelante los cálculos proceden de la etapa 1 a la etapa 3.. El mismo ejemplo puede resolverse por medio de recursividad hacia atrás, comenzando en la etapa 3 y terminando en la etapa 1. • La recursividad hacia adelante y hacia atrás dan la misma solución optima. Aun cuando el procedimiento hacia adelante parece más lógico la mayor parte de la literatura de PD utiliza la recursividad hacia atrás. La razones que , por lo general, la recursividad hacia atrás puede ser más eficiente desde el punto de vista computacional.
PROGRAMACION DINAMICA Ejemplo de recursividad hacia atrás.- fi (x1) = min { d(xi , xi+1 ) + fi+1 (xi+1) } , i = 1, 2, 3 2 2 12 7 5 5 8 8 9 3 3 1 9 7 7 5 6 6 6 4 4 13 Elementos Básicos del modelo PD • Definición de etapas • Definición de alternativas en cada etapa • Definición de los estados para cada etapa