Mẹo

Kỹ thuật Swordfish trong Sudoku: Mở rộng X-Wing thành 3x3

2025-01-24 · 10 phút đọc

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 đó.

Nguyên lý cốt lõi:
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.

Sơ đồ nguyên lý Swordfish
Nguyên lý Swordfish: số ứng viên phân bố trong 3 hàng và 3 cột, tạo thành mô hình cá kiếm, mũi tên đỏ chỉ hướng loại trừ

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.

Ví dụ kỹ thuật Swordfish trong Sudoku
Hình: Số ứng viên 4 trong hàng 2, 4 và 8 tạo thành mô hình Swordfish
Mở ví dụ này trong máy tính

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

1 Quan sát hàng 2: Trong hàng 2, số ứng viên 4 chỉ xuất hiện ở hai vị trí: R2C2 (ứng viên 1,4) và R2C3 (ứng viên 1,4). Tức là cột 2cột 3.
2 Quan sát hàng 4: Trong hàng 4, số ứng viên 4 cũng chỉ xuất hiện ở hai vị trí: R4C3 (ứng viên 2,4) và R4C5 (ứng viên 4,5). Tức là cột 3cột 5.
3 Quan sát hàng 8: Trong hàng 8, số ứng viên 4 xuất hiện ở ba vị trí: R8C2 (ứng viên 1,2,4,5,7), R8C3 (ứng viên 1,2,4) và R8C5 (ứng viên 4,5,7). Tức là cột 2, cột 3 và cột 5.
4 Phát hiện mô hình Swordfish: Số ứng viên 4 trong hàng 2, 4 và 8 chỉ xuất hiện trong cột 2, cột 3 và cột 5:
  • 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.

5 Hiểu logic suy luận: Vì số ứng viên 4 trong hàng 2, 4 và 8 chỉ có thể phân bố trong cột 2, 3 và 5, nên ba số 4 này nhất định phải chiếm một số vị trí của ba cột này trong ba hàng. Dù phân bố cụ thể như thế nào, số ứng viên 4 trong cột 2, cột 3 và cột 5 đều bị hàng 2, 4 và 8 chiếm.
6 Xác định mục tiêu loại trừ: Trong cột 2, ngoài hàng 2 và hàng 8, còn có các ô khác chứa số ứng viên 4:
  • 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}
7 Thực hiện loại trừ: Do đó, các ô trong cột 2 và cột 5 ngoài hàng 2, 4 và 8 đều không thể điền 4. Cụ thể:
  • 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)
Kết luận:
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, R6C5R7C5.

Đặ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
Hiểu quan trọng:
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
Mẹo ghi nhớ:
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:

1 Chọn một số ứng viên: Tập trung vào một số ứng viên (1-9), nên chọn số có ít vị trí ứng viên hơn.
2 Tìm hàng (hoặc cột) có ít vị trí ứng viên: Xác định hàng (hoặc cột) mà số ứng viên đó chỉ xuất hiện trong 2-3 ô.
3 Tìm tổ hợp ba hàng: Kiểm tra xem có ba hàng mà số ứng viên cộng lại chỉ liên quan đến ba cột không (mỗi hàng có thể là 2 hoặc 3 trong số ba cột).
4 Xác nhận mô hình Swordfish: Nếu tìm thấy tổ hợp ba hàng ba cột như vậy, thì đã tạo thành mô hình Swordfish.
5 Thực hiện loại trừ: Xóa số ứng viên đó khỏi các ô khác của các cột (hoặc hàng) tương ứng.
Lưu ý quan trọng:
  • 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
Lời khuyên thực hành:
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

Đề xuất luyện tập:
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