SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS – UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO 
December 18, 2012 
Autor: Walter Toledo 30022/09 PI Programación Dinámica 
Investigación Operativa
1 
Índice 
Reseña Histórica…………………………………………………………………………………………………………. 2 
La Programación Dinámica. ……………………………………………………………………………….………. 3 
¿Cuando Aplicar?………………………………………………………………………………………………………… 3 
Principio de Optimalidad de la Programación Dinámica o de Bellman………………….….… 4 
Procesos de Decisión de “n” Etapas. ……………………………………………………………………….… 5 
Relación Recursiva (hacia atrás)………………………………………………………………….……………… 5 
DP hacia atrás (backward DP)…………………………………………………………………………………..… 7 
DP hacia adelante (forward DP)…………………………………………………………………………….….… 8 
Programación Dinámica en contraste con la Programación Lineal………………………….…. 9 
Ejemplos: 
 Problema del viajero o de la diligencia…………………………………………………………… 11 
 Problema de la Mochila……………………………………………………..…………………………… 12 
 Programación de Producción e Inventarios………….…………………………….…………… 12 
Modelo Matemático. …………………………………………………………………………………………….….. 13 
La Formulación con Programación Dinámica. …………………………………………………….……… 13 
Resolución de un Problema de Programación Dinámica. …………………………………………… 14 
Tipos de programación dinámica: 
 Programación dinámica homogénea y no homogénea.………………………….………. 15 
 Programación dinámica determinista y aleatoria……………………………………………. 15 
Conclusión…………………………………………………………………………………………………….……………. 16 
Bibliografía…………………………………………………………………………………………………….…………... 17
2 
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. 
Rápidamente se hizo evidente que las mismas técnicas utilizadas en el ámbito militar podían servir en otras áreas de aplicación. En los años posteriores a la Guerra se abrieron nuevos temas de investigación y se plantearon nuevos problemas, que fueron abordados desde una perspectiva matemática. Entre estos nuevos temas se encontraba la teoría de los Procesos de Decisión en Múltiples Pasos, que Richard Bellman (1920 - 1984) abordó alrededor de 1952, y para los cuales fue pensada originalmente la Programación Dinámica. 
Después de desarrollar el método en el área específica de los problemas de decisión discretos, Bellman y sus colaboradores se dedicaron a la ardua tarea de formular diferentes problemas en los términos de la Programación Dinámica. Como resultado de esta labor, encontraron que las ideas centrales del método, en particular, el Principio de Optimalidad, podían ser aplicadas satisfactoriamente en muchos de los problemas abordados. Descubrieron también las limitaciones de esta técnica y hallaron modos de sobreponerse a ellas, para algunos problemas puntuales. 
La Programación Dinámica es, hoy en día, un recurso imprescindible de Matemática Aplicada y, también, una importante herramienta teórica.
3 
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. 
El procedimiento general de resolución de estas situaciones se divide en el análisis recursivo de cada una de las etapas del problema, en orden inverso, es decir comenzando por la última y pasando en cada iteración a la etapa anterior. 
¿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. 
 En el diseño Divide y Vencerás se basa en resolver un problema dividiendo en subproblemas independientes, los cuales se resolvían de manera recursiva para combinar finalmente las soluciones y así resolver el problema original. 
 La Programación Dinámica consiste en resolver los subproblemas una sola vez, guardando sus soluciones en una tabla para su futura utilización. 
