私が理解しているように、線形プログラムの解は常に多面体実現可能セットの頂点で発生するため(解が存在し、最適化目的関数値が最小化問題を仮定して下から制限されている場合)、実行可能領域の内部はより良いですか?より速く収束しますか?どのような状況で、内点法よりもシンプレックス法を使用する方が有利でしょうか?1つは他のコードよりもコードに実装しやすいですか?
私が理解しているように、線形プログラムの解は常に多面体実現可能セットの頂点で発生するため(解が存在し、最適化目的関数値が最小化問題を仮定して下から制限されている場合)、実行可能領域の内部はより良いですか?より速く収束しますか?どのような状況で、内点法よりもシンプレックス法を使用する方が有利でしょうか?1つは他のコードよりもコードに実装しやすいですか?
回答:
個人的な経験に基づいて、線形プログラミングクラスの一部としてMATLABで基本シンプレックスメソッドと基本的な内部ポイントメソッドの両方を実装した個人的な経験に基づいて、シンプレックスメソッドは内部ポイントメソッドよりも実装方法がやや理解しやすいと思います。プライマルシンプレックスの主な障害は、フェーズIとフェーズIIを正しく実装することと、アンチサイクリングルールを正しく実装することです。線形計画法に内点法を実装する際の主な障害は、反復法を正しく実装し、それに応じてバリアパラメータをスケーリングすることです。
BertsimasとTsitsiklisによる線形最適化入門などの線形計画法の教科書には、各アルゴリズムの長所と短所の詳細な説明があります。(免責事項:私はこの教科書から線形計画法を学び、MITでBertsimasの妻から線形計画法を取りました。)基本的なもののいくつかを次に示します。
シンプレックスの長所:
シンプレックスの短所:
内点法の長所:
内点法の短所:
答えは簡単です。両方(シンプレックスおよび内点法)は、アルゴリズムの観点からは成熟した分野です。どちらも実際には非常にうまく機能します。IPM(内点法)の評判は、最悪の場合の多項式の複雑さによるものです。組み合わせの複雑さを持つシンプレックスの場合はそうではありません。それにもかかわらず、組み合わせ線形計画法は実際にはほとんど起こりません。非常に大規模な問題の場合、IPは少し速いように見えますが、ルールは必要ありません。私の意見では、IPは簡単に理解して実装できますが、確かに他の誰かが意見を異にすることができます。さて、LPでは、ソリューションが一意であれば、間違いなく頂点にあります(ここでもIPとシンプレックスの両方がうまくいきます)。解決策は、多面体の面上またはエッジ上にある場合もあります。その場合、隣接する頂点も(または頂点は)ソリューションです(ここでも、IPとシンプレックスの両方がうまく機能します)。したがって、それらはほとんど同じです。