java - 使用 OR-Tools 表达多变量约束

标签 java constraint-programming or-tools

我正在探索 Google 的 Cp-SAT 来对特定类型的约束进行建模,如下所示:

限制:

变量 X 可以采用值 1、2 和 3
变量 Y 可以采用值 2、3 和 4
变量 Z 可以采用值 5、6 和 7
当变量X值为1时,则Y只能取3或4
当变量 Y 值为 3 时,则 Z 只能假设为 7

给定变量 Y 值为 3,Z 值不是 7,找出 X 和 Z 的可能值。

我无法使用 Google 的 CP-SAT java 接口(interface)对此进行建模。有人可以帮忙吗?

我探索了以下示例,但仍然无法弄清楚: https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/LinearProgrammingExample.java

https://github.com/google/or-tools/blob/stable/ortools/linear_solver/samples/SimpleMipProgram.java

最佳答案

您正在混合求解器(CP-SAT 接口(interface)和线性求解器接口(interface))。

您应该查看 CP-SAT 求解器,特别是此约束:

http://google.github.io/or-tools/java/classcom_1_1google_1_1ortools_1_1sat_1_1CpModel.html#a07c24a31bdfe0db93e53fbf38655f200

请首先阅读介绍性文档:

https://developers.google.com/optimization/cp

和简单食谱列表

https://github.com/google/or-tools/blob/stable/ortools/sat/doc/README.md

关于java - 使用 OR-Tools 表达多变量约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60681273/

相关文章:

java - 数组打印出来有大空格?

java - 如何使用 CP Optimizer 对提货和送货操作的容量约束进行建模?

java - 域最大值 - Choco 求解器

python - 如何向 Google OR-Tools jobshop 示例添加截止日期?

java - 摩托罗拉 LI4278 哔声 <BEL>

java - 如何在 HQL 更新中使用加入?

java - 如何在 Java 中循环参数

java - 如何检测无用的依赖关系?

python-3.x - or-tools 卡住并忽略超时

python - 计算调度问题中的雇用天数