La Programación Dinámica en la resolución de problemas de optimización se realiza mediante la obtención de un valor óptimo que puede ser máximo o mínimo dependiendo el caso particular al que se aborde. 
La solución de problemas mediante esta técnica se basa en el llamado principio óptimo enunciado por Bellman en 1957 y que dice: “En una secuencia de decisiones óptima toda subsecuencia ha de ser también óptima”.
4 
El algoritmo de Programación Dinámica esta compuesto por los siguientes pasos: 
1. Planteamiento de la solución como una sucesión de decisiones y verificación de que ésta cumple el principio de óptimo. 
2. Definición recursiva de la solución. 
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. Construcción de la solución óptima haciendo uso de la información contenida en la tabla anterior. 
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.
5 
Procesos de Decisión de “n” Etapas. 
Un proceso de decisión de “n” etapas es el que puede descomponerse en cierto número de pasos. Cualquiera sea la forma de completar una etapa, se llama decisión y la secuencia de decisiones a lo largo de las etapas, se denomina política. En la resolución de un problema se busca la “política óptima” que optimice el problema. 
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. 
Relación Recursiva (hacia atrás) 
Define la política óptima en la etapa k, conocida la política óptima en cualquier estado de la etapa k + 1.
6 
I. Xk estado actual en la etapa k. 
II. uk variable de decisión 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. 
V. C xk,uk. valor inmediato de tomar la decisión uk desde el estado Xk 
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) 
Ejemplo: problema del viajero 
El viajero desea ir de la ciudad A a la J por el camino más corto.
7 
DP hacia atrás (backward DP) 
Empezamos por la etapa k = 4 
Para la etapa k = 3 
Para la etapa k = 2 
Finalmente en la etapa k = 1 
Ruta óptima: A C E H J 4+3+1+3=11 
D E H J 3+4+1+3=11 
D F I J 3+1+3+4=11
8 
DP hacia adelante (forward DP) 
Para la etapa k = 2 
Para k = 3 
Para k = 4 
Finalmente para la etapa k = 5 
Ruta óptima: J H E C A 3+1+3+4=11 
J H E D A 3+1+4+3=11 
J I F D A 4+3+1+3=11
9 
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. 
La programación dinámica es una manera de analizar procesos de decisión en un programa de optimización. Esta técnica de análisis se basa en principio de Optimalidad de Richard Bellman que establece: “Una política óptima tiene la propiedad de que cualquiera que sea el estado inicial y la primera decisión, las decisiones restantes constituyen una política óptima en relación a los efectos resultantes de la primera decisión”. 
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. 
La naturaleza del razonamiento que se debe realizar en programación dinámica es muy diferente al de la programación lineal. En programación lineal, intenta describir una determinada situación en términos de un modelo matemático determinado; una vez conocida la naturaleza de las variables de decisión, y expresadas la función objetivo y las restricciones en función de esas variables, la resolución del modelo puede confiarse, sin mayores problemas, a un programa informático. La programación dinámica no admite una resolución sistemática de este tipo; más que un modelo concreto, es una estrategia de resolución común a muchas situaciones en principio diferentes entre sí. 
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 
 Problema del viajero o de la diligencia. 
Un Ingeniero Forestal, requiere saber: 
i) Cuál es el costo mínimo.
10 
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: 
Para ir de 1 a 13 hay 48 rutas posibles. Una posibilidad para encontrar la solución es calcular el valor asociado a cada una y ver cual es la que proporciona el menor costo. ¿Y si fuesen miles de rutas? Por se descarta esa alternativa y se usa el método de la programación Dinámica, donde se resuelve desde el final hacia el inicio, y hay etapas y estados. 
Etapas: Son 4 etapas en este caso: 
 La etapa 1 es decidir ir del estado inicial 1 al estado 2, 3, 4 o 5 que son los puntos posibles en el sector siguiente. 
 La etapa 2 es decidir ir a 6, 7 u 8. 
 La etapa 3 es decidir ir a 9, 10, 11 o 12. 
 La etapa 4 es decidir a 13.
11 
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 
La solución óptima es: X1 = 3; X2 = 8; X3= 9; X4= 13.
12 
La ruta óptima es: 
1 
3 
8 
9 
13 
Respuesta al problema planteado: 
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. 
 Programación de Producción e Inventarios 
