Sudoku の Y-Wing:3マスの連鎖の仕組み

Sudoku の Y-Wing テクニックを学びます。pivot、wing マス、つながった候補、可能な削除をわかりやすく説明します。

導入

Y-Wing は、それぞれ2つの候補を持つ3つのマスの関係に基づく Sudoku の上級テクニックです。

最初は他のテクニックより直感的でないように見えるかもしれません。行、列、ブロック全体ではなく、小さな論理的連鎖に基づくからです。しかし、関係する3つのマスの役割を理解すると、考え方はずっと明確になります。

このテクニックは、pivot と呼ばれる中心のマスと、wing と呼ばれる2つの関連マスを中心に進みます。これら3つのマスにある候補に基づいて、両方の wing とつながる別のマスから候補を削除できます。

このガイドでは、Y-Wing とは何か、どう見つけるか、ペアや他のテクニックと混同せずに使う方法を見ていきます。

Y-Wing とは

Y-Wing は、それぞれがちょうど2つの候補を持つ3つの異なるマスで構成される配置です。

中心となるマスを pivot と呼びます。他の2つのマスを wing と呼びます。pivot は両方の wing を見る必要があります。つまり、1つ目の wing と行・列・ブロックのどれかを共有し、2つ目の wing とも行・列・ブロックのどれかを共有するということです。

3つのマスは次のような構造を持ちます。

  • pivot:候補 A と B;
  • 1つ目の wing:候補 A と C;
  • 2つ目の wing:候補 B と C.

候補 C は両方の wing にありますが、pivot にはありません。まさにこの候補が、一部の外部マス、正確には両方の wing を見るマスから削除できる候補です。

pivot マスと wing マス

pivot は考え方の中心となるマスです。2つの候補を持ち、そのそれぞれが2つの wing の一方とつながっています。

pivot が {2,5} を含むなら、一方の wing は {2,8}、もう一方は {5,8} を含むことができます。最初の wing は pivot と 2 を共有し、2つ目の wing は pivot と 5 を共有します。両方の wing は候補 8 を共有しており、それが削除可能な候補です。

pivot は両方の wing を見る必要があります。一方で、2つの wing は必ずしも互いに見えている必要はありません。別々のユニットにあっても、両方を見て共通候補を削除できる外部マスがあればよいです。

この区別は重要です。削除が起きるのは wing が同じユニットにあるからではなく、両方を見る外部マスが共通候補を持てないからです。

候補同士の関係

Y-Wing の力は、pivot に可能性が2つしかないことから生まれます。

候補 {2,5} を持つ pivot を想像してください。もし pivot が 2 なら、{2,8} を含む wing は 2 になれず、8 になる必要があります。もし pivot が 5 なら、{5,8} を含む wing は 5 になれず、8 になる必要があります。

どちらの場合でも、少なくとも一方の wing は必ず 8 になります。

したがって、両方の wing を見るどのマスも 8 を含むことはできません。pivot がどちらの値になっても、少なくとも一方の wing は 8 になるため、両方につながるマスは必ずどちらかの wing と衝突します。

これが Y-Wing の論理的な核心です。

配置の見つけ方

Y-Wing を見つけるには、ちょうど2つの候補を持つマスを探すのがよいです。こうしたマスはよく bivalue マスと呼ばれます。

bivalue マスを1つ選び、pivot の候補にします。次に、その pivot を見る別の2つの bivalue マスを探します。構造が正しく、一方は pivot の一方の候補を共有し、もう一方は pivot のもう一方の候補を共有している必要があります。

最後に、2つの wing は互いに共通する候補を持っている必要があります。その共通候補が、外部マスから削除できる可能性のある候補です。

たとえば:

  • pivot:{3,7};
  • wing 1:{3,9};
  • wing 2:{7,9}.

削除可能な候補は 9 ですが、両方の wing を見るマスからだけです。

どの候補を削除できるか

Y-Wing で削除できる候補は、2つの wing に共通する候補であり、pivot にある候補ではありません。

例として pivot {2,5}、wing {2,8}、wing {5,8} の場合、削除可能な候補は 8 です。

ただし削除するには正確な条件が必要です。削除したいマスは両方の wing を見ていなければなりません。つまり、1つ目の wing と行・列・ブロックのどれかを共有し、2つ目の wing とも共有している必要があります。

pivot を見ているだけでは不十分です。片方の wing だけを見ていても不十分です。削除は、少なくとも一方の wing が共通候補を含むという事実に基づいているため、両方の wing マスを見ている必要があります。

ガイド付き例

次の3つのマスを想像してください。

  • pivot:候補 {1,4};
  • wing A:候補 {1,7};
  • wing B:候補 {4,7}.

pivot は両方の wing を見ます。wing A は pivot と候補 1 を共有します。wing B は pivot と候補 4 を共有します。2つの wing は互いに候補 7 を共有します。

ここで考えてみます。

もし pivot が 1 なら、wing A は 1 になれず、7 になる必要があります。もし pivot が 4 なら、wing B は 4 になれず、7 になる必要があります。

どちらの場合でも、2つの wing のうち一方は 7 になります。したがって、wing A と wing B の両方を見るどのマスも、候補 7 を持つことはできません。

そのマスから候補 7 を削除できます。

Naked Pair と X-Wing との違い

Y-Wing は他のテクニックと混同されることがありますが、考え方は異なります。

Naked Pair と比べると、同じユニット内に同じ2つの候補を持つ2つのマスがあるわけではありません。代わりに、論理的な関係でつながった3つのマスがあります。

X-Wing と比べると、2つの行と2つの列でできる長方形を探しているわけではありません。pivot と2つの wing の間の連鎖を探しています。

Naked Pair は同じユニット内の閉じたペアを扱います。X-Wing は行と列における1つの候補の分布を扱います。Y-Wing は3つの bivalue マスと、選択肢の間の論理的な帰結を扱います。

こうした違いは、それぞれのテクニックをいつ探すべきかを理解する助けになります。

よくある間違い

1つ目の間違いは、2つより多くの候補を持つ pivot を使うことです。古典的な Y-Wing では、pivot はちょうど2つの候補を持つ必要があります。

2つ目の間違いは、pivot を見ていない wing を選ぶことです。各 wing は pivot と行、列、またはブロックを共有していなければなりません。

3つ目の間違いは、片方の wing しか見ていないマスから共通候補を削除することです。削除が有効なのは、両方の wing を見るマスだけです。

4つ目の間違いは、wing に共通する候補ではなく pivot の候補の1つを削除することです。Y-Wing で削除可能なのは、2つの wing が共有し、pivot にはない候補です。

続きを読む