상당히 복잡한 상황을 해결하기 위해 Microsoft Solver Foundation 2를 사용하려고합니다. 그러나 가능한 한 모델을 덤프 할 때도 UnsupportedModelException이 발생합니다.
누구나 내가 뭘 잘못하고 있는지 아이디어가 있습니까?
다음은 문제가되는 동작을 재현하는 데 필요한 최소한의 예제입니다. Microsoft Solver Foundation 제약
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 < = someValue와, 내가 궁극적으로 할 기꺼이 어떤 경우가되지 않도록 지원, 미리 알려 주시기 바랍니다. 그렇다면 .NET에서 사용할 수있는 친숙한 인터페이스 (잘 알려진 상업용 패키지 만 사용하십시오.)로 다른 솔버에 대한 제안을 보내 주시면 감사하겠습니다. 사전에
덕분에
이 코드는 올바르게 작동하는 것 같지만 불행히도이 문제가 완전히 해결되지 않습니다. 내가 겪고있는 문제는 모델링 단계에있는 것 같아요. SFS가 공식적으로 제 문제를 해결할 수 없거나 올바른 방법으로 사용하지 않고있는 것처럼 보입니다. 달려 드는 문제는 2 차 제약이 필요합니다. 이것은 이미 4 차 방정식 시스템에서 오는 문제의 분해 된 버전입니다. 2 차 제약 또는 모델링 트릭을 사용할 방법이 필요합니다. – em70