有谁知道任何能解决线性约束数学模型的简单求解者吗?一个简单的模型:
a + b + c = 100;
a/b/c = 2/3/4;
a > d我正在使用UnsolvableModelException,这是我的C#代码,但是它会抛出UnsolvableModelException:
SolverContext solverContext = SolverContext.GetContext();
Model model = solverContext.CreateModel();
Decision a = new Decision(Domain.Real, "a");
Decision b = new Decision(Domain.Real, "b");
model.AddDecisions(a, b);
model.AddConstraint("fator", a / b == 4);
model.AddConstraint("sum", a + b == 5);
Solution solution = solverContext.Solve(new ConstraintProgrammingDirective());
Report report = solution.GetReport();
Console.WriteLine("a = {0} ; b = {1}", a, b);谢谢你的帮助
编辑:
因为int (约束约束编程)问题,在解决它时不应该使用任何指令。守则应是:
SolverContext solverContext = SolverContext.GetContext();
Model model = solverContext.CreateModel();
Decision a = new Decision(Domain.Real, "a");
Decision b = new Decision(Domain.Real, "b");
model.AddDecisions(a, b);
model.AddConstraint("fator", a / b == 4);
model.AddConstraint("sum", a + b == 5);
Solution solution = solverContext.Solve();
Report report = solution.GetReport();
Console.WriteLine("a = {0} ; b = {1}", a, b);然而,我不知道为什么我跑到缓慢--我只需要在解决方案集中第一个解决方案。
发布于 2010-11-26 04:20:39
根据您的需要,Wolfram可能很有用(至少用于验证)。我怀疑你能否解决复杂的问题,因为输入是有限的。但对于简单的问题,如你的例子,这是可以的。
http://www.wolframalpha.com/input/?i=solve+a+%2B+b+%2B+c+%3D%3D+100%3B+a%2Fb+%3D%3D+2%2F3%3B+b%2Fc%3D%3D3%2F4%3B+a+%3E+d

https://stackoverflow.com/questions/4282472
复制相似问题