私の質問はこれに関連している可能性がありますが、その解決策は得られませんでした。だから私は私の問題を尋ねようとします。
2D の半平面のセットに空の交差があるかどうかを調べたいです。したがって、2 つの無制限変数x
とがありy
ます。C#で私は持っています
x = gModel.AddVar(-GRB.INFINITY, GRB.INFINITY, 0.0, GRB.CONTINUOUS, "x");
y = gModel.AddVar(-GRB.INFINITY, GRB.INFINITY, 0.0, GRB.CONTINUOUS, "y");
次に、半平面ごとに 1 つの制約を追加します。
gModel.AddConstr((-1.0 * x) + (0 * y) <= 100, "h10");
gModel.AddConstr((1.0 * x) + (0 * y) <= 100, "h09");
gModel.AddConstr((0 * x) + (-1.0 * y) <= 100, "h08");
gModel.AddConstr((0 * x) + (1.0 * y) <= 100, "h07");
gModel.AddConstr((1.0 * x) + (0 * y) <= -33.3333334, "h06");
gModel.AddConstr((-1.0 * x) + (0 * y) <= 77.7777778, "h05");
gModel.AddConstr((-1.0 * x) + (0 * y) <= 55.55555533333333, "h04");
gModel.AddConstr((-1.0 * x) + (0 * y) <= 48.148148155555553, "h03");
gModel.AddConstr((-1.0 * x) + (0 * y) <= 40.740740733333332, "h02");
gModel.AddConstr((-1.0 * x) + (0 * y) <= 70.370370377777789, "h01");
gModel.AddConstr((1.0 * x) + (0 * y) <= -62.962962955555561, "h00");
(0 * x + 0 * y, GRB.MINIMIZE) で最適化して、実行可能な解がある (つまり、空の交差点ではない) かどうか (空の交差点) を示す結果の状態を取得します。
問題は、以前のセットアップでは、 h00とh02が矛盾していることは明らかなのに、UNBOUNDED 状態になることです。どのように?
Gurobi5.5を使用しています。初期設定で
GurobiEnv.Set(GRB.IntParam.DualReductions, 0);
何か提案はありますか?
補足: Rich は、問題を再現するための要点を作成しました。