SlideShare una empresa de Scribd logo
8
Lo más leído
10
Lo más leído
PROGRAMACION DINAMICA
Génesis Petrocelli 24.218.900
 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. La Ecuación Funcional que se obtiene, para cada problema, a través
del uso del Principio de Optimalidad de Bellman permite, con mayor o menor
esfuerzo dependiendo del caso, establecer una recurrencia que es, en sí misma, un
algoritmo que resuelve el problema en cuestión.
 El objetivo de esta presentacion es brindar informacion sobre la programacion
dinamica y sus diferentes temas. Persiguiendo este n, procuramos, en la medida en
que el espacio lo permitió, exponer todos los pasos de cada razonamiento y los
elementos teóricos básicos para su comprensión.
INTRODUCCION
 En informática,
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 subestructur
as óptimas, como se
describe a continuación.
 El matemático Richard
Bellman inventó
la programación
dinámica en 1953 que se
utiliza para optimizar
problemas complejos que
pueden ser discretizados y
secuencializados.
PROGRAMACION DINAMICA
ETAPAS:
Se pueden definir como cada uno
de los pasos que se deben seguir
para llegar al objetivo. Las
representamos por líneas
discontinuas.
ESTADOS:
Son las diversas condiciones
posibles en la que
el sistema podría estar en esa
etapa del problema. Se
representan por círculos
ESQUEMA DE UNA ETAPA
 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”
FORMULACIÓN Y SOLUCIÓN DE
PROBLEMAS
 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.
PARA RESOLVER PROBLEMAS DE
PROGRAMACIÓN DINÁMICA SE
NECESITA:
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.
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
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 ?
EJEMPLO PROTOTIPO (EL
PROBLEMA DE LA DILIGENCIA)
SISTEMA DE CAMINOS Y LOS COSTOS
DEL PROBLEMA DE LA DILIGENCIA
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.
SOLUCIÓN
Para este caso se empleará el desarrollo del problema
con un recorrido hacia atrás. Cuando el cazafortunas
tiene una sola etapa por recorrer (n=4), su ruta de ahí
en adelante esta perfectamente determinada por su
estado actual (ya sea H o I) y su destino final, x4 = J , de
manera que la ruta para esta ultima jornada en
diligencias es s J La solución al problema es:
 f * 4 (H) = 3 f * 4 (I) = 4
PROCEDIMIENTO DE SOLUCIÓN
PROCEDIMIENTO DE SOLUCIÓN
Se trabaja de manera similar con los otros dos estados
posibles s=E y s=G, cuando quedan dos jornadas por
viajar,los resultados son:
 f * 3 (E) = 4
 f * 3 (F) = 7
 f * 3 (G) = 6
PROCEDIMIENTO DE SOLUCIÓN
 Un árbol binario no es más que una estructura de datos cuyos nodos
pueden tener un hijo a la izquierda o a la derecha ( no más de 2). Por lo
tanto un árbol binario de búsqueda no es más que un tipo de árbol binario
cuya estructura de árbol se representa en informática.
Arboles Binarios de Búsqueda
Óptimos
Estos árboles pueden realizar operaciones de:
Búsqueda : La búsqueda en un árbol binario de búsqueda consiste en acceder a la raíz del árbol, si el
elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se
busca en el subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no
ha sido encontrado es que no existe en el árbol. Estas búsquedas son bastantes eficientes teniendo un
máximo de comparaciones en el rango de [log2(N+1)] y N
Insertado: La inserción es similar a la búsqueda y se puede dar una solución tanto iterativa como
recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único
contenido el elemento a insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz
del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol
derecho.
Borrado: esta operación es más compleja y hay que tener en cuenta a borrar un nodo hija o padre el
impacto que tendrá en la estructura del mismo.
 R. Bellman, «On the Theory of Dynamic
Programming», Proceedings of the National Academy
of Sciences 38(8):716-719, 1952
 L.L. Cooper, M.W. Cooper, Introduction to dynamic
programming, Pergamon Press, Elmsford NY, 1981
 C. Cotta, Programación dinámica. Introducción y
ejercicios resueltos, UMA Editorial, Málaga, 2018
 G.L. Nemhauser, Introduction to dynamic
programming, Wiley & Sons, New York NY, 1967.
BIBLIOGRAFIA

Más contenido relacionado

DOC
2 precio dual y costo reducido (1)
PPTX
Presentacion programacion dinamica
PPTX
Inventario probabilistico
PPT
Problema del Transporte
PPT
Graficas de control por atributo
PPTX
Modelo de redes
DOCX
5.4 flujo maximo
PPTX
Programación Dinámica
2 precio dual y costo reducido (1)
Presentacion programacion dinamica
Inventario probabilistico
Problema del Transporte
Graficas de control por atributo
Modelo de redes
5.4 flujo maximo
Programación Dinámica

