動態規划的基本模型


動態規划的基本模型

動態規划程序設計是對解最優化問題的一種途徑、一種方法,而不是一種特殊算法。不像前面所述的那些搜索或數值計算那樣,具有一個標准的數學表達式和明確清晰的解題方法。動態規划程序設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,因而動態規划的設計方法對不同的問題,有各具特色的解題方法,而不存在一種萬能的動態規划算法,可以解決各類最優化問題。因此讀者在學習時,除了要對基本概念和方法正確理解外,必須具體問題具體分析處理,以豐富的想象力去建立模型,用創造性的技巧去求解。我們也可以通過對若干有代表性的問題的動態規划算法進行分析、討論,逐漸學會並掌握這一設計方法。

 

多階段決策過程的最優化問題

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

多階段決策過程,是指這樣的一類特殊的活動過程,問題可以按時間順序分解成若干相互聯系的階段,在每一個階段都要做出決策,全部過程的決策是一個決策序列。

 

【題目】最短路徑問題。下圖給出了一個地圖,地圖中的每個頂點代表一個城市,兩個城市間的一條連線代表道路,連線上的數值代表道路的長度。現在想從城市A到達城市E,怎樣走路程最短?最短路程的長度是多少?                     

【算法分析】

AE的全過程分成四個階段,用K表示階段變量,第1階段有一個初始狀態A,有兩條可供選擇的支路A-B1A-B2;第2階段有兩個初始狀態B1B2B1有三條可供選擇的支路,B2有兩條可供選擇的支路……。用DKXIX+1J)表示在第K階段由初始狀態XI到下階段的初始狀態X+1J的路徑距離,FKXI)表示從第K階段的XI到終點E的最短距離,利用倒推的方法,求解AE的最短距離。

具體計算過程如下:

S1K = 4

         F4D1= 3

         F4D2= 4

         F4D3= 3

S2K = 3

         F3C1= MIN{ D3C1D1+ F4D1),D3C1D2+ F4D2}

                         = MIN{ 5+36+4 } = 8

         F3C2= D3C2D1+ F4D1= 5+3 = 8

         F3C3= D3C3D3+ F4D3= 8+3 = 11

         F3C4= D3C4D3+ F4D3= 3+3 = 6

S3K = 2 有   

         F2B1= MIN{ D2B1C1+ F3C1),D2B1C2+ F3C2),

         D2B1C3+ F3(C3)} = MIN{ 1+8,6+8,3+11} = 9

         F2B2= MIN{ D2B2C2+ F3C2),D2B2C4+ F3C4}

                         = MIN{ 8+84+6 } = 10

S4K = 1

         F1A= MIN{ D1AB1+ F2B1),D1AB2+ F2B2}

                       = MIN{ 5+93+10} = 13

因此由A點到E點的全過程最短路徑為AB2C4D3E;最短路程長度為13

從以上過程可以看出,每個階段中,都求出本階段的各個初始狀態到終點E的最短距離,當逆序倒推到過程起點A時,便得到了全過程的最短路徑和最短距離。

在上例的多階段決策問題中,各個階段采取的決策,一般來說是與階段有關的,決策依賴於當前狀態,又隨即引起狀態的轉移,一個決策序列就是在變化的狀態中產生出來的,故有“動態”的含義,我們稱這種解決多階段決策最優化的過程為動態規划程序設計方法。

 

動態規划的基本概念和基本模型構成

 現在我們來介紹動態規划的基本概念。

1. 階段和階段變量:

用動態規划求解一個問題時,需要將問題的全過程恰當地分成若干個相互聯系的階段,以便按一定的次序去求解。描述階段的變量稱為階段變量,通常用K表示,階段的划分一般是根據時間和空間的自然特征來划分,同時階段的划分要便於把問題轉化成多階段決策過程,如例題1中,可將其划分成4個階段,即K = 1234

2. 狀態和狀態變量:

某一階段的出發位置稱為狀態,通常一個階段包含若干狀態。一般地,狀態可由變量來描述,用來描述狀態的變量稱為狀態變量。如例題1中,C3是一個狀態變量。

3. 決策、決策變量和決策允許集合:

在對問題的處理中作出的每種選擇性的行動就是決策。即從該階段的每一個狀態出發,通過一次選擇性的行動轉移至下一階段的相應狀態。一個實際問題可能要有多次決策和多個決策點,在每一個階段的每一個狀態中都需要有一次決策,決策也可以用變量來描述,稱這種變量為決策變量。在實際問題中,決策變量的取值往往限制在某一個范圍之內,此范圍稱為允許決策集合。如例題1中,F3C3)就是一個決策變量。

4.策略和最優策略:

所有階段依次排列構成問題的全過程。全過程中各階段決策變量所組成的有序總體稱為策略。在實際問題中,從決策允許集合中找出最優效果的策略成為最優策略。

5. 狀態轉移方程

前一階段的終點就是后一階段的起點,對前一階段的狀態作出某種決策,產生后一階段的狀態,這種關系描述了由k階段到k+1階段狀態的演變規律,稱為狀態轉移方程。

 

最優化原理與無后效性

  上面已經介紹了動態規划模型的基本組成,現在需要解決的問題是:什么樣的“多階段決策問題”才可以采用動態規划的方法求解。

一般來說,能夠采用動態規划方法求解的問題,必須滿足最優化原理和無后效性原則:

1、動態規划的最優化原理。作為整個過程的最優策略具有:無論過去的狀態和決策如何,對前面的決策所形成的狀態而言,余下的諸決策必須構成最優策略的性質。也可以通俗地理解為子問題的局部最優將導致整個問題的全局最優,即問題具有最優子結構的性質,也就是說一個問題的最優解只取決於其子問題的最優解,而非最優解對問題的求解沒有影響。在例題1最短路徑問題中,AE的最優路徑上的任一點到終點E的路徑,也必然是該點到終點E的一條最優路徑,即整體優化可以分解為若干個局部優化。

2、動態規划的無后效性原則。所謂無后效性原則,指的是這樣一種性質:某階段的狀態一旦確定,則此后過程的演變不再受此前各狀態及決策的影響。也就是說,“未來與過去無關”,當前的狀態是此前歷史的一個完整的總結,此前的歷史只能通過當前的狀態去影響過程未來的演變。在例題1最短路徑問題中,問題被划分成各個階段之后,階段K中的狀態只能由階段K+1中的狀態通過狀態轉移方程得來,與其它狀態沒有關系,特別與未發生的狀態沒有關系,例如從CiE的最短路徑,只與Ci的位置有關,它是由Di中的狀態通過狀態轉移方程得來,與E狀態,特別是ACi的路徑選擇無關,這就是無后效性。

由此可見,對於不能划分階段的問題,不能運用動態規划來解;對於能划分階段,但不符合最優化原理的,也不能用動態規划來解;既能划分階段,又符合最優化原理的,但不具備無后效性原則,還是不能用動態規划來解;誤用動態規划程序設計方法求解會導致錯誤的結果。

感謝各位與信奧一本通的鼎力相助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM