自適應動態規划(ADP)基礎


1 基礎概念

動態規划是利用最優性原理來解決最優和最優控制問題的一個非常有用的工具。最優性原則可以表示為:“最優策略具有這樣的性質:無論初始狀態和初始決策是什么,其余決策都必須構成與第一個決策產生的狀態相關的最優策略。”

動態規划有幾個方面。人們可以考慮離散時間系統或連續時間系統,線性系統或非線性系統,時不變系統或時變系統,確定性系統或隨機系統,等等。

1.1 舉例說明

A.非線性離散時間(時變)動態(確定性)系統

(1)系統定義

\[x(k + 1) = F[x(k),u(k),k],k = 0,1, \cdots (1) \]

其中\(x \in {\mathbb{R}^n}\)代表系統的狀態向量,\(u \in {\mathbb{R}^n}\)表示控制動作,\(F\)是系統函數。

(2)代價函數的定義(用於衡量控制控制系統的性能好壞,越小越好)

\[J(x(i),i)= \sum_{k=i}^{ \infty }{ \gamma ^{k-i}U[x(k),u(k),k] }(2) \]

其中\(U\)表示效用函數,\(\gamma\)為折扣因子,其取值范圍為,\(0<\gamma\leq 1\)這里代價函數依賴於初始時間\(i\)和初始狀態\(x(i)\)

(3)動態規划的目標

選擇一個控制序列\(u(k),k=i,i+1,.....\),使得代價函數\(J\)最小化

(4)貝爾曼最優方程

根據貝爾曼最優性原理,可以得出\(k\)時刻的最優代價等於:

\[J^\star(x(k))=\min_{u(k)} (U(x(k),u(k))+\gamma J^\star(x(k+1)))(3) \]

\(k\)時刻的最優控制\(u^\star(k)\)是達到上述最小值的\(u(k)\)

\[u^\star(k)=\arg min_{u(k)}\{U(x(k),u(k))+\gamma J^*(x(k+1))\}(4) \]

方程(3)是離散時間系統的最優性原則。它的重要性在於,它允許通過回溯時間來一次優化一個控制向量。

B.在非線性連續時間的情況下

(1)系統定義

\[\dot{x}(t)=F[x(t),u(t),t],t\ge t_0 (5) \]

(2)代價函數

\[J(x(t))=\int_{t}^{\infty}U(x( \tau),u(\tau))d\tau(6) \]

(3)最優代價滿足哈密頓-雅可比-貝爾曼方程(Hamilton-Jacobi-Bellman Equation)

\[-\frac{\partial J^\star(x(t))}{\partial t}=\min_{u\in U}(U(x(t),u(t),t)+(\frac{\partial J^\star(x(t))}{\partial x(t)}\big)^T \times F(x(t),u(t),t)) \]

\[=U(x(t),u^\star(t),t)+\big(\frac{\partial J^\star(x(t))}{\partial x(t)}\big)^T \times F(x(t),u^\star(t),t))(7) \]

方程(3)和(7)稱為動態規划的最優性方程,是實現動態規划的基礎。

如果系統采用線性動力學建模,且在狀態和控制中需要最小化的代價函數是二次的,則最優控制是狀態的線性反饋,其中增益通過求解標准Riccati方程獲得。

另一方面,當系統采用非線性動力學模型或代價函數為非二次型時,最優狀態反饋控制將依賴於Hamilton-Jacobi-Bellman (HJB)方程的解,該方程一般為非線性偏微分方程或差分方程。

然而由於最優性方程求解中需要反向數值過程,即“維數詛咒”,通常難以求解。近年來隨着動態規划的發展,通過建立一個“Critic”網絡模型來近似動態規划中的成本函數,從而解決上述問題,這種方法被稱為自適應動態規划算法(Adaptive Dynamic Programming)。

2 ADP的基礎結構

為了實現ADP算法,Werbos提出了一種利用近似動態規划公式來繞過這一數值復雜性的方法。他的方法是用一個離散的公式來近似原始問題,采用基於神經網絡的自適應評判方法求解自適應規划公式。ADP的主要思想如下圖所示。他提出了兩個基本版本,即啟發式動態規划(heuristic dynamic programming,HDP)和雙啟發式規划(dual heuristic programming,DHP)。

