動態規劃1(老師的講義,我拷下來的呵呵)

2021-04-07 09:14:08 字數 1290 閱讀 1761

——動態規劃的基本模型

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

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

【分析】把從a到e的全過程分成四個階段,用k表示階段變數,第1階段有乙個初始狀態a,兩條可供選擇的支路abl、ab2;第2階段有兩個初始狀態b1、 b2,b1有三條可供選擇的支路,b2有兩條可供選擇的支路……。用dk(xk,xk+1)表示在第k階段由初始狀態xk到下階段的初始狀態xk+1的路徑距離,fk(xk)表示從第k階段的xk到終點e的最短距離,利用倒推方法求解a到e的最短距離。具體計算過程如下:

s1:k=4,有:f4(d1)=3,f4(d2)=4,f4(d3)=3

s2: k=3,有:f3(c1)=min=min=8

f3(c2)=d3(c2,d1)+f4(d1)=5+3=8

f3(c3)=d3(c3,d3)+f4(d3)=8+3=11

f3(c4)=d3(c4,d3)+f4(d3)=3+3=6

s2: k=2,有:f2(b1)=min=min=9

f2(m)=min=min=10

s4:k=1,有:f1(a)=min=min=13     因此由a點到e點的全過程的最短路徑為a—>b2一》c4—>d3—>e。最短路程長度為13。

從以上過程可以看出,每個階段中,都求出本階段的各個初始狀態到過程終點e的最短路徑和最短距離,當逆序倒推到過程起點a時,便得到了全過程的最短路徑及最短距離,同時附帶得到了一組最優結果(即各階段的各狀態到終點e的最優結果)。

在上例的多階段決策問題中,各個階段採取的決策,一般來說是與時間有關的,決策依賴於當前狀態,又隨即引起狀態的轉移,乙個決策序列就是在變化的狀態中產生出來的,故有「動態」的含義,稱這種解決多階段決策最優化問題的方法為動態規劃方法。

根據上例分析和動態規劃的基本概念,可以得到動態規劃的基本模型如下:

(1)確定問題的決策物件。

(2)對決策過程劃分階段。

(3)對各階段確定狀態變數。

(4)根據狀態變數確定費用函式和目標函式。

(5)建立各階段狀態變數的轉移過程,確定狀態轉移方程。

動態規劃的引入1

之前學習過一段時間的動態規劃,但掌握的不夠牢固,實際做題時還是不能靈活的運用,所以打算在寒假對這部分知識進行學習和鞏固,按照洛谷的提單分為五個部分進行學習 1.動態規劃的引入 2.線性狀態動態規劃 3.區間與環形動態規劃 4.樹與圖上的動態規劃 5.狀態壓縮動態規劃 本文題目選自第一部分的練習內容 ...

動態規劃的案例python(1)

一組數中不能相鄰的幾個數選出來組成的和最大 比如 4,1,1,9,1 我們可以選擇 4,1,1 1,9 4,9 但是只有 4,9 比較大 例如 標號i 0 1 2 3 4 5 6 arr 1 2 4 1 7 8 3 設opt i 為最佳選法。我們倒著看,開始是opt 6 如果選6號位的3,arr 1...

1D 1D的動態規劃 單調佇列優化

我僅一屆平凡人 對於某些dp的狀態轉移方程,我們可以寫成一種形式 f i min l i j r i f i min f i minl i j r i 在這種模型中,j取值的範圍都是關於i的一次單調函式val i,j val i,j val i,j 是關於i,j的多項式函式。我們將其稱為1d 1d的...