链与环 (Chains and Loops)
链代表了最基础和最强大的数独解题技巧。每个已知的数独都可以仅使用各种复杂度的链和唯数来解决。链是从前提到结果的推理序列。
产生矛盾的链证明原始前提为假。如果前提是"候选数x被设置",则该候选数可以被消除。如果前提是"候选数x未被设置",则该候选数可以被放置。非矛盾的链单独证明不了什么,但可以组合:从相反前提出发到达相同结果的两条链创建一个真相(该结果必须为真)。
链接与推理
弱链接
当两个实体弱链接时,它们不能同时为真。如果一个为真,另一个必须为假。然而,两者都可以同时为假,所以一个为假对另一个没有结论。在基本链中,实体通常是共享宫或格子的候选数。
强链接
当两个实体强链接时,它们不能同时为假。如果一个为假,另一个必须为真。对于候选数,这需要恰好两个候选数共享一个格子,或同一数字的恰好两个实例共享一个宫(共轭对)。
总结:弱链接意味着"如果a为真则b为假"。强链接意味着"如果a为假则b为真"。链必须交替链接类型(因此称为"交替推理链"/ AIC)。强链接总是也是弱链接,所以强链接可以替代弱链接,但反之不行。
组链接
组链接使用宫之间的交叉在两个以上候选数之间形成推理。

组强链接逻辑:"如果r3c12都不是5,r3c7必须是5"和"如果r3c7不是5,r3c12中必须有一个是5"。
组弱链接逻辑:"如果r3c12中有一个是5,r3c7不能是5"和"如果r3c7是5,r3c1和r3c2都不能是5"。

链接也可以存在于组节点之间,如行9、列4和宫8中的候选数2所示。
链中的ALS
ALS(准锁集)= 一个宫中N个格子有N+1个候选数。ALS单独证明不了什么,但在链中作为强链接节点运作。从ALS中移除一个候选数将其转换为锁集(显性数集)。
链与网
在链中,每个链接只依赖于紧接的前一步。如果链接依赖于链中的更早步骤,或者如果链分叉且分支重新汇合,它就变成了网。
记法系统
强制链记法使用 [格子]=[值] 或 [格子]<>[值] 表达式:r2c7<>4 => r2c7=5 => r2c2=4 => r3c1=5 => r6c1=4
完美环记法使用 -x- 表示弱链接,=x= 表示强链接(只在格子之间):r2c7 -5- r2c2 -4- r3c1 -5- r6c1
AIC(尤里卡)记法使用 - 表示弱,= 表示强,候选数在格子前的括号中:(4=5)r2c7-(5=4)r2c2-(4=5)r3c1-(5=4)r6c1
远程数对 (Remote Pair)
最简单的链技巧。只使用包含相同两个候选数的双值格子。强链接存在于每个格子内的两个候选数之间;弱链接连接互相看到的格子。最小链长度为4个格子才能产生消除。
链中的格子交替值。任何能看到两个具有不同(相反极性)值的链格子的外部格子不能包含任一远程数对数字。

关于数字4,5的4格远程数对。链r2c7→r2c2→r3c1→r6c1。如果r2c7是5,则r6c1是4,反之亦然。格子r6c7能看到两个端点,所以r6c7 ≠ 4且≠ 5。

关于数字2,8的8格远程数对。远程数对可以用一个或两个简单着色移动复制。
X链 (X-Chain)
只使用一个数字的链。必须以强链接开始和结束,确保一个端点包含链数字。链数字可以从任何能看到两个端点的格子中消除。长度为4的X链有时称为涡轮鱼,包括摩天楼、双线风筝和空矩形变体。

关于数字7的X链:r1c2=7= r1c9 -7- r2c8 =7= r7c8 -7- r7c3 =7= r4c3。r1c2或r4c3中必须有一个是7。r4c2能看到两者 => r4c2 ≠ 7。

关于数字3的X链:证明r4c2或r6c5中有一个是3。从r6c123中消除3。
XY链 (XY-Chain)
只使用具有任意候选数对的双值格子(不像远程数对需要相同的两个数字)。必须以同一数字的强链接开始和结束。所有强链接在格子内;所有弱链接在格子之间。

关于数字3的XY链:3- r7c4 -9- r5c4 -8- r5c6 -2- r2c6 -3。链证明端点格子之一(r7c4或r2c6)必须是3。

