MiniZinc 中的灰色方块代表什么?

What are does the gray squares represent in MiniZinc?

在 Minizinc 中可视化执行树(通过配置文件搜索创建)时,我获得了一个包含灰色方块的树。

它们代表什么?

灰色方块是后跳。它们是求解器能够证明不存在解的树的一部分。

在一般的约束规划求解器中,求解器执行树搜索。每当您发现一个分支不包含任何解决方案时,您就会转到另一个分支。传统上,每个搜索决策都有两个分支。例如,赋值及其否定。但是也可以为变量可以取的每个可能值创建一个分支。

在 Lazy Clause Generation 求解器中,搜索的工作方式略有不同。每当您发现搜索失败时,您就让 SAT 后端生成一个原因,通常称为“不合格”。这不好解释了为什么这个分支不包含任何解决方案,并且可以从那时起作为一个新的约束来强制执行。如果您只是重新审视您的上一个决定,那么这个新约束可能仍然会被违反。相反,这些 LCG 求解器使用回跳机制跳转到尚未违反不利条件的最后决定。