微分動的計画法

提供: testwiki
ナビゲーションに移動 検索に移動

微分動的計画法(びぶんどうてきけいかくほう、テンプレート:Lang-en-short、略称:DDP)は軌道最適化のために用いられる最適制御アルゴリズムの一つである。本アルゴリズムは1966年にテンプレート:仮リンクによって紹介され[1]、その後JacobsonとMayneによるその名の由来となった著作の中で分析された[2]。このアルゴリズムはシステムのダイナミクスとコスト関数を局所的な二次形式によってモデル化し、2次収束を示す。また、Pantojaのstep-wise Newton法とも密接に関連している[3][4]

有限horizon離散時間問題

次式のダイナミクスを考える。

テンプレート:NumBlk

これは制御入力 𝐮 の下での状態 𝐱 の時刻 i から i+1 までの時間発展を表している。  総コスト J0 は、ランニングコスト  と最終コスト f の和として与えられ、状態 𝐱 と終端時刻までに適用する制御系列 𝐔{𝐮0,𝐮1,𝐮N1} によって定まる:

J0(𝐱,𝐔)=i=0N1(𝐱i,𝐮i)+f(𝐱N),

ここで 𝐱0𝐱 であり、時刻 i>0 における状態 𝐱i は式テンプレート:EquationNoteによって与えられる。この最適制御問題の解は、上式を最小化する制御系列 𝐔*(𝐱)argmin𝐔J0(𝐱,𝐔) である。 これに対し、ありえる初期状態すべてを考えるのではなく、特定の初期状態 𝐱0 に対して最適な入力系列 𝐔*(𝐱) を求めるのが軌道最適化である。

動的計画法

今、𝐔i を制御入力の部分系列 𝐔i{𝐮i,𝐮i+1,𝐮N1} とし、残余コスト(cost-to-go)Ji を i から N までの部分和として定義する:

Ji(𝐱,𝐔i)=j=iN1(𝐱j,𝐮j)+f(𝐱N).

最適な残余コスト、または時刻 i での価値関数は、以下のような制御系列による最小化で与えられる:

V(𝐱,i)min𝐔iJi(𝐱,𝐔i).

V(𝐱,N)f(𝐱N) を出発点として、時間を遡る方向に制御入力を一ステップ毎に最小化することにより、動的計画法の原理は全体の最小化に必要な計算量を削減する。

テンプレート:NumBlk

これがベルマン方程式である。

微分動的計画法 (DDP)

微分動的計画法(DDP)では、新しい制御系列を計算するために、ノミナルな軌道に沿って逆方向パスの計算を行い、次に(得られた制御系列のもとでの)新しい軌道とその評価値を得るために順方向パスの計算を行うことを繰り返す。逆方向パスの計算から始めよう。

テンプレート:EquationNoteの min[] 演算子の引数

(𝐱,𝐮)+V(𝐟(𝐱,𝐮),i+1)

に関して、その値の変分を時刻 i の状態-入力ペア (𝐱,𝐮) 周辺でとったものを Q としよう:

Q(δ𝐱,δ𝐮)(𝐱+δ𝐱,𝐮+δ𝐮)+V(𝐟(𝐱+δ𝐱,𝐮+δ𝐮),i+1)(𝐱,𝐮)V(𝐟(𝐱,𝐮),i+1)

これを、二次形式に展開する。

テンプレート:NumBlk

ここで用いる Q の表記は、森本淳(ATR脳情報研究所)の記法の変形版であり、添字は偏微分の分母を示している[5]

見やすくするため、添字の i を省略し、次の時間ステップの変数は VV(i+1)のようにプライムをつけて示そう。テイラー展開により係数は以下となる。

Q𝐱=𝐱+𝐟𝐱𝖳V'𝐱Q𝐮=𝐮+𝐟𝐮𝖳V'𝐱Q𝐱𝐱=𝐱𝐱+𝐟𝐱𝖳V'𝐱𝐱𝐟𝐱+V𝐱𝐟𝐱𝐱Q𝐮𝐮=𝐮𝐮+𝐟𝐮𝖳V'𝐱𝐱𝐟𝐮+V'𝐱𝐟𝐮𝐮Q𝐮𝐱=𝐮𝐱+𝐟𝐮𝖳V'𝐱𝐱𝐟𝐱+V'𝐱𝐟𝐮𝐱.

最後の三つの方程式に現れる最終項はベクトルとテンソルの縮約(contraction)を表す。 二次形式で近似された式テンプレート:EquationNote を入力δ𝐮に関して最小化することで次式を得る。

テンプレート:NumBlk

これにより、オープンループ項 𝐤=Q𝐮𝐮1Q𝐮 とフィードバック項 𝐊=Q𝐮𝐮1Q𝐮𝐱 が与えられる。この結果を式テンプレート:EquationNoteに代入することにより 時間 i における価値関数が得られる。

ΔV(i)=12Q𝐮Q𝐮𝐮1Q𝐮V𝐱(i)=Q𝐱Q𝐮Q𝐮𝐮1Q𝐮𝐱V𝐱𝐱(i)=Q𝐱𝐱Q𝐱𝐮Q𝐮𝐮1Q𝐮𝐱.

i=N1 から i=1 に向かって、再帰的に価値関数 V(i) の局所的な二次形式のモデルと、制御の修正量 {𝐤(i),𝐊(i)} を求めるのが逆方向パスの計算である。 先に述べたように、価値関数の初期値は V(𝐱,N)f(𝐱N) である。逆方向パスの完了後、新しい軌道にそって順方向パスの計算を行う。 

𝐱^(1)=𝐱(1)𝐮^(i)=𝐮(i)+𝐤(i)+𝐊(i)(𝐱^(i)𝐱(i))𝐱^(i+1)=𝐟(𝐱^(i),𝐮^(i))

以上の逆方向パスと順方向パスの計算を収束するまで繰り返す。

正則化と直線探索

微分動的計画法は、ニュートン法と同様に、二次収束を示すアルゴリズムである。そのため、最小値に向けて大きな修正ステップが発生するため、収束を保証するために、正則化および/または直線探索が必要となる[6][7]

DDPの文脈における正則化とは、式テンプレート:EquationNoteの行列 Q𝐮𝐮 の正定値性を保証することである。DDPにおける直線検索は、オープンループ制御修正量 𝐤 をスカラー 0<α<1 でスケーリングすることに対応する。

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

関連項目

外部リンク