Un exemple simple pour quelqu'un qui veut comprendre la programmation dynamique [fermé]

96

Je recherche un exemple gérable et compréhensible pour quelqu'un qui veut apprendre la programmation dynamique. Il y a de belles réponses ici sur ce qu'est la programmation dynamique . La séquence de fibonacci est un excellent exemple, mais elle est trop petite pour rayer la surface. Cela a l'air d'un excellent sujet à apprendre même si je n'ai pas encore suivi la classe d'algorithmes, j'espère qu'il est sur ma liste pour le printemps.

AraK
la source

Réponses:

30

Consultez ce site: Problèmes de pratique de programmation dynamique

Nick Dandoulakis
la source
1
Voir cette conférence du MIT video.mit.edu/watch/ ... et ensuite résoudre les problèmes ci-dessus, vous aiderait à comprendre pourquoi DP est utile.
pg2286
Exemple: le lien youtube dans le commentaire est déjà rompu. Nouveau lien: youtube.com/watch?v=OQ5jsbhAv_M
AJP
Découvrez cet ensemble de vidéos qui, selon moi, couvrent à la fois l'aspect descendant et ascendant des algorithmes de manière assez intuitive: youtube.com/playlist?list=PLx-Ye3Zw0WL0O_IDmbcVHlKqJuGEfw3VG
william007
Il semblerait que le MIT ait déplacé son contenu de la page principale vers la page MIT OpenCourseWare, le lien @ pg2286 fourni n'est donc pas valide. Le lien est maintenant 19. Programmation dynamique I La liste de lecture complète Introduction aux algorithmes est également disponible
rite2hhh
20

Voici un bon tutoriel comprenant 29 problèmes DP résolus avec une bonne explication.

akashchandrakar
la source
7

L'idée derrière la programmation dynamique est que vous mettez en cache (mémorisation) des solutions aux sous-problèmes, même si je pense qu'il y a plus que cela.

Il existe de nombreux problèmes de Google Code Jam tels que les solutions nécessitent une programmation dynamique pour être efficaces. Exemples:

Bienvenue dans Code Jam (modéré)

Tricher un arbre booléen (modéré)

PermRLE (dur)

Notez que chacun des concours d'entraînement Code Jam a une section "Analyse du concours" si vous êtes perplexe en essayant de résoudre le problème.

Joey Adams
la source
Merci pour les ressources. Je résous de temps en temps une ou deux questions du projet euler, et il me semble que je suis vraiment coincé sur certains problèmes qui nécessitent des connaissances sur DP.
AraK
5
  1. Geeks for geeks a une grande collection de problèmes de programmation dynamiques. Je pense que cet ensemble est l'un des meilleurs si vous vous préparez pour une entrevue.
  2. Si vous voulez de petites vidéos de tutoriel sur les problèmes DP, vous pouvez vérifier cet ensemble de problèmes à partir du MIT.
Diptendu
la source
4

Le calcul des distances de Levenshtein a été l'un des premiers problèmes que j'ai résolus avec la programmation dynamique; Je pense que c'est une prochaine étape décente de la séquence de Fibonacci en termes de complexité.

http://en.wikipedia.org/wiki/Levenshtein_distance

David Winslow
la source