首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Choco 2中使用或约束RealVariables

在Choco 2中使用或约束RealVariables
EN

Stack Overflow用户
提问于 2015-06-28 07:07:00
回答 1查看 187关注 0票数 0

我在Windows 8.1中使用带有Eclipse IDE的Choco 2.1.5

当我编译以下代码时:

代码语言:javascript
复制
CPModel m = new CPModel();
m.setDefaultExpressionDecomposition(false);
RealVariable A = Choco.makeRealVar("a", -5.5, 5.5);
RealVariable B = Choco.makeRealVar("b", -4.4, 4.4);
RealVariable C = Choco.makeRealVar("c", -3.3, 3.3);
m.addConstraint(Choco.or(
        Choco.eq(A, Choco.plus(B,C)),
        Choco.eq(B, Choco.plus(A,C)),
        Choco.eq(C, Choco.plus(A,B))
        ));
CPSolver solver = new CPSolver();
solver.read(m);
System.out.println(solver.solve());

我得到以下输出:

代码语言:javascript
复制
Exception in thread "main" java.lang.UnsupportedOperationException
    at choco.kernel.solver.constraints.AbstractSConstraint.opposite(AbstractSConstraint.java:270)
    at choco.cp.solver.CPModelToCPSolver.makeSConstraintAndOpposite(CPModelToCPSolver.java:335)
    at choco.cp.solver.CPModelToCPSolver.createGenericMetaConstraint(CPModelToCPSolver.java:457)
    at choco.cp.solver.CPModelToCPSolver.createMetaConstraint(CPModelToCPSolver.java:432)
    at choco.cp.solver.CPModelToCPSolver.readModelConstraint(CPModelToCPSolver.java:353)
    at choco.cp.solver.CPModelToCPSolver.readConstraints(CPModelToCPSolver.java:292)
    at choco.cp.solver.CPSolver.read(CPSolver.java:519)
    at coverbylines.Test.main(Test.java:88)

但是当我尝试使用IntegerVariables时,我没有得到任何错误。会有什么问题呢?有没有什么办法解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2015-10-22 23:30:33

并不是所有的约束都可以在Choco2中安全地具体化,只有一部分约束可以安全地具体化。真正的约束不是该子集的一部分,而Choco.or(...)诱导具体化。看看Choco3,其中任何约束都可以具体化,甚至是真正的约束(这意味着要安装一个第三方库Ibex)。

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

https://stackoverflow.com/questions/31094442

复制
相关文章

相似问题

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