2.1 啟發式動態規划(HDP)

HDP是一種估計代價函數的方法。估計給定策略的成本函數只需要從瞬時效用函數\(U\)中獲取樣本,而要找到與最優策略相對應的成本函數則需要環境模型和瞬時報酬模型。

在HDP方法中,Critic網絡輸出的是成本函數(2)的估計\(\hat{J}\),這是通過最小化以下隨時間變化的誤差來實現的

\[||E_h||=\sum_{k}E_h(k)=\frac{1}{2}\sum_k[\hat{J}(k)-U(k)-\gamma \hat{j}(k+1)]^2(8) \]

其中\(\hat{J}(k)=\hat{J}[x(k),u(k),k,W_c]\)\(W_c\)表示Critic網絡的參數,當在所有的時刻\(k\)都有\(E_h=0\)表示:

\[\hat{J}(k)=U(k)+\gamma \hat{J}(k+1)(9) \]

並且和方程2一樣\(\hat{J}(k)=\sum_{i=k}^{\infty} \gamma^{i-k}U(i)\)

2.2 雙重啟發式規划(DHP)

DHP是一種估計代價函數梯度的方法,而不是代價\(J\)本身。為此,需要一個函數來描述瞬時代價函數相對於系統狀態的梯度。在DHP的網絡結構中,action網絡和HDP的作用相同,都是生成控制信號,但是Critic網絡不同,生成代價函數相對於狀態的梯度。

Critic網絡的訓練比HDP復雜,因為我們需要考慮所有相關的反向傳播路徑。它的訓練是通過最小化下面的誤差來實現的。

\[||E_D||=\sum_{k}E_D(k)=\frac{1}{2}\sum_{k}(\frac{\partial \hat{J}(k)}{\partial x(k)}-\frac{\partial U(k)}{\partial x(k)}-\gamma \frac{\partial \hat{J}(k+1)}{\partial x(k)})(10) \]

其中\(\partial \hat{J}(k)/\partial x(k)=\partial \hat{J}[x(k),u(k),k,W_c]/\partial x(k)\)\(W_c\)表示的是Critic網絡的參數。當在所有時刻\(k\)都有\(E_D\)=0表示

\[\frac{\partial \hat{J}(k)}{\partial x(k)}=\frac{\partial U(k)}{\partial x(k)}+\gamma \frac{\partial J(k+1)}{\partial x(k)}(11) \]

3 ADP的發展

Weibos進一步提出了兩種不同結構的ADP算法,一種為action-dependent HDP(ADHDP)又被稱為Q-learning算法,一種為ADDHP。在這兩種算法中,控制信號也成為了Critic網絡的輸入。在此基礎上Prokhorov等人提出了兩種新的結構:全局二次啟發式規划(Globalized DHP,GDHP)和控制依賴全局二次啟發式規划(Action dependent globalized DHP,ADGDHP)。其特點是Critic網絡不但估計系統的代價函數本身同時也估計代價函數的梯度。

Notes:所有ADP結構都能實現相同的功能,即獲得最優控制策略,但計算精度和運行時間各不相同。一般來說,HDP的計算量較低,但計算精度較低;而GDHP精度較好,但計算過程耗時較長。

3.1 Forward-in-time approach and Backward-in-time approach

(1) Forward-in-time approach

在前向時間算法中,公式(8)中的\(\hat{J}(k)\)作為Critic網絡的輸出,並且選擇\(U(k)+\gamma \hat{J}(k+1)\)作為訓練目標。Note:\(\hat{J}(k)\)\(\hat{J}(k+1)\)是在不同的時間實例中使用狀態變量獲得。

(2) Backward-in-time approach

在后向時間算法中,公式(8)中的\(\hat{J}(k+1)\)作為Critic網絡的輸出去訓練,並且選擇\((\hat{J}(k)-U(k))/\gamma\)作為訓練目標。

3.2 single network adaptive Critic(SNAC)

SNAC算法消除了Action網絡,作為結果,SNAC算法擁有三個潛在的優勢:更簡單的結構,更小的計算量以及消除了動作網絡而沒有近似誤差。SNAC方法適用於一類廣泛的非線性系統,其中最優控制(平穩)方程可以用狀態和協狀態變量顯式表示。


免責聲明!

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



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