ルービックキューブを群論で捉える:基本操作と群の定義

ルービックキューブは、6 色の面を持つ立体パズルであると同時に、群論の生きた教材でもある。ここでは 3×3×3 の標準的なルービックキューブを対象に、その操作が群をなすことを厳密に定義し、具体的な計算を通じて確かめていく。

状態空間の記述

まず、ルービックキューブの構成要素を整理する。外見上は 54 個の色付きステッカーが貼られた立体だが、実際に動くパーツ(キュービー)は次の 3 種類に分類される。

コーナーキュービー(8 個)

立方体の角に位置し、3 つの面が見える。各コーナーは 3 色を持ち、その向き(ツイスト)は で表される。時計回りに 120° 回った状態が 1、240° が 2、正位置が 0 である。

エッジキュービー(12 個)

立方体の辺に位置し、2 つの面が見える。各エッジは 2 色を持ち、その向き(フリップ)は で表される。

センターキュービー(6 個)

各面の中心に固定されており、回転しても位置が変わらない。色の基準として機能するため、群の元としては考慮しない。

センターが固定されていることは重要だ。これにより、各パーツの「正しい位置」と「正しい向き」が一意に定まる。完成状態とは、すべてのコーナーとエッジが正しい位置に正しい向きで収まっている状態のことである。

基本操作の定義

ルービックキューブの操作とは、いずれかの面を 90° 回転させることだ。6 つの面に対応する基本操作を次のように定める。キューブを手に持ち、各面を正面から見たときの時計回り 90° 回転とする。

U上面(Up)を時計回りに 90° 回転
D下面(Down)を時計回りに 90° 回転
L左面(Left)を時計回りに 90° 回転
R右面(Right)を時計回りに 90° 回転
F前面(Front)を時計回りに 90° 回転
B背面(Back)を時計回りに 90° 回転

これら 6 つが基本操作であり、さらに派生する記法がある。

記法意味
反時計回り 90° は上面の逆回転
180° 回転 は右面の半回転

ここで操作の「積」を定義する。2 つの操作 に対し、 は「まず を施し、次に を施す」という合成操作を意味する。たとえば は「上面を回してから右面を回す」だ。この積の順序は書籍によって逆の場合もあるが、本記事ではこの左から右への順序を採用する。

操作の全体が群をなすことの確認

ルービックキューブの操作の全体を と書く。 が群であるとは、次の 4 条件を満たすことだ。

閉包律: の任意の元 に対し、
結合律: の任意の元 に対し、
単位元の存在:何もしない操作 が存在し、任意の に対し
逆元の存在:任意の に対し、 が存在し

これらを一つずつ確認する。

閉包律は明らかだ。2 つの操作を続けて行えば、それはキューブのある状態から別の状態への操作になる。各パーツの位置と向きは有限個しかないため、合成結果も必ず何らかの操作に対応する。

結合律は、操作の本質が置換(写像の合成)であることから従う。写像の合成は一般に結合的だから、 が成り立つ。これは群論の一般論で保証されるが、具体的に言えば「 を施し、 を施し、 を施す」という手順の結果は、どこで区切っても同じパーツ配置に到達するということだ。

単位元は「何もしない操作」 である。キューブに一切手を触れなければ、状態は変わらない。これが を満たすのは自明だろう。

逆元の存在は直感的にも納得しやすい。ある面を時計回りに 90° 回したなら、同じ面を反時計回りに 90° 回せば元に戻る。つまり の逆元は であり、 が成り立つ。より一般に、操作列 の逆元は (逆順に各操作の逆をとったもの)だ。靴下を脱いでから靴を脱くことはできない。脱ぐときは履いたときの逆順になる――これと同じ原理である。

以上により、ルービックキューブの操作全体 は群をなす。

生成元としての基本操作

は 6 つの基本操作 によって生成される。すなわち、

と書ける。 の任意の元は、これら 6 つの操作とその逆操作の有限個の積として表される。

ただし、この生成元の集合は最小ではない。実は のうち対面のペアの一方を除いても生成できる場合がある。たとえば でも を生成可能だ。 は他の操作の組み合わせで表現できる。

最小生成集合ではない

の 6 元はすべて独立ではなく、一部を省いても群全体を生成できる

自然な生成集合である

物理的に「各面を回す」という操作に一対一対応しており、キューブの対称性を自然に反映している

実用上は 6 元の生成集合を使うのが標準的だ。

操作の位数

群の元 の位数(order)とは、 を満たす最小の正の整数 のことだ。ルービックキューブの文脈では「同じ操作を何回繰り返せば元に戻るか」という回数に相当する。

基本操作の位数は簡単に求まる。 を 4 回繰り返せば上面は 360° 回転して元に戻るから、 だ。同様に、すべての基本操作の位数は 4 である。

では複合操作ではどうか。 の位数を考えよう。 を繰り返し施していくと、

:上面→右面の 1 セット

:63 回目でようやく初期状態に復帰

この 63 という値は直感に反するかもしれない。個々の操作の位数はたった 4 なのに、組み合わせると位数が跳ね上がる。これは が動かすパーツが重複しており、各パーツの巡回の長さの最小公倍数が位数を決めるためだ。

具体的には、 をコーナーとエッジの置換として分解し、各巡回置換の長さを求めて最小公倍数をとれば位数が計算できる。この計算は次の記事で詳しく扱う。

もう一つ興味深い例を挙げる。いわゆる「セクシームーブ」と呼ばれる の位数は 6 だ。

# セクシームーブ RUR'U' の位数を確認する疑似コード
move = "R U R' U'"
state = initial_state()
for i in range(1, 1000):
    state = apply_move(state, move)
    if state == initial_state():
        print(f"ord(RUR'U') = {i}")  # 出力: ord(RUR'U') = 6
        break

は交換子 そのものであり、この形の操作がなぜ位数が小さくなりやすいかは、交換子の群論的性質に起因する。これは第 3 回の記事で詳しく論じる。

非可換性

ルービックキューブ群は非可換群(non-abelian group)である。すなわち、一般に が成り立つ。

これは手元のキューブで即座に確かめられる。完成状態から (上→右)を施した結果と (右→上)を施した結果は異なる。

の結果

上面を回してから右面を回す。右面の上段はすでに で移動したパーツを含むため、特定の配置になる

の結果

右面を回してから上面を回す。 で移動したパーツが の影響を受けるため、 とは異なる配置になる

非可換であることは、ルービックキューブが難しいパズルである本質的な理由の一つだ。もし操作が可換ならば、各面の回転回数だけを管理すればよく、パズルとしての複雑さは大幅に失われる。逆に、非可換性こそがパーツの位置と向きの複雑な絡み合いを生み、約 4325 京通りもの状態を生み出す源泉となっている。

まとめ

ルービックキューブの操作全体は、6 つの基本操作を生成元とする有限非可換群をなす。閉包律・結合律・単位元・逆元の 4 条件はいずれも物理的に自然な解釈を持ち、群の抽象的定義がパズルの具体的構造と美しく対応している。次の記事では、各操作を置換と向きの言葉で正確に書き下し、この群の具体的な姿を明らかにする。