動態規劃是解決多階段決策過程最優化的一種方法。
對於離散問題,解析數學無法施展,動態規劃則成為非常有效的工具。
兩個弱點:
1. 得出目標函式方程後,尚無統一的處理方法,必須根據具體問題的性質結合相應的數學技巧來求解;
2. 維數障礙。
動態規劃模型的分類:
根據決策過程的時間參量是離散的還是連續的變數
1. 離散(多段)決策過程
2. 連續決策過程
根據決策過程的演變是確定性的還是隨機性的
1. 確定性決策過程
2. 隨機性決策過程
1. 由於它的特殊性,可將過程劃分為若干互相聯絡的階段;
2. 在它的每乙個階段都需要作出決策,並且乙個階段的決策確定以後,常影響下乙個階段的決策,從而影響整個過程的活動路線;
3. 各個階段所確定的決策就構成乙個決策序列,通常稱為乙個策略;
4. 每乙個階段可供選擇的決策往往不止乙個,對應於乙個策略就有確定的活動效果;
5. 多階段決策問題,就是要在允許選擇的那些策略中間,選擇乙個最優策略,使在預定的標準下達到最好的效果。
階段(stage)
把所給問題的過程,恰當地劃分成若干個相互聯絡的階段,以便於求解。通常用k表示階段變數。
狀態(state)
狀態表示某段的出發位置。它既是該段某支路的始點,同時也是前一段某支路的終點。通常乙個階段包含若干個狀態。
描述過程狀態的變數,稱為狀態變數。常用xk
表示在第k段的某一狀態。第k段狀態集合可表示為
xk=
故第三階段的狀態集合就可記為
x3 = =
或 x
3 =
決策(decision)
決策就是某階段狀態給定以後,從該狀態演變到下一階段某狀態的選擇。
描述決策的變數,稱為決策變數。
常用uk
(xk)表示第k段當狀態處於xk
時的決策變數。決策變數的取值往往限制在某一範圍之內,此範圍稱為允許決策集合。通常以dk
(xk)表示第k段的允許決策集合。
uk(xk
) ∈dk
(xk)
策略(policy)
由過程的第1階段開始到終點為止的過程,稱為問題的全過程。
由每段的決策ui
(xi)(i=1,2……,n)組成的決策函式序列就稱為全過程策略,簡稱策略,記為p1,n。
即 p1,n
(xk)=
由第k段開始到終點過程稱為原過程的後部子過程(或稱為k子過程)。
其決策函式序列稱為k字過程策略,簡稱子策略。即
pk,n
(xk)=
在實際問題中,可供選擇的策略有一定的範圍,此範圍稱為允許策略集合,用p表示。從允許策略中找出達到最優效果的策略稱為最優策略。
指標函式和最優指標函式
在多階段決策過程最優化問題中,指標函式是用來衡量所實現過程的優劣的一種數量指標,它是乙個定義在全過程和所有後部子過程上的確定數量函式,常用vk,n
表示。• 指標函式vk,n
的最優值,稱為相應的最優指標函式。記為fk
(xk).
• 在例1中,fk
(xk)表示從第k段xk
點到終點g的最短距離。如f
4(d1)就表示從第4段中的d
1點到g 點的最短距離。
4.動態規劃最優化原理
作為整個過程的最優策略具有這樣的性質:即無論過去的狀態和決策如何,對前面的決策所形成的狀態而言,餘下的諸決策必須構成最優策略。
可逆過程
可以把段次顛倒過來球最優解的多階段決策過程稱為可逆過程。
順序解法和逆序解法只表示行進方向的不同或始端的顛倒。但用動態規劃方法求最優解時,都是在行進方向規定後,均要逆著這個規定的行進方向,從最後一段向前逆推計算,逐段找出最優途徑。
建立動態規劃模型時,除了要將實際問題恰當地劃分若干個階段(一般是根據時間和空間而劃分的)外,主要明確以下四個方面:
1. 正確選擇狀態變數xk, 使它既能描述過程的狀態,又要滿足無後效性。
動態規劃中的狀態與一般所說的狀態概念是不同的,它必須具有三個特性:
1) 要能夠用來描述受控過程的演變特徵。
2) 要滿足無後效性。 所謂無後效性是指:如果某段狀態給定,則在這段以後過程的發展不受前面各階段狀態的影響。
3) 可知性。即是規定的各段狀態變數的值,由直接或間接都是可以知道的。
2 確定決策變數uk
及每段的允許決策集合dk
(xk)=。
3 寫出狀態轉移方程
1) 如果給定第k段狀態變數xk
的值,則該段的決策變數uk
一經確定,第k+1段狀態變數xk
+1的值也就完全確定。
2) xk
+1的值隨xk
和uk的值的變化而變化的這種對應關係,用
1. xk+1
= tk
(xk,uk
) 表示。
3) 它表示由k段到k+1段的整體轉移規律,稱為狀態轉移方程。
4 根據題意,列出指標函式vk,n
關係,並要滿足遞推性。
正確列出指標函式關係,必須使它具有三個性質:
1) 它是定義在全過程和所有後部子過程上的數量函式;
2) 要滿足遞推關係。
演算法學習 動態規劃實踐
完成日期 2017.10.26 1.實踐題目 數字三角形 2.問題描述 給定乙個由 n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形 的頂至底的一條路徑 每一步可沿左斜線向下或右斜線向下 使該路徑經過的數字總和最大。3.演算法描述 1 首先該問題有最優子結構和重疊子問題的性質,因...
演算法學習08 動態規劃
遞迴問題 暴力遞迴轉換成動態規劃 動態規劃本身就是暴力遞迴的優化,是一種用空間換時間的策略 動態規劃 我們不知道怎麼計算n 但我們知道 n 與 n 1 之間存在一定關係n n n 1 得到遞推的狀態轉移公式.當暴力遞迴到頭得到0 1,得到base case,這樣得到了遞迴的方法.public sta...
演算法學習(十)動態規劃!!!
1.先上一波官方解讀提提神 動態規劃 英語 dynamic programming,簡稱dp 是一種在數學 管理科學 電腦科學 經濟學和生物資訊學中使用的,通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。動態規劃常常適用於有重疊子問題和最優子結構性質的問題。官方術語太多?不能理解?wha...