SlideShare una empresa de Scribd logo
1 de 10
GRUPO 7
PROGRAMACION DINAMICA
Integrantes:
• Molina Ballon Dalih Medeliz
• Chura Poma Cristian
• Javier Henry Quispe Pinto
PROGRAMACION
DINAMICA
1.- INTRODUCCIÓN
2.- VENTAJAS
3 .- DESVENTAJAS
4.- EJEMPLOS
5.-CONCLUSION
INTRODUCCION
 Es un método cuantitativo de toma de decisiones desarrollada por
Bellman y Dantzig en 1957
 La programación dinámica (PD) determina la solución óptima de un
problema de n variables descomponiéndola en n etapas, con cada
etapa incluyendo un subproblema de una sola variable. La mayor
parte de las veces, la programación dinámica obtiene soluciones
con un avance en reversa, desde el final de un problema hacia el
principio con lo que un problema grande se convierte en una serie
de problemas más pequeños y más tratables. Así, la programación
dinámica se puede definir como una técnica matemática útil que
resuelve una serie de decisiones secuenciales, cada una de las
cuales afecta las decisiones futuras.
Ventajas
 Eficaz para resolver problemas de gran complejidad al
dividirlo y secuenciarlo.
 Resuelve cada sub problema una sola vez.
 Los cálculos de cada etapa se organizan y se guardan de
manera eficiente, facilitando su consulta para posteriores
análisis.
Desventajas
 No aplicable a todo tipo de problemas.
 Si hay algún error en una tabla afecta a todo el problema.
Tenemos n objetos, cada uno con un peso (wi) y un beneficio
(vi), y una mochila en la que podemos meter objetos, con una
capacidad de peso máximo M. El objetivo es maximizar el
beneficio de los objetos transportados, donde cada objeto se
puede coger entero (xi=1) o nada (xi=0).
Problema de la mochila 0/1
Programacion Dinamica. Problema de la mochila
Ganancias en capacidad…
Etapa Articulo
Peso
(Kg)
Benefici
o Bs 0 1 2 3 4 5 6 7 8
0 estado inicial 0 0 0 0 0 0 0 0 0
1 A 1 2 0
2 B 2 5 0
3 C 4 6 0
4 D 5 10 0
5 E 7 13 0
6 F 8 16 0
2 2 2 2 2 2 2 2
A A A A A A A A
2
A
5
B
7
A+B
7 7 7 7 7
A+B A+B A+B A+B A+B
2 5 7
A B A+B
7
A+B
8
A+C
11
B+C
13
A+B+C
13
A+B+C
2 5 7 7
A B A+B A+B
10
D
12
A+D
15
B+D
17
A+B+D
2 5 7 7 10 12
A B A+B A+B D A+D
15
B+D
17
A+B+D
2 5 7 7 10 12 15
A B A+B A+B D A+D B+D
17
A+B+D
Forma de rellenar las tablas:
 Inicializar los casos base.
 Para todo i, desde 1 hasta n, y j desde 1 hasta M, aplicar la
ecuación de recurrencia:
V[i, j] = max (V[i - 1, j] , V[i - 1, j - wi]+ vi)
 Si j es negativo, entonces V[i, j] = -, y el máximo será el otro
término.
Tiempo de ejecución: (n).
1. En que problemas se utiliza la programación dinámica?
Resp.- La programación dinámica se suele utilizar en problemas de
optimización, donde una solución está formada por una serie de decisiones.
1. Comparando con la técnica de Divide y vencerás en que se parecen?
Resp.- Los dos resuelven el problema original combinando las soluciones para
subproblemas más pequeños.
1. Y en que se diferencian de la técnica de Divide y Vencerás?
Resp.-almacena los resultados de los subproblemas en una tabla, calculando
primero las soluciones para los problemas pequeños.
1. La programación Dinámica en que principio se basa?
Resp.- La programación dinámica se basa en el Principio de Optimalidad de
Bellman: cualquier subsecuencia de una secuencia óptima debe ser, a su vez,
una secuencia óptima.
1. Que aspecto importante tiene la programación Dinámica?
Resp.-los algoritmos de programación dinámica necesitan una tabla para
almacenar los resultados parciales, que puede ocupar mucha memoria.
PREGUNTAS
1. Cual es la definición de top down?
Resp.- El problema se divide en sub problemas y estos se resuelven
recordándolos las soluciones de arriba hacia abajo
1. Cual es la definición de Bottom up?
Resp.- este enfoque es ligeramente es mejor en su consumo de espacio y
llamadas de funciones encontrando todos los sub problemas necesarios.
1. A que se refiere optimizar?
Resp.-a buscar alguna de las mejores soluciones de entre muchas
alternativas posibles
1. La programación dinámica es …?
Resp.- un método para reducir el tiempo de ejecución.
1. Quien invento la programación dinámica?
Resp.-Richard Bellman en 1953
PREGUNTAS

Más contenido relacionado

Similar a Programación dinámica: problemas, ventajas y ejemplos

Similar a Programación dinámica: problemas, ventajas y ejemplos (20)

Programación lineal y pert. do
Programación lineal y pert. doProgramación lineal y pert. do
Programación lineal y pert. do
 
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
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Asignacion
AsignacionAsignacion
Asignacion
 
DIAPOS EXPO FINAL IO2.pptx
DIAPOS EXPO FINAL IO2.pptxDIAPOS EXPO FINAL IO2.pptx
DIAPOS EXPO FINAL IO2.pptx
 
Prog dinamica
Prog dinamicaProg dinamica
Prog dinamica
 
Presentacion programacion dinamica
Presentacion programacion dinamicaPresentacion programacion dinamica
Presentacion programacion dinamica
 
