24

私は整数線形計画法の初心者です。組み合わせ最適化問題を解くために整数線形計画法ソルバーを使用する予定です。IDE での C++/オブジェクト指向プログラミングに精通しています。現在、ほとんどの場合、Cygwin で NetBeans を使用してアプリケーションを作成しています。

簡単に使用できる ILP ソルバーがあるかどうか尋ねてもよろしいですか? または、解決したい問題によって異なりますか?リソース マッピングの最適化を試みています。さらに情報が必要な場合はお知らせください。

どうもありがとう、キャシー。

4

5 に答える 5

8

私は lp_solve ( http://lpsolve.sourceforge.net/5.5/ ) を数回使用して成功しました。それは成熟しており、機能が豊富で、線形プログラミングのスキルがさびている場合に役立つ多くのアドバイスとともに非常によく文書化されています。整数線形計画法は単なるアドオンではなく、このパッケージで強く強調されています。

あなたがこれについて「初心者」だと言っていることに気付きました。ドキュメントには例と優しいチュートリアルがたくさんあるので、このパッケージを強くお勧めします。私が試した他のパッケージは、多くのユーザーを想定する傾向があります。

于 2010-10-29T14:51:06.480 に答える
8

線形混合整数計画法が必要な場合は、Coin-OR (特にモジュール CBC) を参照します。これはフリー ソフトウェアです (音声として) 特定の言語で使用するか、C++ を使用することができます。

データに多くの前処理が必要な場合、またはソルバーに手を入れたい場合 (ピボット ポイントの選択、列の生成、カットの追加など...) は、C++ を使用してください。

ソルバーをブラック ボックスとして使用したい場合は、統合言語を使用してください (結果に関心があるだけで、問題が簡単または古典的であり、微調整なしで解決できる場合)。

しかし、タグでは、遺伝的アルゴリズムとグラフアルゴリズムについて言及しています。多分あなたはあなたの問題をよりよく定義することから始めるべきです...グラフについては私はとても好きです Boost::Graph

于 2010-05-07T21:08:30.240 に答える
4

大きな問題については、AMPLをご覧ください。AMPLは、多くのバックエンドソルバーが利用可能な最適化インタープリターです。別のプロセスとして実行されます; C ++は、入力データを書き出すために使用されます。

次に、さまざまな最先端のソルバーを試すことができます。

于 2010-05-07T20:58:23.757 に答える
2

GLPKを調べます。いくつかの例が付属しており、AMPL のサブセットで動作しますが、IMHO はモデルのセットアップに C/C++ を使用する場合に最適です。かなり大きなモデルにも対応。

于 2011-02-27T08:13:17.797 に答える
1

ウィキペディアのLinear Programmingでは、いくつかの異なるアルゴリズムについて説明しています。これらを掘り下げて、どれが最適かを確認してください。それは役に立ちますか、それとももっと具体的なものが必要でしたか?

于 2010-05-07T20:46:47.443 に答える