SlideShare una empresa de Scribd logo
1 de 15
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR
PARA LA EDUCACIÓN UNIVERSITARIA
INSTITURO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
EXTENSIÓN BARCELONA-ANZOATEGUI
Barcelona, julio 2020
Autor: Jesús Plaza C.I 28.101.398
PROGRAMACIÓN DINÁMICA.
INTRODUCCIÓN
La Programación Dinámica es un método de optimización de extraordinaria versatilidad. Si bien fue desarrollada
especialmente para la resolución de problemas en Procesos de Decisión en Múltiples Pasos, diferentes
investigaciones han mostrado que las mismas ideas pueden utilizarse en otro tipo de problemas de matemática
aplicada, e incluso pueden ser útiles en el planteo de algunas cuestiones teóricas. Habiendo surgido en los inicios
de la época de las computadoras, la Programación Dinámica fue, además, concebida con un ojo puesto en esta
potente herramienta.
PROGRAMACIÓN
DINÁMICA.
la programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de
subproblemas superpuestos y subestructuras óptimas, como se describe a continuación.
El matemático Richard Bellman inventó la programación dinámica en 1953.
Etapa: es la parte del problema que posee un conjunto de alternativas mutuamente excluyentes, de las cuales se seleccionará
la mejor alternativa.
Estado: es el que refleja la condición o estado de las restricciones que enlazan las etapas. Representa la “liga” entre etapas
de tal manera que cuando cada etapa se optimiza por separado la decisión resultante es automáticamente factible para el
problema completo.
ESQUEMA DE UNA ETAPA
FORMULACIÓN Y SOLUCIÓN DE PROBLEMAS
La programación dinámica no cuenta con una formulación matemática estándar, sino que se trata de un enfoque de
tipo general para la solución de problemas, y las ecuaciones específicas que se usan se deben desarrollar para que representen
cada situación individual.
Comúnmente resuelve el problema por etapas, en donde cada etapa interviene exactamente una variable de optimización (u
optimizadora)
La teoría unificadora fundamental de la programación dinámica es el Principio de Optimalidad, que nos indica básicamente
como se puede resolver un problema adecuadamente descompuesto en etapas utilizando cálculos recursivos
“Una política óptima tiene la propiedad de que, independientemente de las decisiones tomadas para llegar a un estado
particular, en una etapa particular, las decisiones restantes deben constituir una política óptima para abandonar ese estado”,
PARA RESOLVER PROBLEMAS DE PROGRAMACIÓN DINÁMICA SE NECESITA:
• Un grado de creatividad
• Un buen conocimiento de la estructura general de los problemas de programación dinámica para reconocer
cuando un problema se puede resolver por medio de estos procedimientos y como esto se puede llevar a
cabo.
CARACTERÍSTICAS DE LOS PROBLEMAS DE PROGRAMACIÓN DINÁMICA
• El problema se puede dividir en etapas que requieren una política de decisión en cada una.
• Cada etapa tiene cierto número de estados asociados a ella
• 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.
• El procedimiento de solución esta diseñado para encontrar una política óptima para el problema completo.
CARACTERÍSTICAS DE LOS PROBLEMAS DE
PROGRAMACIÓN DINÁMICA
• Dado un estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en las
etapas anteriores (principio de optimalidad)
• El procedimiento de solución se inicia al encontrar la política optima para la ultima etapa.
• Se dispone de una relación recursiva que identifica la política optima par la etapa n dada la política optima para la
etapa (n+1)
RECURSIVIDAD
Existen dos formas de plantear la fórmula de recursividad en los problemas de programación dinámica:
Recursividad de Retroceso: el problema se resuelva partiendo de la última etapa hacia la primera.
Recursividad de Avance: el problema se resuelve partiendo de la primera etapa hacia la última
RECURSIVIDAD
Las formulaciones de avance y retroceso son en realidad equivalentes en términos de cálculo. Sin embargo, hay
situaciones donde habría alguna diferencia, en la eficiencia del cálculo, según la formulación que se utilice. Esto sucede
en particular en problemas donde intervine la toma de decisiones conforme transcurre el tiempo. En esto caso las etapas
se designan con base en el estricto orden cronológico de los periodos que ellas representan y la eficiencia de los cálculos
dependerá de si se utiliza formulación de avance o retroceso.
EL PROBLEMA DE LA
DILIGENCIA
Un caza fortunas de Missouri decide irse al oeste a unirse a la fiebre del oro en California . Tiene que hacer el viaje en
diligencia a través de territorios sin ley donde existían serios peligros de ser atacados por merodeadores. Aún cuando su
punto de partida y destino eran fijos, tenia muchas opciones en cuanto a que estados debía elegir como puntos intermedios.
Se desea estimar la ruta mas segura , como el costo de la póliza para cualquier jornada de la diligencia esta basada en una
evaluación de seguridad del recorrido, la ruta mas segura debe ser aquella que tenga el costo total mas barato.
¿Cuál es la ruta que minimiza el costo total de la póliza?
SISTEMA DE CAMINOS Y LOS COSTOS
DEL PROBLEMA
SOLUCIÓN
• Los cálculos se realizan en etapas dividiendo el problema en subproblemas.
• Después, se considera por separado cada subproblema con el fin de reducir el número de operaciones de
cálculo.
• Se comienza con una pequeña porción del problema original y se encuentra la solución optima.
• Luego, se agranda gradualmente el problema y se encuentra la solución óptima actual a partir de la que le
precede , hasta resolver el problema original completo.
• En cada problema aumentado se puede encontrar la solución óptima tomando en cuenta los resultados
obtenidos en la interacción anterior
Arboles Binarios de Búsqueda Óptimos
Si no vamos a modificar un árbol de búsqueda, y sabemos exactamente con qué frecuencia cada artículo será
accesible, podemos construir un árbol binario de búsqueda óptimo, que es un árbol de búsqueda donde el coste
medio de buscar un artículo (el esperado coste de búsqueda) se reduce al mínimo.
Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar considerablemente
las búsquedas en promedio.
Nosotros vamos a abordar la solución al mismo tanto mediante programación dinámica como con bottom_up.
El Problema del Vendedor Viajero.
Dado un conjunto finito de ciudades, y costos de viaje entre todos los pares de ciudades, encontrar la forma mas barata de
visitar todas las ciudades exactamente una vez, y volver al punto de partida.
Los costos son simétricos en el sentido de que viajar desde la ciudad X a la ciudad Y tiene el mismo costo que viajar desde
la ciudad Y a la ciudad X. La condición de visitar todas las ciudades implica que el problema se reduce a decidir en que
orden las ciudades van a ser visitadas.
El TSP puede ser modelado como un grafo ponderado no dirigido, de manera que las ciudades sean los vértices del grafo, los
caminos son las aristas y las distancias de los caminos son los pesos de las aristas. Esto es un problema de minimización que
comienza y termina en un vértice específico y se visita el resto de los vértices exactamente una vez. Con frecuencia, el
modelo es un grafo completo (cada par de vértices es conectado por una arista). Si no existe camino entre un par de ciudades,
se añade arbitrariamente una arista larga para completar el grafo sin afectar el recorrido óptimo.
CONCLUSIÓN
Un problema de optimización que se pueda dividir en etapas y que sea dinámico en el tiempo puede
resolverse por programación dinámica.
Las soluciones se pueden ver de manera parcial.Si es posible se validan los resultados usando otros
métodos de solución como programación lineal, no lineal, entera o teoría de redes.
BIBLIOGRAFÍA
Bertsekas,D.P., "Dynamic Programming; Deterministic and Stochastic Models"Academic Press, 1987.
Dreyfus S.E. y Law A.M., "The Art and Theory of Dynamic Programming", Academic Press, 1977.
Hiller, F. S. “Introducción a la Investigación de Operaciones”. 2008
Taha, H. A. “Investigación de Operaciones”. 2005

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Presentacion programacion dinamica
Presentacion programacion dinamicaPresentacion programacion dinamica
Presentacion programacion dinamica
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Presentación: Programación Dinámica
Presentación: Programación DinámicaPresentación: Programación Dinámica
Presentación: Programación Dinámica
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
 
