约束规划中的全局约束是什么?

What are Global Constraints in constraint programming?

我看到 ORTools 和 CpOptimizer 都使用全局约束。我知道它大大加快了搜索速度,但它实际上做了什么?就像我使用下面的(1)或(2)有什么区别;

AllDifferent 约束示例:

1) x1 != x2, x2 != x3, x1 != x3

2) AllDifferent(x1, x2, x3)

???

None。我们重建完全不同的派系。不过,如果您使用 AllDifferent 公式,预求解会更快。

现在,CP-SAT 是基于 SAT 求解器的,并且更喜欢布尔变量。 在您的情况下,您可以尝试删除整数变量,并使用带有 sum (boolvars) <= 1.

的布尔变量数组