动态强制链

动态强制链从一个明确的假设开始,将每个强制推论应用于临时候选数状态。在该状态中创建的新单一数或其他推理可能扩展链。在证明达到并解除矛盾或穷举结论之前,每个中间结果都保持以开始假设为条件。

什么是动态强制链?

动态强制链使用与强制链相同的双分支强制推理网,但每条路径可以将先前导出的推论重用为后续强节点。这种重用允许路径不仅由开始假设,还由先前证明的推论来寻找被强制的位置。

分步示例

动态强制链分步示例:将强制结果应用于临时候选状态,使新产生的单一数继续延伸分支直至得出结论。

第 1 步

考虑这些单元格。

展示动态强制链分步示例第 1 步的数独盘面,高亮显示相关候选数与格子。

第 2 步

假设A1 必须包含值 7。矛盾否定了该假设;下方的链展示了原因。 此动态强制链使用动态网格变异(在链探索过程中移除候选数)来证明A1 不能包含值 7。 链 1(假设 ON):1. 如果 A1 包含 值 7,那么 A9 不能包含 值 7 (该值在列中只能出现一次) 2. 如果 A9 不包含 值 7,那么 A9 必须包含 值 5 (格中唯一剩余的可能值) 3. 如果 A9 包含 值 5,那么 A7 不能包含 值 5 (该值在宫中只能出现一次) 4. 如果 A7 不包含 值 5,那么 A7 必须包含 值 9 (格中唯一剩余的可能值)。 链 2(假设 OFF):1. 如果 A1 包含 值 7,那么 C3 不能包含 值 7 (该值在宫中只能出现一次) 2. 如果 C3 不包含 值 7,那么 C4 必须包含 值 7 (列中唯一剩余的可能位置) 3. 如果 C4 包含 值 7,那么 C4 不能包含 值 9 (该格只能填入一个值) 4. 如果 C4 不包含 值 9,那么 A4 必须包含 值 9 (宫中唯一剩余的可能位置) 5. 如果 A4 包含 值 9,那么 A7 不能包含 值 9 (该值在列中只能出现一次)。

展示动态强制链分步示例第 2 步的数独盘面,高亮显示相关候选数与格子。

第 3 步

因此可以移除 A1 7:动态强制链证明 A1 不能包含值 7。

动态强制链推导后的数独盘面,高亮显示经证明的填数或候选消去。

本分步示例展示了所定义推导的一个有效实例。在将相同推导用于其他盘面之前,请确认所声明的源集合或假设、每个分支均已检验,以及所应用的结论为所有分支所共有。您可以免费在线玩数独,在当前候选状态可见的情况下进行练习。

如何发现它

在每条路径中,记录导出的推论并将其重用为后续强节点。当两条路径强制结论时,它独立于开始假设成立。

消去的依据

重用允许路径产生更深的推论,因为它们不仅可以由开始假设,还可以由先前证明的推论来寻找被强制的位置。当两条路径强制结论时,它独立于开始假设成立。