ルービックキューブ3

id:selvaggio:20060603
id:selvaggio:20060610の続き。

前々回で群、前回で回転記号を書いた。
次は演算記号だね。根気良く行こう。

演算記号

キューブの回転記号だけでは実際にキューブがどのような状態になるのか分からない。
(実際、RUL2D'BLRMSがどんな結果になるかと言われても困る)

ゆえに今度はキューブの状態と一対一に対応する表記を考えなければならない。
とりあえずキューブが元の状態なのか、シャッフルされているのかぐらいは分かるように。
これには、今のところ自分の知りうる中では二通りのアプローチがある。
すなわち、

  • 面を主体にした表記と、
  • 小立方体を主体にした表記

である。

面主体の表記

面主体の表記は端的に言えば次のような概念になる。
「キューブの各面のシールは何色か」

シールは3×3×6=54枚あり、これらは以下のように分類される。

センター
キューブの各面の中心、これは不動。6枚ある。
コーナー
キューブの各面のスミ、これは常にコーナーへ動く。8頂点×3=24枚ある。
エッジ 
キューブの各面の辺、これも常に辺へ動く。12辺×2=24枚ある。

これらは互いに不干渉であるから、それぞれ分けて考えるのがスジである。*1
また、センターの回転は今回は考えないとすると、これは全く動かないので考慮の必要は無い。
とすれば、コーナーとエッジの24枚の置換を考えなければ良い。

例えばコーナー、エッジには同じ色がそれぞれ4つ、6種類含まれている。これで24枚。
これをそのまま単純な順列で表現すると、無駄がありすぎる。*2

その凄まじさを体験するために、前回(id:selvaggio:20060610)の面の表記記号を
色の記号に見立てて、試しにずらずらと書いてみるとこんな感じになる。

[コーナー:(U U B R , L D B L , R R F D , F D U B , B L F F , L U D R),
 エッジ:(D L U R , F B D L , F R U B , L B B D , D R U F , L R F U)]
(丸括弧内のカンマで区切られた4つの記号が各面のシールの色4つに対応している。)

これでは、同じ色の面は区別しないでも良い、という条件を上手く盛り込むことができていない。
それに、回転を行った場合、一体何が起こるのかここから全く想像できない。
っていうかこんな記号の上に群の演算記号を定義したくない。

それでは代替となる数学的表記は、というとこれが恐らく無い。
ルービックキューブをコンピュータゲームとして実装するならこれは良い方法なのだが、
あまりに愚直な配列だから色々理論的に考えるのには都合が悪い。


これはちょっと勘弁して欲しい。


というわけで、小立方体主体の表記にたどり着く。
続きはまた今度。

*1:分割して統治せよ!

*2:24!×24!は勘弁して欲しい