數獨高階技巧入門之七——AIC & Nice Loop


AIC(交替推理鏈,Alternate Inference Chain)

簡單異數鏈一文中我們介紹過XY-Chain技法,AIC可以看作是XY-Chain的擴展。有別於XY-Chain僅局限於雙值格,AIC籍由各種強弱關系的靈活運用,極大化的豐富了鏈類解題方法。

Alternate Inference Chain Type 1

AIC 根據首尾兩端點候選數的異同可分為兩種類型,我們將首尾數字相同的稱為AIC1,下圖就是一個AIC1的實例。

 
圖1-AIC1

​圖1中,實線代表強鏈,虛線代表弱鏈(下同)。我們可以看到,雖然本例中的鏈行進過程中候選數一直在發生變化(由雙值格、多值格內候選數強弱關系的靈活運用實現),但候選數間始終保持着強弱交替,最終首尾兩個相同候選數5之間形成強關系,可以刪去兩端點共同作用格內的5。

Alternate Inference Chain Type 2

AIC1的首尾數字相同,還有一類AIC的首尾兩端點數字不同,但因為兩端的候選數可以彼此在對方單元格內看到自己,我們得以據此對相關候選數進行刪除,可將之稱為AIC2。

 
圖2-AIC2

​圖2中,鏈的兩端點分別為4和8,彼此都可以在對方格內看到自己。簡單推理就可以發現,紅框中的4、8互為強關系,不管哪個成立,紅圈的4、8都會被刪去。由此可得出AIC2的刪除規則:互為強關系的兩端點候選數可對對方格內的自己進行擯除。

是不是感覺很簡單?AIC的工作原理的確很好理解,但是要達到熟練運用的程度並不容易,這需要敏銳的觀察力以及大量的針對練習,隨后我會針對本篇的內容提供一些練習題供大家進行訓練。

Nice Loop

Continuous Nice Loops (AIC Loops)

先引入一個概念“Nice Loop”,在簡單異數鏈一文中曾介紹過XY-Cycle的結構,我們把這類從某格出發並最終回到出發格的鏈路稱為Nice Loop。若構成Nice Loop的每個候選數都可以首尾相連且保持強弱交替,則可將之稱為Continuous Nice Loops(連續環,此前介紹過的X-Wing和XY-Cycle都是簡單的連續環,如果AIC能夠首尾相連則會構成AIC Loops,屬於較復雜的連續環)。

下圖即是一個AIC連續環,與XY-Cycle一樣,斷開任意一條虛線(弱鏈),都會構成一條強始強終的數鏈,弱鏈斷開處兩端的候選數互為強關系,可對其共同作用格進行擯除(弱鏈出現在多值格內部,可刪除該格內其他候選數,如本例中r78c1中的35)。

 
圖3-CNL01

​圖4中在格內進行的刪減更多,大家可以仔細體會一下。

 
圖4-CNL02

​我們將構成連續環的每個單元格視作節點,觀察各節點間的聯結情況(大家需要注意,尋找環時分為兩個層次,第一層首先是單元格之間的關系,第二層才是單元格內候選數間的關系),會發現:

1、若某節點通過兩條強鏈與其他節點聯結,該節點單元格內聯結兩條強鏈的候選數必然相異;

2、若某節點通過兩條弱鏈與其他節點聯結,該節點必為雙值格且兩個候選數分別聯結一條弱鏈;

3、若某節點通過一條強鏈和一條弱鏈與其他節點聯結,該節點內聯結這兩條鏈的為同一候選數。

(熟練掌握之前內容的話,就會馬上明白,以上3點是連續環成立的必然要求。)

Discontinuous Nice Loop

如果環鏈的某個節點不符合上述3點的要求,亦即不能滿足強弱交替的規則,就會構成Discontinuous Nice Loop(不連續環)。

 
圖5-DNL01

圖5中是一個不連續環的實例,本例中的環以7的弱鏈從r1c8出發,最終以5的強鏈回到該格,我們將這條弱始強終的鏈簡化為 A—B==C 進行推理:若A為真,則B為假(弱鏈不能同真);若B為假,則C為真(強鏈不能同假)。即A為真時,C必為真。回到本例中,假設r1c8=7,以此為前提,最終會推導出的結論是r1c8=5,即在同一個格內,有兩個候選數同時成立,顯然這種情況是違反數獨規則的,由此我們可以判定之前假設的前提為假,並得出結論r1c8≠7。經過以上的歸繆,可得出不連續環的一個刪減規則:若某節點通過一條強鏈和一條弱鏈與其他節點聯結,且該節點內聯結這兩條鏈的不是同一候選數,則聯結弱鏈的候選數應被刪去。

 
圖6-DNL02

