●ALS-Wing

ALS-Wingは、XY-Wing、DeathBlossom の拡張であり、ALSがLockedSetになったときその影響が波及することを用いるアルゴリズムです。

ALS-Wingは、ベースとなるアルゴリズムを含み、解く方法の改良・一般化です。 実装したC#プログラムは、ビット表現による論理演算を多用しています。

ALS-Winの "lockedSet" を、次の図で解説します。
セル(幹セル)着目し、セルと連結した(弱リンク)のALSを選びます。
次に、ALSをLockedSetに変える セル#数字(偽セル数字) を選びます。

  1. [C]セル#数字 を真とすると、
  2. [B]ALS がLockedSetに変わり、
  3. LockedSetの影響[B->A]で、[A]セルの候補#数字がいずれも偽となるなら、
    (B->Aの弱リンクによる効果は複数の#数字の場合もある)
  4. [C]セル#数字は真ではない。

ここに示したのは ALS-Wing の基本形で、次のように拡張できます。これらは独立しており、同時に拡張できます。

●ALS-Wing の実例

ALS_Wing
Stem Cell: r4c7
ALS_1: r4c4 #68
ALS_2: r3c137 #2469
Eliminated: r3c4 #6


ALS_Wing Connected
Stem Cell: r2c6
ALS_1: r346c4 #1789
ALS_2: r1238c5 #12478
Eliminated: r2c4 #8


ALS_Wing overlapping
Stem Cell: r3c4
ALS_1: r6c4 #78
ALS_2: r4c47 #178
ALS_3: r134c7 #1789
(ALS overlapping cells: r4c7)
Eliminated: r4c6 #8


ALS_Wing Connected overlapping
Stem Cell: r2c5
ALS_1: r137c5 #1478
ALS_2: r138c5 #1247
(ALS overlapping cells: r13c5)
Eliminated: r2c6 #4


7.1..9..8.52...19..8...3.574.3.5.......2.1.......3.7.519.7...3..37...68.8..3..9.1
2.9..3..8.17...63..8...6.259.5.6.......3.2.......9.3.114.6...9..53...48.7..4..2.6


Top