Kỹ thuật XY-Chain: Suy luận chuỗi với ô hai giá trị
XY-Chain là phương pháp suy luận chuỗi mạnh mẽ trong các kỹ thuật Sudoku nâng cao. Đây là phần mở rộng của XY-Wing, sử dụng cấu trúc chuỗi được hình thành bởi nhiều ô hai giá trị (ô chỉ có hai ứng viên) để loại bỏ ứng viên.
XY-Chain bao gồm một chuỗi các ô hai giá trị trong đó các ô liền kề chia sẻ một ứng viên. Đầu và cuối chuỗi mỗi bên có một ứng viên không được chia sẻ. Nếu hai số này giống nhau (gọi là Z), thì các ô có thể nhìn thấy cả đầu và cuối chuỗi có thể loại bỏ ứng viên Z. Bởi vì: theo logic chuỗi, Z phải xuất hiện ở đầu hoặc cuối chuỗi.
Trước khi đọc bài viết này, nên hiểu quy ước đặt tên Sudoku, Cặp trần và cơ bản về XY-Wing.
Cấu trúc của XY-Chain
XY-Chain chứa các yếu tố quan trọng sau:
- Nút chuỗi: Mỗi nút là một ô hai giá trị {A,B}
- Liên kết chuỗi: Các nút liền kề phải "nhìn thấy" nhau (cùng hàng, cột hoặc ô) và chia sẻ một ứng viên
- Đầu và cuối chuỗi: Mỗi bên có một ứng viên không được chia sẻ với nút liền kề
- Điều kiện loại bỏ: Khi ứng viên không được chia sẻ của đầu và cuối giống nhau, có thể loại bỏ
Ký hiệu chuỗi: A(x,y) → B(y,z) → C(z,w) → ... trong đó ngoặc chứa ứng viên, mũi tên chỉ hướng chuỗi, và các nút liền kề chia sẻ một số (như y, z).
Tại sao XY-Chain hoạt động?
Ví dụ 1: XY-Chain 4 nút
Hãy xem một ví dụ XY-Chain 4 nút đơn giản.
Quy trình phân tích
- R2C2: ứng viên {3, 7} (đầu chuỗi)
- R2C6: ứng viên {3, 5}
- R9C6: ứng viên {2, 5}
- R9C7: ứng viên {2, 7} (cuối chuỗi)
- R2C2 và R2C6 ở cùng hàng (Hàng 2), chia sẻ ứng viên 3
- R2C6 và R9C6 ở cùng cột (Cột 6), chia sẻ ứng viên 5
- R9C6 và R9C7 ở cùng hàng (Hàng 9), chia sẻ ứng viên 2
- Số không được chia sẻ của đầu R2C2{3,7} = 7 (3 được chia sẻ với R2C6)
- Số không được chia sẻ của cuối R9C7{2,7} = 7 (2 được chia sẻ với R9C6)
- Chúng giống nhau! Z = 7
- Nếu R2C2=7 → 7 ở đầu chuỗi
- Nếu R2C2=3 → R2C6 không thể là 3 → R2C6=5 → R9C6 không thể là 5 → R9C6=2 → R9C7 không thể là 2 → R9C7=7 → 7 ở cuối chuỗi
- Trong cả hai trường hợp, 7 phải ở R2C2 hoặc R9C7
XY-Chain: R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}
Có thể loại bỏ ứng viên 7 từ R2C7.
Ví dụ 2: Chuỗi dài 10 nút
XY-Chain có thể rất dài. Đây là ví dụ 10 nút cho thấy khả năng mạnh mẽ của suy luận chuỗi.
Quy trình phân tích
- R2C5: {1, 5} (đầu chuỗi)
- R2C1: {1, 5}
- R1C1: {5, 8}
- R1C7: {7, 8}
- R3C7: {7, 8}
- R3C2: {4, 8}
- R7C2: {4, 8}
- R8C1: {4, 8}
- R8C7: {4, 9}
- R8C3: {5, 9} (cuối chuỗi)
- R2C5 → R2C1: cùng hàng, chia sẻ 1 (hoặc 5)
- R2C1 → R1C1: cùng cột, chia sẻ 5
- R1C1 → R1C7: cùng hàng, chia sẻ 8
- R1C7 → R3C7: cùng cột, chia sẻ 7 (hoặc 8)
- R3C7 → R3C2: cùng hàng, chia sẻ 8
- R3C2 → R7C2: cùng cột, chia sẻ 4 (hoặc 8)
- R7C2 → R8C1: cùng ô, chia sẻ 8
- R8C1 → R8C7: cùng hàng, chia sẻ 4
- R8C7 → R8C3: cùng hàng, chia sẻ 9
- Số không được chia sẻ của đầu R2C5{1,5} = 5 (1 được chia sẻ với R2C1)
- Số không được chia sẻ của cuối R8C3{5,9} = 5 (9 được chia sẻ với R8C7)
- Chúng giống nhau! Z = 5
XY-Chain (10 nút): R2C5 → R2C1 → R1C1 → R1C7 → R3C7 → R3C2 → R7C2 → R8C1 → R8C7 → R8C3
Có thể loại bỏ ứng viên 5 từ R8C5.
Cách tìm XY-Chain
Tìm XY-Chain đòi hỏi cách tiếp cận có hệ thống:
- Mỗi nút trong chuỗi phải là ô hai giá trị
- Các nút liền kề phải nhìn thấy nhau (cùng hàng, cột hoặc ô)
- Các nút liền kề phải chia sẻ một ứng viên
- Điều kiện loại bỏ: ứng viên không được chia sẻ của đầu và cuối giống nhau
- XY-Wing là trường hợp đặc biệt của XY-Chain (chuỗi dài 3)
Mối quan hệ giữa XY-Chain và XY-Wing
XY-Wing có thể được xem là XY-Chain dài 3:
- XY-Wing: Pivot{X,Y} → Wing1{X,Z} → Wing2{Y,Z}... v.v., đây thực sự không phải là dạng chuỗi tiêu chuẩn
- Mối quan hệ thực tế: Cấu trúc XY-Wing có hình "Y", trong khi XY-Chain là tuyến tính
- Điểm chung: Cả hai đều sử dụng ô hai giá trị cho loại bỏ logic
- Sự khác biệt: XY-Chain yêu cầu kết nối chuỗi, XY-Wing yêu cầu pivot nhìn thấy cả hai wing
Tóm tắt kỹ thuật
Những điểm chính để áp dụng XY-Chain:
- Yêu cầu nút: Tất cả các nút là ô hai giá trị
- Yêu cầu kết nối: Các nút liền kề có thể nhìn thấy nhau và chia sẻ một ứng viên
- Điều kiện loại bỏ: Ứng viên không được chia sẻ của đầu và cuối giống nhau
- Mục tiêu loại bỏ: Ứng viên được chia sẻ trong các ô có thể nhìn thấy cả đầu và cuối
- Độ dài chuỗi: Về lý thuyết không giới hạn, chuỗi dài hơn khó tìm hơn nhưng mạnh hơn
Bắt đầu một trò chơi Sudoku và thử sử dụng XY-Chain để loại bỏ! Đầu tiên tìm tất cả các ô hai giá trị, sau đó thử kết nối chúng thành một chuỗi.