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

问题描述

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

它们代表什么?

解决方法

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

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

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