Programación Dinámica | Memoización | Explicado Paso a Paso

La programación Dinámica es un método para optimizar algoritmos utilizando recursividad, divide y vencerás y subproblemas superpuestos para incrementar la velocidad de ejecución de diferentes algoritmos. Puede usarse con Memoización, la cuál apluca a algoritmos recursivos, o con Tabulación para algoritmos iterativos. En este video pondremos varios ejemplos de soluciones como la secuencia Fibonacci y la optimización de ventas de varillas. Utilizando Python como lenguaje de ejemplo, aunque se puede aplicar a cualquier lenguaje de programación, Java, C#, C++, .NET, etc. Contenido: 0:00 Intro 1:19 Qué es Programación Dinámica 3:19 Ejemplo de problema de optimización 4:36 Pasos de Programación Dinámica 5:36 Pasos en el ejemplo 8:10 Ejemplo: 1. Describir Estructura 10:06 Ejemplo: 2. Definir Valor Óptimo 11:52 Ejemplo: 3. Calcular Valor Optimo con DP 12:42 Memoización 14:28 Tabulación 16:32 Comparación de Velocidad 17:00 Ejemplo: 4. Calcular Solución Óptima Referencias: Visualización: https://visualgo.net/en/recursion?sli... Explicación (Inglés): https://www.geeksforgeeks.org/overlap... Ejercicios: https://www.hackerrank.com/domains/al... Libros recomendados: https://kit.co/schiob Apóyame con una pizza: https://www.buymeacoffee.com/schiob Para contenido atrás de cámara y fotos de comida sígueme en:   / schiob     / schiob   https://github.com/schiob