運籌優化(七)--動態規劃解析

Eason.wxd發表於2019-01-15

其實,在各種演算法領域,動態規劃的思想隨處可見,用同事的話說,就是一種很樸素的方法,我之所以記錄這麼多文字,是今天看完動態規劃,突然發現,有時候,靜下心,好好理解理解最最基礎的理論原理,你對這個演算法的體會和理解會完全不一樣。

動態規則是運籌學的一個分支, 它是解決多階段決策過程最優化的一種數學方法。 大約產生於20世紀50年代。1951年美國數學家貝爾曼(R .Bellman)等人,根據一類多階段決策問題的特點 , 把多階段決策問題變換為一系列互相聯絡的單階段問題 , 然後逐個加以解決。與此同時 , 他提出瞭解決這類問題的“ 最優性原理”, 研究了許多實 際問題 , 從而建立瞭解決最優化問題的一種新的方法——動態規劃。他的名著“動態規劃”於1957年出版 , 該書是動態規劃的第一本著作。

動態規劃的方法 , 在工程技術、企業管理、工農業生產及軍事等部門中都有廣泛的應用 , 並且獲得了顯著的效果。在企業管理方面 , 動態規劃可以用來解決最優路徑問題、資源分配問 題、生產排程問題 、庫存問題 、裝載問題 、排序問題 、裝置更新問題 、生產 過程最優控制問題等等 , 所以它是現代企業管理中的一種重要的決策方法。許多問題用動態規劃的方法去處理 , 常比線性規劃或非線性規劃更有成效。特別對於離散性的問題 , 由於解析數學無法施展其術 , 而動態規劃的方法就成為非常有用的工具。應指出 , 動態規劃是求解某類問題的一種方法 , 是考查問題的一種途徑 , 而不是一種特殊演算法 ( 如線性規劃是一種演算法)。因而, 它不像線性規劃那樣有一個標準的數學表示式和明確定義的一組規則, 而必須對具體問題進行具體分析處理。

動態規劃模型的分類 , 根據多階段決策過程的時間參量是離散的還是連續的變數 , 過程分為離散決策過程和連續決策過程。根據決 策過程的演變是確定性的還是隨機性的 , 過程又可分為確定性決策過程和隨機性決策 過程。組合起來就有離散確定性、離散隨機 性、連續確定性、連續隨機性四種決策過程模型。

動態規劃的基本方法

在生產和科學實驗中,有一類活動的過程, 由於它的特殊性, 可將過程分為若干個互相聯絡的階段,在它的每一個階段都需要作出決策, 從而使整個過程達到最好的活動效果。因此 , 各個階段決策的選取不是任意確定的 , 它依賴於當前面臨的狀態 , 又影響以後的發展。當各個階段決策確定後 , 就組成了一個決策序列 , 因而也就決定了整個過程的一條活動路線。這種把一個問題可看作是一個前後關聯具有鏈狀結構的多階段過程就稱為多階段決策過程,也稱序貫決策過程。這種問題就稱為多階段決策 過程。

在多階段決策問題中,各個階段採取的決策, 一般來說是與時間有關的, 決策依賴於當前的狀態, 又隨即引起狀態的轉移, 一個決策序列就是在變化的狀態中產生出來 的,故有“動態”的含義。因此, 把處理它的方法稱為動態規劃方法。但是, 一些與時間沒有關係的 靜態規劃 ( 如線性規劃 、非線性規劃等 ) 問題 , 只要人為地引進“時間”因 素 , 也可把它視為多階段決策問題 , 用動態規劃方法去處理。

動態規劃的基本概念和基本方程

1. 階段

把所給問題的過程, 恰當地分為若干個相互聯絡的階段, 以便能按一定的次序去求解。描述階段的變數稱為階段變數,常用 k表示。階段的劃分,一般是根據時間和空間的自然特徵來劃分,但要便於把問題的過程能轉化為多階段決策的過程。 

2. 狀態

狀態表示每個階段開始所處的自然狀況或客觀條件 , 它描述了研究問題過程的狀況 ,又稱不可控因素。通常一個階段有若干個狀態 , 一般第 k 階段的狀態就是第 k 階段所有始點的集合。 描述過程狀態的變數稱為狀態變數。它可用一個數、一組數或一向量(多維情形)來描述。常用 Sk 表示第 k 階段的狀態變數,這裡所說的狀態應具有下面的性質 : 如果某階段狀態給定後 , 則在這階段以後過程的發展不受這階段以前各段狀態的影響。換句話說 , 過程的過去歷史只能通過當前的狀態去影響它未來的發展,當前的狀態是以往歷史的一個總結。這個性質稱為無後效性(即馬 爾科夫性)。

