10

IBM cplexオプティマイザを使用して最適化の問題を解決していますが、オプティマイザが行うすべてのターミナルプリントを望んでいません。 IloCplexまたはIloModelクラスでこれを無効にするメンバーがありますか?これらはカットと反復に関するプリントです。ターミナルへのプリントは高価で、私の問題は最終的に何百万もの変数のオーダーになります。私はこれらの余計な出力で時間を無駄にしたくありません。ありがとう。 CPLEX /コンサートを使用してcplexをターミナルに出力しない方法

+2

CPLEXを持つ変数の数百万人とMIPモデルを解きながら、それがすべてでは珍しいものではなく、デフォルトのロギングは重要な方法でソリューション時間には影響しません、非自明です。平均して、問題インスタンスが大きいほど、ログメッセージの1行につきより多くの計算が実行されます。 (約1000回のカットを印刷するのと同じくらい、約10回のカットを印刷するのに同じ時間がかかりますが、実際には1000回のカットを計算するのにはかなり時間がかかります)。実際、大きな問題については、通常はログを立てるように設定します。 –

+0

アドバイスありがとう – DiegoNolan

答えて

14

、あなたは完全に

CPXはIloCplexオブジェクトである
cpx.setOut(env.getNullStream()) 

でコンソールにCPLEXのロギングをオフにすることができます。また、setOut関数を使用してログをファイルにリダイレクトすることもできます。

何がログに記録されるかを制御するいくつかのcplexパラメータがあります。たとえば、MIPIntervalは、行間で検索されたMIPノードの数を設定します。たとえば、MIPDisplayを0にすると、新しいソリューションが見つかった場合を除いてカットの表示がオフになります.MIPDisplay 5では、すべてのlp-subproblemに関する詳細情報が表示されます。

ログ関連のパラメータは、あなたがのsetParam機能でパラメータを設定しMIPInterval MIPDisplay SimDisplay BarDisplay NetDisplay

が含まれます。

cpx.setParam(IloCplex::MIPInterval, 1000) 
+1

ありがとう、非常に役立つ – DiegoNolan

関連する問題