内点法

内点法(ないてんほう、: internal point method)とは、連続最適化問題アルゴリズムであり、カーマーカー法に触発されて生まれた多くの手法の総称である。実行可能領域の内部を経由して、最適解に収束するのが特徴である。また、大規模問題に対しては計算効率が良い点や非線型問題にも対応できる点で、シンプレックス法よりも優れているといえる。内点法は、点列を生成する方法によって、アフィン変換法、ポテンシャル減少法、パス追跡法などに分類される。また、扱う問題によっては、与えられた問題を直接扱う方法(主内点法: primal interior point method)、その双対問題を扱う方法(双対内点法: dual interior point method)、主問題と双対問題を同時に解く方法(主双対内点法: primal-dual interior point method)に分けられる。

主双対内点法による非線型最適化

主双対内点法のアイディアは単純で、制約付き非線型最適化問題にも応用が可能である。ここでは単純のために制約式が全て不等式で与えられる非線型最適化問題について考える。

最小化: f ( x ) {\displaystyle f(x)}
条件: c ( x ) 0 , x R n , c ( x ) R m         ( 1 ) {\displaystyle c(x)\geq 0,x\in \mathbb {R} ^{n},c(x)\in \mathbb {R} ^{m}~~~~(1)}

この最適化問題の対数バリア関数は次のようになる。

B ( x , μ ) = f ( x ) μ i = 1 m ln ( c i ( x ) )         ( 2 ) {\displaystyle B(x,\mu )=f(x)-\mu \sum _{i=1}^{m}\ln(c_{i}(x))~~~~(2)}

ここで μ {\displaystyle \mu } は正のスカラーで、時に「バリア・パラメータ」とも呼ばれる。この μ {\displaystyle \mu } が0に収束していくと、 B ( x , μ ) {\displaystyle B(x,\mu )} が最適解に収束していく。

前述のバリア関数の勾配は

g b = g μ i = 1 m 1 c i ( x ) c i ( x )         ( 3 ) {\displaystyle g_{b}=g-\mu \sum _{i=1}^{m}{\frac {1}{c_{i}(x)}}\nabla c_{i}(x)~~~~(3)}

となる。ただし、 g {\displaystyle g} は元の関数 f ( x ) {\displaystyle f(x)} の勾配であり、 c i {\displaystyle \nabla c_{i}} c i {\displaystyle c_{i}} の勾配を表す。

主値 x {\displaystyle x} に加えて、双対値 λ R m {\displaystyle \lambda \in \mathbb {R} ^{m}} をラグランジュ乗数として導入する。

i = 1 , , m , c i ( x ) λ i = μ         ( 4 ) {\displaystyle \forall i=1,\ldots ,m,c_{i}(x)\lambda _{i}=\mu ~~~~(4)}

この条件は時に摂動相補性条件とも呼ばれる。式(4)を式(3)に適用することにより以下を得る。

g A T λ = 0         ( 5 ) {\displaystyle g-A^{T}\lambda =0~~~~(5)}

ただし、行列 A {\displaystyle A} は制約 c ( x ) {\displaystyle c(x)} ヤコビ行列である。

式(5)が表しているのは関数 f ( x ) {\displaystyle f(x)} の勾配が制約式の勾配により張られる部分空間の中に存在するということである。このとき小さな μ {\displaystyle \mu } による摂動相補性条件は、最適解が c i ( x ) = 0 {\displaystyle c_{i}(x)=0} の境界付近に存在するか、もしくは制約 c i ( x ) {\displaystyle c_{i}(x)} の勾配 g {\displaystyle g} がほとんど0であるということを表している。

式(4)および式(5)に対してニュートン法を用いて ( x , λ ) {\displaystyle (x,\lambda )} を更新していくことを考えると、その更新幅 ( p x , p λ ) {\displaystyle (p_{x},p_{\lambda })} は次の線型方程式の解として与えられる。

( W A T Λ A C ) ( p x p λ ) = ( g + A T λ μ 1 C λ ) {\displaystyle {\begin{pmatrix}W&-A^{T}\\\Lambda A&C\end{pmatrix}}{\begin{pmatrix}p_{x}\\p_{\lambda }\end{pmatrix}}={\begin{pmatrix}-g+A^{T}\lambda \\\mu 1-C\lambda \end{pmatrix}}}

ただし行列 W {\displaystyle W} は関数 B ( x , μ ) {\displaystyle B(x,\mu )} ヘッセ行列であり、対角行列 Λ {\displaystyle \Lambda } λ {\displaystyle \lambda } を対角成分に持つ。また、 C {\displaystyle C} C i i = c i ( x ) {\displaystyle C_{ii}=c_{i}(x)} なる対角行列である。

式(1), (4), および μ > 0 {\displaystyle \mu >0} から

λ 0 {\displaystyle \lambda \geq 0}

がそれぞれのステップに課される。この条件を保つために、適切なステップ更新幅 α {\displaystyle \alpha } を選び、

( x , λ ) ( x + α p x , λ + α p λ ) {\displaystyle (x,\lambda )\rightarrow (x+\alpha p_{x},\lambda +\alpha p_{\lambda })}

とすることで、最適解に向かって収束していく。

実装

参考文献

  • 福島雅夫『数理計画入門』朝倉書店、1996年。ISBN 978-4254280043。 
  • 福島雅夫『非線形最適化の基礎』朝倉書店、2001年。ISBN 978-4254280012。 
非線形(無制約)
… 関数 
勾配法
収束性
準ニュートン法
その他の求解法
ヘッセ行列
  • 最適化におけるニュートン法(英語版)
The graph of a strictly concave quadratic function is shown in blue, with its unique maximum shown as a red dot. Below the graph appears the contours of the function: The level sets are nested ellipses.
Optimization computes maxima and minima.
非線形(制約付き)
一般
微分可能
凸最適化
凸縮小化
  • 切除平面法(英語版、デンマーク語版、ドイツ語版、スペイン語版)
  • 簡約勾配法
  • 劣勾配法(英語版)
線型 および
二次
内点法
ベイズ-交換
  • 単体法
  • 改訂シンプレックス法(英語版)
  • 十字法(英語版)
  • レムケの主ピボット操作法(英語版)
組合せ最適化
系列範例
(Paradigms)
グラフ理論
最小全域木
最大フロー問題
メタヒューリスティクス
  • カテゴリ(最適化 • アルゴリズム) • ソフトウェア(英語版)