【问题标题】:Java Choco CSP optimize using sum of variablesJava Choco CSP 使用变量总和进行优化
【发布时间】:2015-05-31 00:42:09
【问题描述】:

我正在使用 Choco 来解决 CSP。我想做这样的事情:

BoolVar[] badRow = getBadRow();
solver.findOptimalSolution(ResolutionPolicy.MINIMIZE, sum(badRow));

换句话说,我希望系统找到一个解决方案,其中 badRow 的真值最少。我不希望这是一个“约束”,因为那样系统就会失败,我想避免失败。但我找不到任何方法来创建 IntVar 作为其他变量的总和。

我该如何做到这一点?

【问题讨论】:

    标签: java constraint-programming choco


    【解决方案1】:

    我完全是从错误的角度来看待这个问题的。我没有尝试将变量构建为其他变量的总和,而是创建了一个普通变量,然后 Constrain 它成为其他变量的总和,如下所示:

    IntVar overflows = VariableFactory.integer("overflows", 0, maxOverflows, solver);
    Constraint tracker = IntConstraintFactory.sum(badRow, overflows);
    solver.post(tracker);
    solver.findAllOptimalSolutions(ResolutionPolicy.MINIMIZE, overflows, true);
    

    这就解决了。我现在因为没有看到它而感到愚蠢。

    【讨论】:

      猜你喜欢
      • 2020-05-08
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 2016-07-13
      • 2015-05-09
      • 2020-04-12
      相关资源
      最近更新 更多