El problema consiste en determinar un programa de producción para un periodo de tiempo con el fin de minimizar los costos totales. Hay demandas conocidas para cada periodo, límites de capacidad tanto para la producción como para los inventarios (almacenamiento). Cuando hay más producción que demanda, se acumula inventario, y
13 
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. 
Genéricamente un modelo matemático que representa un tipo importante de procesos de decisión de etapas se expresa como: 
Opt Z = f1(x1)+ f2(x2)+……+ fn(xn) Sujeta a las siguientes restricciones: 
x1+x2+x3+…………+xn ≤ b ; xn con n = 1, 2, 3, ..... (Enésima decisión) son las variables de decisión que representan el destino inmediato de la etapa “n”. 
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. 
La Formulación con Programación Dinámica 
Ahora bien, al comenzar la asignación, es decir, en el momento de decidir el valor x1, estamos limitados por las restricciones 0 ≤ x1 ≤ P. Una vez dado x1 el monto total con el que contamos habrá disminuido a P − x1, por lo que las restricciones para la determinación de x2 serán 0 ≤ x2 ≤ (P − x2). Siguiendo este razonamiento, cuando se hayan determinado los valores x1, x2, x3,….., xk, las restricciones de la asignación correspondiente a la actividad k + 1 serán: 0 ≤ xk+1 ≤ P − (x1+x2+x3+….+xk). 
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.
14 
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: 
o P es la cantidad de dinero con la que contamos. 
o Las actividades están numeradas desde 1, 2,…., N a las cuales le corresponde una función de ganancias g1, g2,…, gN. 
o Si Xi es la cantidad de pesos que se asigna a la actividad i, gi(xi) será la ganancia proporcionada por esta actividad. 
Resolución de un Problema de Programación Dinámica 
Para resolver un problema de programación dinámica debemos al menos contemplar: 
 Cada etapa debe tener asociado una o mas decisiones (problema de optimización), cuya dependencia de las decisiones anteriores esta dada exclusivamente por las variables de estado. 
 Cada estado debe contener toda la información relevante para la toma de decisión asociada al periodo. 
 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. 
Descripción de ecuaciones de recurrencia: Nos deben indicar como se acumula la función de beneficios a optimizar (función objetivo) y como varían las funciones de estado de una etapa a otra. 
Resolución, debemos optimizar cada subproblema por etapas en función de los resultados de la resolución del subproblema siguiente. Notar que las para que las recurrencias estén bien definidas requerimos de condiciones de borde.
15 
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. 
a) Programación dinámica homogénea y no homogénea 
Diremos que un modelo de programación dinámica es homogéneo si presenta la misma estructura para todas las etapas del sistema. Más concretamente: 
 El sistema puede presentar los mismos estados en cualquiera de sus etapas. 
 Los valores posibles de las variables de decisión para cada uno de los estados son las mismas para todas las etapas del sistema. 
 La función a optimizar es la misma para todas las etapas del sistema. 
 La evolución del sistema, para un determinado estado y para un determinado valor de la variable de decisión de los disponibles para dicho estado, es la misma para todas las etapas del sistema. 
Una consecuencia de esta definición es que un modelo de programación dinámica homogénea puede evolucionar indefinidamente en el tiempo, esto es, el número posible de etapas es infinito. Entonces podemos plantearnos analizar su evolución para un número infinito de etapas o para un número finito de éstas. 
Cuando el modelo no cumple alguna de estas condiciones, tenemos programación dinámica no homogénea. Todos aquellos modelos que tengan un número finito de etapas posibles entrarán dentro de esta categoría. También puede suceder que el número de etapas sea infinito, aunque los problemas de programación dinámica no homogénea suelen ser de horizonte finito. 
b) Programación dinámica determinista y aleatoria 
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.
16 
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í. 
Conviene resaltar que a diferencia de la programación lineal, el modelado de problemas de programación dinámica no tiene una forma estándar. Así, para cada problema es necesario especificar cada uno de los componentes que caracterizan un problema de programación dinámica. 
Sin embargo un aspecto realmente destacable es la posibilidad de amplio campo de aplicación que posee la programación dinámica, que desde un turista queriendo viajar o la posibilidad de combinar objetos de una mochila para ahorrar espacio o también la planificación de programación de producción e inventarios y sin olvidarse de la gran importancia que posee la “Programación Dinámica” en la informática.
17 
Bibliografía 
 Manuel Maurette e Ignacio Ojea, Programación Dinámica, Junio de 2006. 
 Bohorquez Jaime y Cardozo Rodrigo, Programación Dinámica, Análisis de Algoritmo 1992. 
 Ramos, Andres, Programación dinámica (DP), Universidad Pontificia Comillas. 
 Profesor: Julio Cesar López, Programación Dinámica, Universidad del Valle, 8 de Noviembre del 2008. 
 Goic F. Marcel, Programación Dinámica, Universidad de Chile, Facultad de Ciencias Físicas y Matemáticas, Departamento de Ingeniería Industrial. 
 José Pedro García Sabater y Julien Maheut, Modelos y Métodos de Investigación de Operaciones. Procedimientos para Pensar, Grupo de Investigación ROGLE, Departamento de Organización de Empresas, Curso 2011 / 2012.  Juan Prawda Witenberg, Metodos y Modelos de Investigacion Operativa, Editorial Limusa, 1976. 