关于数字8的XY链:8- r6c5 -4- r8c5 -1- r8c4 -9- r3c4 -8。
完美环/AIC
传播规则
完美环链接回起始格子。传播规则(只考虑格子间链接):当节点有两个强链接时,数字必须不同。当节点有两个弱链接时,格子必须是双值且数字必须不同。当节点有两个不同链接(一个弱一个强)时,数字必须相同。
闭合链接决定环类型:不连续(起始格子处的矛盾)或连续(链接顺利闭合)。
不连续完美环
环在起始格子处闭合并产生矛盾。
消除候选数类型:

链:r1c8 -7- r7c8 -8- r7c9 -4- r4c9 -5- r4c8 =5= r1c8。以7的弱链接开始(前提:"如果r1c8是7"),通过5的强链接到达起始格子。这意味着"如果r1c8是7,它就是5"——由于5和7共享一个格子(弱链接)——"如果r1c8是7,它就不是7"——矛盾。从r1c8中消除7。
填入候选数类型:

链:r8c2 =4= r8c9 -4- r9c9 -2- r9c3 =2= r7c2 =4= r8c2。以4的强链接开始(前提:"如果r8c2不是4"),以4的强链接结束。意味着"如果r8c2不是4,它就是4"——矛盾——r8c2必须是4。
AIC 1型
以同一数字的强链接开始和结束。证明该数字必须在端点格子之一中。从能看到两个端点的格子中消除该数字。

5- r1c2 -3- r1c4 =3= r3c4 =9= r7c4 =2= r7c2 -2- r8c3 -5。r1c2或r8c3中必须有一个是5。从r123c3和r78c2中消除5。

自噬AIC:6- r2c5 -7- r2c1 =7= r6c1 =6= r6c7 -6- r2c7 =6= r3c8 -6。一个被消除的候选数(r2c7中的6)是链本身的一部分。
AIC 2型
以不同数字的强链接在能看到对方的两个格子中开始和结束。结束数字从起始格子中消除;起始数字从结束格子中消除。

4- r6c2 =4= r9c2 -4- r9c5 -9- r5c5 =9= r5c4 =8= r6c4 -8。起始:r6c2中的4;结束:r6c4中的8。从r6c4中消除4,从r6c2中消除8。

8- r1c8 -2- r1c7 =2= r6c7 =6= r6c3 =5= r4c2 =2= r4c8 -2。从r1c8中消除2,从r4c8中消除8。
连续完美环 / AIC环
连续完美环和AIC环是相同的。比不连续环少见但通常非常有效。当闭合链接加上第一个链接遵守传播规则时——没有矛盾发生——环是连续的。环中的所有弱链接被转换为强链接。提供弱链接的宫或格子中的所有额外候选数可以被消除。

5= r7c6 =2= r6c6 -2- r4c5 -3- r8c5 =3= r8c6 =5= r7c6 =2。r7c6以2的强链接离开,以5的强链接到达(第一个传播规则)。r7c6中2和5之间存在弱链接。

9= r7c5 =1= r7c9 =7= r3c9 -7- r3c3 =7= r1c3 =5= r1c6 -5- r8c6 =5= r8c4 =7= r7c4 =9= r7c5 =1。r7c5、r7c9、r1c3、r8c4、r7c4中的格子内弱链接。行3和列6中的格子间弱链接。
分组完美环/AIC
仅组节点
与标准完美环/AIC的不同之处仅在于使用组链接。

分组不连续完美环:r7c1 =2= r2c1 -2- r2c5 =2= r1c5 =8= r13c4 -8- r5c4 -3- r5c3 -2- r79c3 =2= r7c1。组链接:r13c4中的候选数8和r79c3中的候选数2。

分组连续完美环:2= r6c4 =1= r6c3 -1- r9c3 =1= r9c9 =2= r9c56 -2- r78c4 =2= r6c4 =1。候选数2的组链接:行9与宫8的交叉(r9c56)和列4与宫8的交叉(r78c4)。


组节点与ALS
ALS节点增加显著力量。必须在HoDoKu选项中启用(从v1.2默认禁用)。在连续环中的特殊属性:减去入口和候选数(照常变成强链接)后,剩余ALS候选数被锁定在ALS格子内。消除发生在所有能看到ALS中锁定候选数的所有实例的格子中。这仅在连续环中有效。




内容基于 HoDoKu,作者 Bernhard Hobiger,授权于 GNU FDLv1.3。