線形最適化のためのシンプレックス法に対する内点法の利点/欠点は何ですか?


14

私が理解しているように、線形プログラムの解は常に多面体実現可能セットの頂点で発生するため(解が存在し、最適化目的関数値が最小化問題を仮定して下から制限されている場合)、実行可能領域の内部はより良いですか?より速く収束しますか?どのような状況で、内点法よりもシンプレックス法を使用する方が有利でしょうか?1つは他のコードよりもコードに実装しやすいですか?


ステートメントの1つが間違っています。凸最適化問題の解は、必ずしも境界上で発生するとは限りません。たとえば、ます。最適解は、実行可能領域の内部にあるx = 0で発生します。また、線形計画法のコンテキスト以外では、シンプレックス法は一般にNelder-Meadシンプレックス法を指し、1より大きい次元で最適な解に収束することさえありません。この方法は凸プログラミングには推奨されません。明確さと正確さのために質問を編集してください。バツ[11]バツ2バツ=0
ジェフオックスベリー

「凸最適化」ではなく「線形最適化」と言う方が適切でしょうか?
ポール

はい、あなたの声明は正しいです。質問を編集していただきありがとうございます。
ジェフオックスベリー

シンプレックス法の問題は、非線形問題、つまり実世界の問題の大部分に一般化できないことです。

回答:


17

個人的な経験に基づいて、線形プログラミングクラスの一部としてMATLABで基本シンプレックスメソッドと基本的な内部ポイントメソッドの両方を実装した個人的な経験に基づいて、シンプレックスメソッドは内部ポイントメソッドよりも実装方法がやや理解しやすいと思います。プライマルシンプレックスの主な障害は、フェーズIとフェーズIIを正しく実装することと、アンチサイクリングルールを正しく実装することです。線形計画法に内点法を実装する際の主な障害は、反復法を正しく実装し、それに応じてバリアパラメータをスケーリングすることです。

BertsimasとTsitsiklisによる線形最適化入門などの線形計画法の教科書には、各アルゴリズムの長所と短所の詳細な説明があります。(免責事項:私はこの教科書から線形計画法を学び、MITでBertsimasの妻から線形計画法を取りました。)基本的なもののいくつかを次に示します。

シンプレックスの長所:

  • 決定変数が与えられると、通常ピボットを使用して操作に収束します。nOnOn
  • 問題のジオメトリを利用します。実行可能なセットの頂点を訪問し、訪問した各頂点の最適性をチェックします。(主なシンプレックスでは、削減されたコストをこのチェックに使用できます。)
  • 小さな問題に適しています。

シンプレックスの短所:

  • 与えられたの決定変数は、常にアルゴリズムが必要とする問題のインスタンスを見つけることができるの動作とピボットが解に到達することを。nO2n
  • ピボット操作は高価になるため、大きな問題にはあまり適していません。切断面アルゴリズムまたはDantzig-Wolfeなどの遅延列生成アルゴリズムは、この欠点を補うことがあります。

内点法の長所:

  • 多項式時間漸近的複雑さを持ち。ここで、はアルゴリズムへの入力のビット数です。On3.5L2ログLログログLL
  • アルゴリズムに必要な線形代数が高速であるため、大規模でスパースの問題に適しています。

内点法の短所:

  • あなたが正しいので、これらの方法は頂点にアクセスしないので、直感的に満足できません。彼らは内部地域をさまよい、成功すると解決策に収束します。
  • 小さな問題の場合は、シンプレックスがおそらくより高速になります。(Klee-Mintyキューブのような病理学的ケースを作成できます。)

2
良い要約。Klee-Mintyは実際、シンプレックスLPメソッドを混乱させるように設計されているようです...-
JM

@JMはい、それがまさにそのポイントです-シンプレックス法が多項式ではないことを示すのは明示的な構成です(ただし、内点法を泣かせるバリアントもあります)。
クリスチャンクラソン

この有益な投稿をありがとう。変数がいくつあると問題が大きくなるのだろうか?何十?何百?何千人?
KjMag

クレー-ミントキューブソルバーオープンソースで<0.1秒で実行GLPK 4.65単純。(および値は、D = 100で多くのソルバーの誤動作を引き起こしますが、それは異なります。)シンプレックス法の実行が遅くなる問題はありますか?5DAバツ
デニス

3

答えは簡単です。両方(シンプレックスおよび内点法)は、アルゴリズムの観点からは成熟した分野です。どちらも実際には非常にうまく機能します。IPM(内点法)の評判は、最悪の場合の多項式の複雑さによるものです。組み合わせの複雑さを持つシンプレックスの場合はそうではありません。それにもかかわらず、組み合わせ線形計画法は実際にはほとんど起こりません。非常に大規模な問題の場合、IPは少し速いように見えますが、ルールは必要ありません。私の意見では、IPは簡単に理解して実装できますが、確かに他の誰かが意見を異にすることができます。さて、LPでは、ソリューションが一意であれば、間違いなく頂点にあります(ここでもIPとシンプレックスの両方がうまくいきます)。解決策は、多面体の面上またはエッジ上にある場合もあります。その場合、隣接する頂点も(または頂点は)ソリューションです(ここでも、IPとシンプレックスの両方がうまく機能します)。したがって、それらはほとんど同じです。


私が与えた例は線形プログラムではないことに気付きました。改訂履歴を見ると、この質問の以前のバージョンでは、凸最適化問題のシンプレックス法と内点法を比較するよう求められていました。私は、私が行った編集を正当化し、元のポスターが彼の質問を修正するように奨励するために反例を示しました。
ジェフオックスベリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.