動態規劃初步

2021-09-13 22:01:25 字數 1140 閱讀 5233

動態規劃的實質是通過多階段決策過程解決最優化問題,將每個問題分為若干個相互聯絡的階段,在它的每一階段都需要做出決策,這就是動態規劃與貪心演算法的區別,貪心演算法是以一種貪心規則進行最優運算,但往往得到的結果並不是問題的最優解,而動態規劃則不同,動態規劃是每一步都有乙個決策,保證了最優解是我們要找的整個問題的最優解,下面介紹一下動態規劃的基本流程:

1.階段和階段變數:

意為將整個問題分為數個階段,是指這樣的一類特殊的活動過程,問題可以按照時空的特殊順序分解成若干的互聯絡階段,在每乙個階段都要做出決策,全部過程的決策就構成了整個問題。我們需要把整個問題規劃分成若干個相互聯絡的階段,我們可以用一些階段變數來描述,通常用k表示,根據時空特點的順序劃分出的,同時階段的劃分要便於把問題轉化為多階段決策的過程。

2.狀態和狀態變數

某一階段的出發位置稱為使狀態,乙個階段有若干個狀態,比如a1,a2,a3....如此表示,狀態構成了每一階段,我們通常用不同的方法選擇狀態的最優值來找到階段的最優解,狀態變數是用來描述狀態的變數,能夠衡量狀態的量根據題目有很多種,假如是求路程的,那麼路程的量則是狀態變數。

3.決策,決策變數,決策允許集合

對問題的處理的每種選擇做出的選擇性行動就稱為決策。既從每一階段的狀態出發,通過一次選擇性的行動轉移至下一階段相應的狀態,既我們以一種選擇方式,將各種狀態選出階段最優解,在通過各決策的最優解選出整個問題的最優解,而要通過選擇也要通過衡量的標準,通過決策變數來描述,稱這種變數為決策變數,。在實際問題當中,決策變數的取值往往限制在某乙個範圍之內,這個範圍稱為允許決策集合。

4.策略與最優策略

所有階段依次排列構成問題的全過程,全過程各階段決策變數所組成有序總體稱為策略,我們可以通過策略允許的集合中找出最優效果的策略稱為最優策略。既我們所要得到的結果。

5.狀態轉移方程

前一階段的終點就是後一階段的起點,對前一階段的狀態做出的某種選擇得出的決策作為下一決策的起點進行運算,這樣最終得到的結果就是我們想要的整個問題的最優值。

動態規劃要有的兩個性質:

1.動態規劃的最優化原理:無論過去的狀態與決策如何,對前面的決策形成的狀態,餘下的各決策必須構成最優策略的性質。

2.動態規劃的無後性原則:某階段選擇的狀態一旦確定,對於後續的決策的狀態不會有影響。

不能劃分階段,劃分階段不能找最優化狀態,不具備無後性原則的問題都無法使用動態規劃!!!

動態規劃初步

基本原理 類似於遞迴解題,把問題丟給上一層來解決,找出狀態轉換方程即可。當然關鍵問題是如何定義遞迴陣列與找出狀態轉換方程。hello world 走樓梯 有n階樓梯,每次能走一步或兩步,請問有多少種走法。設f n 是n階樓梯不同的走法。則轉移到此狀態的方法有兩種,從n 1階樓梯走一步上來,或者從n ...

動態規劃初步

動態規劃的核心是狀態和狀態轉移方程。計算狀態轉移方程的方法 1 遞迴計算。用直接遞迴的方法計算狀態轉移方程,效率往往十分低下。其原因是相同的子問題被重複計算了多次。2 遞推計算。遞推的關鍵是邊界和計算順序。3 記憶化搜尋。不必事先確定各狀態的計算順序,但需要記錄每個狀態 是否已經計算過 動態規劃基礎...

動態規劃初步探索

下面用乙個很簡單的例子來具體說明一下dp問題的解題過程。題目如下 描述在乙個星期三的早上,某同學想用扔硬幣的方式來決定是否要去上演算法課。他扔 n 次硬幣,如果當中有連續 m 次以上 含 m 次 的結果都是正面,那麼他就去上課,否則就接著睡覺。假設每次扔硬幣扔出的正反兩面的概率都是 0.5。輸入 輸...