1

かなり大きな整数最適化問題を解決するために glpsol を使用しています。シンプレックス アルゴリズムは約 30 分間実行され、その後、glpsolMIP ソルバーを使用して整数解を見つけようとします。

質問: glpsol コマンド ツールのみを使用して、これを 2 つのステップに分割できますか、それとも glpk API を使用する必要がありますか?

ドキュメントによると、「読み取り」および「nomip」オプションを試しました

-r filename, --read filename

ソルバーでソリューションを見つけるのではなく、提供されたファイル名からソリューションを読み取る

この形式で:

 glpsol --cpxlp WhiskasModel.lp --write WhiskasSolution.mip --nomip

それとその後

 glpsol --cpxlp WhiskasModel.lp --read WhiskasSolution.mip

しかし、私はエラーを受け取ります:

 Reading MIP solution from `WhiskasModel.mip'...
 WhiskasModel.mip:33702: non-integer column valueUnable to read problem solution

WhiskasModel.mip は int 以外の値を持つ LP ソリューションであるため、これはもちろん真です。

私はglpsol toolkitかなり強力で、いくつかの MIP オプションを試してみたいと思っていますが、各ステップで 30 分待つのはかなり退屈です。「この LP ソリューションを使用して MIP を開始する」と言うことができますか?

4

1 に答える 1

1

試してみるべきことの 1 つは、LP 基底をプレーン テキスト ファイルに書き込んでから、再起動時にその LP ソリューションを基底として開始することです。

試す

  -w WhiskasBasis.txt

再起動して IP として続行する場合は、オプションを追加してそのベースを使用するように依頼しiniます。

--ini WhiskasBasis.txt 

その他の提案:

  1. これを頻繁に行う場合は、コマンドライン オプションを使用しません。GLPK API (選択した言語用) と IDE を使用すると、柔軟性と制御が大幅に向上します。このリンクにはいくつかの言及があります。

  2. MIP モデルの定式化を目的と制約とともに (別の質問として) 投稿すると、速度を上げるための提案が得られる場合があります。時々、途方もなく役立つリラクゼーションとサブ問題があります.

それが役立つことを願っています。

于 2013-07-20T18:05:49.047 に答える