COMPANY NAMEIntroducción
Programación DinámicaG. Edgar Mata Ortiz
“Para todo problema humano hay siempre una
solución fácil, clara, plausible y… equivocada”
Henry-Louis Mencken (1880-1956)
COMPANY NAMEIntroducción
Contenido
• ¿Qué es la programación dinámica?
• Características de la programación dinámica (PD)
• Ejemplo 1
• Reflexión
COMPANY NAMEIntroducción
¿Qué es la programación dinámica?
• Es una técnica matemática que se aplica en la toma de decisiones secuenciales interrelacionadas.
• Proporciona un procedimiento, pero no un algoritmo, para determinar la combinación de decisiones que optimiza un resultado.
COMPANY NAMEIntroducción
Características de la programación dinámica
• A diferencia de la programación lineal no existe una formulación matemática estándar.
• Es una estrategia general cuyas ecuaciones se ajustan a cada situación particular
• No existe “el problema” de la programación dinámica
• Requiere de creatividad para su aplicación
𝒚 = 𝒇(𝒙)
COMPANY NAMEIntroducción
Ejemplo
• El problema de la diligencia.
• Es un problema artificial diseñado para explicar el concepto de la PD.
• Permite introducir la terminología de la PD en forma clara y comprensible
COMPANY NAMEIntroducción
EL PROBLEMA
DE LA
DILIGENCIA
Tomado del libro:
Introducción a la Investigación de Operaciones
Novena edición
Frederick S. Hillier
Gerald J. Lieberman
COMPANY NAMEIntroducción
Síntesis de la redacción del problema
• Un aventurero desea viajar en diligencia desde Missouri hasta California a mediados del siglo XIX.
• Es un viaje peligroso y, aunque su origen y destino son fijos, tiene muchas opciones en cuanto a que estados, ciudades o pueblos elegir como etapas intermedias de su viaje.
COMPANY NAMEIntroducción
Síntesis de la redacción del problema
• Este viajero ha ideado una manera bastante ingeniosa para determinar la ruta más segura.
• Dado que están disponibles seguros de vida para el viajero, seguramente la ruta con menos riesgo será aquella cuya póliza por el recorrido total sea más barata.
COMPANY NAMEIntroducción
¿Cuál es la ruta de menor costo?
Esta es la pregunta que trataremos de contestar, y servirá para introducir el vocabulario y conceptos de la programación dinámica.
COMPANY NAMEIntroducción
Caminos y costos de pólizas
A C
B
D
E
F
G
H
I
J
2
4
3
7
4
6
3
2
4
4
1
5
4
1
6
3
3
3
3
4
COMPANY NAMEIntroducción
Una solución fácil, clara, plausible y… equivocada
• La primera idea que puede venir a nuestra mente es elegir, en cada etapa, la opción de menor costo.
2
4
34
COMPANY NAMEIntroducción
Una solución fácil, clara, plausible y… equivocada
• La primera idea que puede venir a nuestra mente es elegir, en cada etapa, la opción de menor costo.
2
4
34
Trayecto Póliza
A-B 2
B-F 4
F-I 3
I-J 4
Total 13
COMPANY NAMEIntroducción
Existen mejores alternativas
• Por ejemplo, es sencillo observar que, eligiendo alguna ruta más costosa en una etapa, puede compensarse en la siguiente.
3
1
34
Trayecto Póliza
A-D 3
D-F 1
F-I 3
I-J 4
Total 11
COMPANY NAMEIntroducción
Estrategias de soluciónUn forma de resolverlo podría ser el ensayo y error; probar todas las alternativas posibles y elegir la menor. Sin embargo es un proceso largo e ineficiente.
La programación dinámica propone una forma de abordar el problema que es mucho más eficiente.
COMPANY NAMEIntroducción
Programación DinámicaCualquiera que sea la solución podemos observar que estará formada por cuatro etapas.
ETAPA 1 ETAPA 2 ETAPA 3 ETAPA 4
COMPANY NAMEIntroducción
Programación DinámicaEl análisis comienza en la etapa 4.
En la etapa cuatro solamente existen
dos rutas:
Desde H hasta J
Desde I hasta J
Cada una de ellas tiene diferente
costo, pero no existen alternativas
en cada caso, sólo existe una ruta:
Desde H hasta J, costo = 3
Desde I hasta J, costo = 4
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menorcosto
H H - J 3 3
I I - J 4 4
El menor costo, en este caso, es
el único disponible, de modo
que tomamos las dos:
H – J y también I – J.
COMPANY NAMEIntroducción
Programación DinámicaAhora tomamos en consideración la etapa 3.
En la etapa 3 se consideran
las alternativas para llegar a
los puntos H e I.
Se emplea la misma tabla que
vimos antes pero ahora se
integran los costos desde los
puntos E, F y G, y se suman
las mejores opciones de la
etapa 4.
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menor Etapa 4
Menorcosto
E E – HE – I
14
34
48
F F – HF – I
63
34
97
G G – HG – I
33
34
67
Se elige el menor costo por ruta
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menor Etapa 4
Menorcosto
E E – HE – I
14
34
48
F F – HF – I
63
34
97
G G – HG – I
33
34
67
Se elige el menor costo por ruta
COMPANY NAMEIntroducción
Programación DinámicaAhora tomamos en consideración la etapa 2.
En la etapa 2 se consideran
las alternativas para llegar a
los puntos E, F y G.
Se emplea la misma tabla que
vimos antes pero ahora se
integran los costos desde los
puntos B, C y D, y se suman
las mejores opciones de la
etapa 3 (que incluyó a la 4).
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menor Etapa 3
Menorcosto
B B – EB – FB – G
746
476
111112
C C – EC – FC – G
324
476
79
10
D D – ED – FD – G
415
476
88
11
Se elige el menor costo por ruta
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menor Etapa 3
Menorcosto
B B – EB – FB – G
746
476
111112
C C – EC – FC – G
324
476
79
10
D D – ED – FD – G
415
476
88
11
Se elige el menor costo por ruta
COMPANY NAMEIntroducción
Programación DinámicaSolamente falta revisar la etapa 1.
En la etapa 1 se
consideran las alternativas
para llegar a los puntos B,
C y D.
Se emplea la misma tabla
que vimos antes pero
ahora se integran los
costos desde el punto A y
se suman las mejores
opciones de la etapa 2
(que incluyó a la 3 y a la 4).
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menor Etapa 2
Menorcosto
A A – BA – CA – D
243
1178
131111
Se elige el menor costo por ruta
COMPANY NAMEIntroducción
Programación DinámicaEs conveniente representar esta información en una tabla.
Estado Rutas Costo Menor Etapa 2
Menorcosto
A A – BA – CA – D
243
1178
131111
Se elige el menor costo por ruta
como solución del problema.
Ahora solamente se leen las
tablas comenzando por la última
que se elaboró.
COMPANY NAMEIntroducción
Análisis de las tablas
• La tabla final indica que debemos elegir cualquiera de dos rutas:
• De A hacia C con un costo total de 11
• De A hacia D con el mismo costo total de 11
• Se descarta la ruta de A hacia B porque, en el mejor de los casos, se logra un costo de 13.
COMPANY NAMEIntroducción
Análisis de las tablas
• En la penúltima tabla (etapa 2) tomamos solamente las opciones de C y D con menor costo porque ya determinamos que cualquier ruta que inicia con A-B es más costosa.
Rutas de menor costo:
A – C – E
A – D – E
A – D – F
COMPANY NAMEIntroducción
Análisis de las tablas
• En la segunda tabla (etapa 3) tomamos solamente las opciones E y F debido a que la ruta que pasa por G fue eliminada en el paso anterior.
Rutas de menor costo:
A – C – E – H
A – D – E – H
A – D – F – I
COMPANY NAMEIntroducción
Análisis de las tablas
• En la primera tabla (etapa 4) tomamos solamente las opciones H e I debido a que no existen alternativas.
Rutas de menor costo:
A – C – E – H – J (Costo = 11)
A – D – E – H – J (Costo = 11)
A – D – F – I – J (Costo = 11)
COMPANY NAMEIntroducción
Reflexiones acerca del problema
• Durante el proceso de solución de este problema se emplearon, sin definir, algunos términos importantes:
• Etapa
• Estado
• Política
COMPANY NAMEIntroducción
Reflexiones acerca del problema• Estos tres conceptos son fundamentales
para la programación dinámica.
COMPANY NAMEIntroducción
Reflexiones acerca del problema• Estos tres conceptos son fundamentales
para la programación dinámica.
Estado 1
Estado 2 Estado 3 Estado 4
Estado 5
COMPANY NAMEIntroducción
Reflexiones acerca del problema• Estos tres conceptos son fundamentales
para la programación dinámica.
Estado 1
Estado 2 Estado 3 Estado 4
Estado 5
Po
líti
ca
Po
líti
ca
Po
líti
ca
Po
líti
ca
COMPANY NAMEIntroducción
Reflexiones acerca del problema
• Cuando se establece el criterio de elegir el costo mínimo se plantea una política de decisión para optimizar el resultado.
COMPANY NAMEIntroducción
Reflexiones acerca del problema
• Se emplearon los conceptos de etapa y estado en las tablas de análisis de rutas por etapa.
COMPANY NAMEIntroducción
Características de un problema de PD
1. El problema se puede dividir en etapas.
2. Cada etapa requiere de una política de decisión
EL problema está formado por una serie de decisiones interrelacionadas.
COMPANY NAMEIntroducción
Características de un problema de PD
3. Cada etapa tiene cierto número de estados asociados con su inicio
Los estados pueden verse como condiciones posibles en las que se puede encontrar el sistema en cada etapa del problema
COMPANY NAMEIntroducción
Características de un problema de PD
4. El efecto de la política de decisión es transformar el estado actual en un estado asociado con el inicio de la siguiente etapa.
Los problemas de PD pueden interpretarse en términos de redes, la solución consiste en encontrar la trayectoria más corta o más larga.
COMPANY NAMEIntroducción
Características de un problema de PD
5. El procedimiento de solución está diseñado para encontrar una política óptima para manejar el problema completo.
En cualquier problema, la PD proporciona, no solamente la solución óptima, sino una política de decisión aplicable a cualquier circunstancia.
COMPANY NAMEIntroducción
Características de un problema de PD
6. Principio de optimalidad de la PD.
Dado el estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en las etapas anteriores.