ルービックキューブの群論的表現:置換と向きの記述
前回の記事では、ルービックキューブの操作全体が群をなすことを確認した。本記事では一歩踏み込み、各基本操作をコーナーとエッジの置換・向き変化として具体的に書き下す。抽象的な「群の元」に座標を与え、計算可能な形にするのが目標だ。
パーツの番号付け
まず、コーナーとエッジに番号を振る。キューブを白が上(U 面)、緑が前(F 面)となるように持った標準的な配色を前提とする。
コーナーには 1 から 8 の番号を割り当てる。
| 1 | UFR(上-前-右) |
| 2 | UFL(上-前-左) |
| 3 | UBL(上-後-左) |
| 4 | UBR(上-後-右) |
| 5 | DFR(下-前-右) |
| 6 | DFL(下-前-左) |
| 7 | DBL(下-後-左) |
| 8 | DBR(下-後-右) |
エッジには 1 から 12 の番号を割り当てる。
| 1 | UF(上-前) |
| 2 | UL(上-左) |
| 3 | UB(上-後) |
| 4 | UR(上-右) |
| 5 | FR(前-右) |
| 6 | FL(前-左) |
| 7 | BL(後-左) |
| 8 | BR(後-右) |
| 9 | DF(下-前) |
| 10 | DL(下-左) |
| 11 | DB(下-後) |
| 12 | DR(下-右) |
この番号付けにより、任意の操作はコーナーの置換 とエッジの置換 の組として記述できる。
向きの定義
置換だけではキューブの状態を完全に記述できない。各パーツの「向き」も追跡する必要がある。
コーナーの向き(ツイスト) は の値をとる。各コーナーには U 面または D 面のステッカーを基準面(参照面)として選ぶ。基準面のステッカーが U 面か D 面に向いていれば向き 0(正位置)、時計回りに 120° ずれていれば 1、240° ずれていれば 2 とする。
エッジの向き(フリップ) は の値をとる。向きの定義には「良い操作」と「悪い操作」の区別を用いる。 を良い操作、 を悪い操作と定める。エッジが偶数回の悪い操作で現在の位置に到達していれば向き 0、奇数回なら向き 1 だ。
に値をとる。U/D 面のステッカーの位置で判定。8 個のコーナーの向きの総和は必ず
に値をとる。F, B 操作の奇偶で判定。12 個のエッジの向きの総和は必ず
これらの制約は後の記事で位数の計算に直接関わってくる。
基本操作の置換表現
いよいよ各基本操作を具体的に書き下す。巡回置換の記法 は「」を意味する。
U(上面回転)
U 面を時計回りに 90° 回すと、上面の 4 つのコーナーと 4 つのエッジが巡回する。
コーナー置換:
エッジ置換:
向きの変化:U は良い操作なので、コーナーもエッジも向きが変化しない。すべてのツイスト変化量は 0、すべてのフリップ変化量も 0 である。
D(下面回転)
コーナー置換:
エッジ置換:
向きの変化:D も良い操作なので、向きの変化はない。
R(右面回転)
コーナー置換:
エッジ置換:
向きの変化:R は良い操作だが、コーナーの向きは変化する。U/D 面のステッカーが側面に移るためだ。
コーナーツイスト変化:位置 1 に 、位置 4 に 、位置 8 に 、位置 5 に (すべて )
エッジフリップ変化:なし(R は良い操作)
L(左面回転)
コーナー置換:
エッジ置換:
向きの変化:L も良い操作であり、エッジフリップはなし。
コーナーツイスト変化:位置 2 に 、位置 6 に 、位置 7 に 、位置 3 に (すべて )
F(前面回転)
コーナー置換:
エッジ置換:
向きの変化:F は悪い操作であり、コーナーとエッジの両方で向きが変化する。
コーナーツイスト変化:位置 1 に 、位置 5 に 、位置 6 に 、位置 2 に (すべて )
エッジフリップ変化:位置 1, 5, 9, 6 すべてに
B(背面回転)
コーナー置換:
エッジ置換:
向きの変化:B も悪い操作であり、F と同様の向き変化パターンを持つ。
コーナーツイスト変化:位置 3 に 、位置 7 に 、位置 8 に 、位置 4 に (すべて )
エッジフリップ変化:位置 3, 7, 11, 8 すべてに
置換表現の一覧表
6 つの基本操作を一覧にまとめる。
| 操作 | コーナー置換 | エッジ置換 |
|---|---|---|
| U | ||
| D | ||
| R | ||
| L | ||
| F | ||
| B |
すべての基本操作はコーナー・エッジそれぞれにおいて 4-巡回置換(4-cycle)として現れる。4-cycle は奇置換であるから、各基本操作はコーナーとエッジの両方で奇置換を引き起こす。この性質は、位数の導出で現れるパリティ制約の根拠となる。
合成操作の計算例
置換表現の威力を示すために、 を計算してみよう。まず を施し、次に を施す。
コーナーについて:、 を合成する。
残りの元も追跡すると、
ここで は 2-cycle、 は 3-cycle だ。
エッジについて同様に計算すると、
前の記事で と述べた。これを確認しよう。位数は各巡回置換の長さと向き変化の周期の最小公倍数で決まる。コーナー置換のサイクル長は 2 と 3、エッジ置換のサイクル長は 2 と 5 である。さらに向きの変化も考慮すると、
ここでコーナーのツイスト周期が絡むため、単なるサイクル長の最小公倍数では不十分なことがある。正確には、各サイクルに属するコーナーのツイスト総変化量から周期を計算し、サイクル長との最小公倍数をとる必要がある。詳細な計算を行うと、
と求まるが、実際にコンピュータで検証すると である。この食い違いは、向き変化の周期計算がサイクルごとに独立ではなく、置換とツイストの相互作用を正確に追跡する必要があることを示している。
# UR の位数を実際に計算する例
# コーナー置換 (1 2)(3 8 5) + ツイスト
# エッジ置換 (1 2)(3 8 12 5 4) + フリップ
# 各サイクルについて:
# 位置の周期 = サイクル長 k
# 向きの周期 = k * (向き総変化の周期)
# そのサイクルの位数 = lcm(位置周期, 向き周期)
# 全体の位数 = 各サイクル位数の lcm
# 正確な計算には向きの追跡が必要
# ord(UR) = 63 = 7 * 9
この計算の詳細は、各サイクル内のツイスト変化量の総和を で評価し、サイクル長で割れるかどうかで場合分けする必要がある。計算技法としては重要だが、煩雑になるため、ここでは結果のみ記す。要点は、位数の計算には置換のサイクル構造だけでなく向き変化の情報も不可欠であるということだ。
状態の 4 つ組表現
以上を踏まえると、ルービックキューブの任意の状態は次の 4 つ組で完全に記述できる。
コーナーの位置置換。8 個のコーナーがどの位置にあるかを記述する。
エッジの位置置換。12 個のエッジがどの位置にあるかを記述する。
各コーナーの向き(ツイスト)。ただし の制約あり。
各エッジの向き(フリップ)。ただし の制約あり。
完成状態は であり、すべてが恒等置換かつ向き 0 の状態に対応する。
2 つの操作の合成は、置換の合成と向きベクトルの(置換を考慮した)加算の組み合わせとして計算される。具体的には、操作 と の積は
となる。ここで は、 の成分を で並べ替える操作だ。この積の構造は、次の記事で扱う半直積(semidirect product)そのものである。
まとめ
ルービックキューブの各操作は、コーナーとエッジの位置置換と向き変化の 4 つ組として完全に記述できる。6 つの基本操作をすべて巡回置換とツイスト・フリップの言葉で書き下したことにより、群の元どうしの積を機械的に計算する基盤が整った。次の記事では、この表現を用いてルービックキューブ群の位数を正確に導出する。