0

私はPuLPとCBCでMILPの問題を解決しようとしています。COIN-OR:CBCが解決した最適化プロセスにおいて、有界の正の整数変数はどのような値を取るのですか?

残りの問題を除いて、私は正の整数変数のセットに問題があります。私はリラクゼーションの制約があります。つまり、正の整数変数の変数のいくつかは、制約のため一定の値に固定されません。

正の整数の制約のセットから言い換えると、いくつかは制約のために値を取得しますが、この同じ制約が緩和されると(大きなM緩和)、残りの変数は一定の値。

値を与えるのはCBCの責任です。それらのほとんどは0になりますが、そのうちのいくつかは1440という変数の上限の値を取得します。それはなぜですか? CBCはこれらの変数にこれらの値を与えていますか?ソーラーが従うというルールはありますか?

私が情報を追加したり言い換えることができるようにわかっているものが分かっていない場合は、私はこれに慣れています。ありがとうございました。

答えて

1

CBCソルバーは、通常、ツリーを検索する際に、LPリラクゼーションのシーケンスを解決する「標準的な」B検索を行います。シンプレックス法の1つを使ってLPを解く場合、一般的に、そのLPの検索プロセスは実行可能な空間の表面を歩いているので、それ以外の制約の少ない変数では、上限値または下限値。

+0

ありがとうございました。変数を特定の値(たとえば0)に固定するとよいと考えていますか?それは何のためにもあまりにも多くの計算能力を浪費していますまたは、値が2つの境界のうちの1つである場合、無視する必要があることを出力プログラムに知らせます。 – dimrizo

+1

通常、あなたが期待している、または探しているソリューションについてソルバーに与えることができる情報はすべて役立ちます。変数を既知の値に設定することがよくあります。これは、既知のソリューションでモデルをデバッグする場合に特に便利です – TimChippingtonDerrick

関連する問題