かなり複雑な状況を解決するために Microsoft Solver Foundation 2 を使用しようとしていますが、可能な限りモデルを縮小しても UnsupportedModelException が発生します。
誰かが私が間違っていることを知っていますか?
以下は、問題のある動作を再現するために必要な最小限の例です。
var ctx = SolverContext.GetContext();
var model = ctx.CreateModel();
var someConstant = 1337.0;
var decisionA = new Decision(Domain.Real, "decisionA");
var decisionB = new Decision(Domain.Real, "decisionB");
var decisionC = new Decision(Domain.Real, "decisionC");
model.AddConstraint("ca", decisionA <= someConstant);
model.AddConstraint("cb", decisionB <= someConstant);
model.AddConstraint("cc", decisionC <= someConstant);
model.AddConstraint("mainConstraint", Model.Equal(Model.Sum(Model.Abs(decisionA), decisionB, decisionC), someConstant))
model.AddDecisions(decisionA, decisionB, decisionC);
model.AddGoal("myComplicatedGoal", GoalKind.Minimize, decisionC);
var solution = ctx.Solve();
solution.GetReport().WriteTo(Console.Out);
Console.ReadKey();
私の実際のモデルには、完成したら、a + b a <= someValue の形式でいくつかの制約を含める必要があることを考慮してください。そのため、最終的に実行したいことがサポートされていない場合は、事前にお知らせください。その場合は、使用できる.NETフレンドリーなインターフェイスを備えた他のソルバーの提案もいただければ幸いです(よく知られている商用パッケージのみでお願いします)。
前もって感謝します