解法のヒント

XYチェーン技法詳解:二値セルの連鎖推論

2025-06-05 · 10 分で読めます

XYチェーン(XY-Chain)は、数独の上級技法における強力な連鎖推論法です。XYウィングの拡張形式であり、複数の二値セル(候補数字が2つだけのセル)で形成される連鎖構造を通じて候補数字を削除します。

基本原理:
XYチェーンは一連の二値セルで構成され、隣接するセル間で1つの候補数字を共有します。チェーンの始点と終点にはそれぞれ共有されない候補数字があり、これらの数字が同じ場合(Zと記す)、チェーンの始点と終点の両方を見ることができるセルから候補数字Zを削除できます。理由:チェーンに沿って推論すると、Zは必ずチェーンの始点か終点に存在します。
XYチェーン原理アニメーション
XYチェーン原理:始点{Z,A}と終点{C,Z}が候補数字Zを共有、Zは始点か終点に存在、共通可視エリアからZを消去

この記事を読む前に、数独の行・列・ボックスの命名規則ネイキッドペアXYウィングの基本概念を理解しておくことをお勧めします。

XYチェーンの構造

XYチェーンには以下の重要な要素が含まれます:

  • チェーンノード:各ノードは二値セル{A,B}です
  • チェーン接続:隣接するノードは互いに「見える」(同じ行、列、またはボックス)必要があり、1つの候補数字を共有します
  • 始点と終点:それぞれに隣接ノードと共有しない候補数字があります
  • 削除条件:始点と終点の非共有候補数字が同じ場合、削除が可能です

チェーンの表記:A(x,y) → B(y,z) → C(z,w) → ... 括弧内は候補数字、矢印はチェーンの接続方向を示し、隣接ノードは1つの数字(y、zなど)を共有します。

なぜXYチェーンは機能するのか?

1 連鎖伝播:チェーンが A{X,Y} → B{Y,Z} → C{Z,W} の場合、A=Xならば、BはZ(BはYになれないため)、CはW(CはZになれないため)でなければなりません。
2 2つの可能性:始点には2つの候補数字{P,Q}があり、Qは次のノードと共有されます。始点=Pなら推論終了、始点=Qなら連鎖は終点まで伝播します。
3 重要な結論:始点の非共有数Pが終点の非共有数と等しい場合、Pは必ず始点か終点のいずれかに存在します。
4 削除対象:始点と終点の両方を見ることができるセルにPは存在できません(Pは必ず始点か終点にあるため)。

例1:4ノードXYチェーン

簡単な4ノードXYチェーンの例を見てみましょう。

XYチェーン例1
図1:XYチェーン R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}、R2C7から7を削除可能
ソルバーでこの例を開く

分析プロセス

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チェーン:R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}
R2C7 から候補数字 7 を削除可能。

例2:10ノード長チェーン

XYチェーンは非常に長くなることがあります。以下は連鎖推論の強力な能力を示す10ノードの例です。

XYチェーン例2
図2:XYチェーン 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}、R8C5から5を削除可能
ソルバーでこの例を開く

分析プロセス

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チェーン(10ノード):R2C5 → R2C1 → R1C1 → R1C7 → R3C7 → R3C2 → R7C2 → R8C1 → R8C7 → R8C3
R8C5 から候補数字 5 を削除可能。

XYチェーンの見つけ方

XYチェーンを見つけるには体系的なアプローチが必要です:

1 二値セルをマーク:まず候補数字が2つだけのセルをすべて見つけます。
2 始点を選択:二値セルをチェーンの始点として選び、その2つの候補数字{P,Q}を記録します。
3 チェーンを延長:現在のノードを「見る」ことができ、1つの候補数字を共有する二値セルを次のノードとして見つけます。
4 終了条件をチェック:延長するたびに、終点の非共有数が始点の非共有数Pと等しいかどうかを確認します。
5 削除対象を見つける:始点と終点の両方を見ることができ、Pを含むセルを見つけます。
注意事項:
  • チェーン内の各ノードは二値セルでなければなりません
  • 隣接するノードは互いに見える必要があります(同じ行、列、またはボックス)
  • 隣接するノードは1つの候補数字を共有する必要があります
  • 削除条件:始点と終点の非共有候補数字が同じ
  • XYウィングはXYチェーンの特殊なケースです(長さ3のチェーン)

XYチェーンとXYウィングの関係

XYウィングは長さ3のXYチェーンと見なすことができます:

  • XYウィング:ピボット{X,Y} → ウィング1{X,Z} → ウィング2{Y,Z}... など、これは実際には標準的なチェーン形式ではありません
  • 実際の関係:XYウィングの構造は「Y」字型で、XYチェーンは線形です
  • 共通点:どちらも二値セルを使用して論理的な削除を行います
  • 違い:XYチェーンはチェーン接続を必要とし、XYウィングはピボットが両方のウィングを見る必要があります

技法のまとめ

XYチェーン適用のポイント:

  • ノード要件:すべてのノードが二値セル
  • 接続要件:隣接ノードが互いに見え、1つの候補数字を共有
  • 削除条件:始点と終点の非共有候補数字が同じ
  • 削除対象:始点と終点の両方を見ることができるセル内のその候補数字
  • チェーンの長さ:理論上は無制限、長いほど見つけにくいが削除能力は高い
今すぐ練習:
数独ゲームを開始して、XYチェーンを使った削除を試してみましょう!まずすべての二値セルを見つけ、それらをチェーンにつなげてみてください。