这段代码有什么问题?:
SolverContext sc = SolverContext.GetContext();
Model m = sc.CreateModel();
m.AddDecision(new Decision(Domain.IntegerNonnegative, "a"));
m.AddDecision(new Decision(Domain.IntegerNonnegative, "b"));
m.AddConstraint(null, "a < 2");
m.AddConstraint(null, "b == If[a == 2, 2, 1]");
var sol = sc.Solve();
Console.WriteLine(sol.GetReport());
求解器冻结并且不给出任何结果。我正在和If
操作员一起玩,试图看看它是如何工作的,但似乎没有达到我的预期。不确定我是否以正确的方式使用它(我想说,如果a
等于,2
则b
必须等于2
,否则1
)。
我也试过
m.AddConstraint(null, "If[a == 2, b == 2, b == 1]");
结果相同。