Webgrafia 
 http://investigacionoperativa.es.tl/Programacion-Dinamica.htm 
 http://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.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/

Más contenido relacionado

La actualidad más candente

Solución de problemas en programación lineal
Solución de problemas en programación linealSolución de problemas en programación lineal
Solución de problemas en programación linealARLO SOLIS
 
Ejercicios resueltos io 1 parte 2
Ejercicios resueltos io 1   parte 2Ejercicios resueltos io 1   parte 2
Ejercicios resueltos io 1 parte 2fzeus
 
Ejercicios resueltos programacion lineal
Ejercicios resueltos programacion linealEjercicios resueltos programacion lineal
Ejercicios resueltos programacion linealJohana Rios Solano
 
Conclusion y recomendacion de ejercio de investigacion de operaciones
Conclusion  y recomendacion de ejercio de investigacion de operacionesConclusion  y recomendacion de ejercio de investigacion de operaciones
Conclusion y recomendacion de ejercio de investigacion de operacionesagonzalez88
 
Método Simplex Caso de Maximización
Método Simplex Caso de MaximizaciónMétodo Simplex Caso de Maximización
Método Simplex Caso de MaximizaciónLuis Guerrero
 
5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskalADRIANA NIETO
 
Investigacion de Operaciones
Investigacion de OperacionesInvestigacion de Operaciones
Investigacion de OperacionesUVMVirtual
 
Terminologia de teoria de redes
Terminologia de teoria de redesTerminologia de teoria de redes
Terminologia de teoria de redesADRIANA NIETO
 
21066515 ejercicios-resueltos-de-programacion-lineal
21066515 ejercicios-resueltos-de-programacion-lineal21066515 ejercicios-resueltos-de-programacion-lineal
21066515 ejercicios-resueltos-de-programacion-linealAlex Hanco
 
5.5 flujo a costo minimo
5.5 flujo a costo minimo5.5 flujo a costo minimo
5.5 flujo a costo minimoADRIANA NIETO
 

La actualidad más candente (20)

Solución de problemas en programación lineal
Solución de problemas en programación linealSolución de problemas en programación lineal
Solución de problemas en programación lineal
 
Investigación de Operaciones
Investigación de OperacionesInvestigación de Operaciones
Investigación de Operaciones
 
Ejercicios resueltos io 1 parte 2
Ejercicios resueltos io 1   parte 2Ejercicios resueltos io 1   parte 2
Ejercicios resueltos io 1 parte 2
 
Problemas rsueltos pl
Problemas rsueltos plProblemas rsueltos pl
Problemas rsueltos pl
 
Ejercicios resueltos programacion lineal
Ejercicios resueltos programacion linealEjercicios resueltos programacion lineal
Ejercicios resueltos programacion lineal
 
Conclusion y recomendacion de ejercio de investigacion de operaciones
Conclusion  y recomendacion de ejercio de investigacion de operacionesConclusion  y recomendacion de ejercio de investigacion de operaciones
Conclusion y recomendacion de ejercio de investigacion de operaciones
 
Método Simplex Caso de Maximización
Método Simplex Caso de MaximizaciónMétodo Simplex Caso de Maximización
Método Simplex Caso de Maximización
 
Problema de la ruta mas corta
Problema de la ruta mas cortaProblema de la ruta mas corta
Problema de la ruta mas corta
 
Problemas resueltos(1)
Problemas resueltos(1)Problemas resueltos(1)
Problemas resueltos(1)
 
5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal
 