如果狀態僅僅描述過程的具體特徵 , 則並不是任何實際過程都能滿足無後效性的要求。所以 , 在構造決策過程的動態規劃模型時 , 不能僅由描述過程的具體特徵這點著眼去規定狀態變數 , 而要充分注意是否滿足無後效性的要求。如果狀態的某種規定方式可能

導致不滿足無後效性 , 應適當地改變狀態的規定方法 , 達到能使它滿足無後效性的要求。例如,研究物體(把它看作一個質點)受外力作用後其空間運動的軌跡問題。從描述軌跡這點著眼,可以只選座標位置( xk , yk , zk )作為過程的狀態,但這樣不能滿足無後效性,因為即使知道了外力的大小和方向 , 仍無法確定物體受力後的運動方向和軌跡 , 只有把位置 ( xk , yk , zk )和速度( xk , yk , zk )都作為過程的狀態變數, 才能確定物體運動下一步的方向 和軌跡 , 實現無後效性的要求。

3. 決策

決策表示當過程處於某一階段的某個狀態時 , 可以作出不同的決定 ( 或選擇 ) , 從而確定下一階段的狀態 , 這種決定稱為決策。在最優控制中也稱為控制。描述決策的變數 , 稱為決策變數。它可用一個數、一組數或一向量來描述。常用 uk (sk )表示第 k階段當狀態處於sk時的決策變數。它是狀態變數的函式。在實際問題中 , 決策變數的取值往往限制在某一範圍之內,此範圍稱為允許決策集合。常用 Dk ( sk )表示第 k階段從狀態sk出發的允許決策集合,顯然有 uk (sk )∈Dk (sk )。

4. 策略

策略是一個按順序排列的決策組成的集合。由過程的第 k 階段開始到終止狀態為止的過程,稱為問題的後部子過程(或稱為k子過程)。由每段的決策按順序排列組成的決策函式序列{uk (sk ),⋯,un (sn )}稱為 k子過程策略,簡稱子策略,記為 pk,n (sk )。即pk,n(sk)={uk(sk),uk+1 (sk+1),⋯,un(sn)}當 k=1時,此決策函式序列稱為全過程的一個策略,簡稱策略,記為 p1, n (s1 )。即 p1,n(S1 )={u1 (s1 ),u2 (s2 ),⋯,un(sn)}在實際問題中,可供選擇的策略有一定的範圍, 此範圍稱為允許策略集合, 用 P 表示。從允許策略集合中找出達到最優效果的策略稱為最優策略。

5. 狀態轉移方程

狀態轉移方程是確定過程由一個狀態到另一個狀態的演變過程。若給定第 k 階段狀態變數sk 的值,如果該段的決策變數uk 一經確定,第k+1階段的狀態變數sk+1的值也就 完全確定。即sk+1的值隨sk和uk的值變化而變化。這種確定的對應關係 , 記為sk+1 =Tk(sk,uk)上式描述了由 k 階段到 k + 1 階段的狀態轉移規律, 稱為狀態轉移方程。 Tk 稱為狀態轉移函式。

6. 指標函式和最優值函式

用來衡量所實現過程優劣的一種數量指標 , 稱為指標函 數。它是定義在全過程和所有後部子過程上確定的數量函式。常用 Vk, n 表示之。即Vk,n =Vk,n(sk,uk,sk+1 ,⋯,sn+1),k=1,2,⋯,n 對於要構成動態規劃模型的指標函式 , 應具有可分離性 , 並滿足遞推關係。 即 Vk, n 可以表示為 sk 、uk 、Vk+ 1 , n 的函式。記為Vk,n(sk,uk,sk+1 ,⋯,sn+1)=ψk[sk,uk,Vk+1,n(sk+1,⋯,sn+1)]在實際問題中很多指標函式都滿足這個性質。常見的指標函式的形式如下:

(1) 過程和它的任一子過程的指標是它所包含的各階段的指標的和

(2) 過程和它的任一子過程的指標是它所包含的各階段的指標的乘積

指標函式的最優值,稱為最優值函式,記為 fk (sk )。它表示從第 k階段的狀態 sk 開始到第 n 階段的終止狀態的過程 , 採取最優策略所得到的指標函式值。在不同的問題中 , 指標函式的含義是不同的 , 它可能是距離、利潤、成本、產品的產量或資源消耗等。

動態規劃的基本思想和基本方程

