Gurobi実行時のログ出力において、次のようなメッセージが現れることがあります。
User MIP start did not produce a new incumbent solutionこのメッセージは与えられたMIPスタートが採用されなかったときに出力されます。これにはいくつかの原因が考えられます。
- 前処理におけるGurobiヒューリスティクスによって、与えられたMIPスタートと同等以上の解が得られた。
- 一部分の変数だけに与えられたMIPスタートについて、制限された探索では暫定解を発見できなかった。
- 与えられたMIPスタートが非許容であった。この場合次のような追加のメッセージが現れることがある。
User MIP start violates constraint c1 by 2934.000000000- モデルや解に数値的な不安定性がある。例えばMIPスタートがギリギリ許容であるかトレランスの範囲内でしか許容にならない。
後半の2つのケースでは、MIPスタートが一旦不採用となりますが、前処理後に再度MIPスタートの検討を行う場合があります。その場合ログには次のように表示されます:
Another try with MIP startもしMIPスタートが実行不可能と判断された理由を検証したい場合、モデル内の変数をMIPスタートの値に固定してみるという方法があります(LB属性とUB属性の両方をMIPスタートの値に設定する)。
これによって得られたMIPモデルが実行不能な場合、このモデルでIISを計算し、実行不可能な原因を特定するのに役立つ追加情報を得ることができる可能性があります。