Programacion de metas y objetivos
Programacion de metas y objetivosProgramacion de metas y objetivos
Programacion de metas y objetivos
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Io 3ra modelo de transporte
Io 3ra modelo de transporteIo 3ra modelo de transporte
Io 3ra modelo de transporte
 
Unidad 1. Programación entera
Unidad 1. Programación enteraUnidad 1. Programación entera
Unidad 1. Programación entera
 
Investigacion de Operaciones
Investigacion de OperacionesInvestigacion de Operaciones
Investigacion de Operaciones
 
Terminologia de teoria de redes
Terminologia de teoria de redesTerminologia de teoria de redes
Terminologia de teoria de redes
 
5 91-1-pb (1)
5 91-1-pb (1)5 91-1-pb (1)
5 91-1-pb (1)
 
21066515 ejercicios-resueltos-de-programacion-lineal
21066515 ejercicios-resueltos-de-programacion-lineal21066515 ejercicios-resueltos-de-programacion-lineal
21066515 ejercicios-resueltos-de-programacion-lineal
 
5.5 flujo a costo minimo
5.5 flujo a costo minimo5.5 flujo a costo minimo
5.5 flujo a costo minimo
 
Simulación - Unidad 2 numeros pseudoaleatorios
Simulación - Unidad 2 numeros pseudoaleatoriosSimulación - Unidad 2 numeros pseudoaleatorios
Simulación - Unidad 2 numeros pseudoaleatorios
 

Similar a Programación Dinámica - Resolución de Problemas

Presentación: Programación Dinámica
Presentación: Programación DinámicaPresentación: Programación Dinámica
Presentación: Programación DinámicaWilliam Snow
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion DinamicaLuisCabanerio
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamicaRuben Gonzalez
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamicaJosé Padrón
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICAJOSEPHBADRA3
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeAndreina Arteaga
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeAndreina Arteaga
 
Clase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdfClase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdfNekoRojas3
 
Sesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfSesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfCARLOSVALBUENA36
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaManuelStreck
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaManuelStreck
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaManuelStreck
 

Similar a Programación Dinámica - Resolución de Problemas (20)

Presentación de investigación de operaciones II
Presentación de investigación de operaciones IIPresentación de investigación de operaciones II
Presentación de investigación de operaciones II
 
Presentación: Programación Dinámica
Presentación: Programación DinámicaPresentación: Programación Dinámica
Presentación: Programación Dinámica
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
 
0208
02080208
0208
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Programación dinámica
Programación  dinámicaProgramación  dinámica
Programación dinámica
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICA
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrange
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrange
 
Clase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdfClase 7 IO Programación Dinamica_MÓNICA.pdf
Clase 7 IO Programación Dinamica_MÓNICA.pdf
 
Sesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdfSesion6_IdaliaFlores_20abr15 (1).pdf
Sesion6_IdaliaFlores_20abr15 (1).pdf
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
 
Baixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamicaBaixardoc.com unidad-1-programacion-dinamica
Baixardoc.com unidad-1-programacion-dinamica
 
Optimizacion
OptimizacionOptimizacion
Optimizacion
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
 

Último

4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
Salvando mi mundo , mi comunidad , y mi entorno
Salvando mi mundo , mi comunidad  , y mi entornoSalvando mi mundo , mi comunidad  , y mi entorno
Salvando mi mundo , mi comunidad , y mi entornoday561sol
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Gonella
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 

Último (20)

4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
Salvando mi mundo , mi comunidad , y mi entorno
Salvando mi mundo , mi comunidad  , y mi entornoSalvando mi mundo , mi comunidad  , y mi entorno
Salvando mi mundo , mi comunidad , y mi entorno
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 

