PDF形式でみる

群論で解き明かす
ルービックキューブの数理 (2)
川辺治之
2010 年 9 月 15 日
復習:群の定義
集合 G が次の条件を満たすとき、G を群という.
(G1) 演算 · : G × G → G が定義されている.
■ (G2) 結合則 ∀f, g, h ∈ G, (f · g) · h = f · (g · h) が成り立つ.
■ (G3) 単位元 ∃g ∈ G, ∀f ∈ G, gf = f g = f が存在する.
この g を 1 と表記する.
■ (G4) 逆元 ∀f ∈ G, ∃g ∈ G, f · g = g · f = 1 が存在する.
この g を f −1 と表記する.
■
2 / 33
置換
Zn = {1, 2, . . . , n} を 1 からある固定した正整数 n までの整数の集合とす
るとき,Zn の置換とは,Zn からそれ自身への全単射のこと.
■ より一般的には,T を有限集合とするとき,T の置換とは,T からそれ
自身への全単射のこと.
■ 置換 f : Zn → Zn を次のような 2 × n 配列で表記する。
1 2 ... n
f1 f2 . . . fn
■
3 / 33
巡回置換 (巡換)
■
n 個の元を巡回的に移す置換を n 項巡換 (長さ n の巡回置換) という.
1 2 ... n
2 3 ... 1
■
f = (2, 3, 1)
は
f (2) = 3, f (3) = 1, f (1) = 2
■
という 3 項巡換を表す。
2 項巡換を互換という.
4 / 33
交換数
f : Zn → Zn を置換とするとき,
■
ef (i) = #{j > i | f (i) > f (j)}
(1 ≤ i ≤ n − 1)
および f の交換数を
swap(f ) = ef (1) + . . . + ef (n − 1)
■
と定義する.
swap(f ) により定まる値
sgn(f ) = (−1)swap(f )
■
を置換 f の符号という.
swap(f ) が偶数 (=sgn(f ) = 1) のとき,f を偶置換といい,swap(f ) が
奇数 (=sgn(f ) = −1) のとき,f を奇置換という.
5 / 33
交換数
Y f (i) − f (j)
sgn(f ) =
i−j
i<j≤n
f および g を Zn の置換とするとき,次の式が成り立つ.
Y g(i) − g(j) Y f g(i) − f g(j)
Y f g(i) − f g(j)
=
i−j
i−j
g(i) − g(j)
i<j≤n
i<j≤n
i<j≤n
これより sgn(f g) = sgn(f ) sgn(g) (sgn は準同型写像) が成り立つ.
。
6 / 33
15 パズル
全て揃った配置
到達できない配置
1
2
3
4
1
2
3
4
5
6
7
8
5
6
7
8
9
10
11
12
9
10
11
12
13
14
15
•
13
15
14
•
7 / 33
15 パズルのグラフ
Γ : N 個の頂点をもつグラフ (15 パズルでは N = 16.)
■ Γ の番号付け : Γ のそれぞれの頂点に 1 から N までの相異なる番号を割
り当てること (N = 16 は方形片が置かれていない場所を表す.) すなわ
ち,全単射 f : V (Γ) → {1, 2, . . . , N } のこと.
■ 15 パズルにおいて、許される手は,16 と番号づけされた頂点とそれに隣
接する頂点の番号付けを交換すること。
■
1..
.......................................
5..
.......................................
9.
.......................................
...
...
...
...
...
...
...
..
.......................................
6..
.......................................
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
..
2..
...
...
...
...
...
...
...
..
3..
.......................................
7..
.......................................
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
..
4..
...
...
...
...
...
...
...
..
8..
...
...
...
...
...
...
...
..
.......................................
.......................................
10
11
12
.
.
.
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
..
13....................................... 14....................................... 15....................................... 16
8 / 33
隣接する番号付け
二つの番号付け f, g は,N が割り当てられた頂点とそれに隣接する頂点の
番号の互換だけで f から g がえられるとき,それらは隣接するという.
いいかえると,f と g は,ゲームの規則に従った一手分だけが異なるとき,
そしてそのときに限り,隣接する.
1
2
3
4
1
2
3
4
5
6
7
8
5
6
7
8
9
10
11
9
10
13
14
15
13
14
12
11
15
12
9 / 33
Γ のホモトピー群
xi (0 ≤ i ≤ n) を Γ の頂点とし, 1 ≤ i ≤ n に対して xi と xi−1 は Γ の中
で隣接しているとすると,経路 p = (x0 , x1 , x2 , . . . , xn ) を N = 16 が番
号付けされた頂点と考えることで,15 パズルの手順とみなせる.
■ x0 を p の始点といい,xn を p の終点という.
■ x0 = xn のとき,p を x0 を起点とする閉路という.
■ Γ 上の x0 を起点とする閉路の集合は (経路の合成について ) 群となる.
これを x0 を起点とする Γ のホモトピー群という.
■
10 / 33
15 パズルの奇偶性
15 パズルの方形片を置くことできる区画を白黒の市松模様に塗り分ける.
初期配置では、方形片が置かれていない場所はある白色の区画とする.
一手ごとに方形片が置かれていない場所は、交互に黒色および白色の区画と
なる.
それぞれの手は,16 とそれに隣接する頂点の番号の互換 (=奇置換) となる
ので
方形片が置かれていない場所が白 (黒) 色の区画
⇐⇒ 偶 (奇) 数回の手
⇐⇒ 偶 (奇) 置換 ∈ A16
⇐⇒ 16 が移動してないならば偶 (奇) 置換 ∈ A15
11 / 33
15 パズルの規則に従った配置
15 パズルの規則に従った配置は,1 から 15 までの偶置換 (交代群 A15 の元)
と一対一対応することを次の方針で示す。
1. 3 項巡換 (11, 12, i)(i 6= 11, 12) を実現する手があること.
2. これらの 3 項巡換が交代群 A15 を生成すること.
12 / 33
証明 (1)
1
2
3
4
6
5
6
7
8
9
10
(blank)
11
?
13
-
14
15
12
13 / 33
証明 (2)
1
5
2
6
3
4
6
7
6
9
10
(blank)
?
13
14
-
8
11
-
15
12
14 / 33
証明 (3)
■
i, j 6= 11, 12 の場合
(11, i, j) = (11, 12, j)(11, 12, i)(11, 12, j)−1
■
i, j, k 6= 11, 12 の場合 (11, 12, i)(11, 12, j) = (11, i)(12, j)(i 6= j) より
(i, j, k) = (11, 12, i)(11, 12, j)(11, 12, k)(11, 12, j)−1(11, 12, i)−1
で表せる.
これより任意の 3 項巡換は、(11, 12, i) の形の積で表せる.
任意の偶置換 (=交代群の元) は,偶数個の互換の積の形に表せるので、
(i, j)(j, k) = (i, j, k),
(i, j)(k, l) = (i, j, k)(j, k, l) (i, j 6= k, l)
より 3 項巡換の積で表せる.
15 / 33
復習:部分群
群 G の部分集合 H で,G から引き継いだ演算 · が群の条件 (G1)-(G4)(のす
べての G を H で置き換えたもの) を満たすものを,G の部分群といい,
H ⊂ G と表記する.
16 / 33
剰余類
G を群とし, H を G の部分群とする.g を G の元とするとき,
■
■
G の部分集合 g · H = {g · h|h ∈ H} を G における H の左剰余類といい,
左剰余類全体の集合を G/H と表記する。
G の部分集合 H · g = {h · g|h ∈ H} を G における H の右剰余類といい,
右剰余類全体の集合を H\G と表記する.
17 / 33
完全代表系
H を G の部分群とし, C ∈ G/H とする.
G の元 g に対して,C = g · H が成り立つとき,g を剰余類 C の代表と
いう.
■ (G における H の左剰余類は G を分割するので,) G の部分集合
{x1 , x2 , . . . , xm } で重複なしに (すなわち,すべての xi · H は互いに素と
なる)
G/H = {x1 · H, . . . , xm · H}
■
となるものを完全代表系という.
18 / 33
復習:ルービックキューブの単位操作
■
■
■
■
■
■
U : ルービックキューブの上面を (上から見て) 時計回りに 90 度回転さ
せる操作
D : ルービックキューブの下面を (下から見て) 時計回りに 90 度回転さ
せる操作
L : ルービックキューブの左面を時計回りに 90 度回転させる操作
R : ルービックキューブの右面を時計回りに 90 度回転させる操作
F : ルービックキューブの前面を時計回りに 90 度回転させる操作
B : ルービックキューブの後面を時計回りに 90 度回転させる操作
この略記法をシングマスター記法という.
19 / 33
部分群法
G = hR, L, F, B, U, Di をルービックキューブ群とし,部分群の系列
Gn = {1} ⊂ Gn−1 ⊂ · · · ⊂ G1 ⊂ G0 = G
を用いて次の処理を実行する.
■
■
与えられたルービックキューブの配置を元 g0 ∈ G とする.
すべての 0 ≤ k < n について,Gk /Gk+1 の完全代表系
Gk /Gk+1 =
rk
[
gk+1,i Gk+1 (rk > 1)
i=1
を決めておく.
20 / 33
部分群法
(初期処理) (ある 1 ≤ i ≤ r1 について) g0 ∈ g1,i G1 となるとき,
g1 = g1,i および g1′ = g1−1 g0 とする.(g1′ ∈ G1 となる.)
■ (再帰的処理) gk′ ∈ Gk がすでに定義されていて,(ある 1 ≤ j ≤ rk につ
−1 ′
′
gk
= gk+1
いて) gk′ ∈ gk+1,j Gk+1 となるとき,gk+1 = gk+1,j および gk+1
′
∈ Gk+1 となる.)
とする.(gk+1
−1 g −1 g −1 . . . g −1 g となり,
■ 得られた値をすべてまとめると 1 = gn
0
n−1 n−2
1
■
g0 = g1 g2 . . . gn−1 gn
がえられる.
21 / 33
コーナー/エッジ法
G4 = {1} ⊂ G3 ⊂ G2 ⊂ G1 ⊂ G0 = G
G1 : どの 3 面体の位置を変えない部分群
■ G2 : どの 3 面体および 2 面体の位置も変えない部分群
■ G3 : どの 3 面体および 2 面体の位置も変えず,どの 3 面体の向きも変え
ない部分群
■ G4 = {1}
■
22 / 33
コーナー/エッジ法
1. g0 ∈ G を与えられたルービックキューブの配置とする.
2. g1 を,すべての 3 面体を正しい位置に移す (すなわち,捻られていても
よいが,すべての 3 面体を揃った位置にあわせる) 手順とする.すると
g1−1 g0 ∈ G1 となる.ここで g1′ = g1−1 g0 とする.
3. g2 を,すべての 2 面体を正しい位置に移し (すなわち,3 面体や 2 面体
の向きが変わってもよいが,すべての 2 面体を揃った位置にあわせる),
3 面体の位置は変えない手順とする.すると g2−1 g1′ ∈ G2 となる.ここ
で g2′ = g2−1 g1′ とする.
4. g3 を,どの小方体の位置も変えずに,すべての 3 面体を「揃える」(す
なわち,2 面体を反転させてもよいが,3 面体を捻って正しい向きにす
る) 手順とする.すると g3−1 g2′ ∈ G3 となる.ここで g3′ = g3−1 g2′ とする.
5. g4 を,すべての 2 面体を「揃え」て (すなわち,2 面体を反転させて正
しい向きにする),それ以外のどの小方体の位置も向きも変えない手順
とする.
6. 最終的な解は g0 = g1 g2 g3 g4 となる.
23 / 33
シスルスウェイト 法
G1 = hR, L, F, B, U 2 , D2 i,
G2 = hR, L, F 2 , B 2 , U 2 , D2 i,
G3 = hR2 , L2 , F 2 , B 2 , U 2 , D2 i,
G4 = {1}
G2 は 3 × 3 × 2 のルービックド ミノの群と同型で,位数は (8!)2 · 12 です.
G3 は,
「 平方」群で,その位数は 213 · 34 です.
24 / 33
シスルスウェイト 法
G/G1 の完全代表系 {g1,i | 1 ≤ i ≤ n1 } で,すべての手順 g1,i が高々 7
手となるものがある.(n1 = 2048) この完全代表系に含まれる手順は,2
面体を反転させるだけ
■ G1 /G2 の完全代表系 {g2,i | 1 ≤ i ≤ n2 } で,すべての手順 g2,i が高々 13
手となるものがある.(n2 = 1082565) この完全代表系に含まれる手順
は,3 面体を捻るだけ
■ G2 /G3 の完全代表系 {g3,i | 1 ≤ i ≤ n3 } で,すべての手順 g3,i が高々 15
手となるものがある.(n3 = 29400) この完全代表系に含まれる手順は,
すべての 3 面体および 2 面体を正しい位置に移す.
■ G3 /G4 の完全代表系 {g4,i | 1 ≤ i ≤ n4 } で,すべての手順 g4,i が高々 17
手となるものがある.(n4 = 663552)
■
これより,ルービックキューブのどんな配置も,高々 7 + 13 + 15 + 17 = 52
手で解くことができる.
25 / 33
コシエンバ法
「 2 段階アルゴ リズム」部分群の系列の群を二つに減らした.
G0 = hL, R, F, B, U, Di
G1 = hL, R, F 2 , B 2 , U 2 , D2 i
G2 = 1
第 1 段階 : 撹乱された配置を G1 の元に移す手順を探します.G1 は,3 面体
および 2 面体の向きに制約を課し,上下方向の中間層にある 2 面体を同じ中
間層に移す元からなります.この目的の状態を見つけるために,プログラム
は反復深化 A*(IDA*) 法と呼ばれる探索アルゴ リズムを使用する.(探索する
手順の長さを延ばしながら表を引いてすべての手順上を反復する.)
第 2 段階 : 部分群 G1 に含まれる配置に対して,この部分群に含まれる手順
だけを使って,すべての面が揃った状態にする.この段階では,8 個の 3 面
体の置換,上面および下面にある 8 個の 2 面体の置換,および上下方向の中
間層にある 4 個の 2 面体の置換を行う.
26 / 33
ケーリーグラフ
G を,gi (1 ≤ i ≤ n) を生成元とする有限群とする.
G = hg1 , g2 , . . . , gn i
この生成集合 X = {g1 , g2 , . . . , gn } が単位元を含まず,逆元の演算に関して
閉じている (すなわち x ∈ X ならば x−1 ∈ X となる) とき,G の元を頂点
の集合 V とし,次の条件によって決まる辺の集合 E をもつグラフ (V, E) を
X = {g1 , g2 , . . . , gn } に関する G のケーリーグラフという:
{x, y} ∈ E ⇐⇒ ∃gi ∈ X(y = gi · x ∨ x = gi · y)
27 / 33
ルービックキューブ群のケーリーグラフ
■
四半回転尺度における生成集合
{R, L, U, D, F, B, R−1 , L−1 , U −1 , D−1 , F −1 , B −1 }
■
に関するケーリーグラフ
面回転尺度における生成集合
{R, R2 , L, L2 , U, U 2 , D, D2 , F, F 2 , B, B 2 , R−1 , L−1 , U −1 , D−1 , F −1 , B −1 }
に関するケーリーグラフ
28 / 33
ケーリーグラフの直径
ルービックキューブの解法=ケーリーグラフにおける現在の配置に対応
した頂点から単位元に対応した頂点までの経路
■ 現在の配置からすべての面を揃えるためのもっとも少ない手数=その配
置に対応する頂点から単位元に対応する頂点のまでの距離
■ 最小手数が最大となる場合の手数=ケーリーグラフの直径 (四半回転尺
度または面回転尺度のそれぞれで測ることができる.)
■
29 / 33
神のアルゴリズム
2010 年 7 月,トーマス・ロキッキ,ハーバート・コシエンバ,モーレ イ・ダ
ヴ ィッド ソンおよびジョン・デスリッジは,ルービックキューブのどのよう
な配置も面回転尺度で高々20 手で揃えることができることを示した.
彼らは,43, 252, 003, 274, 489, 856, 000 通りの配置をそれぞれ
19, 508, 428, 800 通りの配置からなる部分問題 2, 217, 093, 120 個に分割し,
対称性などを使ってそれらを 55, 882, 296 個にまで減らした.そして,
Google の大規模なクラウド 環境を使用してすべての配置が 20 手以下で揃え
ることがきることを示した.この計算には,35 CPU 年 (1 台の CPU で計算
すると 35 年かかる計算量) を費やしたとのこと.解の計算には,コシエンバ
法にいくつかの高速化のための改良をしたアルゴ リズムが用いられた.
30 / 33
面回転尺度で 20 手必要な配置
スーパーフリップ=全ての 2 面体を反転させた配置
F · B · U 2 · R · F 2 · R2 · B 2 · U −1 · D · F · U 2 · R−1 · L−1 ·
·U · B 2 · D · R2 · U · B 2 · U
31 / 33
四半回転尺度で 26 手必要な配置
四点斑付きスーパーフリップ (スーパーフリップは 24 手)
U 2 · D 2 · L · F 2 · U −1 · D · R2 · B · U −1 · D −1 ·
·R · L · F 2 · R · U · D −1 · R−1 · L · U · F −1 · B −1
32 / 33