web-dev-qa-db-ja.com

動的プログラミングを理解したい人のための簡単な例

ダイナミックプログラミングを学びたい人のために、管理しやすい理解できる例を探しています。 動的プログラミングとは何かについての素敵な答えがあります 。フィボナッチ数列は素晴らしい例ですが、表面を傷つけるには小さすぎます。私はまだアルゴリズムのクラスを受講していませんが、学ぶための素晴らしいテーマに見えます。できれば、春の私のリストに載っていることを願っています。

94
AraK

このサイトをチェックしてください: ダイナミックプログラミングプラクティスの問題

29

これは良いチュートリアルです 29の解決されたDP問題で構成されています。

20
akashchandrakar

動的プログラミングの背後にある考え方は、サブ問題に対するソリューションをキャッシュ(メモ)しているということですが、それ以上のことがあると思います。

Google Code Jamには多くの問題があり、ソリューションを効率的にするには動的プログラミングが必要です。例:

Code Jamへようこそ(中程度)

ブールツリーの不正行為(中程度)

PermRLE(ハード)

Code Jamの各練習コンテストには、問題を解決しようとして困っている場合のための「コンテスト分析」セクションがあります。

7
Joey Adams
  1. Geeks for Geeksには、ダイナミックプログラミングの問題の素晴らしい コレクション があります。あなたがインタビューの準備をしているなら、このセットは最高のものの一つだと思います。
  2. DPの問題に関する小さなチュートリアルビデオが必要な場合は、MITから this problem setを確認できます。
5
Diptendu

レーベンシュタイン距離の計算は、ダイナミックプログラミングで最初に解決した問題の1つでした。これはフィボナッチ数列の複雑さの点で次のステップだと思います。

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

4
David Winslow