La actualidad más candente (20)

PPTX
Control cap-8
PPTX
Análisis de la capacidad de un proceso
DOCX
Beneficio de la investigación de operaciones
PPTX
Muestreo Aceptacion
PPT
Tecnica most
PDF
Practicas de-io-con-pom-qm
DOCX
5.3 árbol de expansión mínima
PPTX
Unidad 1. Metodología de la investigación de operaciones y formulación de mod...
PDF
El problema de la ruta mas corta
DOCX
Solución del modelo de transporte
PPT
Análisis de sensibilidad.
PPTX
Problemas redes
PDF
Ejercicio esquina noroeste y costo mínimo
PPTX
Casos especiales del metodo simplex
PDF
Guia 3 graficas de control 2018
PPTX
Resolución de problemas (oa)
PPT
Clase Nº5 Programacion Lineal
PDF
Solucion de ejercicios_capitulo_7_libro
PPTX
Seis sigma
PPT
Control estadistico de procesos segunda parte
Control cap-8
Análisis de la capacidad de un proceso
Beneficio de la investigación de operaciones
Muestreo Aceptacion
Tecnica most
Practicas de-io-con-pom-qm
5.3 árbol de expansión mínima
Unidad 1. Metodología de la investigación de operaciones y formulación de mod...
El problema de la ruta mas corta
Solución del modelo de transporte
Análisis de sensibilidad.
Problemas redes
Ejercicio esquina noroeste y costo mínimo
Casos especiales del metodo simplex
Guia 3 graficas de control 2018
Resolución de problemas (oa)
Clase Nº5 Programacion Lineal
Solucion de ejercicios_capitulo_7_libro
Seis sigma
Control estadistico de procesos segunda parte
Publicidad

Similar a Programacion dinamica (20)

PPTX
Pro no num Prog dinamica
PDF
PROGRAMACION DINAMICA
PPTX
Programacion dinamica jesus plaza
PPTX
Programacion Dinamica
PPTX
Programacion dinamica
DOCX
61178886 i-o-ii-principal
PPTX
Presentación: Programación Dinámica
PDF
Programacion dinamica
PPTX
Programación Dinámica
PPTX
Programacion
PPTX
Presentación de investigación de operaciones II
PDF
Programacion dinamica final
PDF
Sesion6_IdaliaFlores_20abr15 (1).pdf
PPTX
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
PPTX
Programación Dinamica
PPTX
Programación Dinámica
PPTX
Algoritmos computacionales
PPTX
Algoritmos computacionales
PPTX
Programación dinamica (ea)
PDF
6 dynamic programming
Pro no num Prog dinamica
PROGRAMACION DINAMICA
Programacion dinamica jesus plaza
Programacion Dinamica
Programacion dinamica
61178886 i-o-ii-principal
Presentación: Programación Dinámica
Programacion dinamica
Programación Dinámica
Programacion
Presentación de investigación de operaciones II
Programacion dinamica final
Sesion6_IdaliaFlores_20abr15 (1).pdf
PROGRAMACIÓN DINÁMICA Oscar guarimata 27455059
Programación Dinamica
Programación Dinámica
Algoritmos computacionales
Algoritmos computacionales
Programación dinamica (ea)
6 dynamic programming
Publicidad

Más de genesisptc_ (9)

PPTX
Diseño del software
PPTX
Sistemas de informacion
PPTX
Modelo de datos
PPTX
Base de datos
PPTX
Sistema de ecuaciones lineales
PPTX
Medidas de dispersion
PPTX
Términos Básicos en Estadística
PPTX
Límite y Continuidad de Funciones de Varias Variables
PPTX
Vectores en el espacio
Diseño del software
Sistemas de informacion
Modelo de datos
Base de datos
Sistema de ecuaciones lineales
Medidas de dispersion
Términos Básicos en Estadística
Límite y Continuidad de Funciones de Varias Variables
Vectores en el espacio

Último (20)

PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
El uso de las TIC en la vida cotidiana..
PPT
Protocolos de seguridad y mecanismos encriptación
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PPTX
modulo seguimiento 1 para iniciantes del
DOCX
Trabajo informatica joel torres 10-.....................
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
la-historia-de-la-medicina Edna Silva.pptx
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PPTX
Control de calidad en productos de frutas
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
PDF
Taller tecnológico Michelle lobo Velasquez
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
ccna: redes de nat ipv4 stharlling cande
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Curso de generación de energía mediante sistemas solares
El uso de las TIC en la vida cotidiana..
Protocolos de seguridad y mecanismos encriptación
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
Mecanismos-de-Propagacion de ondas electromagneticas
modulo seguimiento 1 para iniciantes del
Trabajo informatica joel torres 10-.....................
Diapositiva proyecto de vida, materia catedra
ccna: redes de nat ipv4 stharlling cande
TRABAJO DE TECNOLOGIA.pdf...........................
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
la-historia-de-la-medicina Edna Silva.pptx
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
Control de calidad en productos de frutas
Teoría de estadística descriptiva y aplicaciones .pdf
Taller tecnológico Michelle lobo Velasquez
Presentacion de Alba Curso Auditores Internos ISO 19011

Programacion dinamica

  • 2.  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. La Ecuación Funcional que se obtiene, para cada problema, a través del uso del Principio de Optimalidad de Bellman permite, con mayor o menor esfuerzo dependiendo del caso, establecer una recurrencia que es, en sí misma, un algoritmo que resuelve el problema en cuestión.  El objetivo de esta presentacion es brindar informacion sobre la programacion dinamica y sus diferentes temas. Persiguiendo este n, procuramos, en la medida en que el espacio lo permitió, exponer todos los pasos de cada razonamiento y los elementos teóricos básicos para su comprensión. INTRODUCCION
  • 3.  En informática, 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 subestructur as óptimas, como se describe a continuación.  El matemático Richard Bellman inventó la programación dinámica en 1953 que se utiliza para optimizar problemas complejos que pueden ser discretizados y secuencializados. PROGRAMACION DINAMICA ETAPAS: Se pueden definir como cada uno de los pasos que se deben seguir para llegar al objetivo. Las representamos por líneas discontinuas. ESTADOS: Son las diversas condiciones posibles en la que el sistema podría estar en esa etapa del problema. Se representan por círculos
  • 5.  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” FORMULACIÓN Y SOLUCIÓN DE PROBLEMAS
  • 6.  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. PARA RESOLVER PROBLEMAS DE PROGRAMACIÓN DINÁMICA SE NECESITA:
  • 7. 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.
  • 8. 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
  • 9. 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 ? EJEMPLO PROTOTIPO (EL PROBLEMA DE LA DILIGENCIA)
  • 10. SISTEMA DE CAMINOS Y LOS COSTOS DEL PROBLEMA DE LA DILIGENCIA
  • 11. 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. SOLUCIÓN
  • 12. Para este caso se empleará el desarrollo del problema con un recorrido hacia atrás. Cuando el cazafortunas tiene una sola etapa por recorrer (n=4), su ruta de ahí en adelante esta perfectamente determinada por su estado actual (ya sea H o I) y su destino final, x4 = J , de manera que la ruta para esta ultima jornada en diligencias es s J La solución al problema es:  f * 4 (H) = 3 f * 4 (I) = 4 PROCEDIMIENTO DE SOLUCIÓN
  • 14. Se trabaja de manera similar con los otros dos estados posibles s=E y s=G, cuando quedan dos jornadas por viajar,los resultados son:  f * 3 (E) = 4  f * 3 (F) = 7  f * 3 (G) = 6 PROCEDIMIENTO DE SOLUCIÓN
  • 15.  Un árbol binario no es más que una estructura de datos cuyos nodos pueden tener un hijo a la izquierda o a la derecha ( no más de 2). Por lo tanto un árbol binario de búsqueda no es más que un tipo de árbol binario cuya estructura de árbol se representa en informática. Arboles Binarios de Búsqueda Óptimos Estos árboles pueden realizar operaciones de: Búsqueda : La búsqueda en un árbol binario de búsqueda consiste en acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado es que no existe en el árbol. Estas búsquedas son bastantes eficientes teniendo un máximo de comparaciones en el rango de [log2(N+1)] y N Insertado: La inserción es similar a la búsqueda y se puede dar una solución tanto iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único contenido el elemento a insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho. Borrado: esta operación es más compleja y hay que tener en cuenta a borrar un nodo hija o padre el impacto que tendrá en la estructura del mismo.
  • 16.  R. Bellman, «On the Theory of Dynamic Programming», Proceedings of the National Academy of Sciences 38(8):716-719, 1952  L.L. Cooper, M.W. Cooper, Introduction to dynamic programming, Pergamon Press, Elmsford NY, 1981  C. Cotta, Programación dinámica. Introducción y ejercicios resueltos, UMA Editorial, Málaga, 2018  G.L. Nemhauser, Introduction to dynamic programming, Wiley & Sons, New York NY, 1967. BIBLIOGRAFIA