与えられた多面体の最大楕円体を計算する方法


8

BBCC={x|aiTxbi,i=1,,m}

minB,d[logdetB1]s.t.:||Bai||2+aiTdbi,i=1,,m
。私のアプローチは、内点法を使用し、精度パラメーターを導入し、上記の本の第11章で説明されているように対数バリア関数を介して制約を目標に組み込み、結果として生じる制約のない問題を最小限に抑えることです したがって、私は偏導関数を取ります: これは行列であり、 B dt>0FF
minB,d[logdetB11ti=1mlog(bi||Bai||2aiTd)]=f(B,d).
fF
fB=B1+1ti=1m(BaiaiT||Bai||bi||Bai||2aiTd)
fd=1ti=1m(aibi||Bai||2aiTd)
これはベクトルです。そして、最初の(実行可能な)ポイントから始めて、負の部分導関数に従って実際のソリューションを繰り返し更新します: B ^ {k + 1} = B ^ k-s_B \ frac {\ partial f(B ^ k、d ^ k)} {\ partial B} \\ d ^ {k + 1} = d ^ k-s_d \ frac {\ partial f(B ^ k 、D ^ K)} {\部分D} S_B> 0S_D> 0B 、KD 、KBのK + 1 = BのK - S B F BのKDのK(B0,d0)(Bk,dk) SB>0、S、D>0
Bk+1=BksBf(Bk,dk)Bdk+1=dksdf(Bk,dk)d
sB>0sd>0定義された停止基準が満たされるまで、ステップサイズパラメータは何ですか?\これが問題を解決する正しい方法であるかどうかわかりませんか?それは私には非常にぎこちなく、あまりエレガントではないようです。私は最適化手法の専門家ではありません。また、すべての構成要素(偏微分、内点法、制約なしの最小化など)を正しい方法でまとめたかどうかはわかりません。専門家がこの問題をどのように解決するのでしょうか。上記の本では、このタスクは凸問題の例として示されていましたが、私が見る限り、タスクを解くために非常に明確なアルゴリズムが与えられていました。ボイド氏のページにはタスクを解決するためのMatlabスクリプトがどこかにあると思いますが、「ブラックボックス」アルゴリズムを使用する前に、まず基本的なテクニックを理解したいと思います。「に他のアプローチがあるようです 凸型プログラミングにおける内点多項式アルゴリズム。Yurii NesterovおよびArkadii Nemirovskii、応用数学のSIAM研究。vol.13、1994」と「ポリトープの最大内接楕円体の近似の複雑さについて、Leonid G. Khachiyan and Michael J. Todd、Mathematical Programming 61(1993)、137-159」しかし、私はそれらを理解していません。彼らは私のために技術的に書かれています。

ところで、最初の問題の二重問題はどのように見えるのですか?そしてそれはどのように導き出されますか?

前もって感謝します


1
これらすべてのことをあなたのためにしてくれるソルバーがあります。代わりに自分でやりたい理由はありますか?ある時点で内点法について学び、最適化ラボで働いていて、MATLABで(宿題の割り当てのために)いくつかのメソッドをコーディングしたことがある人物として、私はまだブラックボックスソルバーを使用します。
Geoff Oxberry、2012年

1
既製のルーチンを使用する前に、少なくともメソッドの基本バージョンを理解/実装するという原則に固執します。この原則には、次の2つの利点があると思います。1)学習効果が非常に高く、メソッドに対する理解が深まる。2)ほとんどのアプリケーションでは、数学的アルゴリズムの基本バージョンで十分です(少なくとも、私が直面しているアプリケーションには)。そのため、コードを小さくシンプルに保つことができ、ライセンスのことを心配する必要はありません(コードでお金を稼ぎたい場合に備えて)。
Denis K.

回答:


1

まあ、あなたは一種の正しい軌道に乗っています。内点法を使用してこれらの問題を解決する魔法はありません。それらは本質的に反復的であり、線形化などに基づいています。

ただし、これらの問題の典型的な内点法アルゴリズムは、勾配方向のステップをとらず、2次情報も計算するため、ニュートンステップを実行します。したがって、ニュートン方向に沿ってラインサーチが実行され、最適なステップが実行され、手順が繰り返されます。収束した後(適切に定義された精度が高すぎる場合)、バリアパラメータが(適切な係数で)減少し、手順が再度繰り返されます。

実際に機能させるには、パラメーターの更新方法を慎重に検討する必要があり、ほとんどの場合、すべてを主双対空間で実行します。

sillysdpをググると、SDPソルバーの単純な実装が実装されています。これは基本的に、読んでいるBoyd&Vandenbergheリファレンスの例11.9にあります。たぶんインスピレーションの始まりかもしれません(半明確なプログラミングは解決しているSOCPの一般化であり、目的のlogdet項を無視しているので、物事を複雑にすることはありません)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.