本節では,ブロック対角な構造を持ったSDP問題を
効率よく解く手法について説明する.
ブロック対角な構造を持ったSDP問題とは,
入力データ行列
が
元 | 新 | ||
係数行列
![]() |
![]() |
![]() |
![]() |
Schur方程式の求解 |
![]() |
||
![]() |
![]() |
![]() |
![]() |
変数などの保持 |
![]() |
![]() |
![]() |
係数行列
![]() |
![]() |
入力データ行列
はゼロ行列では無いため
(もしそうならば線形制約として意味がない),
基本的に式(4)で定義される
はゼロとはならない.
しかし,
はゼロ行列でなくても,
内部の行列
の中には
ゼロ行列が多いかもしれない.
その場合,
(10)式で計算される
はゼロとなる可能性がある.
実際,ブロック数が非常に多いSDP問題では,
係数行列
の中にゼロ要素が多数含まれることがある.
このような場合,疎Cholesky分解を実行することにより,
Schur方程式を高速に解くことができる.
その場合,充填(fill-in)がなるべく起らないように,
行や列を並べ替えることも重要となる.
今,係数行列
の疎性を
とし,
充填については考えない.
3.1節の手法も同時に利用することにより,
次のような効率化が期待できる.
元 | 新 | ||
係数行列
![]() |
![]() |
![]() |
![]() |
Schur方程式の求解 |
![]() |
![]() |
![]() |
![]() |
![]() |
||
変数などの保持 |
![]() |
||
係数行列
![]() |
![]() |
![]() |
![]() |