Está en la página 1de 16

Programación dinámica

determinística
Diego Fernando Lemus Polanía
Investigación de Operaciones
Universidad El Bosque
 La idea principal es descomponer el
problema en subproblemas.
NATURALEZA  La solución óptima de un subproblema se
utiliza como dato de entrada al siguiente
RECURSIVA DE LOS problema (principio de estimación recursiva).

CÁLCULOS  La solución global se da al solucionar el


último subproblema.
DE PROGRAMACIÓN  Los subproblemas están vinculados por
DINÁMICA (PD) restricciones comunes.
 La factibilidad de estas restricciones comunes
se mantiene en todas las iteraciones.
Problema de la ruta más corta
 Problema bajo análisis:
Identificar (seleccionar) la ruta por carretera más corta entre dos ciudades.

 ¿Cómo abordar el problema?

Definición de la red

1. Inicialmente se definen 2 nodos, el de partida (ciudad origen) y el de


llegada (ciudad destino).
2. Definir las rutas entre el punto de partida y el punto de llegada. Cada
ciudad intermedia se representa por un nodo.
3. Enlazar los nodos por medio de un vector (flecha) que denota la distancia
entre estos (distancia entre ciudades)

En la figura 1 se presenta el resultado final de esta etapa, la cual proporciona


las posibles rutas entre la ciudad de inicio en el nodo 1 y la ciudad destino en
el nodo 7. Las ciudades intermedias se representan por los nodos del 2 al 6.
Problema de la ruta más corta

 Descomponer la red inicial en etapas (el subíndice


i denota la etapas) y realizar cálculos de distancia
para cada una de ellas.
 La idea general para determinar la ruta más corta
es calcular las distancias (acumulativas) más
cortas a todos los nodos terminales de una etapa,
y luego utilizarlas como datos de entrada a la
etapa inmediatamente subsiguiente.
 Partiendo del nodo 1, la etapa 1 llega a tres nodos
terminales (2, 3 y 4) y sus cálculos son simples.

Etapa 1:
• Distancia del nodo 1 al nodo 2 = 7 millas
• Distancia del nodo 1 al nodo 3 = 8 millas
• Distancia del nodo 1 al nodo 4 = 5 millas
Problema de la ruta más corta

 Sumar las distancias entre los nodos de la primera y


segunda etapa que tiene como nodo final 5.

 7 + 12 = 19
 8 + 8 = 16
 5 + 7 = 12 (mínimo desde el nodo 4)

 Sumar las distancias finales entre los nodos para la


primera y segunda etapa, con nodo final 6.

 8 + 9 = 17 (mínimo desde el nodo 3)


 5 + 13 = 18
Etapa 2:
• Distancia del nodo 2 al nodo 5 = 12 millas
• Distancia del nodo 3 al nodo 5 = 8 millas
• Distancia del nodo 4 al nodo 5 = 9 millas

• Distancia del nodo 3 al nodo 6 = 9 millas


• Distancia del nodo 4 al nodo 6 = 15 millas
Problema de la ruta más corta

  Tomando los resultados de la etapa 2


 5 + 7 = 12
 8 + 9 = 17
 Sumar las distancias de los nodos 5 y 6 al nodo final
7
 12 + 9 = 21
 17 + 6 = 23
 La distancia más corta desde el nodo 1 al nodo 7 es
de 21 millas (desde el nodo 5)
 Por lo tanto, la ruta más corta es 14 5 7
Etapa 3:
• Distancia del nodo 5 al nodo 7 = 9 millas
• Distancia del nodo 6 al nodo 7 = 6 millas
  
 Sea la distancia más corta al nodo en la etapa , y defina
como la distancia del nodo al nodo .

Ecuación recursiva

 La ecuación recursiva principal expresa la distancia más


corta en la etapa como una función del siguiente
nodo, .
 En terminología de PD, se conoce como el estado en la
etapa .
Ecuaciones recursivas por etapas
Etapa 2
Se puede llegar al nodo 5 desde los nodos 2, 3 y 4. Por lo tanto

Se puede llegar al nodo 6 desde los nodos 3 y 4. Por lo tanto


Ecuaciones recursivas por etapas

 Se puede llegar al nodo 7 desde los nodos 5 y 6. Por lo tanto

 La ruta óptima es 14 5 7, y la distancia asociada es de 21 millas.


