INSTITUTO TECNOLÓGICO DEALVARADO
PROGRAMACIÓN DINÁMICAINVESTIGACIÓN DE OPERACIONES II
PROGRAMACIÓN DINÁMICA 1
CONTENIDO
Introducción……………………………………………………………………………………………2
Programación Dinámica……………………………………………………………………………….3
1.1 Características de los problemas de programación dinámica……………………………………...3
1.2 Ejemplos de programación dinámica……………………………………………………………...4
El problema de la diligencia…………………………………………………………………………...4
1.3 Programación dinámica determinista……………………………………………………………...8
Aplicaciones de programación dinámica determinística………………………………………………8
Modelo del tamaño de la fuerza de trabajo……………………………………………………………9
Modelo de reposición de equipo……………………………………………………………………..11
1.4 Programación dinámica probabilista……………………………………………………………..15
Aplicaciones de programación dinámica probabilísticas…………………………………………….15
Un juego aleatorio……………………………………………………………………………………16
1.5 Uso de programas de computación………………………………………………………………19
Bibliografía…………………………………………………………………………………………...24
PROGRAMACIÓN DINÁMICA 2
Introducción
La PD fue desarrollada por Richard Bellman y G B Dantzing. Sus importantes
contribuciones sobre esta técnica cuantitativa de toma de decisiones se publicaron en 1957
en un libro del primer autor denominado “Dynamic Programming” (Princeton University
Press. Princeton, New Jersey) (Domínguez, 2000).Inicialmente a la PD se le denominó
programación lineal estocástica ó problemas de programación lineal con incertidumbre.
La programación dinámica (PD) determina la solución óptima de un problema de n
variables descomponiéndola en n etapas, con cada etapa incluyendo un sub problema de
una sola variable. La principal contribución de la PD es el principio de optimalidad, el cual
establece que una política óptima consiste de sub políticas óptimas, un marco de
referencia para descomponer el problema en etapas.
La programación dinámica es una técnica que se puede aplicar para resolver muchos
problemas de optimización. La mayor parte de las veces, la programación dinámica obtiene
soluciones con un avance en reversa, desde el final de un problema hacia el principio con
lo que un problema grande y engorroso se convierte en una serie de problemas más
pequeños y más tratables.
Así, la programación dinámica se puede definir como una técnica matemática útil que
resuelve una serie de decisiones secuenciales, cada una de las cuales afecta las
decisiones futuras. Proporciona un procedimiento sistemático para determinar la
combinación de decisiones que maximiza la efectividad total (Taha, 2004).
En contraste para el problema de programación dinámica, trata de un enfoque de tipo
parcial para la solución de problemas y las ecuaciones específicas que se usan se deben
desarrollar para que represente cada situación individual.
PROGRAMACIÓN DINÁMICA 3
PROGRAMACIÓN DINÁMICA
1.1 Características de los problemas de programación dinámica
Las características de la programación dinámica se emplean para formular e identificar la
estructura de los problemas de este tipo.
A continuación se presentarán estas características básicas que distinguen a los
problemas de programación dinámica.
1. El problema se puede dividir en etapas que requieren una política de decisión en
cada una de ellas. En muchos problemas de programación dinámica, la etapa es la
cantidad de tiempo que pasa desde el inicio del problema, en ciertos casos no se
necesitan decisiones en cada etapa.2. Cada etapa tiene un cierto número de estados asociados a ella. Por estado se
entiende la información que se necesita en cualquier etapa para tomar una decisión
óptima.3. El efecto de la política de decisión en cada etapa es transformar el estado actual en
un estado asociado con la siguiente etapa (tal vez de acuerdo a una distribución de
probabilidad).4. El procedimiento de solución está diseñado para encontrar una política óptima para
el problema completo, es decir, una receta para las decisiones de la política óptima
en cada etapa para cada uno de los estados posibles.5. Dado el estado actual, una política óptima para las etapas restantes es
independiente de la política adoptada en etapas anteriores. (este es el principio de
óptimalidad para la programación dinámica). En general en los problemas de PD, el
conocimiento del estado actual del sistema expresa toda la información sobre su
comportamiento anterior, y esta información es necesario para determinar la política
óptima de ahí en adelante. 6. El procedimiento de solución se inicia al encontrar la política óptima para la última
etapa. La política óptima para la última etapa prescribe la política óptima de decisión
para cada estado posible en esa etapa. 7. Se dispone de una relación recursiva que indica la política óptima para la etapa
dada la política optima para la etapa (n+1)
A pesar de esta característica, los problemas que pueden ser atacados con la PD tienen
otras dos propiedades adicionales:
Sólo un número reducido de variables se debe conocer en cualquier etapa con el fin
de describir al problema. En efecto, los problemas de la PD se caracterizan por la
dependencia de los resultados derivados de decisiones sobre un número reducido
de variables. El resultado de una decisión en cualquier etapa altera los valores numéricos de un
número reducido de variables relevantes al problema. La decisión actual ni
PROGRAMACIÓN DINÁMICA 4
incrementa ni decrementa el número de factores sobre los cuales depende el
resultado. Así, para la siguiente decisión en la secuencia, el mismo número de
variables se considera (Hillier, 1991).
En un problema de PD una serie de decisiones se deben tomar en una secuencia dada.
Cuando esto se cumple, una política óptima se debe perseguir. No importa cuáles fueron
los estados y decisiones iniciales, las decisiones restantes constituirán una política óptima
con respecto al estado resultante de la primera decisión.
1.2 Ejemplos de Modelo de Programación Dinámica.
El problema de la diligencia.
Un problema construido especialmente por el Profesor H M Wagner de la Universidad de
Stanford para ilustrar las características e introducir la terminología de la PD es elproblema de la diligencia.
Este problema se refiere a un vendedor mítico que tuvo que viajar hacia el oeste utilizando
como medio de transporte una diligencia, a través de tierras hostiles, en el último cuarto del
siglo XIX. Aún cuando su punto de partida y destino eran fijos, tenía un número
considerable de opciones para elegir qué estados (o territorios que posteriormente se
convirtieron en estados) recorrer en su ruta.
En la figura 1 se muestran las rutas posibles, en donde cada estado se representa por un
bloque numerado.
Figura 1. Sistema de caminos para el problema de la diligencia.
PROGRAMACIÓN DINÁMICA 5
De la ilustración se puede observar que el viaje se puede realizar en 4 etapas, partiendo
del estado 1 hasta su destino en el estado 10:
Primera etapa: estados 1 y (2, 3, 4)
Segunda etapa: estados (2, 3,4) y (5, 6, 7)
Tercera etapa: estados (5,6,7) y (8, 9)
Cuarta etapa: estado (8,9) y10
Puesto que se ofrecían seguros de vida a los pasajeros de las diligencias, este vendedor
no quiso dejar pasar la oportunidad y se propuso determinar la ruta más segura. Como el
costo de cada póliza se basaba en una evaluación cuidadosa de la seguridad de ese
recorrido, la ruta más segura debía ser aquella con la póliza de seguro de vida más barata.
El costo de la póliza estándar para el viaje en diligencia del estado i al j se muestra en
figura 1 como una etiqueta en los caminos (flechas) para ir de un estado a otro.
Así la pregunta central es: ¿cuál ruta (conjunto de caminos) minimiza el costo total de la
póliza?, para contestar esta pregunta es necesario hacer notar que, el procedimiento poco
inteligente de seleccionar el camino más barato ofrecido en cada etapa sucesiva no
necesariamente conduce a una decisión óptima global.
La PD parte de una pequeña porción del problema y encuentra la solución óptima para ese
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.
A continuación se explican los detalles involucrados en la implementación de esta filosofía
general. La idea es calcular el costo mínimo (acumulativo) de la póliza de seguros entre los
dos estados de cada etapa y después utilizar esos costos como datos de entrada para la
etapa inmediata siguiente.
CÁLCULOS PARA LA ETAPA 1Considerando los estados asociados con la etapa 1, se puede ver que los estados 2, 3 y 4
están conectados cada uno con el estado inicial 1 por una sola flecha como se puede
apreciar en la figura 2. Por consiguiente, para la etapa 1 se tiene
Figura 2 etapa 1: estados 2, 3,4
conectados con el estado inicial
1
PROGRAMACIÓN DINÁMICA 6
Costo mínimo al estado 2 = 2 (desde el estado 1)
Costo mínimo al estado 3 = 4 (desde el estado 1)
Costo mínimo al estado 4 = 3 (desde el estado 1)
CÁLCULOS PARA LA ETAPA 2Después se avanza a la etapa 2 para determinar los costos
mínimos
(Acumulativos) para los estados 5, 6 y 7 como se aprecia en la
figura 3.
Considerando primero al estado 5, se ve que existen tres alternativas; a saber (2,5), (3,5),
(4,5).
Esta información, junto con los costos mínimos de los estados 2, 3 y 4 (figura 4)
determinan el costo mínimo (acumulativo) para el estado 5 como:
De forma similar para el estado 6 (figura 5), se tiene:
Figura 3 Etapa 2: estados 5, 6, 7
conectados con los estados 2, 3,
Figura 4Etapa 2: Estados 5 conectado con los estados 2, 3, 4.
Figura 5
Etapa 2: Estados 6
conectado con los estados
PROGRAMACIÓN DINÁMICA 7
Finalmente para el estado 7 (figura 6), se tiene:
CÁLCULOS PARA LA ETAPA 3Para los cálculos se toman los datos de la figura 5.7
Figura 6Etapa 2: Estados 7 conectados con
los estados 2, 3, 4.
PROGRAMACIÓN DINÁMICA 8
CÁLCULOS PARA LA ETAPA 4 Para los cálculos se toman los datos de la figura yuttty|5558
En resumen, el costo mínimo total desde el estado 1 al estado 10 es
de 11.
El estado 10 se puede alcanzar desde los estados 8 y 9.
Figura 7
Etapa 3: estados 8, 9 conectados con
los estados 5, 6, 7.
Figura 8
Etapa 4: Estados 10
conectados con los estados
PROGRAMACIÓN DINÁMICA 9
Si se elige el estado 9, este proviene de haber elegido el estado 6, el cual a su vez de
haber elegido el estado 4 y finalmente el estado 1.
Es decir la ruta óptima es: 1, 4, 6, 9,10
Si se elige el estado 8, este proviene de haber elegido el estado 5, el cual a su vez de
haber elegido el estado 4 o el 3.
Si se elige el estado 4, la ruta óptima es: 1, 4, 5, 8,10.
Si se elige el estado 3, la ruta óptima es: 1, 3, 5, 8,10
Por lo tanto existen 3 rutas óptimas a elegir ya que la tres implican el costo mínimo total
que es 11.
1.3 Programación Dinámica Determinística (PDD)
En este caso se profundiza sobre el enfoque de programación dinámica en los problemas
determinísticos, en donde el estado en la siguiente etapa está completamente determinado
por el estado y la política de decisión de la etapa actual. El caso probabilístico en el que
existe una distribución de probabilidad para el valor posible del siguiente estado este se
analizara más adelante.
Aplicaciones de programación dinámica determinística
Algunas de las aplicaciones de programación dinámica determinística son:
Modelo de Volumen-Carga “Mochila”
Modelo del tamaño de la fuerza de trabajo
Modelo de reposición de equipos
Modelo de inversión
Modelos de inventarios
A continuación se presentarán algunas de estas aplicaciones, cada una de las cuales
muestra una nueva idea en la puesta en práctica de la PD.
A medida que se presente cada aplicación, es importante prestar atención a los tres
elementos básicos de un modelo de PD:
Definición de las etapas Definición de las políticas o alternativas Definición de los estados para cada etapa
De los tres elementos, la definición del estado por lo común es la más sutil.
Top Related