2009-10-08 3 views
84

Sto cercando un esempio gestibile comprensibile per qualcuno che vuole imparare la programmazione dinamica. There are nice answers here about what is dynamic programming. La sequenza fibonacci è un ottimo esempio, ma è troppo piccola per graffiare la superficie. Sembra una materia fantastica da imparare anche se non ho ancora preso la classe degli algoritmi, speriamo che sia sulla mia lista per la primavera.Un semplice esempio per qualcuno che vuole capire la programmazione dinamica

risposta

4

Calcolare le distanze di Levenshtein è stato uno dei primi problemi risolti con la programmazione dinamica; Penso che sia un buon passo successivo dalla sequenza di Fibonacci in termini di complessità.

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

28

Dai un'occhiata a questo sito: Dynamic Programming Practice Problems

+1

Vedere questa lezione dal MIT http://video.mit.edu/watch/introduction-to-algorithms-lecture-19-dynamic-programming-i-fibonacci-shortest-paths-14225/ e quindi risolvere i problemi di cui sopra , ti aiuterebbe a capire perché il DP è utile. – user504879

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - [Dalla recensione] (/ recensione/post di bassa qualità/17995545) – kometen

6

L'idea alla base di programmazione dinamica è che si sta caching soluzioni (memoizing) a sottoproblemi, anche se penso che c'è di più ad esso che quello.

Ci sono molti problemi di Google Code Jam in modo che le soluzioni richiedano una programmazione dinamica efficiente. Esempi:

Welcome to Code Jam (moderate)

Cheating a Boolean Tree (moderate)

PermRLE (hard)

Nota che ciascuno dei concorsi pratica Code Jam ha una sezione "Analisi Contest" per se siete perplessi cercando di risolvere il problema.

+0

Grazie per le risorse. Di tanto in tanto risolvo una o due domande del progetto euler, e sembra che io sia davvero bloccato su alcuni problemi che richiedono conoscenze sulla DP. – AraK

5
  1. Geek per geek ha un ottimo collection di problemi di programmazione dinamica. Sento che questo set è uno dei migliori se ti stai preparando per un colloquio.
  2. Se si desiderano piccoli video tutorial su problemi DP, è possibile verificare il problema this impostato dal MIT.