Поради

Техніка XY-Chain: Ланцюгове виведення з двозначними клітинками

2025-06-05 · 10 хв читання

XY-Chain є потужним методом ланцюгового виведення серед просунутих технік Судоку. Це розширення XY-Wing, що використовує ланцюгові структури, утворені кількома двозначними клітинками (клітинками лише з двома кандидатами) для виключення кандидатів.

Основний принцип:
XY-Chain складається з серії двозначних клітинок, де сусідні клітинки мають спільного кандидата. Початок і кінець ланцюга мають кожен неспільного кандидата. Якщо ці два числа однакові (називаються Z), тоді клітинки, що бачать і початок, і кінець ланцюга, можуть виключити кандидата Z. Оскільки: слідуючи логіці ланцюга, Z має з'явитися на початку або в кінці ланцюга.
Анімація Принципу XY-Ланцюга
Принцип XY-Ланцюга: Початок{Z,A} і Кінець{C,Z} мають спільного кандидата Z, Z має бути на Початку або в Кінці, видаліть Z зі спільної видимої зони

Перед читанням цієї статті рекомендується зрозуміти конвенції іменування Судоку, Голі пари та основи XY-Wing.

Структура XY-Chain

XY-Chain містить такі ключові елементи:

  • Вузли ланцюга: Кожен вузол — двозначна клітинка {A,B}
  • З'єднання ланцюга: Сусідні вузли повинні «бачити» один одного (той самий рядок, стовпець або блок) та мати спільного кандидата
  • Початок і кінець ланцюга: Кожен має кандидата, не спільного з сусіднім вузлом
  • Умова виключення: Коли неспільні кандидати початку і кінця однакові, виключення можливе

Нотація ланцюга: A(x,y) → B(y,z) → C(z,w) → ... де дужки містять кандидатів, стрілки показують напрямок ланцюга, а сусідні вузли мають спільне одне число (як y, z).

Чому XY-Chain працює?

1 Поширення ланцюга: Припустимо, ланцюг — A{X,Y} → B{Y,Z} → C{Z,W}. Якщо A=X, тоді B має =Z (бо B не може =Y), потім C має =W (бо C не може =Z).
2 Дві можливості: Початок ланцюга має двох кандидатів {P,Q}, де Q спільний з наступним вузлом. Якщо початок=P, виведення закінчується; якщо початок=Q, логіка поширюється вздовж ланцюга до кінця.
3 Ключовий висновок: Якщо неспільне число P початку ланцюга дорівнює неспільному числу кінця, тоді P має з'явитися на початку або в кінці ланцюга.
4 Ціль виключення: Клітинки, що бачать і початок, і кінець ланцюга, не можуть містити P (бо P має бути на початку або в кінці).

Приклад 1: 4-вузловий XY-Chain

Розглянемо простий приклад 4-вузлового XY-Chain.

Приклад XY-Chain 1
Рисунок 1: XY-Chain R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}, може виключити 7 з R2C7
Відкрити цей приклад у солвері

Процес аналізу

1 Визначте вузли ланцюга:
  • R2C2: кандидати {3, 7} (початок ланцюга)
  • R2C6: кандидати {3, 5}
  • R9C6: кандидати {2, 5}
  • R9C7: кандидати {2, 7} (кінець ланцюга)
2 Перевірте з'єднання ланцюга:
  • R2C2 і R2C6 в одному рядку (Рядок 2), спільний кандидат 3
  • R2C6 і R9C6 в одному стовпці (Стовпець 6), спільний кандидат 5
  • R9C6 і R9C7 в одному рядку (Рядок 9), спільний кандидат 2
3 Визначте число для виключення:
  • Неспільне число початку R2C2{3,7} = 7 (3 спільне з R2C6)
  • Неспільне число кінця R9C7{2,7} = 7 (2 спільне з R9C6)
  • Вони однакові! Z = 7
4 Процес виведення:
  • Якщо R2C2=7 → 7 на початку ланцюга
  • Якщо R2C2=3 → R2C6 не може бути 3 → R2C6=5 → R9C6 не може бути 5 → R9C6=2 → R9C7 не може бути 2 → R9C7=7 → 7 в кінці ланцюга
  • В обох випадках 7 має бути в R2C2 або R9C7
5 Знайдіть ціль виключення: R2C7 може бачити і початок ланцюга R2C2 (той самий рядок), і кінець ланцюга R9C7 (той самий стовпець).
Висновок:
XY-Chain: R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}
Може виключити кандидата 7 з R2C7.

Приклад 2: Довгий 10-вузловий ланцюг

