Hay problemas que pueden ser resueltos de
manera recursiva en términos matemáticos y su
solución sea basada en soluciones recursivas.
Un ejemplo de este es el problema de la mochila
y el cálculos de los nùmeros de Fibonacci
Problema de la
mochila
https://www.youtube.com/watch?v=fVrPwSkSo0I
Cálculo de los numeros
de Fibonacci
Por tanto, la forma más natural de calcular los
términos de esa sucesión es mediante un
programa recursivo
El problema en ambos casos es que el algoritmo es poco
eficiente. El tiempo de ejecuciòn es exponencial debido
a su recursividad.
La solución utilizando la programación dinámica en el caso del número de
Fibonaccio, es el almacenamiento de los valores que retornan las llamadas a
la funciòn recursiva que se utilizan constantemente. Entonces se evita el uso
excesivo de la recursiòn.
Se tiene ciertos beneficios a causa del
uso de la programación dinámica
Se emplea para resolver problemas de
optimizaciòn
Permite resolver problemas mediante una
secuencia de decisiones
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 subestructuras
óptimas,.
En general, se pueden resolver problemas con subestructuras
óptimas siguiendo estos tres pasos:
Dividir el problema en subproblemas
más pequeños.
Resolver estos problemas de manera óptima usando
este proceso de tres pasos recursivamente.
Usar estas soluciones óptimas para construir
una solución óptima al problema original.
Es importante el uso de la programación dinámica para reducir la cantidad de
recursos y tiempo, debido a que ambos son demasiado limitados.