楕円体法 (だえんたいほう、英 : ellipsoid method )とは数理最適化 において凸集合 内での凸関数 最小化 問題に対する反復法 の一種である。楕円体法では各反復において楕円体 を以前の反復より体積が小さくなるように生成し、凸関数 の最小解集合を求める。
楕円体は有理数の入力データによる線形計画問題 に対する多項式時間で解くアルゴリズム となる。
歴史
楕円体法には長い歴史が存在する。楕円体法は反復法 としてナウム・ショール によって始めて提案された。1972年には実数の凸最小化 問題に対する近似アルゴリズムとしてアルカディ・ネミロフスキ (英語版 ) とデビッド・B・ユーディンによって研究されていた。
有理数入力データの線形計画問題に対する楕円体法としてはレオニード・カチヤン (英語版 ) によって多項式時間で解くアルゴリズムとして提案・証明された。当時まで主に研究されていた単体法 に関しては実用上では高速に動く解法であったが、理論的には指数時間アルゴリズムであったため、理論的に重要な成果であった。このことから、任意の入力に対して多項式時間を保証する楕円体の登場は大きな影響を与えた。
多項式時間を保証する線形計画問題に対するアルゴリズムがカチヤンの研究によって初めて示された。しかしながら実用上における楕円体法は計算速度が遅く、研究者の関心は低かった。にもかかわらず、後の線形計画問題に関する研究に大きな影響を与え、より実用的で多項式時間を保証する解法の提案につながった。特に初の多項式時間を保証する線形計画問題に対する内点法 のカーマーカー法 は実用上も楕円体法よりも高速で実行し、最悪時間計算量も楕円体法よりも勝る。
楕円体法は最悪時において制約の行数に依らず問題の次元・サイズにのみ依存する計算量 を持つことから、組合せ最適化 理論において重要な役割を長年果たしてきた[ 1] [ 2] [ 3] [ 4] 。21世紀になり楕円体法と同等の計算量を持つ内点法も登場するようになった[要出典 ] 。
説明
凸最適化問題は以下の式から構成される。
凸関数
f
0
(
x
)
:
R
n
→
R
{\displaystyle f_{0}(x):\mathbb {R} ^{n}\to \mathbb {R} }
,(n 個の変数をもつ)ベクトル
x
{\displaystyle x}
において
f
0
(
x
)
{\displaystyle f_{0}(x)}
を最小化する。
凸の不等式制約
f
i
(
x
)
⩽
0
{\displaystyle f_{i}(x)\leqslant 0}
。ただし、関数
f
i
{\displaystyle f_{i}}
は凸である; これらの制約は凸集合
Q
{\displaystyle Q}
を構成する。
線型の等式制約
h
i
(
x
)
=
0
{\displaystyle h_{i}(x)=0}
初期の楕円体
E
(
0
)
⊂
R
n
{\displaystyle {\mathcal {E}}^{(0)}\subset \mathbb {R} ^{n}}
を
E
(
0
)
=
{
z
∈
R
n
:
(
z
−
x
0
)
T
P
(
0
)
−
1
(
z
−
x
0
)
⩽
1
}
{\displaystyle {\mathcal {E}}^{(0)}=\left\{z\in \mathbb {R} ^{n}\ :\ (z-x_{0})^{T}P_{(0)}^{-1}(z-x_{0})\leqslant 1\right\}}
と最小解
x
∗
{\displaystyle x^{*}}
が含まれるように定義する。ただし、
P
(
0
)
≻
0
{\displaystyle P_{(0)}\succ 0}
とし、
x
0
{\displaystyle x_{0}}
は楕円体
E
{\displaystyle {\mathcal {E}}}
の中心とする。
最後に凸集合
Q
{\displaystyle Q}
に対する分離オラクル (英語版 ) の存在性について説明する。
点
x
∈
R
n
{\displaystyle x\in \mathbb {R} ^{n}}
が与えられたとして、オラクルは二つの回答のうち一つを返す[ 5] :
点
x
{\displaystyle x}
が
Q
{\displaystyle Q}
に含まれる、あるいは -
点
x
{\displaystyle x}
が
Q
{\displaystyle Q}
に含まれない、加えて、点
x
{\displaystyle x}
と実行可能集合
Q
{\displaystyle Q}
を分離する超平面が存在する。すなわちベクトル
c
{\displaystyle c}
によって任意の
y
∈
Q
{\displaystyle y\in Q}
に対して
c
⋅
x
<
c
⋅
y
{\displaystyle c\cdot x<c\cdot y}
を満たす。楕円体法は各反復ごとに以下のどちらかを出力する:
点は多面体
Q
{\displaystyle Q}
(実行可能な点)に含まれる、あるいは -
Q
{\displaystyle Q}
は空である。
不等式制約付き最小化問題の実行可能点において目的関数が常にゼロをとるとき、この問題は単に実行可能解を見つける問題と等価である。線形計画問題は線形の許容性判定問題に書き換えることができる(意味としては目的関数がゼロで制約条件に不等式あるいは等式の制約が存在する問題である。)。書き換える方法として線形計画問題の主問題と双対問題を組み合わせて一つの問題として扱う方法が挙げられる。 これは主実行可能解と双対実行可能解には弱双対性 が成り立っていることから、主実行可能解における目的関数値と双対実行可能解における目的関数値の差が0以上であるという制約を新たに加える[ 6] :84 。もう一つの方法としては線形計画問題の目的関数を新たな制約として扱い、二分探索によって最適値を見つける方法が挙げられる[ 6] :7–8 。
無制約最適化問題
k
{\displaystyle k}
番目の反復における楕円体を説明する。ここで楕円体の中心を
x
(
k
)
{\displaystyle x^{(k)}}
とする。
E
(
k
)
=
{
x
∈
R
n
:
(
x
−
x
(
k
)
)
T
P
(
k
)
−
1
(
x
−
x
(
k
)
)
⩽
1
}
.
{\displaystyle {\mathcal {E}}^{(k)}=\left\{x\in \mathbb {R} ^{n}\ :\ \left(x-x^{(k)}\right)^{T}P_{(k)}^{-1}\left(x-x^{(k)}\right)\leqslant 1\right\}.}
ここで分離オラクルによってベクトル
g
(
k
+
1
)
∈
R
n
{\displaystyle g^{(k+1)}\in \mathbb {R} ^{n}}
を得る。すなわち、
g
(
k
+
1
)
T
(
x
∗
−
x
(
k
)
)
⩽
0.
{\displaystyle g^{(k+1)T}\left(x^{*}-x^{(k)}\right)\leqslant 0.}
このことから最小解は反復を通じて以下の通りに含まれなければならない:
x
∗
∈
E
(
k
)
∩
{
z
:
g
(
k
+
1
)
T
(
z
−
x
(
k
)
)
⩽
0
}
.
{\displaystyle x^{*}\in {\mathcal {E}}^{(k)}\cap \left\{z\ :\ g^{(k+1)T}\left(z-x^{(k)}\right)\leqslant 0\right\}.}
新たな楕円体
E
(
k
+
1
)
{\displaystyle {\mathcal {E}}^{(k+1)}}
は現在の半楕円体を含む最小体積の楕円体となり、新たな楕円体の中心
x
(
k
+
1
)
{\displaystyle x^{(k+1)}}
を求める。更新式は以下のように与えられる:
x
(
k
+
1
)
=
x
(
k
)
−
1
n
+
1
P
(
k
)
g
~
(
k
+
1
)
P
(
k
+
1
)
=
n
2
n
2
−
1
(
P
(
k
)
−
2
n
+
1
P
(
k
)
g
~
(
k
+
1
)
g
~
(
k
+
1
)
T
P
(
k
)
)
{\displaystyle {\begin{aligned}x^{(k+1)}&=x^{(k)}-{\frac {1}{n+1}}P_{(k)}{\tilde {g}}^{(k+1)}\\P_{(k+1)}&={\frac {n^{2}}{n^{2}-1}}\left(P_{(k)}-{\frac {2}{n+1}}P_{(k)}{\tilde {g}}^{(k+1)}{\tilde {g}}^{(k+1)T}P_{(k)}\right)\end{aligned}}}
ただし、
g
~
(
k
+
1
)
=
(
1
g
(
k
+
1
)
T
P
(
k
)
g
(
k
+
1
)
)
g
(
k
+
1
)
{\displaystyle {\tilde {g}}^{(k+1)}=\left({\frac {1}{\sqrt {g^{(k+1)T}P_{(k)}g^{(k+1)}}}}\right)g^{(k+1)}}
である。楕円体法は以下の停止基準を満たせば終了する:
g
(
k
)
T
P
(
k
)
g
(
k
)
⩽
ϵ
⇒
f
(
x
(
k
)
)
−
f
(
x
∗
)
⩽
ϵ
.
{\displaystyle {\sqrt {g^{(k)T}P_{(k)}g^{(k)}}}\leqslant \epsilon \quad \Rightarrow \quad f(x^{(k)})-f\left(x^{*}\right)\leqslant \epsilon .}
不等式制約付き最適化問題
制約付き最適化問題に対するk 番目の反復における楕円体法について説明する。点
x
(
k
)
{\displaystyle x^{(k)}}
は楕円体
E
(
k
)
{\displaystyle {\mathcal {E}}^{(k)}}
の中心であると仮定する。また反復を通じて得られた実行可能解で最良の目的関数値を記録し、このリストを
f
b
e
s
t
(
k
)
{\displaystyle f_{\rm {best}}^{(k)}}
とする。点
x
(
k
)
{\displaystyle x^{(k)}}
が実行可能な点であるかでないかによって以下のどちらかの手続きを行う:
もし
x
(
k
)
{\displaystyle x^{(k)}}
が実行可能であるならば、無制約最適化問題と同様に劣勾配
g
0
{\displaystyle g_{0}}
が以下の性質を満たすように更新する:
g
0
T
(
x
∗
−
x
(
k
)
)
+
f
0
(
x
(
k
)
)
−
f
b
e
s
t
(
k
)
⩽
0
{\displaystyle g_{0}^{T}(x^{*}-x^{(k)})+f_{0}(x^{(k)})-f_{\rm {best}}^{(k)}\leqslant 0}
もし
x
(
k
)
{\displaystyle x^{(k)}}
が実行不可能であり
j
{\displaystyle j}
番目の制約について違反しているならば、実行可能性カット[ 注釈 1] を用いて楕円体を更新する。実行可能性カットは
f
j
{\displaystyle f_{j}}
の劣勾配
g
j
{\displaystyle g_{j}}
が任意の実行可能解
z
{\displaystyle z}
に対して以下の性質を満たさなければならない:
g
j
T
(
z
−
x
(
k
)
)
+
f
j
(
x
(
k
)
)
⩽
0
{\displaystyle g_{j}^{T}(z-x^{(k)})+f_{j}(x^{(k)})\leqslant 0}
脚注
注釈
出典
^ Grötschel, Martin ; Lovász, László ; Schrijver, Alexander (1993), Geometric algorithms and combinatorial optimization , Algorithms and Combinatorics, 2 (2nd ed.), Springer-Verlag, Berlin, doi :10.1007/978-3-642-78240-4 , ISBN 978-3-642-78242-8 , MR 1261419 , https://books.google.com/books?id=hWvmCAAAQBAJ&pg=PA281
^ L. Lovász : An Algorithmic Theory of Numbers, Graphs, and Convexity , CBMS-NSF Regional Conference Series in Applied Mathematics 50, SIAM, Philadelphia, Pennsylvania, 1986.
^ V. Chandru and M.R.Rao, Linear Programming, Chapter 31 in Algorithms and Theory of Computation Handbook , edited by M. J. Atallah , CRC Press 1999, 31-1 to 31-37.
^ V. Chandru and M.R.Rao, Integer Programming, Chapter 32 in Algorithms and Theory of Computation Handbook , edited by M.J.Atallah, CRC Press 1999, 32-1 to 32-45.
^ “MIT 6.854 Spring 2016 Lecture 12: From Separation to Optimization and Back; Ellipsoid Method - YouTube ”. www.youtube.com (2016年3月18日). 2021年12月22日時点のオリジナルよりアーカイブ 。2021年1月3日閲覧。
^ a b Matoušek, Jiří; Gärtner, Bernd (2007). Understanding and using linear programming . Universitext. Berlin; New York: Springer. ISBN 978-3-540-30697-9
参考文献
Dmitris Alevras and Manfred W. Padberg, Linear Optimization and Extensions: Problems and Extensions , Universitext, Springer-Verlag, 2001. (Problems from Padberg with solutions.)
V. Chandru and M.R.Rao, Linear Programming, Chapter 31 in Algorithms and Theory of Computation Handbook , edited by M.J.Atallah, CRC Press 1999, 31-1 to 31-37.
V. Chandru and M.R.Rao, Integer Programming, Chapter 32 in Algorithms and Theory of Computation Handbook , edited by M.J.Atallah, CRC Press 1999, 32-1 to 32-45.
ジョージ・ダンツィーグ and Mukund N. Thapa. 1997. Linear programming 1: Introduction . Springer-Verlag.
ジョージ・ダンツィーグ and Mukund N. Thapa. 2003. Linear Programming 2: Theory and Extensions . Springer-Verlag.
ラースロー・ロヴァース : An Algorithmic Theory of Numbers, Graphs, and Convexity , CBMS-NSF Regional Conference Series in Applied Mathematics 50, SIAM, Philadelphia, Pennsylvania, 1986
Kattta G. Murty, Linear Programming , Wiley, 1983.
M. Padberg , Linear Optimization and Extensions , Second Edition, Springer-Verlag, 1999.
クリストス・パパディミトリウ and Kenneth Steiglitz, Combinatorial Optimization: Algorithms and Complexity , Corrected republication with a new preface, Dover.
Alexander Schrijver , Theory of Linear and Integer Programming . John Wiley & sons, 1998, ISBN 0-471-98232-6
関連解法
内点法 - 凸最適化問題に対する多項式時間アルゴリズム。楕円体法よりも優れた性能を有する。
外部リンク
EE364b , a Stanford course homepage