limitación Fundación Solver de Microsoft
-
04-10-2019 - |
Pregunta
Estoy tratando de utilizar Microsoft Solver Fundación 2 de resolver una situación bastante complicada, sin embargo estoy atascado con un UnsupportedModelException incluso cuando embrutecer el modelo tanto como sea posible.
¿Alguien tiene una idea de lo que estoy haciendo mal?
A continuación se presenta el menor ejemplo requerida para reproducir el comportamiento problemático.
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();
Por favor, considere que mi modelo real debe incluir, una vez completa, unos restricciones en la forma de un a + b a <= someValue, así que si lo que estoy dispuesto a hacer en última instancia ISN' t apoyado, por favor hágamelo saber de antemano. Si ese es el caso También apreciaría una sugerencia de algún otro programa de solución con una interfaz .NET que podría utilizar (paquetes comerciales únicamente conocidas, por favor).
Gracias de antemano
Solución
Grab la fuente de este link y pruebe (tiene varios Model.Abs). Si muere entonces algo está mal con su configuración y la solución más corta es desinstalar, reiniciar y volver a instalar.
http://geekswithblogs.net/cyoung/archive/2009 /02/25/129672.aspx
OK, ahora que usted ha mencionado restricciones cuadráticas, al menos la versión expreso definitivamente dosn't apoyan:
http://code.msdn.microsoft.com /solverfoundation/Thread/View.aspx?ThreadId=2756
Empresa versión podría pero cuesta $$$$ - si usted tiene "Académico Empresa" sigue siendo sin Gurobi solucionador por lo que antes de pensar acerca de la separación de su dinero que sería bueno para enviarles preguntas específicas ( http://gurobi.com/ ) y preguntar por alguna garantía en caso de que dicen que sería manejarlo, pero no lo hace
Otros consejos
Creo que es necesario agregar las decisiones al modelo antes de usarlos en las restricciones. Si se agrega esta línea después de la creación de las decisiones que su código funciona para mí:
model.AddDecisions(decisionA, decisionB, decisionC);
Nathan