2

Coin-OR の線形計画法 (LP) ソフトウェアを使用して、一連の線形計画法を解こうとしています。各プログラムのほとんどのデータは、いくつかの .csv ファイルに含まれていますが、線形最適化を実行するたびに一部のデータを修正する必要があります。

Coin-OR の LP ソルバーに .MPS ファイルの読み取りを依頼することしかできないようで、AMPL などのプログラムを使用して .MPS ファイルを個別にビルドすることは可能です。しかし、一連の自動化された一連の最適化を繰り返し実行しようとしていることを考えると、AMPL または Gurobi を使用して 1 つの問題インスタンスを構築し、結果の .MPS ファイルでソルバーを呼び出すだけでは実行できません。問題が発生するたびに、おそらく何千回または何百万回もファイルを変更する必要があります。

ベクトル配列またはその他の標準 C++ データ構造を .MPS ファイルに変換できる C++ ライブラリがあるかどうか、誰か知っていますか? または、これらのデータ構造を Coin-OR の LP ソルバーの入力として指定する方法はありますか?

4

2 に答える 2

2

API 経由で Coin-OR の CLP を呼び出すほうがよいのではないでしょうか? 純粋な LP の場合、MPS ファイルの書き込みと読み取りは高価になる可能性があります。それ以外の場合、CLP には、借用できる独自の MPSWriter: CoinMpsIO::writeMps があります。多くの同様のモデルを実行する場合は、ソルバーをウォーム スタートすることをお勧めします。また、AMPL には直接の COIN-OR CLP インターフェイス ( https://github.com/ampl/coin ) があるため、MPS ファイルを経由する必要はありません。

于 2016-08-08T04:33:51.140 に答える
0

エルヴィンの言うとおりだ。API を使用します。MPS ファイルなどを使用すると、特定のモデルをさまざまなソルバーで試すのに役立ちます。LP 形式は、モデルが期待どおりに実装されているかどうかを理解するのに適しています。場合によっては、回帰テストなどのために特定のケースをアーカイブするために MPS ファイルを使用することもあります。しかし、NOBODY は、ソルバーに供給されるファイルを作成する必要があります。可能であれば、API を使用してください。

于 2016-08-08T14:53:02.743 に答える