我正在探索 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 求解器,特别是此约束:
请首先阅读介绍性文档:
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/