2016-10-09 10 views
0

CPLEX Python APIを使用して一連のLP問題を解決しています。 問題の多くは本質的に同じなので、手をパラメータの完全な保存します。私は、多くの人にとって前の問題の解決策を使って暖かいスタートを使いたいと思っています。関数cpx.start.set_start(col_status, row_status, col_primal, row_primal, col_dual, row_dual)を呼び出すことによって、cpx = cplex.Cplex()を呼び出します。CPLEXは最適なLP解を見つけるが基底エラーは返さない

この機能は、hereと記載されています。引数のうちの2つ、col_statusrow_statusは、cpx.solution.basis.get_col_basis()cpx.solution.basis.get_row_basis()を呼び出すことによって取得されます。

しかし、今cpx.solution.basis.get_basis()戻りCPLEX Error 1262: No basis exists.

を呼び出す

... cpx.solution.status[cpx.solution.get_status()]optimalを返すと cpx.solution.get_values()cpx.solution.get_dual_values()の両方を得ることができることにもかかわらず、 this postによる一つは、空のリストをウォームスタート機能を呼び出すことができます列と行の基本ステータスは次のとおりです。

lastsolution = cpx.solution.get_values() 
cpx.start.set_start(col_status=[], row_status=[], 
        col_primal=lastsolution, row_primal=[], 
        col_dual=[], row_dual=[]) 

しかし、これは実際にはCPLEX反復をもう少し行うことになります。なぜもっと不明なのですか?しかし、全体的な目標は明らかにそれほど少なくないことです。

バージョン情報 のPython 2.7.12 CPLEX 12.6.3

+0

http://filedropper.comのようなファイル共有サイトでモデルを(理想的にはSAV形式で)共有できますか?すなわち、 'cpx.solve()'を呼び出した後、 'cpx.solution.basis.get_basis()'を呼び出すときに "CPLEX Error 1262"を取得するモデルです。また、対話型でその動作を再現できますか? – rkersh

+0

現時点ではモデルの共有はできません。さらに、モデルは非常に大きいです。さらに、エラーを再現するためにインタラクティブなコードを数百行作成してデバッグするつもりはありません。ごめんなさい。 – Constantine

答えて

0

私はなぜあなたはCPXERR_NO_BASISを取得しているかわかりません。私のコメントを参照してください。

row_primal,col_dual、およびrow_dualの値を指定すると、運がよい場合があります。たとえば:

cpx2.start.set_start(col_status=[], 
        row_status=[], 
        col_primal=cpx.solution.get_values(), 
        row_primal=cpx.solution.get_linear_slacks(), 
        col_dual=cpx.solution.get_reduced_costs(), 
        row_dual=cpx.solution.get_dual_values()) 

私はあなたがCPLEX例(単独col_primalを指定するときに、確定ダニの数が実際に増加)が付属していますafiro.mpsモデルを使用して記述する現象を再現することができました。しかし、上記を実行すると、それが助けになりました(デットティック数が改善され、反復回数が0になりました)。

最後に、set_startを使用すると常に助けになるという保証はありません(場合によっては悪い考えかもしれません)。私はこれのための参照を持っていません。

+0

私は上記の提案を実装しましたが、それでも反復回数を減らすことはできませんでした。私はまったく同じ問題を(パラメータを変更せずに)解決しようとしましたが、ソルバはまだ完全な反復を行っていました。 – Constantine

関連する問題