動態規劃方法的關鍵在於正確地寫出基本的遞推關係式和恰當的邊界條件(簡言之為基本方程)。要做到這一點, 必須先將問題的過程分成幾個相互聯絡的階段, 恰當地選取狀態變數和決策變數及定義最優值函式 , 從而把一個大問題化成一族同型別的子問題 , 然後逐個求解。即從邊界條件開始 , 逐段遞推尋優 , 在每一個子問題的求解中 , 均利用了它前面的子問題的最優化結果,依次進行, 最後一個子問題所得的最優解,就是整個問題的最優解。

在多階段決策過程中,動態規劃方法是既把當前一段和未來各段分開,又把當前效益和未來效益結合起來考慮的一種最優化方法。因 此 , 每段決策的選取是從全域性來考慮的 , 與該段的最優選擇答案一般是不同的。

在求整個問題的最優策略時,由於初始狀態是已知的,而每段的決策都是該段狀態的函式 , 故最優策略所經過的各段狀態便可逐次變換得到 , 從而確定了最優路線。

給一個實際問題建立動態規劃模型時 , 必須做到下面五點 :

(1) 將問題的過程劃分成恰當的階段;
(2) 正確選擇狀態變數 sk ,使它既能描述過程的演變,又要滿足無後效性;

(3) 確定決策變數uk及每階段的允許決策集合Dk(sk);
(4) 正確寫出狀態轉移方程;
(5 ) 正確寫出指標函式Vk, n的關係 , 它應滿足下面三個性質 :
1 是定義在全過程和所有後部子過程上的數量函式;
2 要具有可分離性,並滿足遞推關係。即Vk,n(sk,kk,⋯,sn+1)=ψk[sk,uk,Vk+1,n(sk+1 ,uk+1,⋯,sn+1)]
3 函式ψk (sk ,uk ,Vk+ 1,n )對於變數 Vk+1,n要嚴格單調。

以上五點是構造動態規劃模型的基礎, 是正確寫出動態規劃基本方程的基本要素。而一個問題的動態規劃模型是否正確給出 , 它 集中地反映在恰當的定義最優值函式和正確地寫出遞推關係式及邊界條件上。

動態規劃的最優性原理和最優性定理

20 世紀 50 年代, R .Bellman 等人根據研究一類多階段決策問題, 提出了最優性原理 (有的翻譯成最優化原理) 作為動態規劃的理論基礎。用它去解決許多決策過程的優化問題。長期以來 , 許多動態規劃的著作都用“ 依據最優化原理 , 則有⋯⋯”的提法去處理決策過程的優化問題。人們對用這樣的一個簡單的原理作為動態規劃方法的理論根據很難理解。的確如此 , 實際上 , 這提法是給用動態規劃方法去處理決策過程的優化問題披上神祕的色彩 , 使大家不能正確理解動態規劃方法的本質。

下面將介紹“動態規劃的最優性原理”的原文含義。並指出它為什麼不是動態規劃的理論基礎 , 進而揭示動態規劃方法的本質。其理論基礎是“ 最優性定理”。

動態規劃的最優性原理“: 作為整個過程的最優策略具有這樣的性 質 : 即無論過去的狀態和決策如何 , 對前面的決策所形成的狀態而言 , 餘下的諸決策必須構成最優策略。”簡言之 , 一個最優策略的子策略總是最優的。

但是,隨著人們深入地研究動態規劃, 逐漸認識到: 對於不同型別的問題所建立嚴格定義的動態規劃模型 , 必須對相應的最優性原理給以必要的驗證。就是說 , 最優性原理不是對任何決策過程都普遍成立的 ; 而且“ 最優性原理”與動態規劃基本方程 , 並不是無條件 等價的 , 兩者之間也不存在確定的蘊含關係。 可見動態規劃的基本方程在動態規劃的理論和方法中起著非常重要作用。而反映動態規劃基本方程的是最優性定理 , 它是策略最優性的充分必要條件 , 而最優性原理僅僅是策略最優性的必要條件 , 它是最優性定理的推論。在求解最優策略時 , 更需要的是其充分條件。所以 , 動態規劃的基本方程或者說最優 性定理才是動態規劃的理論基礎。

動態規劃優點:

(1) 易於確定全域性最優解

(2) 能得到一族解,有利於分析結果。

(3) 能利用經驗,提高求解的效率。

缺點:

(1) 到目前為止,沒有一個統一的標準模型可供應用。

(2) 應用的侷限性。由於構造動態規劃模型時,狀態變數必須滿足“無後效性”條件,這條件不僅依 賴於狀態轉移規律,還依賴於允許決策集合和指標函式的結構,是一個相當強的條件。

(3) 在數值求解時,存在“維數障礙”。

相關文章