Programación Dinámica | Memoización | Explicado Paso a Paso
ฝัง
- เผยแพร่เมื่อ 27 ก.ค. 2024
- 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: visualgo.net/en/recursion?sli...
- Explicación (Inglés): www.geeksforgeeks.org/overlap...
- Ejercicios: www.hackerrank.com/domains/al...
Libros recomendados:
kit.co/schiob
Apóyame con una pizza:
www.buymeacoffee.com/schiob
Para contenido atrás de cámara y fotos de comida sígueme en:
/ schiob
/ schiob
github.com/schiob
Muchísimas gracias, me ha ayudado mucho tu vídeo a repasar conceptos que tenía ya muy olvidados... Y muy bien explicado!!!
acabo de descubrir tu canal y me resultan muy útiles tus explicaciones tan claras. estoy cursando 2 año en la universidad la asignatura de estructuras de datos y algoritmos y con tus vídeos ahora lo entiendo y hasta se me hace divertido. gracias❤
Excelente video, me quedé con ganas de más, sobre lo que comentaste en la ultima parte. Muchas gracias chio !
Buenas, antes de nada decirte que tus vídeos son fantásticos, explicas mejor que muchos profesores que tuve en la carrera. ¡Ojalá tus vídeos tengan más visitas en el futuro! Se lo merecen, son de gran calidad :)
Muchas gracias por el apoyo, poco a poco y con su ayuda vamos creciendo la comunidad acá :)
Felicitaciones, excelente contenido. La primera vez que me enseñaron programación dinámica fue en 1995, veo que ha seguido evolucionando. Gracias por animarme a estudiarlo nuevamente.
hola, estoy en segundo de carrera de ingeniería informática y esto me ha ayudado un montón para una práctica de análisis y diseño de algoritmos, un saludo!!
nuevo sub, explicaste muy bien este tema, yo llevo una materia que se llama Analisis y Diseño de Algoritmos y creo que es muy importante para la carrera de sistemas y ahora voy a ver toda tu lista de reproduccion para entenderle chido y poder sacar un proyecto, Saludos a la bandita de ESCOM
Muchas gracias Chio, me encantan tus videos, he visto varios de algoritmos y cálculo de big O y me ayudan un monton a comprender y estudiar sobre los temas. No dejes de subir videos por favor.
Muchas gracias por el apoyo, seguiré con los videos de eso no hay duda :)
Muchas gracias profe! Tremendo. Tengo que repasarlo bien y practicarlo.
Muy buen video ! Estaría genial un video con el problema de las ocho reinas!
Muy clara la explicación. ! Buenísimos ejemplos para poder entender.
Saludos !!
Muchas gracias por el comentario :)
Que bien explicas... guapo...
Que buena! El que estaba esperando!
Gracias por esperar, espero te haya gustado :)
Buenísimo video, muchas gracias
Gracias a ti por el comentario 😊
Crack, Dios, Ídolo
Jajajajaja muchas gracias Bochitos
Muchas gracias chiooo, tu vídeo me está salvando el semestre. Suerteee
Excelente n.n ojalá que sigan ayudándote mucho los videos :)
voy a realizar el ejerciciop em go, muy buena explicacion
Excelente! Nos platicas cómo te fue :)
Estaría padre que nos explicara lo del costo de memoria, mis profes de la carrera no lo hacen😑.
Definitivamente está en la lista de siguientes videos :)
Gracias por la explicación, ayudaría mucho a entenderlo el ir viendo la solución y el desarrollo mediante prints para ir acabando de entender lo que pasa. Así queda un poco abstracto.
Owww.. quedó Claro, gracias
Gracias a ti por tu comentario 😊
Interesante tema, y muy bien explicado.
¡Éxitos!
Muchas gracias!!
Amigo estoy estudiando ciencia de datos, no se si podrias hacer videos referentes a ello sería algo genial
Gracias por la explicación muy entendible y no se si me puedes ayudar analizar un ejercicio para ver con que algoritmo es mejor su solución por favor.
Gracias a ti por el apoyo, y claro si te pasas por los directos que hacemos los miércoles con gusto podemos ver un ejercicio :)
Hola, que tal? quisiera saber si es posible resolver un algoritmo de ordenamiento por D.P?
Hola Chio! Gracias x compartir este video. Bastante bueno! Una preg breve...porque en algo recursivo con memoriation, el arreglo 'cache' es [-1]*[n+1] en vez de [-1]*[n]? Muchas gracias!
Por el índice que empieza en 0, para no batallar y tener que restar siempre el valor cuando accedes al índice
guardado, no entendi uu aun me falta vuelvo en unos dias xd , volvere
te quiero chio
♥️
holaa, muy buen vide. El "else" del ejemplo de fibonacci estaba sobrando no?
Que buen video!!!!! una pregunta, como termino de implementar este código 0:40 me salen errores :( :(
Buenas, tengo una duda. Si al descomponer un problema utilizando Divide y Vencerás no existe solapamiento entre los distintos subproblemas generados, ¿tendría sentido utilizar Programación Dinámica para resolver dicho problema?
Hola Elena, en esa situación no tiene mucho sentido, el utilizar programación dinámica es para guardar resultados que podrás usar después, pero si no los usarás porque no se sobreponen los su problemas no le veo mucho sentido a hacerlo así :)
Creo que incluso ese problema puede resolverse con programación lineal
Ofreces cursos de paga sobre programación? Si es así con gusto me gustaría tomar unos cuantos de tu autoria