目錄
1 多階段決策和最優化原理
- 對於此類問題有明顯的階段性,即系統可以分為若干個階段,每個階段系統有一個狀態,如第k個階段狀態為\(x_k\),每個狀態都有一個決策集合\(Q_k(x_k)\),我們在其中選擇一個 \(q_k \in Q_k(x_k)\),則狀態由\(x_k\)轉移到\(x_{k+1}=T_k(x_k,q_k)\),並得到收益\(R_k(x_k,q_k)\),系統的目標是在每個階段選擇一個收益,使得所有階段的總收益達到最大。
1.1 用遞推法求最短路
- 問題描述


- 問題求解
定義\(f_k(u,g)\)為從\(u\)經過\(k\)條邊走到\(g\)的最短路長度,則有如下迭代關系,原問題轉化為求\(f_n(a,g)\),其中\(a\)是起點,\(g\)是終點,\(n\)是階段數。
\[\begin{cases} f_k(u,g)=min_{v\in N^+(u)} \{l(u,g)+f_{k-1}(v,g)\} & k\ge2 \\ f_1(u,g)=l(u,g) & k=1 \end{cases}\]


1.2 資源分配問題
- 問題描述

- 問題求解
設\(f_k(x)\)表示當前資源總量為\(k\)再經過\(k\)個階段投放完成目標可以得到的最大收益。則有下列迭代關系,原問題即求\(f_n(x)\)
\[\begin{cases} f_k(x)=max_{0\le y\le x}\{g(y)+h(x-y)+f_{k-1}(ay+b(x-y)) \}& k\ge2 \\ f_1(x)=max_{0\le y\le x}\{g(y)+h(x-y)\} & k=1 \end{cases} \]


1.3 前向優化和后向優化
- 前邊的兩個問題都是后向優化思想,即在建模的時候就采用還剩kge階段到達最終狀態的最優解,則在迭代過程中已知后k個階段的最優解,自然可以推后k+1個階段的最優解,一直向前推,最后得到經過n個階段到達最終狀態的最優解。

- 前向優化思想與后向優化思想正好相反,它是已知前k個決策,在此基礎上推出第k+1個決策,最終到達最終狀態。



- 資源分配問題的前向優化解法涉及到解方程組,復雜,這里不在展開,網上應該能搜到。
2 定期多階段決策問題
2.1 背包問題
- 問題描述

- 問題求解


- 時間復雜度:\(O(nW)\),這個時間復雜度不是多項式的,原因在於W是問題輸入中的一個整數。
2.2 最長公共子序列問題
- 問題描述

- 問題求解


- 時間復雜度: 以上動態規划法(LCS問題)的時間復雜度為\(O(mn)\)。這是一個多項式的時間復雜度,表明LCS問題是多項式時間可解的。
2.3 旅行售貨員問題
- 問題描述

- 問題求解

- 舉例


- 復雜度

3 不定期多階段決策問題
3.1 一般圖上的最短路問題
- 動態規划法





- Flody-Warshall算法




3.2 單匯點最短路問題

- 函數空間迭代法

- 策略空間迭代法


- 例子









4 連續變量的多階段決策問題
4.1 資源分配問題