Dynamic programming 01
Dynamic programming 01Dynamic programming 01
Dynamic programming 01
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
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
 
0208
02080208
0208
 
Programacion
ProgramacionProgramacion
Programacion
 
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
 
Optimizacion
OptimizacionOptimizacion
Optimizacion
 
Programacion lineal trabajo final-
Programacion lineal  trabajo final-Programacion lineal  trabajo final-
Programacion lineal trabajo final-
 
Optimización
OptimizaciónOptimización
Optimización
 

Similar a Programacion dinamica jesus plaza

Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion DinamicaLuisCabanerio
 
Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación DinamicaRafael Brito
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamicaJosé Padrón
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionalesguestc2dbad8
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionalesguestc2dbad8
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeDanny Quintero
 
323012985 investigacion-operativa-final
323012985 investigacion-operativa-final323012985 investigacion-operativa-final
323012985 investigacion-operativa-finalsaidharimsuarezlondo
 
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059OscarGuarimata
 
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
 
Método Kuhn Tucker y Lagrange
Método Kuhn Tucker y LagrangeMétodo Kuhn Tucker y Lagrange
Método Kuhn Tucker y Lagrangegilfrennys9208
 
Kuhn Tucker y Lagrange
Kuhn Tucker y LagrangeKuhn Tucker y Lagrange
Kuhn Tucker y LagrangeRenier007
 
Introducción a la optimización heurística en ingeniería
Introducción a la optimización heurística en ingenieríaIntroducción a la optimización heurística en ingeniería
Introducción a la optimización heurística en ingeniería► Victor Yepes
 

Similar a Programacion dinamica jesus plaza (20)

Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
 
Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación Dinamica
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Informe proyecto final
Informe proyecto finalInforme proyecto final
Informe proyecto final
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Wilfred Guillen
Wilfred GuillenWilfred Guillen
Wilfred Guillen
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Condiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrangeCondiciones kuhn tucker y lagrange
Condiciones kuhn tucker y lagrange
 
323012985 investigacion-operativa-final
323012985 investigacion-operativa-final323012985 investigacion-operativa-final
323012985 investigacion-operativa-final
 
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
 
Programacionnolineal
Programacionnolineal Programacionnolineal
Programacionnolineal
 
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
 
Método Kuhn Tucker y Lagrange
Método Kuhn Tucker y LagrangeMétodo Kuhn Tucker y Lagrange
Método Kuhn Tucker y Lagrange
 
Kuhn Tucker y Lagrange
Kuhn Tucker y LagrangeKuhn Tucker y Lagrange
Kuhn Tucker y Lagrange
 
Introducción a la optimización heurística en ingeniería
Introducción a la optimización heurística en ingenieríaIntroducción a la optimización heurística en ingeniería
Introducción a la optimización heurística en ingeniería
 

