最適制御問題: 最適制御問題の数値解法
0. はじめに
先日,6章の内容をまとめた (最適制御問題: 動的計画法と最小原理).7章の数値解法のあたりでかなり詰まってしまっていた.今回は他の文献も用いてまとめたいと思う.
理解が間違えている箇所もあるかもしれないので,ミスに気付いたら修正したいと思っている.
0.1. 目次
1. 導入
ここで扱う最適制御問題は,以下の形式をしているものとする.
例えば,ロボットがトルクや角度に関する制約を満たしながらある所望の終端状態になるように動作するというものはこのような問題として記述される.
1.1. 最適制御のアプローチ
最適制御問題の数値解法として,主に以下の3つのアプローチがある1.
- Dynamic programming
- Indirect methods
- Direct methods
Dynamic programming (動的計画法)
- 最適性の原理を使用して任意の時刻
および任意の初期状態 に対するフィードバック制御を再帰的に計算する. - 連続時間の場合,Hamilton-Jacobi-Bellman (HJB) 方程式という状態空間上の偏微分方程式が導かれる.
- 近似的に数値計算する方法はあるが,「次元の呪い」によって小さい次元に制限される.
Indirect methods (間接法)
- 無限次元の最適化の必要条件を使用して,常微分方程式の初期値境界値問題を導出する.
- “first optimize, then discretize”
- 変分法
- 初期値境界値問題を解くのが難しい.
Direct methods (直接法)
- 無限次元の最適化問題を有限次元の非線形計画問題に変換し,非線形計画問題を数値的に解く.
- “first discretize, then optimize”
- 制御軌道の有限次元のパラメータ化に基づく.
実世界への実装ではdirect methodsが広く用いられている.次節でdirect methodsについて簡単にまとめる.
2. 直接法
直接法は,無限次元の最適制御問題 (1) を有限次元の非線形計画問題 (NLP)
Sequential approach
- 状態の軌道
は制御入力 と初期状態 の陰関数とみなされる. - (例) Direct single shooting. ODE solverによるforward simulation.
- Simulationとoptimizationのiterationsは順番に進む.
- 離散化された制御入力が得られる.
Simultaneous approach
- 状態の軌道
をNLP内の最適化変数として記述し,ODEモデルを表す等式制約を追加する. - Simulationとoptimizationは同時に進行する.
- 制御入力の軌道に対応する状態の軌道がNLPの解として得られる.
- (例) Direct collocation, direct multiple shooting.
次に,直接法の代表的な3つの手法,(i) direct single shooting, (ii) direct collocation, (iii) direct multiple shooting の考え方についてまとめる.
2.1. Direct Single Shooting
Single shootingではまず,制御入力を離散化する.評価区間

Semi-infinite problemにならないようにするために,Path constraintsも離散化することを考える.例えば,
以上をまとめると,以下のような有限次元の非線形計画問題を得る.
この問題は有限次元の最適化ソルバで解くことができる.例えば,IPOPT2 (主双対内点法という方法を利用した連続最適化問題を解くライブラリ) などを用いることができる.
Direct single shootingの利点
- 最先端のODEまたはDAEソルバーを使用できること.
- 大規模なODEまたはDAEシステムでも最適化の自由度が少ないこと.
- 必要なことが制御入力の自由度の初期推定のみであること.
Direct single shootingの欠点
- 初期化で状態の軌道
の知識を使用できない. - ODEの解
が の非線形性に依存する可能性がある.
実装の容易さなどからsingle shooting approachは工学的応用の観点ではよく用いられる.
2.2. Collocation
ここでは,collocationの考え方について簡単にまとめる.まず,制御入力と状態を離散化する.特に,制御入力が各
このとき,無限次元のODE
ここでは簡単のため,中間変数
次に,collocation intervals内の積分を近似する.例えば,
この問題は内点法を用いたソルバで解くことができる.効率的なNLPの手法では通常,反復が実行可能に保たれないので,離散化されたODE modelの方程式はNLPの解でのみ満たされる.つまり,simulationとoptimizationが同時に進行する.
Collocation methodsの利点
- 非常にスパースなNLPが得られること.
- 初期化で状態軌道
の知識を使用できること. - 局所収束が高速であること.
- 不安定なシステムを扱うことができること.
- 状態と終端制約の処理が容易であること.
Collocation methodsの欠点
- 離散化の誤差を適応的に制御しようとすると,再度grid化を行う必要があり,NLPの次元を変更する必要があること.
- そのため,collocationのapplicationでは適切な離散化誤差の制御の問題に対処しないことがよくある.
Collocation methodsは実用的な最適制御問題にも使われている.
2.3. Direct Multiple Shooting
Direct multiple shooting methodは,simultaneous method (e.g. collocation) とsingle shootingの利点を組み合わせ,adaptive, error controlled ODE solversを使えるようにしたものである.
まず,制御入力を
次に,各時間区間

この初期値問題を数値的に解くことによって,軌道
人工的な変数
すべての変数を
Direct multiple shootingは,sequential methodとsimultaneous methodの利点を両方持つ.オフラインの最適制御問題の数値計算の他,オンライン最適化やMPCにも応用されている.
3. 実装
以下の例題を数値的に解く.
CasADi3 を用いてdirect single shooting methodを実装した.実装したコードは最適制御問題: 直接法 (プログラム) に載せている.
実行後得られた最適制御および状態を以下に示す.
4.手書きメモ
非線形最適制御問題入門4の7章では,最適制御問題の数値解法がいくつか紹介されている.
数値解法 | 長所 | 短所 | 適する用途 |
---|---|---|---|
勾配法 | 最適解近傍での収束が遅い | 最適解のおおよその様子を手軽に知りたいとき | |
シューティング法 | 未知量が有限次元 | 計算が発散しやすい | 良好な初期推定解が選べるとき |
入力関数のニュートン法 | 最適解近傍での収束が速い | 最適解を精度よく求めたいとき | |
動的計画法 | 状態フィードバック制御が得られる | 状態の次元が高いと記憶量が膨大 | 状態の次元が低いか,狭い範囲だけ考慮すればよいとき |
以下に手書きメモを掲載する.
5.まとめ
この記事では,最適制御の数値解法について簡単にまとめ,例題を数値的に解いた.理解が間違えている箇所があるかもしれないので,もう一度確認したいと思っている.
-
M. Diehl, et al., “Fast direct multiple shooting algorithms for optimal robot control,” Fast motions in biomechanics and robotics, pp. 66-93, Springer, 2006. ↩︎
-
A. Wächter and L. T. Biegler, “On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming,” Mathematical Programming vol. 106, no. 1, pp. 25-57, 2006 (preprint) ↩︎
-
J. A. E.Andersson, et al, “CasADi - A software framework for nonlinear optimization and potimal control,” Mathematical Programming Computation, In Press, 2018. ↩︎
-
大塚,非線形最適制御問題入門,コロナ社,2011. ↩︎