Programación Dinámica

PROGRAMACIÓN DINÁMICA

  • Fue introducida en 1957 por Richard Bellman.

 

  • El desarrollo de métodos para optimizar crono-gramas de entrenamiento y logística para las fuerzas armadas, llamados "programas".

 

  • El termino dinámico significa que las tablas se llenaban poco a poco y no de una sola vez.

PROGRAMACIÓN DINÁMICA

  • La programación dinámica es un un método de diseño de algoritmos que esta compuesto de dos niveles de optimización.
  1. Elimina el trabajo redundante en subproblemas idénticos utilizando una tabla para almacenar resultados.
  2. Elimina la recursividad encontrando un orden en el cual los elementos de la tabla pueden ser llenados de manera iterativa.

CONDICIONES

  • Un prolema de optimización satisface el principio de optimalidad de Bellman si en una sucesión optima de decisiones o elecciones, cada subsucesion es a su vez optima. Es decir, si miramos una subsolusión de la solución optima, debe ser solución del subproblema asociado a esa subsolución.
  • Solapamiento entre subproblema, Al plantear la solución recursiva del problema, un mismo subproblema se resuelve mas de una vez.

MÉTODO GENERAL

  • Ecuación recurrente, para calcular la solución de los problemas grandes en función de los problemas más pequeños.
  • Determinar los casos base.
  • Definir las tablas utilizadas por el algoritmo, y como son llenadas.
  • Como se compone la solución global a partir de los valores de las tablas.

MÉTODO GENERAL

  • La programación dinámica se suele utilizar en problemas de optimización, donde una solución esta formada por una serie de decisiones.
  • Igual que la técnica divide y vencerás resuelve el problema original combinando las soluciones para subproblemas más pequeños.
  • La programación dinámica no utiliza recursividad , si no que almacena los resultados de los subproblemas en una tabla calculando primero las soluciones para los problemas pequeños.
  • Con esto se pretende evitar la repetición de cálculos para problemas más pequeños.

SERIE DE FIBONACCI

PROBLEMA DE LA MOCHILA

SOLUCIÓN FINAL

CONCLUSIÓN

CONSEJOS

http://foro.elhacker.net/ejercicios/ejercicios_recursivos_en_java_y_sus_soluciones-t231013.0.html

Algoritmos Recursivos

http://aljavier.github.io/recursividad-versus-iteratividad.html

Recursividad e iteratividad

AYUDA

https://www.youtube.com/channel/UCRgdoOWm0XwbfyaWUa7p3aA/videos

YouTube

http://es.stackoverflow.com/search?q=programacion+dinamica

StackOverFlow

https://github.com/lamphanviet/competitive-programming/tree/master/uva-online-judge/accepted-solutions

GitHub

GRACIAS POR SU ATENCIÓN :v

Made with Slides.com