Principio de optimalidad

 Las decisiones futuras para todas las etapas futuras constituyen una política óptima
independientemente de la política adoptada en todas las etapas precedentes.
 En la etapa 3, los cálculos recursivos en el nodo 7 utilizan la distancia más corta a los nodos 5 y
6 (es decir, los estados de la etapa 2) sin preocuparse sobre cómo se llega a los nodos 5 y 6
desde el nodo de inicio 1.
 El principio de optimalidad no aborda los detalles de cómo se optimiza un subproblema.
 La razón es la naturaleza genérica del subproblema. Puede ser lineal o no lineal, y la cantidad
de alternativas puede ser finita o infinita. Todo lo que hace el principio de optimalidad es
“descomponer” el problema original en subproblemas más manejables computacionalmente.
Ejercicios 12.1A

1. Resuelva
  el problema anterior suponiendo que se utilizan las siguientes rutas:

 El verano pasado, mi amigo G. Don y yo nos fuimos de campamento durante 5 días a las hermosas White Mountains
en New Hampshire. Decidimos limitar nuestra excursión a tres picos muy conocidos: Los montes Washington,
Jefferson y Adams. El monte Washington tiene un sendero de 6 millas de la base a la cumbre. Los senderos
correspondientes de los montes Jefferson y Adams son de 4 y 5 millas. Los senderos que conectan las bases de las tres
montañas son de 3 millas entre los montes Washington y Jefferson; de 2 millas entre los montes Jefferson y Adams, y
de 5 millas entre los montes Adams y Washington. Comenzamos el primer día en la base del monte Washington y
regresamos al mismo lugar al final de los 5 días. Nuestro objetivo era recorrer a pie tantas millas como pudiéramos.
También decidimos escalar una montaña exactamente cada día y acampar en la base de la montaña que escalaríamos
el siguiente día. Además, decidimos que no se podía visitar la misma montaña en dos días consecutivos. Utilice la PD
para programar la caminata de 5 días.
RECURSIVIDAD HACIA ADELANTE (AVANCE) Y
HACIA ATRÁS (RETROCESO)

El ejemplo previamente presentado utiliza la recursividad


hacia adelante en la cual 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.
Los dos métodos darán la misma solución óptima.
RECURSIVIDAD HACIA ADELANTE (AVANCE) Y
HACIA ATRÁS (RETROCESO)

La mayor
  parte de la literatura de PD utiliza la recursividad
hacia atrás, esta preferencia se debe a que por lo general la
recursividad hacia atrás puede ser más eficiente desde el
punto de vista computacional.

,)+

Se presenta el uso de la recursividad hacia atrás aplicándola


al ejemplo previamente presentado. Este ejemplo presentará
la oportunidad de presentar los cálculos de programación
dinámica en una forma tabular compacta.
RECURSIVIDAD HACIA ADELANTE (AVANCE) Y HACIA ATRÁS (RETROCESO)

Ecuación
  recursiva inversa:

,)+

El orden de los cálculos es

Etapa 3. El nodo 7 (= 7) está conectado a los nodos 5 y 6 ( = 5 y 6)


exactamente con una ruta cada uno. La siguiente tabla resume los
cálculos de la etapa 3:
RECURSIVIDAD HACIA ADELANTE (AVANCE) Y
HACIA ATRÁS (RETROCESO)

Etapa
   2: La ruta (2,6) no existe. Dada desde la etapa 3, podemos comparar las alternativas
factibles como se muestra en la siguiente tabla.

Para las ciudades 2 y 4, la ruta más corta pasa por la ciudad 5; y para la ciudad 3, la ruta más corta
pasa por la ciudad 6.
RECURSIVIDAD HACIA ADELANTE (AVANCE) Y HACIA ATRÁS
(RETROCESO)

Etapa
  1: Partiendo del nodo 1,
tenemos las rutas alternativas: (1,2),
(1,3) y (1,4). Utilizando de la etapa
2, obtenemos

 La solución de la etapa 1 conecta la ciudad 1 con la ciudad 4. Luego, la solución de la etapa 2 conecta la
ciudad 4 con la ciudad 5. Por último, la solución de la etapa 3 conecta la ciudad 5 con la ciudad 7. La ruta
óptima es 14 5 7, y la distancia asociada es de 21 millas.

También podría gustarte