Kỹ thuật Swordfish trong Sudoku: Mở rộng X-Wing thành 3x3
Swordfish (Cá kiếm) là phiên bản mở rộng của kỹ thuật X-Wing, là phương pháp phức tạp và mạnh mẽ hơn trong các kỹ thuật Sudoku nâng cao. Tên gọi xuất phát từ hình dạng của cá kiếm, vì kỹ thuật này liên quan đến ba hàng và ba cột, tạo thành mô hình lớn hơn X-Wing. Ý tưởng cốt lõi là: khi một số ứng viên chỉ xuất hiện trong cùng ba cột ở ba hàng, số ứng viên đó có thể bị loại khỏi các ô khác trong ba cột đó.
Nếu một số xuất hiện trong các hàng A, B và C chỉ ở một số vị trí nhất định trong các cột X, Y và Z (mỗi hàng tối đa hai hoặc ba vị trí trong ba cột này), thì số đó nhất định phải chiếm các vị trí nhất định của cột X, Y và Z trong ba hàng này. Do đó, các ô khác trong cột X, Y và Z (những ô không nằm trong ba hàng này) không thể chứa số đó.
Quy tắc Swordfish
Nếu một số ứng viên trong ba hàng cộng lại chỉ xuất hiện ở cùng ba vị trí cột,
thì số ứng viên đó có thể bị loại khỏi các hàng khác của ba cột này (những hàng không nằm trong ba hàng Swordfish).
Trước khi đọc bài viết này, bạn nên nắm vững kỹ thuật X-Wing, vì Swordfish là sự mở rộng trực tiếp của X-Wing.
Phân tích ví dụ: Swordfish theo hàng
Hãy xem một ví dụ Swordfish với số ứng viên 4 trong hàng 2, hàng 4 và hàng 8.
Dữ liệu bàn cờ hiện tại
Theo dữ liệu ứng viên định dạng CSV81, chúng ta tập trung vào sự phân bố của số ứng viên 4 trong hàng 2, hàng 4 và hàng 8:
Các ô hàng 2:
- R2C1: Số đã điền 2 (cho trước)
- R2C2: Ứng viên {1, 4}
- R2C3: Ứng viên {1, 4}
- R2C4: Ứng viên {5, 7}
- R2C5: Ứng viên {6, 8}
- R2C6: Ứng viên {6, 8}
- R2C7: Số đã điền 3 (cho trước)
- R2C8: Ứng viên {5, 7}
- R2C9: Số đã điền 9 (cho trước)
Các ô hàng 4:
- R4C1: Số đã điền 1 (cho trước)
- R4C2: Số đã điền 8 (cho trước)
- R4C3: Ứng viên {2, 4}
- R4C4: Số đã điền 3
- R4C5: Ứng viên {4, 5}
- R4C6: Số đã điền 9 (cho trước)
- R4C7: Ứng viên {2, 5}
- R4C8: Số đã điền 6
- R4C9: Số đã điền 7 (cho trước)
Các ô hàng 8:
- R8C1: Số đã điền 9 (cho trước)
- R8C2: Ứng viên {1, 2, 4, 5, 7}
- R8C3: Ứng viên {1, 2, 4}
- R8C4: Ứng viên {1, 5, 7}
- R8C5: Ứng viên {4, 5, 7}
- R8C6: Số đã điền 3 (cho trước)
- R8C7: Số đã điền 6 (cho trước)
- R8C8: Ứng viên {2, 5, 7}
- R8C9: Số đã điền 8
Quá trình phân tích
- Hàng 2: Cột 2 ✓, Cột 3 ✓ (hai cột)
- Hàng 4: Cột 3 ✓, Cột 5 ✓ (hai cột)
- Hàng 8: Cột 2 ✓, Cột 3 ✓, Cột 5 ✓ (ba cột)
Ba hàng cộng lại chỉ liên quan đến cột 2, 3 và 5, điều này tạo thành mô hình Swordfish.
- R6C2: Ứng viên {2, 4, 5}
- R7C2: Ứng viên {1, 2, 4, 5, 6, 7}
- R9C2: Ứng viên {2, 4, 5, 6, 7}
Trong cột 5, ngoài hàng 4 và hàng 8, còn có các ô khác chứa số ứng viên 4:
- R6C5: Ứng viên {1, 4, 8}
- R7C5: Ứng viên {2, 4, 5, 6, 7}
- R6C2: Xóa ứng viên 4 (còn lại 2,5)
- R7C2: Xóa ứng viên 4 (còn lại 1,2,5,6,7)
- R9C2: Xóa ứng viên 4 (còn lại 2,5,6,7)
- R6C5: Xóa ứng viên 4 (còn lại 1,8)
- R7C5: Xóa ứng viên 4 (còn lại 2,5,6,7)
Swordfish: Trong hàng 2, hàng 4 và hàng 8, số ứng viên 4 chỉ phân bố trong cột 2, cột 3 và cột 5.
Thao tác: Xóa số ứng viên 4 từ R6C2, R7C2, R9C2, R6C5 và R7C5.
Đặc điểm chính của Swordfish
1. Không yêu cầu mỗi hàng phải xuất hiện trong cả ba cột
Đây là sự khác biệt quan trọng giữa Swordfish và X-Wing:
- X-Wing: Trong hai hàng, số ứng viên của mỗi hàng chính xác xuất hiện trong hai cột giống nhau
- Swordfish: Trong ba hàng, số ứng viên của mỗi hàng có thể xuất hiện trong 2 hoặc 3 trong số ba cột, miễn là cộng lại không vượt quá ba cột
Trong ví dụ trên, hàng 2 chỉ có số ứng viên 4 trong cột 2 và 3, hàng 4 chỉ có trong cột 3 và 5, hàng 8 có trong cột 2, 3 và 5. Mặc dù không có hàng nào có số ứng viên chính xác trong hai cột, nhưng ba hàng cộng lại bao phủ cột 2, 3 và 5, điều này đủ để tạo thành Swordfish.
2. Số cột phải chính xác bằng số hàng
Swordfish yêu cầu ba hàng tương ứng với ba cột (hoặc ba cột tương ứng với ba hàng):
- Nếu số ứng viên trong ba hàng chỉ liên quan đến hai cột, đó là mô hình không hoàn chỉnh, không thể dùng Swordfish
- Nếu số ứng viên trong ba hàng liên quan đến bốn cột, cũng không thể tạo thành Swordfish
- Phải chính xác là mối quan hệ ba hàng ba cột
Hai dạng của Swordfish
Giống như X-Wing, Swordfish cũng có hai dạng đối xứng:
1. Swordfish theo hàng (Row-based Swordfish)
Đây là trường hợp trong ví dụ trên:
- Đối tượng quan sát: Ba hàng
- Đặc điểm mô hình: Một số ứng viên trong ba hàng này chỉ xuất hiện trong cùng ba cột (hoặc hai trong số đó)
- Mục tiêu loại trừ: Xóa số ứng viên đó khỏi các hàng khác của ba cột này
2. Swordfish theo cột (Column-based Swordfish)
Dạng ngược lại nhưng nguyên lý giống nhau:
- Đối tượng quan sát: Ba cột
- Đặc điểm mô hình: Một số ứng viên trong ba cột này chỉ xuất hiện trong cùng ba hàng (hoặc hai trong số đó)
- Mục tiêu loại trừ: Xóa số ứng viên đó khỏi các cột khác của ba hàng này
Swordfish theo hàng xóa cột, Swordfish theo cột xóa hàng.
Điều này hoàn toàn giống với quy tắc X-Wing, chỉ mở rộng từ 2×2 thành 3×3.
Làm thế nào để phát hiện Swordfish?
Tìm Swordfish khó hơn X-Wing, cần phân tích có hệ thống hơn:
- Swordfish cần chính xác ba hàng (hoặc ba cột), liên quan đến chính xác ba cột (hoặc ba hàng)
- Số ứng viên trong mỗi hàng có thể xuất hiện trong 2 hoặc 3 cột, nhưng ba hàng cộng lại không được vượt quá ba cột
- Nếu số ứng viên trong một hàng xuất hiện ở 4 vị trí trở lên, thường không phù hợp để tạo Swordfish
- Swordfish rất hiếm, không xuất hiện trong hầu hết các câu đố Sudoku
- Tìm Swordfish rất tốn thời gian, nên thử sau khi đã dùng hết các kỹ thuật khác
Mối quan hệ giữa Swordfish và các kỹ thuật khác
X-Wing vs Swordfish
| So sánh | X-Wing | Swordfish |
|---|---|---|
| Số hàng liên quan | 2 hàng (hoặc 2 cột) | 3 hàng (hoặc 3 cột) |
| Số cột liên quan | 2 cột (hoặc 2 hàng) | 3 cột (hoặc 3 hàng) |
| Đặc điểm mô hình | Số ứng viên mỗi hàng phải chính xác trong hai cột | Số ứng viên mỗi hàng có thể trong 2-3 cột |
| Độ khó nhận biết | Khó | Rất khó |
| Tần suất xuất hiện | Thỉnh thoảng | Hiếm |
Mở rộng nâng cao hơn
Swordfish có thể tiếp tục mở rộng:
- Jellyfish (Sứa): Phiên bản bốn hàng bốn cột
- Squirmbag: Phiên bản năm hàng năm cột (cực kỳ hiếm, hầu như không gặp)
Nguyên lý của các kỹ thuật này giống với Swordfish, chỉ là số hàng cột liên quan nhiều hơn, độ khó nhận biết tăng theo cấp số nhân.
Tóm tắt kỹ thuật
Các điểm chính khi áp dụng kỹ thuật Swordfish:
- Bản chất: Mô hình X-Wing mở rộng từ 2×2 thành 3×3
- Điều kiện nhận biết: Một số ứng viên trong ba hàng (hoặc cột) cộng lại chỉ liên quan đến ba cột (hoặc hàng)
- Tính linh hoạt: Mỗi hàng không cần có số ứng viên trong cả ba cột, chỉ cần ba hàng cộng lại bao phủ ba cột
- Quy tắc loại trừ: Swordfish theo hàng xóa cột, Swordfish theo cột xóa hàng
- Tình huống áp dụng: Phương án cuối cùng khi X-Wing và các kỹ thuật trung cấp, nâng cao cơ bản không thể giải quyết
- Độ khó nhận biết: Cần phân tích có hệ thống sự phân bố số ứng viên trong nhiều hàng cột, rất tốn thời gian
- Tần suất xuất hiện: Rất hiếm, hầu hết các câu đố khó cũng không cần dùng
Swordfish trong thực tế cực kỳ hiếm, chỉ thỉnh thoảng xuất hiện trong các câu đố cấp chuyên gia khó nhất. Đề xuất:
- Trước hết dùng hết các kỹ thuật trung cấp và X-Wing
- Chọn số có ít vị trí ứng viên nhất để phân tích (như số chỉ còn 6-9 vị trí ứng viên)
- Dùng giấy bút ghi lại sự phân bố của mỗi số trong các hàng cột, dễ phát hiện tổ hợp ba hàng ba cột
- Một số phần mềm Sudoku cung cấp chức năng gợi ý Swordfish, có thể dùng công cụ để học
- Nếu thử 30 phút vẫn không tìm thấy, có thể câu đố không cần Swordfish, kiểm tra xem có bỏ sót kỹ thuật đơn giản hơn không
Luyện tập ngay
Bắt đầu một ván Sudoku cấp chuyên gia, thử sử dụng kỹ thuật Swordfish! Đề xuất:
- Chọn độ khó cao nhất, chỉ câu đố cấp chuyên gia mới có thể cần Swordfish
- Đảm bảo đã nắm vững kỹ thuật X-Wing
- Phân tích có hệ thống từng số ứng viên, tìm mô hình ba hàng ba cột
- Phải kiên nhẫn, Swordfish rất hiếm và khó phát hiện