Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Investigació n Operativa
Reseña Histórica…………………………………………………………………………………………………………. 2
¿Cuando Aplicar?………………………………………………………………………………………………………… 3
Ejemplos:
Problema de la Mochila……………………………………………………..……………………………
12
Conclusión…………………………………………………………………………………………………….……………. 16
Bibliografía…………………………………………………………………………………………………….…………... 17
1
Historia
La primera gran disciplina que surgió a partir del abordaje matemático de los
problemas específicos de la Segunda Guerra Mundial fue, seguramente, la Investigación
Operativa1. El término Operations Research fue utilizado por primera vez en Inglaterra, en
1941.
2
La Programación Dinámica
La programación dinámica es un enfoque general para la solución de problemas en
los que es necesario tomar decisiones en etapas sucesivas. Las decisiones tomadas en una
etapa condicionan la evolución futura del sistema.
¿Cuando Aplicar?
Existe problemas cuyas soluciones pueden ser expresadas recursivamente. No
obstante, el tiempo de ejecución de la solución recursiva, es de orden exponencial
y por tanto es muy difícil y costoso implementarlo pero puede mejorarse mediante
la Programación Dinámica.
3
Principio de Optimalidad de la Programación Dinámica o de
Bellman
Dado un estado, la política óptima para las siguientes etapas no depende de la
política tomada en las etapas anteriores.
La decisión de óptima inmediata sólo depende del estado en el que se está, no de
cómo se llegó hasta él. Toda la información sobre el pasado se resume en el estado en que se
encuentra.
Una vez conocida la solución óptima global, cualquier solución parcial que involucre
sólo una parte de las etapas es también una solución óptima.
Todo subconjunto de una solución óptima es a su vez una solución óptima para un
problema parcial.
3. Cálculo del valor de la solución óptima mediante una tabla en donde se almacenan
soluciones a problemas parciales para reutilizar los cálculos.
4
Procesos de Decisión de “n” Etapas.
La condición del proceso en una etapa, se denomina “estado” en esa etapa y cada
decisión produce un cambio de estado o transición del estado actual a un estado asociado
con la siguiente etapa. Es decir, que en cada decisión se pasa de un estado actual a un
estado asociado con la próxima etapa.
5
I. Xk estado actual en la etapa k.
III. Xk+1 estado al que se llega en la etapa k + 1 dependiente del estado inicial Xk
y de la decisión uk.
IV. fk (Xk ) valor acumulado de la función objetivo para el estado Xk desde la etapa
k hasta N.
VI. Coste acumulado desde una etapa k hasta el final para un estado Xk , f*k(xk) =
Coste inmediato de dicha etapa C xk,uk.+ Coste acumulado desde una etapa k +
1 hasta el final para un estado Xk+1 , f*k+1(xk+1)
6
DP hacia atrás (backward DP)
Para la etapa k = 3
Para la etapa k = 2
Finalmente en la etapa k = 1
D E H J 3+4+1+3=11
D F I J 3+1+3+4=11
7
DP hacia adelante (forward DP)
Para la etapa k = 2
Para k = 3
Para k = 4
J H E D A 3+1+4+3=11
J I F D A 4+3+1+3=11
8
Programación Dinámica en contraste con la Programación Lineal.
La programación dinámica no cuenta con una formulación matemática estándar
para resolver los problemas, se trata de un enfoque general para la resolución de
problemas, en consecuencia se deben desarrollar ecuaciones y algoritmos específicos
para cada problema particular.
Este principio también se define diciendo que una Política óptima tiene la
propiedad de que independientemente de las decisiones tomadas para llegar a un estado
particular, las decisiones restantes deben constituir una política óptima para abandonar
ese estado.
Además, es frecuente que la resolución del modelo esté muy relacionada con la
situación que se ha de modelizar. En contrapartida, las simplificaciones que en ocasiones
deben realizarse en programación lineal para poder resolver el modelo no son necesarias
en programación dinámica, que admite gran variedad de relaciones entre variables.
Ejemplos
9
ii) Cuál es la ruta con ese costo mínimo.
Para ir desde su oficina hasta el lugar donde está la cosecha debe atravesar varias
ciudades. En su camino debe pasar por 3 ciudades antes de llegar a su destino, y algunos
lugares posibles en esas ciudades. Las posibles rutas, y el costo asociado por Km. de
distancia y otros es en $, se ven en el siguiente esquema:
10
Estado: Lugar donde se encuentra. La etapa 1 tiene 1 estado: el 1. La etapa 2 tiene 4
estados: 2, 3, 4, 5. La etapa 3 tiene 3 estados: 6, 7, 8. La etapa 4 tiene 4 estados: 9, 10,
11, 12.
Cálculos
n=4
S \ X4 13 F4* X4*
9 12 12 13
10 16 16 13
11 15 15 13
12 14 14 13
n=3
S \ X3 9 10 11 12 F3* X3*
6 3+12=15 2+16=18 1+15=16 3+14=17 15 9
7 4+12=16 1+16=17 4+15=19 6+14=20 16 9
8 2+12=14 3+16=19 6+15=21 5+14=19 14 9
n=2
S \ X2 6 7 8 F2* X2 *
2 9+15=24 4+16=20 6+14=20 20 7,8
3 5+15=20 7+16=23 4+14=18 18 8
4 9+15=24 10+16=26 8+14=22 22 8
5 9+15=24 10+16=26 11+14=25 24 6
n=1
S \ X1 2 3 4 5 F1* X1 *
1 7+20=27 6+18=24 5+22=27 6+24=30 24 3
Respuesta: El óptimo es: 24
11
La ruta óptima es: 1 3 8 9 13
El Ingeniero Forestal tiene un costo mínimo de $24 para ir desde su oficina al lugar
de cosecha, y ese mínimo lo puede lograr yendo desde su oficina al lugar 3 luego al lugar 8
luego al lugar 9 y de ahí al lugar 13, que es donde está la cosecha.
Problema de la Mochila.
Existen N diferentes tipos de artículos que pueden cargarse en una mochila; cada
artículo tiene asociados un peso y un valor. El problema consiste en determinar cuántas
unidades de cada artículo se deben colocar en la mochila para maximizar el valor total.
12
cuando la producción es menor que la demanda, se generarán retrasos en el
cumplimiento de pedidos (backorder). Para cada periodo, una producción no-cero incurre
en un costo de preparación. En programación dinámica, el costo variable se expresa como
una función de la producción (P), el inventario (H), y backorder (B).
Modelo Matemático.
En el modelo todas las variables son enteras positivas y f1(x1); f2(x2);……; fn(xn)
son funciones conocidas no lineales de una sola variable y “b” es un número entero no
negativo conocido. “n” representa el número de etapas en que se descompone el
problema.
El Principio de Optimalidad nos dice que el valor xk+1 de una asignación óptima
para las N actividades con un monto inicial P corresponde, a su vez, a una asignación
óptima de las actividades k + 1,..., N con un monto inicial z = P − (x1+x2+x3+….+xk). La
información esencial con la que debemos contar a cada paso es, entonces, el número de la
actividad sobre la cual estamos decidiendo y la cantidad de pesos que restan distribuir.
13
Por lo tanto, un estado deberá ser un par (k, z), con k el número de la actividad que
debemos asignar y z el dinero disponible. Llamando f a la función óptima, la Ecuación
Funcional del problema es:
Donde:
Las variables de decisión son aquellas sobre las cuales debemos definir su
valor de modo de optimizar el beneficio acumulado y modificar el estado
de la próxima etapa.
14
Tipos de programación dinámica
En principio, los problemas de programación dinámica pueden clasificarse según
dos criterios: su homogeneidad o no homogeneidad, y su carácter determinista o
aleatorio.
Los valores posibles de las variables de decisión para cada uno de los
estados son las mismas para todas las etapas del sistema.
Esta categoría tiene que ver con la naturaleza de la evolución del sistema, una vez se
ha tomado la decisión. Cuando, en una etapa determinada, podemos conocer con certeza
la evolución del sistema para un determinado estado y un determinado valor de la variable
de decisión, tenemos un modelo de programación dinámica determinista. Para estos
modelos, podremos determinar las decisiones que, en cada etapa, dan el valor óptimo de
la función de recurrencia.
15
Si, para una etapa determinada, en un estado cualquiera i, al escoger un determinado
valor de la variable de decisión, encontramos que el sistema puede evolucionar hacia
diferentes estados j de la siguiente etapa con una probabilidad conocida pij, entonces el
modelo es de programación dinámica aleatoria. En este caso, podremos determinar las
decisiones que optimicen el valor esperado de la función de recurrencia.
Conclusión
La Programación Dinámica es una técnica que permite la optimización de
soluciones a problemas adaptandandolos a la metodología divide y vencerás,
fraccionando el problema en subproblemas y solucionando a cada uno de ellos mediante
el uso de la recursividad para luego combinar estas soluciones parciales para obtener la
solución al problema. Cabe destacar que para que un problema se pueda resolver
mediante la Programación Dinámica debe cumplir ciertas características para que pueda
ser tratado como así.
16
Bibliografía
Manuel Maurette e Ignacio Ojea, Programación Dinámica, Junio de 2006.
Webgrafia
http://investigacionoperativa.es.tl/Programacion-Dinamica.htm
http://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progD
inamica.pdf
http://sci2s.ugr.es/docencia/tasb/TA-Tema6-0809.pdf
http://www.redalyc.org/src/inicio/ArtPdfRed.jsp?iCve=84920977024
http://es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1mica
http://invdeo.blogspot.com.ar/
17