​上圖是另一種情況的不連續環,本例中的環以4的強鏈從r8c2出發,最終又以4的強鏈回到r8c2格。我們假設這個格內存在起點和終點兩個4,則這兩個4互為強關系,不能同假。若假設起點r8c2≠4,由此前提會推導出終點r8c2=4的結論,產生矛盾,故該前提為假,r8c2=4。經過反證后我們可以得出不連續環的第二個刪減規則:若某節點通過兩條強鏈與其他節點聯結,且該節點單元格內聯結兩條強鏈的是同一候選數,則該候選數為真,可刪去單元格內其他候選數。

 
圖7-DNL03

​圖7是第三種情況的不連續環,本例中的環以1的弱鏈從r6c1格出發,最終又以1的弱鏈回到r6c1格,我們仿上例進行推理:假設r6c1格存在起點和終點兩個1,這兩個1互為弱關系不能同真,則由r6c1=1的前提,會推導出r6c1≠1的結論,產生矛盾,可知該前提為假,r6c1≠1。至此我們可以得出不連續環的第三個刪減規則:若某節點通過兩條弱鏈與其他節點聯結,且該節點單元格內聯結兩條弱鏈的是同一候選數,則該候選數為假。

Grouped Nice Loop/AIC

在之前的文章(簡單的單數鏈結構——雙強鏈)里曾介紹過利用打包分組(Group)來尋找雙強鏈的方法,這一技巧在Nice Loop和AIC中同樣適用。在面對一些復雜的局面時,靈活的運用Group在行列宮制造出新的強弱關系,會讓解題思路豁然開朗。

 
圖8-GDNL

​上圖中,利用將第2宮c4兩個8(綠色圈內)打包后分別形成的與r1c5的強關系和r5c4的弱關系,以及第7宮c3兩個2(綠色圈內)打包后分別形成的與r5c3的弱關系和r7c1的強關系可以找到一條不連續環,最終在r7c1中填入2。

 
圖9-GCNL

​​圖9實例中,分別將第8宮r9和c4的兩個2打包后,可找到一條連續環,從而實現大量的刪數。

 
圖10-GAIC1

 
圖12-GAIC2

​圖11、12分別是AIC1、2的例子,大家仔細體會一下。

Group Nodes and ALS

除了使用單純的Group做為節點聯結Loop和AIC外,我們可以將思路繼續發散,利用ALS候選數集間的關系,將之嵌入Loop和AIC中來解決問題。

 
圖13-GDNLALS

​本例就是將ALS作為節點的一個應用,r8存在ALS{256},在這個ALS中,2和打包起來的兩個5之間為強關系,巧妙利用這一關系構造出一個非連續環,可以刪除r8c2格內的5。

 
圖14-GCNLALS

​眼尖的朋友已經發現,圖14和圖9是同一個盤勢。本例利用r6的ALS{238}中2和打包的兩個3的強關系,以及第8宮打包的兩組2(綠色圈內),構造出一個連續環,實現了對更多候選數的刪減,其中候選數1、2、3(紅色)的刪除很好理解(弱鏈兩端點為強關系),但第5宮和r6中紅色的8為何也被刪除?

這是由連續環的特性所決定的。之前的內容中多次介紹過,連續環中斷開任意一條弱鏈后,斷開處兩端點互為強關系。但是,連續環的另外一個特性大家可能沒有注意到:斷開任意一條強鏈后,斷開處兩端點互為弱關系,亦即連續環中的任意一條鏈都同時兼具強弱兩種屬性——兩端點間是矛盾關系,不能同真,亦不能同假,必然一真一假。回到本例中,r6的ALS{238}中,2和group(3)不管哪一個成立,都會導致對方不成立,從而使ALS{238}變成(28)或者(38)的數對,則group(8)在任何情況下都成立,據此可對第5宮和r6中紅色的8進行擯除。​

 
圖15-GAITALS

​​上圖是之前在微博上單獨發過的一個利用ALS聯結AIT2的實例,本例關鍵點在於c6列ALS{147}(黃框)中7和group(4)的強關系,以及group(4)和R4C6的4的弱關系



作者:零時四分_719b
鏈接:https://www.jianshu.com/p/9cd7e2e1d022
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM