第三章では、仕事と学習をまとめたもの

はじめに:動的プログラミングと分割統治のアイデアは、少し似て小さな一連の問題の中に、元の大きな問題を分割することであるが、実際には2つの違いは、まだかなり大きいです。この記事では、私の理解と動的なプログラミングのアイデアの共有アプリケーションに焦点を当てています。

 

ダイナミックプログラミングアルゴリズムの最初に、理解

  まず第一に、最適なソリューションのための非常に動的なプログラミングアルゴリズムは、動的プログラミングのアイデアを通じて問題を解決するために、我々はちょうど商人は問題を横切るように、彼らの問題へのサブ最適解の問題に最適なソリューションをプッシュすることができました、ビジネスマンは、最後に到達します必要な通行料金に応じて、彼は前のステップを費やし通行料、及び通行料は、彼がケースが非常に早くさかのぼることができる前に、最後のステップを費やしてきました。動的プログラミングのアイデアは簡単に受け入れることが、ダイナミックプログラミングアルゴリズムの設計法が最も重要であるマスターするが - それは一般的に4つのステップに分かれています。実際の状況に基づいて最適解の性質を特定します。2.再帰方程式(このステップは、特に重要である)の性質に応じて最適解を導出します。再帰方程式の3分析、適切なプログラミング・ステートメントを設計します。4.最適解法を充填することによって録音すべてのケースを、最適解に所望の被写体を見つけます。

  再帰方程式を書くためのステップを節約しながら、我々は、動的プログラミングアルゴリズム、理由は簡単ではありませんを使用する場合、それは、私たちがよりよく問題を理解するのに役立つ問題解決の戦略を分析します。このステップがしばしばあります。重複部分問題にしばしば動的計画法とは、私たちはそれぞれのケースに最適なソリューションを保存するために、メソッドを充填する方法を使用し、全体的な問題の最適解は結論に達しました。

  個人的に、動的プログラミングアルゴリズムの使用は3「どのように」取り組むために開始するように問題を解決することを考えて:現在の問題の最適なサブ構造を得るために、まず、どのように?第二に、最適なサブ構造によって再帰式を作成する方法?第三に、どのようにフォームに記入する再帰式でプログラムを完了するには?

 

第二に、プログラミングその再帰方程式のリスト

 最初の質問:最長増加部分列を見つけます

一例として13529に見ることを意図するもの問題は、以前の最長の増加サブシーケンスに応じて4つの数字9の最長増加するシーケンスは、自分自身を追加します。

(iは= K <J <| Mと[i]のシーケンスを終了する最長の増加AI、M [i]は=最大{[K] <= A [j]とM [K] + 1}で発現)。

 

2番目の質問:ヨットを借ります

見つかった問題の意味によると、1 - 最小コストの点は、k点nに1をチャーターのコスト、プラス最小のk n個の点へのコストに依存します。

コスト[I] [J]とiがM、局jへステーションから最小コストである[i]が最適点Iを表します。

M [I] =分{コスト[I] [K] + M [K]}(I <K <= N)

 

第三に、レポートのプログラミングの結論

第三章では、イデオロギーやアルゴリズムの面での動的プログラミングを学習するように、この章では、我々はプログラミングに取るにもっと注意を払うので、準拠法を獲得するのが難しいくらいです。まず第一に、私は、動的プログラミングに対象の要件は、その後、アイデアはアルゴリズムとして実装されてどのように効果的なプログラミングのパートナーと一緒に考えて、

演習の難易大きいため、同時に、私たちは一緒に問題を解決することを決めました。我々は完全に再帰的な式を書くことはできませんが、我々はプログラミングによって再発の法則を発見しようとすると、最後の質問が完了しても、問題解決過程で。私にとっては、ペアプログラミング、両方の私の仲間を経ても、知識を統合し、共通の問題を解決し、経験を共有します。

(中期試験は合格、と私は、彼らが学んだと思う場合でも、非常に良いですが、マシンは私の研究を証明するために私をつついテストすることを理解しているという事実は、それらの知識を完全に徹底し、十分な深さではないの理解ではありません。)

おすすめ

転載: www.cnblogs.com/besthunterhj/p/11773708.html