Programación Dinámica - Resolución de Problemas

  • 1. FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS – UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO December 18, 2012 Autor: Walter Toledo 30022/09 PI Programación Dinámica Investigación Operativa
  • 2. 1 Índice Reseña Histórica…………………………………………………………………………………………………………. 2 La Programación Dinámica. ……………………………………………………………………………….………. 3 ¿Cuando Aplicar?………………………………………………………………………………………………………… 3 Principio de Optimalidad de la Programación Dinámica o de Bellman………………….….… 4 Procesos de Decisión de “n” Etapas. ……………………………………………………………………….… 5 Relación Recursiva (hacia atrás)………………………………………………………………….……………… 5 DP hacia atrás (backward DP)…………………………………………………………………………………..… 7 DP hacia adelante (forward DP)…………………………………………………………………………….….… 8 Programación Dinámica en contraste con la Programación Lineal………………………….…. 9 Ejemplos:  Problema del viajero o de la diligencia…………………………………………………………… 11  Problema de la Mochila……………………………………………………..…………………………… 12  Programación de Producción e Inventarios………….…………………………….…………… 12 Modelo Matemático. …………………………………………………………………………………………….….. 13 La Formulación con Programación Dinámica. …………………………………………………….……… 13 Resolución de un Problema de Programación Dinámica. …………………………………………… 14 Tipos de programación dinámica:  Programación dinámica homogénea y no homogénea.………………………….………. 15  Programación dinámica determinista y aleatoria……………………………………………. 15 Conclusión…………………………………………………………………………………………………….……………. 16 Bibliografía…………………………………………………………………………………………………….…………... 17
  • 3. 2 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. Rápidamente se hizo evidente que las mismas técnicas utilizadas en el ámbito militar podían servir en otras áreas de aplicación. En los años posteriores a la Guerra se abrieron nuevos temas de investigación y se plantearon nuevos problemas, que fueron abordados desde una perspectiva matemática. Entre estos nuevos temas se encontraba la teoría de los Procesos de Decisión en Múltiples Pasos, que Richard Bellman (1920 - 1984) abordó alrededor de 1952, y para los cuales fue pensada originalmente la Programación Dinámica. Después de desarrollar el método en el área específica de los problemas de decisión discretos, Bellman y sus colaboradores se dedicaron a la ardua tarea de formular diferentes problemas en los términos de la Programación Dinámica. Como resultado de esta labor, encontraron que las ideas centrales del método, en particular, el Principio de Optimalidad, podían ser aplicadas satisfactoriamente en muchos de los problemas abordados. Descubrieron también las limitaciones de esta técnica y hallaron modos de sobreponerse a ellas, para algunos problemas puntuales. La Programación Dinámica es, hoy en día, un recurso imprescindible de Matemática Aplicada y, también, una importante herramienta teórica.
  • 4. 3 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. El procedimiento general de resolución de estas situaciones se divide en el análisis recursivo de cada una de las etapas del problema, en orden inverso, es decir comenzando por la última y pasando en cada iteración a la etapa anterior. ¿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.  En el diseño Divide y Vencerás se basa en resolver un problema dividiendo en subproblemas independientes, los cuales se resolvían de manera recursiva para combinar finalmente las soluciones y así resolver el problema original.  La Programación Dinámica consiste en resolver los subproblemas una sola vez, guardando sus soluciones en una tabla para su futura utilización. La Programación Dinámica en la resolución de problemas de optimización se realiza mediante la obtención de un valor óptimo que puede ser máximo o mínimo dependiendo el caso particular al que se aborde. La solución de problemas mediante esta técnica se basa en el llamado principio óptimo enunciado por Bellman en 1957 y que dice: “En una secuencia de decisiones óptima toda subsecuencia ha de ser también óptima”.
  • 5. 4 El algoritmo de Programación Dinámica esta compuesto por los siguientes pasos: 1. Planteamiento de la solución como una sucesión de decisiones y verificación de que ésta cumple el principio de óptimo. 2. Definición recursiva de la solución. 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. Construcción de la solución óptima haciendo uso de la información contenida en la tabla anterior. 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.
  • 6. 5 Procesos de Decisión de “n” Etapas. Un proceso de decisión de “n” etapas es el que puede descomponerse en cierto número de pasos. Cualquiera sea la forma de completar una etapa, se llama decisión y la secuencia de decisiones a lo largo de las etapas, se denomina política. En la resolución de un problema se busca la “política óptima” que optimice el problema. 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. Relación Recursiva (hacia atrás) Define la política óptima en la etapa k, conocida la política óptima en cualquier estado de la etapa k + 1.
  • 7. 6 I. Xk estado actual en la etapa k. II. uk variable de decisión 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. V. C xk,uk. valor inmediato de tomar la decisión uk desde el estado Xk 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) Ejemplo: problema del viajero El viajero desea ir de la ciudad A a la J por el camino más corto.
  • 8. 7 DP hacia atrás (backward DP) Empezamos por la etapa k = 4 Para la etapa k = 3 Para la etapa k = 2 Finalmente en la etapa k = 1 Ruta óptima: A C E H J 4+3+1+3=11 D E H J 3+4+1+3=11 D F I J 3+1+3+4=11
  • 9. 8 DP hacia adelante (forward DP) Para la etapa k = 2 Para k = 3 Para k = 4 Finalmente para la etapa k = 5 Ruta óptima: J H E C A 3+1+3+4=11 J H E D A 3+1+4+3=11 J I F D A 4+3+1+3=11
  • 10. 9 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. La programación dinámica es una manera de analizar procesos de decisión en un programa de optimización. Esta técnica de análisis se basa en principio de Optimalidad de Richard Bellman que establece: “Una política óptima tiene la propiedad de que cualquiera que sea el estado inicial y la primera decisión, las decisiones restantes constituyen una política óptima en relación a los efectos resultantes de la primera decisión”. 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. La naturaleza del razonamiento que se debe realizar en programación dinámica es muy diferente al de la programación lineal. En programación lineal, intenta describir una determinada situación en términos de un modelo matemático determinado; una vez conocida la naturaleza de las variables de decisión, y expresadas la función objetivo y las restricciones en función de esas variables, la resolución del modelo puede confiarse, sin mayores problemas, a un programa informático. La programación dinámica no admite una resolución sistemática de este tipo; más que un modelo concreto, es una estrategia de resolución común a muchas situaciones en principio diferentes entre sí. 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  Problema del viajero o de la diligencia. Un Ingeniero Forestal, requiere saber: i) Cuál es el costo mínimo.
  • 11. 10 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: Para ir de 1 a 13 hay 48 rutas posibles. Una posibilidad para encontrar la solución es calcular el valor asociado a cada una y ver cual es la que proporciona el menor costo. ¿Y si fuesen miles de rutas? Por se descarta esa alternativa y se usa el método de la programación Dinámica, donde se resuelve desde el final hacia el inicio, y hay etapas y estados. Etapas: Son 4 etapas en este caso:  La etapa 1 es decidir ir del estado inicial 1 al estado 2, 3, 4 o 5 que son los puntos posibles en el sector siguiente.  La etapa 2 es decidir ir a 6, 7 u 8.  La etapa 3 es decidir ir a 9, 10, 11 o 12.  La etapa 4 es decidir a 13.
  • 12. 11 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 La solución óptima es: X1 = 3; X2 = 8; X3= 9; X4= 13.
  • 13. 12 La ruta óptima es: 1 3 8 9 13 Respuesta al problema planteado: 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.  Programación de Producción e Inventarios El problema consiste en determinar un programa de producción para un periodo de tiempo con el fin de minimizar los costos totales. Hay demandas conocidas para cada periodo, límites de capacidad tanto para la producción como para los inventarios (almacenamiento). Cuando hay más producción que demanda, se acumula inventario, y
  • 14. 13 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. Genéricamente un modelo matemático que representa un tipo importante de procesos de decisión de etapas se expresa como: Opt Z = f1(x1)+ f2(x2)+……+ fn(xn) Sujeta a las siguientes restricciones: x1+x2+x3+…………+xn ≤ b ; xn con n = 1, 2, 3, ..... (Enésima decisión) son las variables de decisión que representan el destino inmediato de la etapa “n”. 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. La Formulación con Programación Dinámica Ahora bien, al comenzar la asignación, es decir, en el momento de decidir el valor x1, estamos limitados por las restricciones 0 ≤ x1 ≤ P. Una vez dado x1 el monto total con el que contamos habrá disminuido a P − x1, por lo que las restricciones para la determinación de x2 serán 0 ≤ x2 ≤ (P − x2). Siguiendo este razonamiento, cuando se hayan determinado los valores x1, x2, x3,….., xk, las restricciones de la asignación correspondiente a la actividad k + 1 serán: 0 ≤ xk+1 ≤ P − (x1+x2+x3+….+xk). 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.
  • 15. 14 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: o P es la cantidad de dinero con la que contamos. o Las actividades están numeradas desde 1, 2,…., N a las cuales le corresponde una función de ganancias g1, g2,…, gN. o Si Xi es la cantidad de pesos que se asigna a la actividad i, gi(xi) será la ganancia proporcionada por esta actividad. Resolución de un Problema de Programación Dinámica Para resolver un problema de programación dinámica debemos al menos contemplar:  Cada etapa debe tener asociado una o mas decisiones (problema de optimización), cuya dependencia de las decisiones anteriores esta dada exclusivamente por las variables de estado.  Cada estado debe contener toda la información relevante para la toma de decisión asociada al periodo.  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. Descripción de ecuaciones de recurrencia: Nos deben indicar como se acumula la función de beneficios a optimizar (función objetivo) y como varían las funciones de estado de una etapa a otra. Resolución, debemos optimizar cada subproblema por etapas en función de los resultados de la resolución del subproblema siguiente. Notar que las para que las recurrencias estén bien definidas requerimos de condiciones de borde.
  • 16. 15 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. a) Programación dinámica homogénea y no homogénea Diremos que un modelo de programación dinámica es homogéneo si presenta la misma estructura para todas las etapas del sistema. Más concretamente:  El sistema puede presentar los mismos estados en cualquiera de sus etapas.  Los valores posibles de las variables de decisión para cada uno de los estados son las mismas para todas las etapas del sistema.  La función a optimizar es la misma para todas las etapas del sistema.  La evolución del sistema, para un determinado estado y para un determinado valor de la variable de decisión de los disponibles para dicho estado, es la misma para todas las etapas del sistema. Una consecuencia de esta definición es que un modelo de programación dinámica homogénea puede evolucionar indefinidamente en el tiempo, esto es, el número posible de etapas es infinito. Entonces podemos plantearnos analizar su evolución para un número infinito de etapas o para un número finito de éstas. Cuando el modelo no cumple alguna de estas condiciones, tenemos programación dinámica no homogénea. Todos aquellos modelos que tengan un número finito de etapas posibles entrarán dentro de esta categoría. También puede suceder que el número de etapas sea infinito, aunque los problemas de programación dinámica no homogénea suelen ser de horizonte finito. b) Programación dinámica determinista y aleatoria 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.
  • 17. 16 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í. Conviene resaltar que a diferencia de la programación lineal, el modelado de problemas de programación dinámica no tiene una forma estándar. Así, para cada problema es necesario especificar cada uno de los componentes que caracterizan un problema de programación dinámica. Sin embargo un aspecto realmente destacable es la posibilidad de amplio campo de aplicación que posee la programación dinámica, que desde un turista queriendo viajar o la posibilidad de combinar objetos de una mochila para ahorrar espacio o también la planificación de programación de producción e inventarios y sin olvidarse de la gran importancia que posee la “Programación Dinámica” en la informática.
  • 18. 17 Bibliografía  Manuel Maurette e Ignacio Ojea, Programación Dinámica, Junio de 2006.  Bohorquez Jaime y Cardozo Rodrigo, Programación Dinámica, Análisis de Algoritmo 1992.  Ramos, Andres, Programación dinámica (DP), Universidad Pontificia Comillas.  Profesor: Julio Cesar López, Programación Dinámica, Universidad del Valle, 8 de Noviembre del 2008.  Goic F. Marcel, Programación Dinámica, Universidad de Chile, Facultad de Ciencias Físicas y Matemáticas, Departamento de Ingeniería Industrial.  José Pedro García Sabater y Julien Maheut, Modelos y Métodos de Investigación de Operaciones. Procedimientos para Pensar, Grupo de Investigación ROGLE, Departamento de Organización de Empresas, Curso 2011 / 2012.  Juan Prawda Witenberg, Metodos y Modelos de Investigacion Operativa, Editorial Limusa, 1976. Webgrafia  http://investigacionoperativa.es.tl/Programacion-Dinamica.htm  http://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.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/