「《半正定値計画》」の版間の差分
8行目: | 8行目: | ||
\mbox{s. t.}\ A_i\bullet X = b_i \; \; (i=1, 2, \ldots, m), | \mbox{s. t.}\ A_i\bullet X = b_i \; \; (i=1, 2, \ldots, m), | ||
X \succeq 0. | X \succeq 0. | ||
− | </math> | + | \, </math> |
− | ただし, <math>C, A_i\ (i=1, 2,\ldots, m), X</math> は <math>n\times n</math> 実対称行列, <math>C\bullet X = \mbox{trace}(CX) = \sum_{i,j}C_{ij}X_{ij}, X\succeq(\succ)0</math>は <math>X\,</math>が半正定値(正定値)であることを表す. 半正定値計画<math>\mbox{(P)}</math> は[[凸計画問題]](convex programming)であり, [[双対問題 (線形計画の)|双対問題]]は次のようになる. | + | ただし, <math>C, A_i\ (i=1, 2,\ldots, m), X\, </math> は <math>n\times n\, </math> 実対称行列, <math>\textstyle C\bullet X = \mbox{trace}(CX) = \sum_{i,j}C_{ij}X_{ij}, X\succeq(\succ)0\, </math>は <math>X\, </math>が半正定値(正定値)であることを表す. 半正定値計画<math>\mbox{(P)}\, </math> は[[凸計画問題]](convex programming)であり, [[双対問題 (線形計画の)|双対問題]]は次のようになる. |
18行目: | 18行目: | ||
\mbox{s. t.}\ Z+\sum_{i=1}^m y_i A_i = C, | \mbox{s. t.}\ Z+\sum_{i=1}^m y_i A_i = C, | ||
Z \succeq 0. | Z \succeq 0. | ||
− | </math> | + | \, </math> |
− | '''双対性:''' <math>\mbox{(P)}</math> と<math>\mbox{(D)}</math> の間に次の弱双対定理が成り立つことは容易に分かる. | + | '''双対性:''' <math>\mbox{(P)}\, </math> と<math>\mbox{(D)}\, </math> の間に次の弱双対定理が成り立つことは容易に分かる. |
− | '''弱双対定理.''' <math>X\,</math>を<math>\mbox{(P)}</math> の許容解, <math>(y,Z)\,</math> を<math>\mbox{(D)}</math> の許容解とすると, <math>C\bullet X\geq b^{\top}y</math>. | + | '''弱双対定理.''' <math>X\, </math>を<math>\mbox{(P)}\, </math> の許容解, <math>(y,Z)\, </math> を<math>\mbox{(D)}\, </math> の許容解とすると, <math>C\bullet X\geq b^{\top}y\, </math>. |
29行目: | 29行目: | ||
− | '''強双対定理.''' もし <math>X\succ0</math>, <math>Z\succ0</math> なる許容解 <math>X\,</math> および <math>(y,Z)\,</math> が存在すれば, <math>\mbox{(P)} </math> と <math>\mbox{(D)} </math> の最適値は一致し, 両者に最適解が存在する. | + | '''強双対定理.''' もし <math>X\succ0\, </math>, <math>Z\succ0\, </math> なる許容解 <math>X\, </math> および <math>(y,Z)\, </math> が存在すれば, <math>\mbox{(P)} \, </math> と <math>\mbox{(D)} \, </math> の最適値は一致し, 両者に最適解が存在する. |
最適解があっても強相補性を持つ解が存在しない場合があり, また, 退化に関しても特有の定義が使われることが多い. 半正定値計画における退化および強相補性に関しては [1] を参照せよ. | 最適解があっても強相補性を持つ解が存在しない場合があり, また, 退化に関しても特有の定義が使われることが多い. 半正定値計画における退化および強相補性に関しては [1] を参照せよ. | ||
− | '''解法:''' 半正定値計画 <math>\mbox{(P)}</math> には, <math>-\log\det X</math>が<math>n\,</math>-[[自己整合障壁関数]](self-concordant barrier function)となることが知られており, 主[[内点法]](interior point method)を使って効率良く解くことができる [3]. また半正定値計画は, [[等質自己双対錐]](homogeneous self-dualcone, symmetric cone, self-scaled cone)上の線形計画問題とも見ることができ, 主双対内点法で効率良く解くことができる[4]. 以下, 現在最も有力な解法とみられている主双対パス追跡法について説明する. | + | '''解法:''' 半正定値計画 <math>\mbox{(P)}\, </math> には, <math>-\log\det X\, </math>が<math>n\, </math>-[[自己整合障壁関数]](self-concordant barrier function)となることが知られており, 主[[内点法]](interior point method)を使って効率良く解くことができる [3]. また半正定値計画は, [[等質自己双対錐]](homogeneous self-dualcone, symmetric cone, self-scaled cone)上の線形計画問題とも見ることができ, 主双対内点法で効率良く解くことができる[4]. 以下, 現在最も有力な解法とみられている主双対パス追跡法について説明する. |
− | 半正定値計画 <math>\mbox{(P)}</math> および<math>\mbox{(D)}</math> の[[中心パス]](path of centers)上のパラメタ <math>\mu>0</math> に対応する点<math>(X(\mu), y(\mu), Z(\mu))</math>は次を満たす. | + | 半正定値計画 <math>\mbox{(P)}\, </math> および<math>\mbox{(D)}\, </math> の[[中心パス]](path of centers)上のパラメタ <math>\mu>0\, </math> に対応する点<math>(X(\mu), y(\mu), Z(\mu))\, </math>は次を満たす. |
− | :<math>A_i\bullet X(\mu) = b_i \quad (i = 1,2,\ldots,m), \quad \quad \mbox{(1)}</math> | + | :<math>A_i\bullet X(\mu) = b_i \quad (i = 1,2,\ldots,m), \quad \quad \mbox{(1)}\, </math> |
− | :<math>Z(\mu)+ \sum_{i=1}^m y_i(\mu) A_i = C, \quad \quad \mbox{(2)}</math> | + | :<math>Z(\mu)+ \sum_{i=1}^m y_i(\mu) A_i = C, \quad \quad \mbox{(2)}\, </math> |
− | :<math>X(\mu)Z(\mu)=\mu I \qquad \qquad \mbox{(3)}</math> | + | :<math>X(\mu)Z(\mu)=\mu I \qquad \qquad \mbox{(3)}\, </math> |
− | :<math>X(\mu)\succ0,\quad Z(\mu)\succ0.</math> | + | :<math>X(\mu)\succ0,\quad Z(\mu)\succ0.\, </math> |
− | ここで <math>I\,</math> は恒等行列である. 主双対パス追跡法では <math>X\succ 0</math>, <math>Z\succ0</math> なる現在点が与えられたとして, 適当な <math>\mu</math> を定めて(1), (2), (3)に対するニュートン方向を探索方向とする. ところが一般に <math>XZ\,</math> は対称行列ではないので, 式 (1), (2), (3) の左辺<math>-\,</math>右辺を一つの関数と見た場合, その関数は<math>({\mathbf S}^n,{\mathbf R}^m,{\mathbf S}^n)\rightarrow({\mathbf R}^m,{\mathbf S}^n,{\mathbf M}_n)</math>(ここで<math>{\mathbf S}^n</math>は<math>n\times n</math>対称行列の集合, <math>{\mathbf M}_n</math>は<math>n\times n</math> 行列の集合を表す.) となり, 普通の意味でニュートン方向を定義できない. この問題を克服するためにいろいろな手段が考えられ, その結果様々な探索方向が提案されている. 以下に, 比較的初期に提案された探索方向を四つ挙げる. (方向の名前は, 提案した論文の著者名に由来している.) | + | ここで <math>I\, </math> は恒等行列である. 主双対パス追跡法では <math>X\succ 0\, </math>, <math>Z\succ0\, </math> なる現在点が与えられたとして, 適当な <math>\mu\, </math> を定めて(1), (2), (3)に対するニュートン方向を探索方向とする. ところが一般に <math>XZ\, </math> は対称行列ではないので, 式 (1), (2), (3) の左辺<math>-\, </math>右辺を一つの関数と見た場合, その関数は<math>({\mathbf S}^n,{\mathbf R}^m,{\mathbf S}^n)\rightarrow({\mathbf R}^m,{\mathbf S}^n,{\mathbf M}_n)\, </math>(ここで<math>{\mathbf S}^n\, </math>は<math>n\times n\, </math>対称行列の集合, <math>{\mathbf M}_n\, </math>は<math>n\times n\, </math> 行列の集合を表す.) となり, 普通の意味でニュートン方向を定義できない. この問題を克服するためにいろいろな手段が考えられ, その結果様々な探索方向が提案されている. 以下に, 比較的初期に提案された探索方向を四つ挙げる. (方向の名前は, 提案した論文の著者名に由来している.) |
:NT 方向: (より大きなクラスである)等質自己双対錐上の線形計画問題に対するある意味で自然な探索方向として定義されるもの. | :NT 方向: (より大きなクラスである)等質自己双対錐上の線形計画問題に対するある意味で自然な探索方向として定義されるもの. | ||
− | :AHO 方向: (3) を <math>ZX+XZ=2\mu I</math> と対称化してニュートン方向を探索方向とする. | + | :AHO 方向: (3) を <math>ZX+XZ=2\mu I\, </math> と対称化してニュートン方向を探索方向とする. |
− | :KSH/HRVW/M 方向 (KHM方向): <math>X \in {\mathcal M}_n</math>としてニュートン方向 <math>\tilde{\Delta X}</math> を計算し, それを<math>(\tilde{\Delta X}+\tilde{\Delta X}^{\top})/2</math> と対称化して<math>X\,</math>成分の探索方向とする. | + | :KSH/HRVW/M 方向 (KHM方向): <math>X \in {\mathcal M}_n\, </math>としてニュートン方向 <math>\tilde{\Delta X}\, </math> を計算し, それを<math>(\tilde{\Delta X}+\tilde{\Delta X}^{\top})/2\, </math> と対称化して<math>X\, </math>成分の探索方向とする. |
− | :MT 方向: (3) を <math>X^{1/2}ZX^{1/2}=\mu I</math> と対称化してニュートン方向を探索方向とする. | + | :MT 方向: (3) を <math>X^{1/2}ZX^{1/2}=\mu I\, </math> と対称化してニュートン方向を探索方向とする. |
− | 理論的には, これらの探索方向を使うと, 許容解 <math>(X^0,y^0,Z^0)</math> から出発した場合, <math>O(\sqrt{n}\log (X^0\bullet Z^0/\epsilon))</math>回の反復で双対ギャップを <math>\epsilon</math> 以下に減らすことができることが知られている. 詳しくは [6] 参照. | + | 理論的には, これらの探索方向を使うと, 許容解 <math>(X^0,y^0,Z^0)\, </math> から出発した場合, <math>O(\sqrt{n}\log (X^0\bullet Z^0/\epsilon))\, </math>回の反復で双対ギャップを <math>\epsilon\, </math> 以下に減らすことができることが知られている. 詳しくは [6] 参照. |
半正定値計画の解法としては, 単体法はあまり研究されていない. 係数行列に構造のある問題に対しては, 固有値に関する最適化問題に直して[[微分不可能最適化]]に対する手法を適用することも試みられている. | 半正定値計画の解法としては, 単体法はあまり研究されていない. 係数行列に構造のある問題に対しては, 固有値に関する最適化問題に直して[[微分不可能最適化]]に対する手法を適用することも試みられている. | ||
− | '''応用:''' 半正定値計画の応用で最もORと関係が深いのは[[組合せ最適化問題]](combinatorial optimization)および多項式最適化問題の[[半正定値計画緩和]](semidefinite programming relaxzation)であろう. [[NP困難]](NP-hard)な組合せ最適化問題または多項式最適化問題(polynomial optimization problem)の緩和問題として半正定値計画を使うと, 元問題の最適値の良い近似値を多項式時間で求められる. 行列の固有値に関する最適化問題, 例えば固有値の和の最小化なども半正定値計画で表現できる. また, 制御理論における[[線形行列不等式]](linear matrix inequality)は<math>\mbox{(D)}</math> と等価である. 半正定値計画の応用については [2], [5], [6] を参照されたい. | + | '''応用:''' 半正定値計画の応用で最もORと関係が深いのは[[組合せ最適化問題]](combinatorial optimization)および多項式最適化問題の[[半正定値計画緩和]](semidefinite programming relaxzation)であろう. [[NP困難]](NP-hard)な組合せ最適化問題または多項式最適化問題(polynomial optimization problem)の緩和問題として半正定値計画を使うと, 元問題の最適値の良い近似値を多項式時間で求められる. 行列の固有値に関する最適化問題, 例えば固有値の和の最小化なども半正定値計画で表現できる. また, 制御理論における[[線形行列不等式]](linear matrix inequality)は<math>\mbox{(D)}\, </math> と等価である. 半正定値計画の応用については [2], [5], [6] を参照されたい. |
2007年7月10日 (火) 16:03時点における版
【はんせいていちけいかく (semidefinite programming)】
問題: 半正定値計画は線形計画(linear programming)を実対称行列の空間に拡張したものである. 次のような定式化が一般的である.
ただし, は 実対称行列, は が半正定値(正定値)であることを表す. 半正定値計画 は凸計画問題(convex programming)であり, 双対問題は次のようになる.
双対性: と の間に次の弱双対定理が成り立つことは容易に分かる.
弱双対定理. を の許容解, を の許容解とすると, .
半正定値計画では線形計画とは異なり, 一般に強双対定理は成り立たない. 主問題または双対問題に最適解が存在しないことや, 両者の最適値が一致しないことがある. 強双対定理が成り立つためには何らかの条件が必要である. よく使われる条件は次のようなものである.
強双対定理. もし , なる許容解 および が存在すれば, と の最適値は一致し, 両者に最適解が存在する.
最適解があっても強相補性を持つ解が存在しない場合があり, また, 退化に関しても特有の定義が使われることが多い. 半正定値計画における退化および強相補性に関しては [1] を参照せよ.
解法: 半正定値計画 には, が-自己整合障壁関数(self-concordant barrier function)となることが知られており, 主内点法(interior point method)を使って効率良く解くことができる [3]. また半正定値計画は, 等質自己双対錐(homogeneous self-dualcone, symmetric cone, self-scaled cone)上の線形計画問題とも見ることができ, 主双対内点法で効率良く解くことができる[4]. 以下, 現在最も有力な解法とみられている主双対パス追跡法について説明する.
半正定値計画 および の中心パス(path of centers)上のパラメタ に対応する点は次を満たす.
ここで は恒等行列である. 主双対パス追跡法では , なる現在点が与えられたとして, 適当な を定めて(1), (2), (3)に対するニュートン方向を探索方向とする. ところが一般に は対称行列ではないので, 式 (1), (2), (3) の左辺右辺を一つの関数と見た場合, その関数は(ここでは対称行列の集合, は 行列の集合を表す.) となり, 普通の意味でニュートン方向を定義できない. この問題を克服するためにいろいろな手段が考えられ, その結果様々な探索方向が提案されている. 以下に, 比較的初期に提案された探索方向を四つ挙げる. (方向の名前は, 提案した論文の著者名に由来している.)
- NT 方向: (より大きなクラスである)等質自己双対錐上の線形計画問題に対するある意味で自然な探索方向として定義されるもの.
- AHO 方向: (3) を と対称化してニュートン方向を探索方向とする.
- KSH/HRVW/M 方向 (KHM方向): としてニュートン方向 を計算し, それを と対称化して成分の探索方向とする.
- MT 方向: (3) を と対称化してニュートン方向を探索方向とする.
理論的には, これらの探索方向を使うと, 許容解 から出発した場合, 回の反復で双対ギャップを 以下に減らすことができることが知られている. 詳しくは [6] 参照.
半正定値計画の解法としては, 単体法はあまり研究されていない. 係数行列に構造のある問題に対しては, 固有値に関する最適化問題に直して微分不可能最適化に対する手法を適用することも試みられている.
応用: 半正定値計画の応用で最もORと関係が深いのは組合せ最適化問題(combinatorial optimization)および多項式最適化問題の半正定値計画緩和(semidefinite programming relaxzation)であろう. NP困難(NP-hard)な組合せ最適化問題または多項式最適化問題(polynomial optimization problem)の緩和問題として半正定値計画を使うと, 元問題の最適値の良い近似値を多項式時間で求められる. 行列の固有値に関する最適化問題, 例えば固有値の和の最小化なども半正定値計画で表現できる. また, 制御理論における線形行列不等式(linear matrix inequality)は と等価である. 半正定値計画の応用については [2], [5], [6] を参照されたい.
参考文献
[1] F. Alizadeh, J. P. A. Haeberly and M. L. Overton, "Complementarity and nondegeneracy in semidefinite programming," Mathematical Programming, 77 (1997) 111-128.
[2] M. X. Goemans, "Semidefinite programming in combinatorial optimization," Mathematical Programming, 79 (1997) 143-161.
[3] Y. E. Nesterov and A. S. Nemirovskii Interior Point Polynomial Methods in Convex Programming : Theory and Algorithms, SIAM Publications, Philadelphia, 1993.
[4] Y. E. Nesterov and M. J. Todd, "Primal-dual interior-point methods for self-scaled cones," SIAM Journal on Optimization, 8 (1998) 324-364.
[5] L. Vandenberghe and S. Boyd, "Semidefinite programming," SIAM review, 38 (1996) 49-95.
[6] 小島政和, 土谷隆, 水野眞治, 矢部博, 『内点法』, 朝倉書店, 2001.