2017-11-24 25 views
0

私はcplexに対して複数の初期解を提供します。最初の初期解のみを考慮する。Cplexは複数の初期解を考慮していません

ケース1:私は2つの初期溶液を与えた。以下はコードとノードファイルです。コード:

cplex.addMIPStart(startVar1、startVal1); cplex.addMIPStart(startVar、startVal);

ノードファイル:

1 of 2 MIPが提供するソリューションを開始します。 MIP開始「m1」は目的2107.1259で初期解を定義した。アグリゲータは4433の置換を行っています...アグリゲータを11回試しました。 MIP Presolveは、121597行と66747列を排除しました。 MIP Presolveは423500係数を修正しました。アグリゲータは4922の置換を行った。削減されたMIPには、87011行、15912列、および2020871のnonzerosがあります。削減されたMIPには、15114のバイナリ、0の将軍、0のSOS、および0のインジケータがあります。プリソルブ時間= 26.58秒。 (20114.66 ticks)462バールを修正し、0バウンドを締めた。プローブ時間= 14.33秒。 (2238.26 ticks)アグリゲーターを2回試しました。 MIP Presolveは3295行と557列を排除しました。 MIP Presolveは11275係数を修正しました。アグリゲータは13の置換を行った。削減されたMIPには、83703行、15342列、および1963759非ゼロがあります。削減されたMIPには、14557のバイナリ、9つの将軍、0のSOS、および0のインジケータがあります。プリソルブ時間= 13.25秒。 (5471.85 ticks)固定された17匹のバールを探査し、0バウンドを締めた。プロービング時間= 3.92秒。 (285.75 ticks)クリークテーブルのメンバー:997492. MIP強調:バランスの最適性と実行可能性。 MIP検索方法:動的検索。並列モード:決定論的で、最大12のスレッドを使用します。根の緩和溶液時間= 289.55秒。 (57735.17ティック)

ケース:2私は1つの初期解を与えました コード:cplex.addMIPStart(startVar、startVal); ノードファイル: 1 of 1 MIPが提供するソリューションを開始します。 MIP開始 'm1'は目的関数80.1562で初期解を定義した。アグリゲータは4433の置換を行っています...アグリゲータを11回試しました。 MIP Presolveは、121597行と66747列を排除しました。 MIP Presolveは423500係数を修正しました。アグリゲータは4922の置換を行った。削減されたMIPには、87011行、15912列、および2020871のnonzerosがあります。削減されたMIPには、15114のバイナリ、0の将軍、0のSOS、および0のインジケータがあります。プリソルブ時間= 25.45秒。 (20114.66 ticks)462バールを修正し、0バウンドを締めた。プロービング時間= 6.91秒。 (2238.26 ticks)アグリゲーターを2回試しました。 MIP Presolveは3295行と557列を排除しました。 MIP Presolveは11275係数を修正しました。アグリゲータは13の置換を行った。削減されたMIPには、83703行、15342列、および1963759非ゼロがあります。削減されたMIPには、14557のバイナリ、9つの将軍、0のSOS、および0のインジケータがあります。プリソルブ時間= 7.50秒。 (5471.85 ticks)固定された17匹のバールを探査し、0バウンドを締めた。プローブ時間= 0.91秒。 (285.75 ticks)クリークテーブルのメンバー:997492. MIP強調:バランスの最適性と実行可能性。 MIP検索方法:動的検索。並列モード:決定論的で、最大12のスレッドを使用します。ルート緩和溶液時間= 127.17秒。 (57735.17 ticks)

私に何かがないか、他のパラメータを指定する必要がありますか?助けてください。前もって感謝します。

+0

この質問はクロス・ポストされ、[こちら](https://developer.ibm.com/answers/questions/415030/cplex-is-not-considering-multiple-initial-solution.html?childToView=415042)に回答しました。 #answer-415042)。 – rkersh

答えて

0

(ノーCPLEX-ユーザー)

docs(私はパートに直接リンクすることはできませんよ。醜いドキュメント...)によると:

に方法はありません変数の多次元配列からMIP開始を作成します。変数の多次元配列からMIP開始を作成するには、まずそれらの変数をすべてフラット配列にコピーする必要があります。多次元配列を使用したこのメソッドのサンプルについては、「CPLEXユーザーズマニュアル」の「ソリューションからの起動:MIP開始」を参照してください。メソッドsetStart、addMIPStartはインクリメンタルでない方法とは異なり

とそのC++ counterpart。つまり、addMIPStartを呼び出すたびに新しいMIP開始が作成されます。

最初にいくつかの前処理を行い、1回だけ呼び出す必要があるようです。

しかし、非インクリメンタルな性質(C++のドキュメントに記載されています)はJavaのドキュメントでは言及されていませんので、非CPLEXユーザーとして私はかなり混乱しますが、私は上記のアプローチをC++ - docsで必要とします。

+0

こんにちは私はあなたが言っていることを理解していますが、私の問題は複数の初期解を与えることができ、初期解を与えたときにcplexが最良解を選択することです。 –

関連する問題