線形計画問題の制約の数に実際の制限はありますか?


8

私は線形プログラミングに不慣れで、1013変数と1013制約を持つ線形プログラム(LP)を作成しましたが、制約行列は非常にスパースです。

このスケールのLPが扱いやすいかどうか知りたいですか?


1013変数と1013制約を意味すると思いますか?
Geoff Oxberry

はい、不正なフォーマットについては申し訳ありません。
stressed_geek

回答:


9

は、主にメモリの制限により、今日の最大のスーパーコンピュータでは扱いにくいものです。私が実際に解決した最大の問題は 10 5行と列のオーダーでしたが、最も重要な要素は非ゼロの数である傾向があり、ここでは 10 6非ゼロの問題の解決に行き着いています。参照してくださいMittelmanの並列ベンチマークページを最高の自由に利用可能と商用ソルバーがこのサイズで問題の範囲に何ができるかの感触を得るために。1013105106


6

膨大な数の不等式制約は、通常、制約生成手法によって扱いやすく、限られた数の制約のみを処理し、現在のソリューションで違反している制約を制約セットに追加します(強く満たされた制約を削除します)。しかし、私が見たケースでは、これは非スラック変数の数も制限されることを必要とします。

したがって、問題は、問題自体またはその双対が制約よりもはるかに少ない変数を持つように問題を再定式化できるかどうかです。

編集:Nesterovによる「巨大な最適化問題の劣勾配法」に関する最近の研究、http: //dial.academielouvain.be/vital/access/services/Download/boreal:107876 / PDF_01も参照してください 。精度要件が中程度である場合、彼の手法は複雑さで好ましい状況で機能しますO(nlogn)


3

アロンの回答に関する私のコメントは長すぎましたが、彼の回答を補足したいと思います。

並列ベンチマークの例を取り上げるのが好きです。ここに追加するいくつかのコメント。テストされた4つのソルバーはすべて商用ですが、無料のアカデミックライセンスを利用できます。さらに、テストは実行時間を25000秒、つまり8時間でカットオフします。これは任意であり、外部リソースの制約に大きく依存します(つまり、企業では、結果が出るまで1日以上待ちたくない場合があります。学界では、一部の人々は数ヶ月間シミュレーションを実行できます)。テストは単一のクアッドコアマシンで実行されますが、これは最先端のパフォーマンスを示すものではありません。

この質問に答えるためにデータを探していたところ、ほぼ同じサイズの問題を解決している10年以上前の論文を見つけました。これは、私たちが持っているインフラストラクチャで今よりうまくできるかもしれないことを示唆しています。確かに変数ではありませんが、内点法のn 3.5スケーリングに基づいて、線形代数と並列処理が適切に実装されていて、時間と適度なサイズのクラスターがある場合、なぜ試行できなかったのかわかりません。10 7または多分10 8の問題を解決する1013n3.5107 108変数(特別な構造がある場合にのみ、ベンダーの分解やDantzig-Wolfeなどの分解方法に加えて、切断面生成アルゴリズムを利用できます)。(私は制約の影響を無視していることを付け加えます。これは、格納されているビット数に応じて問題を複雑にします。この影響は、推定値をより悲観的にするだけです。)

GAMSには並列実装があり、CPLEX、Gurobi、MOSEK、Xpressなどのソルバー(ベンチマークAronの4つのソルバー)を使用しているため、これらの並列インスタンスを実行できなかった理由がわかりません。ソルバー(実際、CPLEXとGurobiでこれが可能であることを知っています)。制限要因は、メモリ(メモリが高価であるため)と通信であり、処理能力よりも通信量が多くなります。これは、線形プログラムが最終的に線形方程式のシステムの構築と解を繰り返して削減するためです(大規模な単純化ですが、線形代数は並列化する方法を知っている)。

10131024

非常に大まかな見積もりとして、ベンチマークのAronで使用されているIntel Core 2 Quadは、40ギガフロップスのピーク速度で動作できます。オークリッジナショナルラボのスーパーコンピューターであるジャガーに乗って、マシン全体を使用できるとしたら(非常にありそうもないが、夢を見よう)、指先でおよそ2ペタフロップス(ここの上位500の数値に基づいて、または、計算能力の約50000倍。通信、メモリの制限、またはピーク速度で実行する人がいないという事実(LINPACKベンチマークでさえも)によるペナルティは含まれません。

106107106101310171018


まず、スーパーコンピューターにかかる時間の見積もりから始めますが、問題の1つは、高速LPソルバーの多くがコレスキー分解に依存していることです。に。また、これらのマシンは共有メモリ並列処理を実装していますが、現在の商用LPソルバーでは、何らかの理由により、真の分散メモリ並列処理はややまれです。
Aron Ahmadia 2012年

O(n3.5)

O(n2.5)

@AronAhmadia:そうですね。ソルバーマニュアルで目にするのは、バリア法システムを解くために使用される密または疎のコレスキー分解です。誰もクリロフ部分空間法をまったく使用しておらず、分散メモリ(つまり、MPIベース)の並列処理を見たこともありません。スーパーコンピューターで解決された最適化の問題(PDE制約の問題を除いて)が解決されていません。多分私は適切な論文を見ていません。
Geoff Oxberry

O(n)O(n3)O(ne2)en=1013

0

これは古い質問ですが、25年以上前、PCクラスターで3時間で1.1Mの制約、2.6Mの変数の問題を誰かが解決できたはずです。http://www.maths.ed.ac.uk/~gondzio/CV/finance.pdf

生成方程式を確認したいのですが、この問題をアルゴリズムにスローする前に深刻な分解を行うのが賢明であり、ハードウェアに供給する前にそれをかむのが賢明だと実務家として述べたいと思います。また、限られたコンピューターのメモリと精度を考えると、定式化の数値誤差を引き起こすサイズのようにも聞こえます。

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