2017-02-02 15 views
0

私はSCIPを使用して分岐と価格アルゴリズムを実装しています。SCIPを使用したB&Pの分岐メカニズム

質問:分岐機構を呼び出すには、基本的なBRANCHEXECLPメカニズムを使用します。 SCIPはいつ分岐するのかを知っていますか?現在の緩和解が非整数解を持つとき、右か?私はSCIPにこのケースのための分岐機構を呼び出すように指示する必要はありません、そうですか?

私の質問には、私のB & Pアルゴリズムがうまくいきます(ほとんどの場合)。しかし、ある時点で、デュアルバウンドソリューションに対応するノードに到達します。価格問題を解決した後(列問題がマスター問題になるのは魅力的ではない)、このノードの緩和解は非整数解を含んでいますが、分岐メカニズムは呼び出されません。走りは止まる。ここで何が起こっているのか?

おかげで、 ロブカレー

答えて

0

私はあなたが現在LP溶液中の小数変数があることを織り込んでチェック思いますか?

そして、そのノードのデュアルバウンドはグローバルデュアルバウンドですか?積分値のみを持つように目標を設定しましたか?その場合、デュアルバウンドが、それを四捨五入したプライマリバウンドに十分に近い場合、SCIPは同じ数を返します。おそらくSCIPは、現在のグローバルなデュアルバウンドによって最適であることがすぐに証明された価格設定後に新しいソリューションを見つけましたか?価格決定ループで解決された各LPの後に、SCIPは自動的にいくつかの簡単な丸めヒューリスティックを実行します。

+0

ありがとうございました。はい、現在のLPソリューションには分数変数があります。はい、現在のノードでのデュアルバウンドは、グローバルデュアルバウンドと同じです。いいえ、私は積分値のみを持つことを私の目的にしていませんでした。整数変数は目的関数内にありません。経験則が問題になる可能性があります。これらのヒューリスティックを無効にする簡単な方法はありますか? –

+0

そして、プライマリバウンドはデュアルバウンドと等しくないのですか?ヒューリスティクスは問題ではないはずです。実現可能なソリューションを構築しようとします。しかし、インタラクティブシェルで "heur emph off"を設定することでそれらを無効にすることができます(これはすべてのヒューリスティックを無効にします)。しかし、私はそれをお勧めしません。 – Gerald

+0

あなたは走りが止まると言いますが、それはどういう意味ですか?それは最適性を主張していますか?それは中断するのですか?異常終了した場合、デバッグモード(OPT = dbgでコンパイル)で実行しましたか? – Gerald