Frage

Ich versuche Microsoft Solver Foundation 2 zu verwenden, um eine ziemlich komplizierte Situation zu lösen, aber ich bin fest mit einem UnsupportedModelException auch wenn ich verdumme das Modell so viel wie möglich.
Hat jemand eine Idee, was ich falsch mache?
Im Anschluss ist die am wenigsten Beispiel für das problematische Verhalten zu reproduzieren.

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();

Bitte beachten Sie, dass mein tatsächliches Modell enthalten sollte, einmal abgeschlossen ist, ein paar Einschränkungen in Form eines a + b a <= somevalue, so wenn das, was ich bin bereit, letztlich zu tun isn‘ t unterstützt, lassen Sie mich bitte im Voraus mit. Wenn das der Fall ist würde ich schätze auch einen Vorschlag von einem anderen Löser mit einer .NET freundlichen Schnittstelle, die ich verwenden könnte (nur bekannte kommerzielle Pakete, bitte).

Vielen Dank im Voraus

War es hilfreich?

Lösung

Besorgen Sie sich die Quelle von diesem Link und versuchen (es hat mehrere Model.Abs). Wenn er stirbt, dann stimmt etwas nicht mit Ihrem Setup und die kürzeste Lösung zu deinstallieren, Neustart und wieder installieren.

http://geekswithblogs.net/cyoung/archive/2009 /02/25/129672.aspx

OK, jetzt, dass Sie quadratische Einschränkungen erwähnt, zumindest Express-Version definitiv dosn't sie unterstützen:

http://code.msdn.microsoft.com /solverfoundation/Thread/View.aspx?ThreadId=2756

Enterprise-Version könnte aber es kostet $$$$ - wenn Sie „Academic Unternehmen“ bekam es ist immer noch ohne Gurobi Solver so vor Denken über Abschied von Ihrem moneys wäre es gut, sie spezifische Fragen zu senden (

Andere Tipps

Ich glaube, Sie brauchen, um die Entscheidungen zum Modell hinzufügen, bevor Sie sie in den Einschränkungen verwenden. Wenn Sie diese Zeile hinzufügen, nachdem die Entscheidungen des Code funktioniert bei mir zu schaffen:

model.AddDecisions(decisionA, decisionB, decisionC);

Nathan

scroll top