XY-Chain може бути дуже довгим. Ось 10-вузловий приклад, що демонструє потужну здатність ланцюгового виведення.

Приклад XY-Chain 2
Рисунок 2: XY-Chain R2C5{1,5} → 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}, може виключити 5 з R8C5
Відкрити цей приклад у солвері

Процес аналізу

1 Визначте вузли ланцюга (10 вузлів):
  • R2C5: {1, 5} (початок ланцюга)
  • 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} (кінець ланцюга)
2 Перевірте з'єднання ланцюга:
  • R2C5 → R2C1: той самий рядок, спільне 1 (або 5)
  • R2C1 → R1C1: той самий стовпець, спільне 5
  • R1C1 → R1C7: той самий рядок, спільне 8
  • R1C7 → R3C7: той самий стовпець, спільне 7 (або 8)
  • R3C7 → R3C2: той самий рядок, спільне 8
  • R3C2 → R7C2: той самий стовпець, спільне 4 (або 8)
  • R7C2 → R8C1: той самий блок, спільне 8
  • R8C1 → R8C7: той самий рядок, спільне 4
  • R8C7 → R8C3: той самий рядок, спільне 9
3 Визначте число для виключення:
  • Неспільне число початку R2C5{1,5} = 5 (1 спільне з R2C1)
  • Неспільне число кінця R8C3{5,9} = 5 (9 спільне з R8C7)
  • Вони однакові! Z = 5
4 Висновок: Незалежно від того, чи початок ланцюга R2C5 дорівнює 1 чи 5, кандидат 5 має з'явитися на початку ланцюга R2C5 або в кінці ланцюга R8C3.
5 Знайдіть ціль виключення: R8C5 може бачити і початок ланцюга R2C5 (той самий стовпець), і кінець ланцюга R8C3 (той самий рядок).
Висновок:
XY-Chain (10 вузлів): R2C5 → R2C1 → R1C1 → R1C7 → R3C7 → R3C2 → R7C2 → R8C1 → R8C7 → R8C3
Може виключити кандидата 5 з R8C5.

Як знайти XY-Chain?

Пошук XY-Chain вимагає систематичного підходу:

1 Позначте двозначні клітинки: Спочатку визначте всі клітинки лише з двома кандидатами.
2 Виберіть початкову точку: Виберіть двозначну клітинку як початок ланцюга, запишіть її двох кандидатів {P,Q}.
3 Розширте ланцюг: Знайдіть двозначні клітинки, що можуть «бачити» поточний вузол і мають спільного кандидата як наступний вузол.
4 Перевірте умову завершення: Після кожного розширення перевірте, чи неспільне число кінця дорівнює неспільному числу P початку.
5 Знайдіть цілі виключення: Знайдіть клітинки, що бачать і початок, і кінець ланцюга та містять P.
Важливі примітки:
  • Кожен вузол у ланцюзі має бути двозначною клітинкою
  • Сусідні вузли повинні бачити один одного (той самий рядок, стовпець або блок)
  • Сусідні вузли повинні мати спільного кандидата
  • Умова виключення: неспільні кандидати початку і кінця однакові
  • XY-Wing — особливий випадок XY-Chain (ланцюг довжиною 3)

Зв'язок між XY-Chain та XY-Wing

XY-Wing можна розглядати як XY-Chain довжиною 3:

  • XY-Wing: Pivot{X,Y} → Крило1{X,Z} → Крило2{Y,Z}... тощо, це насправді не стандартна форма ланцюга
  • Фактичний зв'язок: Структура XY-Wing має форму «Y», тоді як XY-Chain лінійний
  • Спільний момент: Обидва використовують двозначні клітинки для логічного виключення
  • Різниця: XY-Chain вимагає ланцюгового з'єднання, XY-Wing вимагає, щоб pivot бачив обидва крила

Підсумок техніки

Ключові моменти застосування XY-Chain:

  • Вимога до вузла: Всі вузли — двозначні клітинки
  • Вимога до з'єднання: Сусідні вузли можуть бачити один одного і мають спільного кандидата
  • Умова виключення: Неспільні кандидати початку і кінця однакові
  • Ціль виключення: Спільний кандидат у клітинках, що бачать і початок, і кінець
  • Довжина ланцюга: Теоретично необмежена, довші ланцюги важче знайти, але потужніші
Практикуйте зараз:
Почніть гру в Судоку і спробуйте використати XY-Chain для виключення! Спочатку знайдіть усі двозначні клітинки, потім спробуйте з'єднати їх у ланцюг.