Programacion dinamica jesus plaza

  • 1. REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSITARIA INSTITURO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN BARCELONA-ANZOATEGUI Barcelona, julio 2020 Autor: Jesús Plaza C.I 28.101.398 PROGRAMACIÓN DINÁMICA.
  • 2. INTRODUCCIÓN La Programación Dinámica es un método de optimización de extraordinaria versatilidad. Si bien fue desarrollada especialmente para la resolución de problemas en Procesos de Decisión en Múltiples Pasos, diferentes investigaciones han mostrado que las mismas ideas pueden utilizarse en otro tipo de problemas de matemática aplicada, e incluso pueden ser útiles en el planteo de algunas cuestiones teóricas. Habiendo surgido en los inicios de la época de las computadoras, la Programación Dinámica fue, además, concebida con un ojo puesto en esta potente herramienta.
  • 3. PROGRAMACIÓN DINÁMICA. la programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas, como se describe a continuación. El matemático Richard Bellman inventó la programación dinámica en 1953. Etapa: es la parte del problema que posee un conjunto de alternativas mutuamente excluyentes, de las cuales se seleccionará la mejor alternativa. Estado: es el que refleja la condición o estado de las restricciones que enlazan las etapas. Representa la “liga” entre etapas de tal manera que cuando cada etapa se optimiza por separado la decisión resultante es automáticamente factible para el problema completo.
  • 5. FORMULACIÓN Y SOLUCIÓN DE PROBLEMAS La programación dinámica no cuenta con una formulación matemática estándar, sino que se trata de un enfoque de tipo general para la solución de problemas, y las ecuaciones específicas que se usan se deben desarrollar para que representen cada situación individual. Comúnmente resuelve el problema por etapas, en donde cada etapa interviene exactamente una variable de optimización (u optimizadora) La teoría unificadora fundamental de la programación dinámica es el Principio de Optimalidad, que nos indica básicamente como se puede resolver un problema adecuadamente descompuesto en etapas utilizando cálculos recursivos “Una política óptima tiene la propiedad de que, independientemente de las decisiones tomadas para llegar a un estado particular, en una etapa particular, las decisiones restantes deben constituir una política óptima para abandonar ese estado”,
  • 6. PARA RESOLVER PROBLEMAS DE PROGRAMACIÓN DINÁMICA SE NECESITA: • Un grado de creatividad • Un buen conocimiento de la estructura general de los problemas de programación dinámica para reconocer cuando un problema se puede resolver por medio de estos procedimientos y como esto se puede llevar a cabo. CARACTERÍSTICAS DE LOS PROBLEMAS DE PROGRAMACIÓN DINÁMICA • El problema se puede dividir en etapas que requieren una política de decisión en cada una. • Cada etapa tiene cierto número de estados asociados a ella • 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. • El procedimiento de solución esta diseñado para encontrar una política óptima para el problema completo.
  • 7. CARACTERÍSTICAS DE LOS PROBLEMAS DE PROGRAMACIÓN DINÁMICA • Dado un estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en las etapas anteriores (principio de optimalidad) • El procedimiento de solución se inicia al encontrar la política optima para la ultima etapa. • Se dispone de una relación recursiva que identifica la política optima par la etapa n dada la política optima para la etapa (n+1)
  • 8. RECURSIVIDAD Existen dos formas de plantear la fórmula de recursividad en los problemas de programación dinámica: Recursividad de Retroceso: el problema se resuelva partiendo de la última etapa hacia la primera. Recursividad de Avance: el problema se resuelve partiendo de la primera etapa hacia la última RECURSIVIDAD Las formulaciones de avance y retroceso son en realidad equivalentes en términos de cálculo. Sin embargo, hay situaciones donde habría alguna diferencia, en la eficiencia del cálculo, según la formulación que se utilice. Esto sucede en particular en problemas donde intervine la toma de decisiones conforme transcurre el tiempo. En esto caso las etapas se designan con base en el estricto orden cronológico de los periodos que ellas representan y la eficiencia de los cálculos dependerá de si se utiliza formulación de avance o retroceso.
  • 9. EL PROBLEMA DE LA DILIGENCIA Un caza fortunas de Missouri decide irse al oeste a unirse a la fiebre del oro en California . Tiene que hacer el viaje en diligencia a través de territorios sin ley donde existían serios peligros de ser atacados por merodeadores. Aún cuando su punto de partida y destino eran fijos, tenia muchas opciones en cuanto a que estados debía elegir como puntos intermedios. Se desea estimar la ruta mas segura , como el costo de la póliza para cualquier jornada de la diligencia esta basada en una evaluación de seguridad del recorrido, la ruta mas segura debe ser aquella que tenga el costo total mas barato. ¿Cuál es la ruta que minimiza el costo total de la póliza?
  • 10. SISTEMA DE CAMINOS Y LOS COSTOS DEL PROBLEMA
  • 11. SOLUCIÓN • Los cálculos se realizan en etapas dividiendo el problema en subproblemas. • Después, se considera por separado cada subproblema con el fin de reducir el número de operaciones de cálculo. • Se comienza con una pequeña porción del problema original y se encuentra la solución optima. • Luego, se agranda gradualmente el problema y se encuentra la solución óptima actual a partir de la que le precede , hasta resolver el problema original completo. • En cada problema aumentado se puede encontrar la solución óptima tomando en cuenta los resultados obtenidos en la interacción anterior
  • 12. Arboles Binarios de Búsqueda Óptimos Si no vamos a modificar un árbol de búsqueda, y sabemos exactamente con qué frecuencia cada artículo será accesible, podemos construir un árbol binario de búsqueda óptimo, que es un árbol de búsqueda donde el coste medio de buscar un artículo (el esperado coste de búsqueda) se reduce al mínimo. Incluso si sólo tenemos estimaciones de los costos de búsqueda, este sistema puede acelerar considerablemente las búsquedas en promedio. Nosotros vamos a abordar la solución al mismo tanto mediante programación dinámica como con bottom_up.
  • 13. El Problema del Vendedor Viajero. Dado un conjunto finito de ciudades, y costos de viaje entre todos los pares de ciudades, encontrar la forma mas barata de visitar todas las ciudades exactamente una vez, y volver al punto de partida. Los costos son simétricos en el sentido de que viajar desde la ciudad X a la ciudad Y tiene el mismo costo que viajar desde la ciudad Y a la ciudad X. La condición de visitar todas las ciudades implica que el problema se reduce a decidir en que orden las ciudades van a ser visitadas. El TSP puede ser modelado como un grafo ponderado no dirigido, de manera que las ciudades sean los vértices del grafo, los caminos son las aristas y las distancias de los caminos son los pesos de las aristas. Esto es un problema de minimización que comienza y termina en un vértice específico y se visita el resto de los vértices exactamente una vez. Con frecuencia, el modelo es un grafo completo (cada par de vértices es conectado por una arista). Si no existe camino entre un par de ciudades, se añade arbitrariamente una arista larga para completar el grafo sin afectar el recorrido óptimo.
  • 14. CONCLUSIÓN Un problema de optimización que se pueda dividir en etapas y que sea dinámico en el tiempo puede resolverse por programación dinámica. Las soluciones se pueden ver de manera parcial.Si es posible se validan los resultados usando otros métodos de solución como programación lineal, no lineal, entera o teoría de redes.
  • 15. BIBLIOGRAFÍA Bertsekas,D.P., "Dynamic Programming; Deterministic and Stochastic Models"Academic Press, 1987. Dreyfus S.E. y Law A.M., "The Art and Theory of Dynamic Programming", Academic Press, 1977. Hiller, F. S. “Introducción a la Investigación de Operaciones”. 2008 Taha, H. A. “Investigación de Operaciones”. 2005