Investigacion Operativa Aspectos Generales
Investigacion Operativa Aspectos GeneralesInvestigacion Operativa Aspectos Generales
Investigacion Operativa Aspectos Generales
 
Programacion
ProgramacionProgramacion
Programacion
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programacion dinamica 22
Programacion dinamica 22Programacion dinamica 22
Programacion dinamica 22
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
 
Programación Dinamica
Programación DinamicaProgramación Dinamica
Programación Dinamica
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICA
 
Trabajo programacion lineal
Trabajo  programacion  linealTrabajo  programacion  lineal
Trabajo programacion lineal
 
Analisis de dualidad
Analisis de dualidadAnalisis de dualidad
Analisis de dualidad
 
Clase3
Clase3Clase3
Clase3
 

Programación dinámica: problemas, ventajas y ejemplos

  • 1. GRUPO 7 PROGRAMACION DINAMICA Integrantes: • Molina Ballon Dalih Medeliz • Chura Poma Cristian • Javier Henry Quispe Pinto
  • 2. PROGRAMACION DINAMICA 1.- INTRODUCCIÓN 2.- VENTAJAS 3 .- DESVENTAJAS 4.- EJEMPLOS 5.-CONCLUSION
  • 3. INTRODUCCION  Es un método cuantitativo de toma de decisiones desarrollada por Bellman y Dantzig en 1957  La programación dinámica (PD) determina la solución óptima de un problema de n variables descomponiéndola en n etapas, con cada etapa incluyendo un subproblema de una sola variable. La mayor parte de las veces, la programación dinámica obtiene soluciones con un avance en reversa, desde el final de un problema hacia el principio con lo que un problema grande se convierte en una serie de problemas más pequeños y más tratables. Así, la programación dinámica se puede definir como una técnica matemática útil que resuelve una serie de decisiones secuenciales, cada una de las cuales afecta las decisiones futuras.
  • 4. Ventajas  Eficaz para resolver problemas de gran complejidad al dividirlo y secuenciarlo.  Resuelve cada sub problema una sola vez.  Los cálculos de cada etapa se organizan y se guardan de manera eficiente, facilitando su consulta para posteriores análisis.
  • 5. Desventajas  No aplicable a todo tipo de problemas.  Si hay algún error en una tabla afecta a todo el problema.
  • 6. Tenemos n objetos, cada uno con un peso (wi) y un beneficio (vi), y una mochila en la que podemos meter objetos, con una capacidad de peso máximo M. El objetivo es maximizar el beneficio de los objetos transportados, donde cada objeto se puede coger entero (xi=1) o nada (xi=0). Problema de la mochila 0/1
  • 7. Programacion Dinamica. Problema de la mochila Ganancias en capacidad… Etapa Articulo Peso (Kg) Benefici o Bs 0 1 2 3 4 5 6 7 8 0 estado inicial 0 0 0 0 0 0 0 0 0 1 A 1 2 0 2 B 2 5 0 3 C 4 6 0 4 D 5 10 0 5 E 7 13 0 6 F 8 16 0 2 2 2 2 2 2 2 2 A A A A A A A A 2 A 5 B 7 A+B 7 7 7 7 7 A+B A+B A+B A+B A+B 2 5 7 A B A+B 7 A+B 8 A+C 11 B+C 13 A+B+C 13 A+B+C 2 5 7 7 A B A+B A+B 10 D 12 A+D 15 B+D 17 A+B+D 2 5 7 7 10 12 A B A+B A+B D A+D 15 B+D 17 A+B+D 2 5 7 7 10 12 15 A B A+B A+B D A+D B+D 17 A+B+D
  • 8. Forma de rellenar las tablas:  Inicializar los casos base.  Para todo i, desde 1 hasta n, y j desde 1 hasta M, aplicar la ecuación de recurrencia: V[i, j] = max (V[i - 1, j] , V[i - 1, j - wi]+ vi)  Si j es negativo, entonces V[i, j] = -, y el máximo será el otro término. Tiempo de ejecución: (n).
  • 9. 1. En que problemas se utiliza la programación dinámica? Resp.- La programación dinámica se suele utilizar en problemas de optimización, donde una solución está formada por una serie de decisiones. 1. Comparando con la técnica de Divide y vencerás en que se parecen? Resp.- Los dos resuelven el problema original combinando las soluciones para subproblemas más pequeños. 1. Y en que se diferencian de la técnica de Divide y Vencerás? Resp.-almacena los resultados de los subproblemas en una tabla, calculando primero las soluciones para los problemas pequeños. 1. La programación Dinámica en que principio se basa? Resp.- La programación dinámica se basa en el Principio de Optimalidad de Bellman: cualquier subsecuencia de una secuencia óptima debe ser, a su vez, una secuencia óptima. 1. Que aspecto importante tiene la programación Dinámica? Resp.-los algoritmos de programación dinámica necesitan una tabla para almacenar los resultados parciales, que puede ocupar mucha memoria. PREGUNTAS
  • 10. 1. Cual es la definición de top down? Resp.- El problema se divide en sub problemas y estos se resuelven recordándolos las soluciones de arriba hacia abajo 1. Cual es la definición de Bottom up? Resp.- este enfoque es ligeramente es mejor en su consumo de espacio y llamadas de funciones encontrando todos los sub problemas necesarios. 1. A que se refiere optimizar? Resp.-a buscar alguna de las mejores soluciones de entre muchas alternativas posibles 1. La programación dinámica es …? Resp.- un método para reducir el tiempo de ejecución. 1. Quien invento la programación dinámica? Resp.-Richard Bellman en 1953 PREGUNTAS