解題技巧
【鏈式推理②】構建篇:交替規則與狀態傳遞
在上一篇文章中,我們學習了鏈式推理的兩個基本構件:強鏈接和弱鏈接。本文將進一步探討如何將這些鏈接組合起來,構建完整的推理鏈,並從中得出有效的結論。
鏈的構建:強弱鏈接交替連接,形成完整的推理路徑
鏈的基本結構
鏈是由候選數節點和鏈接構成的序列。每個節點代表一個候選數(某個格子中的某個數字),相鄰節點之間通過強鏈接或弱鏈接相連。
鏈的形式化表示:
A ═ B - C ═ D - E ═ F
其中:
• A, B, C, D, E, F 是候選數節點
• ═ 表示強鏈接
• - 表示弱鏈接
• 整條鏈描述了從A到F的邏輯推理路徑
A ═ B - C ═ D - E ═ F
其中:
• A, B, C, D, E, F 是候選數節點
• ═ 表示強鏈接
• - 表示弱鏈接
• 整條鏈描述了從A到F的邏輯推理路徑
候選數節點的表示
在鏈式推理中,我們通常用以下方式表示候選數節點:
- 位置+數字:如 R3C5(4) 表示"第3行第5列格子中的候選數4"
- 簡寫形式:如 r3c5=4 或 (3,5)4
每個節點代表一個斷言:該候選數為真(該格子填入該數字)或為假(該候選數被排除)。
鏈接的交替規則
構建有效鏈的核心規則是:強鏈接和弱鏈接交替出現。這個規則確保了邏輯推理的有效性。
為什麼需要交替?
如果連續使用兩個弱鏈接(真→假→?),第二個弱鏈接無法繼續傳遞。
只有交替使用,才能形成連續的推理鏈。
- 強鏈接:傳遞"假→真",無法傳遞"真→真"
- 弱鏈接:傳遞"真→假",無法傳遞"假→假"
如果連續使用兩個弱鏈接(真→假→?),第二個弱鏈接無法繼續傳遞。
只有交替使用,才能形成連續的推理鏈。
特殊情況:連續強鏈接
當多個強鏈接連續出現時(如 A ═ B ═ C ═ D),看起來似乎違反了交替規則,但實際上這是有效的。
原因:強鏈接的條件是"恰好一真一假",而弱鏈接的條件是"至多一個為真"。由於"恰好一個"必然滿足"至多一個",所以每個強鏈接同時也是弱鏈接。
解讀方式:
可以理解為:
因此在表示法上,連續的強鏈接並不是錯誤,而是中間的強鏈接隱含地承擔了弱鏈接的角色。
當多個強鏈接連續出現時(如 A ═ B ═ C ═ D),看起來似乎違反了交替規則,但實際上這是有效的。
原因:強鏈接的條件是"恰好一真一假",而弱鏈接的條件是"至多一個為真"。由於"恰好一個"必然滿足"至多一個",所以每個強鏈接同時也是弱鏈接。
解讀方式:
A ═ B ═ C ═ D可以理解為:
A ═ B - C ═ D(中間的強鏈接作為弱鏈接使用)因此在表示法上,連續的強鏈接並不是錯誤,而是中間的強鏈接隱含地承擔了弱鏈接的角色。
強弱鏈接交替規則:只有交替才能形成有效的推理鏈
有效鏈的模式
根據交替規則,有效的鏈必須是以下形式之一:
1
以強鏈接開始,以強鏈接結束:
鏈長為奇數條鏈接(強-弱-強-弱-強)
A ═ B - C ═ D - E ═ F鏈長為奇數條鏈接(強-弱-強-弱-強)
2
以弱鏈接開始,以弱鏈接結束:
鏈長為奇數條鏈接(弱-強-弱-強-弱)
A - B ═ C - D ═ E - F鏈長為奇數條鏈接(弱-強-弱-強-弱)
3
以強鏈接開始,以弱鏈接結束(或反之):
鏈長為偶數條鏈接
A ═ B - C ═ D - E鏈長為偶數條鏈接
著色思想(Coloring)
著色是理解鏈式推理的一個強大思維工具。我們給鏈上的節點交替賦予兩種"顏色",代表兩種可能的真假狀態。
著色規則:
- 給鏈的起點賦予顏色A(比如藍色)
- 通過強鏈接連接的下一個節點,賦予相反顏色B(比如綠色)
- 通過弱鏈接連接的下一個節點,賦予相同顏色
- 依次交替,直到鏈的終點
著色思想:強鏈接翻轉顏色,弱鏈接保持顏色
著色的邏輯解釋
強
強鏈接翻轉顏色:
強鏈接兩端"恰好一真一假"。如果一端為假,另一端必為真;如果一端為真,另一端必為假。
因此強鏈接兩端的顏色相反,代表相反的真假狀態。
強鏈接兩端"恰好一真一假"。如果一端為假,另一端必為真;如果一端為真,另一端必為假。
因此強鏈接兩端的顏色相反,代表相反的真假狀態。
弱
弱鏈接保持顏色:
弱鏈接兩端"至多一真"。如果假設一端為真(顏色A=真),另一端必為假。
但如果一端為假,另一端狀態不確定。因此在著色時,我們關注的是"如果前一個節點為真"的情況,所以弱鏈接後的節點與前一節點的"真假假設"相同。
(注:這裡的"保持顏色"是指在追蹤"真"狀態傳遞時的行為)
弱鏈接兩端"至多一真"。如果假設一端為真(顏色A=真),另一端必為假。
但如果一端為假,另一端狀態不確定。因此在著色時,我們關注的是"如果前一個節點為真"的情況,所以弱鏈接後的節點與前一節點的"真假假設"相同。
(注:這裡的"保持顏色"是指在追蹤"真"狀態傳遞時的行為)
著色的核心含義:
同色節點:要麼全真,要麼全假
異色節點:真假狀態相反
通過著色,我們可以快速判斷鏈上任意兩個節點之間的真假關係。
同色節點:要麼全真,要麼全假
異色節點:真假狀態相反
通過著色,我們可以快速判斷鏈上任意兩個節點之間的真假關係。
狀態傳遞的兩種視角
理解鏈式推理有兩種互補的視角:追蹤"真"狀態和追蹤"假"狀態。
視角一:追蹤"真"狀態的傳遞
假設鏈的起點為真,觀察這個"真"狀態如何沿著鏈傳遞:
A ═ B - C ═ D - E ═ F
假設 A = 真
→ A-B是強鏈接,A真時B可真可假,狀態不確定
(追蹤"真"在純強鏈接上無法有效傳遞)
假設 A = 真
→ A-B是強鏈接,A真時B可真可假,狀態不確定
(追蹤"真"在純強鏈接上無法有效傳遞)
A - B ═ C - D ═ E - F
假設 A = 真
→ A-B是弱鏈接,A真 → B必假
→ B-C是強鏈接,B假 → C必真
→ C-D是弱鏈接,C真 → D必假
→ D-E是強鏈接,D假 → E必真
→ E-F是弱鏈接,E真 → F必假
結論:A真 → F假
假設 A = 真
→ A-B是弱鏈接,A真 → B必假
→ B-C是強鏈接,B假 → C必真
→ C-D是弱鏈接,C真 → D必假
→ D-E是強鏈接,D假 → E必真
→ E-F是弱鏈接,E真 → F必假
結論:A真 → F假
視角二:追蹤"假"狀態的傳遞
假設鏈的起點為假,觀察這個"假"狀態如何沿著鏈傳遞:
A ═ B - C ═ D - E ═ F
假設 A = 假
→ A-B是強鏈接,A假 → B必真
→ B-C是弱鏈接,B真 → C必假
→ C-D是強鏈接,C假 → D必真
→ D-E是弱鏈接,D真 → E必假
→ E-F是強鏈接,E假 → F必真
結論:A假 → F真
假設 A = 假
→ A-B是強鏈接,A假 → B必真
→ B-C是弱鏈接,B真 → C必假
→ C-D是強鏈接,C假 → D必真
→ D-E是弱鏈接,D真 → E必假
→ E-F是強鏈接,E假 → F必真
結論:A假 → F真
關鍵觀察:
對於以強鏈接開始和結束的鏈:
• 起點假 → 終點真(通過追蹤"假"狀態)
• 起點和終點顏色相反
對於以弱鏈接開始和結束的鏈:
• 起點真 → 終點假(通過追蹤"真"狀態)
• 起點和終點顏色相同
對於以強鏈接開始和結束的鏈:
• 起點假 → 終點真(通過追蹤"假"狀態)
• 起點和終點顏色相反
對於以弱鏈接開始和結束的鏈:
• 起點真 → 終點假(通過追蹤"真"狀態)
• 起點和終點顏色相同
從鏈得出結論
構建了有效的鏈之後,我們如何從中得出可以用於排除的結論呢?這取決於鏈的結構和兩端的關係。
結論類型一:兩端存在弱鏈接關係
1
場景:鏈的兩端A和F恰好能互相"看到"(存在弱鏈接)
鏈:A ═ B - C ═ D - E ═ F,且A和F同行/列/宮或同格
分析:
• 如果A假 → F真(鏈的傳遞)
• 如果A真 → F假(A和F的弱鏈接)
結論:無論A真假,A和F中必有一個為真(A假則F真,A真則A本身為真)。
應用:能同時看到A和F的其他同數字候選數可以被排除!
鏈:A ═ B - C ═ D - E ═ F,且A和F同行/列/宮或同格
分析:
• 如果A假 → F真(鏈的傳遞)
• 如果A真 → F假(A和F的弱鏈接)
結論:無論A真假,A和F中必有一個為真(A假則F真,A真則A本身為真)。
應用:能同時看到A和F的其他同數字候選數可以被排除!
結論類型二:兩端是同一候選數
2
場景:鏈的兩端恰好是同一格子的同一候選數(形成環)
鏈:A ═ B - C ═ D - E ═ A(回到起點)
分析:
• 如果A假 → ... → A真(矛盾!)
結論:A不能為假,所以A必為真。
鏈:A ═ B - C ═ D - E ═ A(回到起點)
分析:
• 如果A假 → ... → A真(矛盾!)
結論:A不能為假,所以A必為真。
結論類型三:著色衝突
3
場景:鏈上兩個同色節點之間存在弱鏈接(它們能互相看到)
分析:
• 同色意味著它們的真假狀態相同
• 弱鏈接意味著它們不能同時為真
結論:這兩個節點必須同時為假。所有同色節點都為假,所有異色節點都為真。
分析:
• 同色意味著它們的真假狀態相同
• 弱鏈接意味著它們不能同時為真
結論:這兩個節點必須同時為假。所有同色節點都為假,所有異色節點都為真。
從鏈得出結論的三種主要方式
交替推理鏈(AIC)
交替推理鏈(Alternating Inference Chain,簡稱AIC)是鏈式推理的標準形式。它的特點是:
- 強鏈接和弱鏈接嚴格交替
- 以強鏈接開始,以強鏈接結束
- 鏈的兩端存在弱鏈接關係
AIC的標準形式:
其中A和Z之間存在弱鏈接(能互相看到)。
結論:A和Z中必有一個為真,因此能同時看到A和Z的其他候選數可以被排除。
A ═ B - C ═ D - ... - Y ═ Z其中A和Z之間存在弱鏈接(能互相看到)。
結論:A和Z中必有一個為真,因此能同時看到A和Z的其他候選數可以被排除。
AIC是一個強大的框架,許多具體的技巧都可以被視為特殊形式的AIC:
- X-Wing、Swordfish:可以用AIC描述
- Skyscraper:一種簡單的AIC
- XY-Wing:三節點的AIC
- XY-Chain:純雙值格組成的AIC
構建鏈的實踐技巧
在實際解題中,構建有效的鏈需要一些技巧和經驗:
1
從雙值格開始:
雙值格既提供強鏈接(格內兩數),又容易發現弱鏈接(同單元其他同數候選)。它們是構建鏈的理想起點。
雙值格既提供強鏈接(格內兩數),又容易發現弱鏈接(同單元其他同數候選)。它們是構建鏈的理想起點。
2
尋找共軛對:
在行、列、宮中尋找只出現兩次的數字,它們形成的共軛對是強鏈接的重要來源。
在行、列、宮中尋找只出現兩次的數字,它們形成的共軛對是強鏈接的重要來源。
3
注意鏈接類型的判斷:
同一對候選數之間可能同時存在強鏈接和弱鏈接(如雙值格或共軛對)。在構建鏈時,要清楚使用的是哪種鏈接。
同一對候選數之間可能同時存在強鏈接和弱鏈接(如雙值格或共軛對)。在構建鏈時,要清楚使用的是哪種鏈接。
4
目標導向:
如果想排除某個候選數X,嘗試構建一條鏈,使得鏈的兩端都能"看到"X。
如果想排除某個候選數X,嘗試構建一條鏈,使得鏈的兩端都能"看到"X。
常見錯誤:
- 連續使用兩個弱鏈接(無法傳遞狀態)
- 將弱鏈接誤判為強鏈接(導致錯誤結論)
- 忘記驗證鏈兩端的關係(無法得出結論)
下一步
本文介紹了如何構建鏈以及從鏈得出結論的方法。在下一篇文章中,我們將討論:
- 鏈的各種應用模式(開鏈、閉鏈、環)
- 常見鏈式技巧的統一理解
- 分組鏈接與複雜鏈結構
- 不連續環與高級推理