首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求解器求解约束规划问题

求解器求解约束规划问题
EN

Stack Overflow用户
提问于 2010-11-26 04:08:19
回答 1查看 1.1K关注 0票数 1

有谁知道任何能解决线性约束数学模型的简单求解者吗?一个简单的模型:

代码语言:javascript
复制
a + b + c = 100;
a/b/c = 2/3/4;
a > d

我正在使用UnsolvableModelException,这是我的C#代码,但是它会抛出UnsolvableModelException:

代码语言:javascript
复制
        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 (约束约束编程)问题,在解决它时不应该使用任何指令。守则应是:

代码语言:javascript
复制
    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);

然而,我不知道为什么我跑到缓慢--我只需要在解决方案集中第一个解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4282472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档