4x4x4ルービックキューブの攻略法

本記事では4x4x4ルービックキューブをなるべく少ない知識で揃える方法をまとめる。

筆者は2ヶ月ほど前に3x3x3ルービックキューブの解き方を覚えた。そこから今日新たに4x4x4ルービックキューブの解き方を覚えたので、筆者の覚えた4x4x4ルービックキューブの解き方をまとめる。

前提知識

3x3x3 ルービックキューブの解き方

4x4x4ルービックキューブ(RC)は、まず4x4x4 RCを並び替えて自分で 3x3x3 RCを作り、それを3x3x3の方法を使って揃えることで解く。そのため、途中で3x3x3 RCの解き方の知識が必要となる。

筆者は新・高橋メソッド https://www.youtube.com/watch?v=Z8Qc5Nq90bU を覚えた。この動画では使う手順が最小限になっている上に手順の覚え方なども解説されており、筆者にとっては覚えやすかった。

3x3x3 RCを解ける方法なら何を使っても良い。ただし、上記以外の方法を用いると、もしかすると解いている最中に遭遇する例外(パリティが異なるとわかる配置)としてこの記事に書いてあるもの以外が出現する可能性がある。

3x3x3 ルービックキューブの配色

4x4x4 RCでは最初に自分で3x3x3 RCを作らなければいけないが、その時3x3x3 RCの配色(つまり展開図)を知っていなければならない。この展開図を間違えたまま進めても、3x3x3 RCとして解けない配置が出てきてしまう。

ルービックキューブの展開図の配色を示した図。
ルービックキューブの展開図

上記が3x3x3 RCの展開図である。自分が覚えた時の覚え方は次の通り:

  • 似た色同士が対面している。白と黄、赤とオレンジ、青と緑。
  • 上記の展開図で、対面している白と黄を上下に並べ、間にオレンジを入れる。すると、左側に来るのは緑となる。

記法

本記事で用いる回転の記法は下記の通り。

  • 3x3x3と同様のもの
    •  RLFBUD: 一番外側の1層を自分に向けた状態で時計回りに回す。
    •  xyz: キューブ全体を、その軸の伸びる方向を自分に向けた状態で時計回りに回す。
      • 本稿では xのみ登場する。 xは、キューブ全体を Fの面が Uに置き換わるように奥側へ回転させる動作を表す。これは、 x軸に沿って時計回りに90度回転している動作に相当する。
    • 逆回転: 逆向きに回す動きについては R'のように 'を使って表す。 R' Rの逆回転となる。
    • 複数回転: 同じ動作を2回行う場合は R2のように後ろに数字を書いて表す。
  • 4x4x4特有のもの
    •  rlfbud: 一番外側層とその1つ下の層の合計2層を自分に向けた状態で時計回りに回す。(大きな2x2x2 RCのような回し方となる。)
    •  R_2 L_2 F_2 B_2 U_2 D_2: 一番外側の層の1つ下の層のみの1層を自分に向けた状態で時計回りに回す。
      •  R_2 を2回回す動きは R_22と書く。

3x3x3 RCにおける記号の一例が https://tribox.com/3x3x3/solution/notation/ などに載っている。ただし、 RLFBUD, xyz 以外の記号や表記法が本稿とは異なっているので注意。

知っていると役立つ知識

パリティ

3x3x3 RCをバラバラに分解して再び組み合わせると、ちゃんと解けるルービックキューブになる確率は実はわずか1/12となっている(https://math.stackexchange.com/questions/2269894)。それ以外の場合では、正規の方法を使っても決して解けないRCが出てきてしまう。

このことから、分解して実現可能な配置も含めた時のルービックキューブの配置は12個の「世界」に分かれており、ルービックキューブの基本動作 RLFBUDだけを行っている限り、同じ世界の中のみを移動でき、異なる世界の間を移動できないことがわかる。異なる世界の間を移動するには、「ルービックキューブを分解する」という特別な動作が必要となる。

さて、4x4x4 RCを解く際には、まずキューブを寄せ集めてセンターキューブとエッジキューブを作ることで自分で3x3x3 RCを作ってからそれを解くという段階を踏む。この操作は3x3x3 RCにはない操作を使っているという意味で3x3x3 RCを分解するのと同じようなことを行っている。そのため、解けない3x3x3 RCが作られることがある。本稿では、4x4x4 RCを作っている最中に解けない3x3x3 RCが出てきた場合、「解けない3x3x3 RCから解ける3x3x3 RCへ移動する」操作を行うことで解ける配置に直すという方法を取る。

このように、パズルの配置を「そのパズルで正規に許されている動作のみを使って到達可能な状態」に基づいていくつかの行き来可能な「世界」に分類したとき、解くことができる世界(つまり、正解の状態を含む世界)とは異なる状態にいると、許された動作だけを行っている限りはその世界から脱出することはできない。そのため、「解けない世界から、解ける世界へ移動する」必要がある。このように解けない世界から解ける世界へい移動することを「パリティ (parity) を解消する」と呼ぶ。

本稿では、このパリティを解消するのに使うアルゴリズムが登場する。そのアルゴリズムを使うと、ぱっと見では何か変化が起きたようには見えないが、「解けない世界」から「解ける世界」への移行ができており、アルゴリズムの実行後、通常の3x3x3 RCの解き方を続行することでRCが解けるようになっている。

このような方法は速解きをする場合は適さないが、必要最小限の知識を用いて解くことを目指した場合は有効である。速解きをする場合は、配置に異変を発見しパリティの解消の必要性があると気づいた時点で、その異変のみを狙い撃ちして元に戻すアルゴリズムを覚えるのが良い。しかし解くことだけを目標にした場合、パリティの解消のみを行い、残りは通常の解き方を用いる方策を採用することで、覚えるべきアルゴリズムの数を減らすことができる。

パリティの考え方はルービックキューブ特有のものではなく、色々なパズルにおいても用いられている。パリティの詳細やその語源などについては、本稿末のおまけを参照。

CommutatorとConjugate

 ABA'B'の形のアルゴリズムをcommutator、 ABA'の形のアルゴリズムをconjugateと呼ぶ。ここで A' Aを打ち消すような動作を表す。例えば、新高橋メソッドにおける「右動作」は RUR'U'と書けるが、これはcommutatorの形をしている。本稿ではconjugateの形をしたアルゴリズムが登場する。

登場するアルゴリズムのまとめ

下記のアルゴリズムが登場する:

  • 中心2x2マスを揃える時の基本動作:  R_2 \cdot U \cdot R_2'
  • 辺を揃える時の基本動作:  R_2' \cdot U' R U \cdot R_2
  • 最後の1辺のパーツの入れ替え:  d \cdot RF' \cdot U \cdot R'F \cdot d'
  • 1本のdedgeを反転する(OLL parityの解消):  rU2 \cdot x \cdot rU2 \cdot (rU2 \cdot r'U2 \cdot lU2 \cdot r'U2 \cdot rU2 ) \cdot r'U2 \cdot r'
  • 対面するdedge同士を反転する(PLL parityの解消):  (R_2 2 \cdot U2) \cdot (R_2 2 \cdot u2) \cdot (R_2 2 \cdot U_2 2)

以下に詳細を記す。

中心2x2マスを揃える時の基本動作

 \displaystyle
R_2 \cdot U \cdot R_2'

使い方:FからUへ1マス移動する際に使う。 FとU以外の面の中心2x2マスが不変に保たれる(一切変わらない)ことがポイント。(エッジキューブは入れ替わる。)この性質を使って、中心2x2マスを作っていく時に注目している面(FとU)のみを書き換えながら中心2x2マスを作っていくことができる。

覚え方:

  • Conjugateになっている。
  • 最初の R_2で上げた2マスを Uで軌道上から退避してから、conjugateの R_2'で戻す。

変種:上記を左右反転した動作も多用する。

辺を揃える時の基本動作

参考文献: https://macozy.com/rubik/4rc/step1_4.html

辺を揃える時の基本配置

上記の配置のとき、下記で辺を揃える:

 \displaystyle
R_2' \cdot U' R U \cdot R_2

作用:図のa,bのキューブのペア同士が揃う。中心2x2マスは不変に保たれるのがポイント。

使い方:上側1層のみの回転( RLFBUD)と中心2層のみの回転( R_2 L_2など)も中心2x2マスを不変に保ち、辺だけを移動する。これらの操作を使って上図の状態に揃えた後、上記を使って辺を揃える。

覚え方:

https://macozy.com/rubik/4rc/step1_4.html に非常に覚えやすい方法が載っている。それを改変したものが下記である:

  1. aを揃える。
  2. aをb側に移動する。
  3. bの面を奥へ移動する。
  4. 上面を元に戻す(2の逆の操作を行う)。
  5. 中心面を見て、ずれている面を見つける。その面を戻すような動作(つまり、1.の逆の操作)を行う。

変種:

https://macozy.com/rubik/4rc/step1_4.html にて、bの位置が反対の辺にある場合が紹介されている。この場合も覚え方は上記と同じである。

最後の1辺のパーツの入れ替え

上記の配置のとき、下記で辺を揃える:

 \displaystyle
d \cdot RF' \cdot U \cdot R'F \cdot d'

作用:図のa,bのキューブのペア同士が揃い、他のキューブを全て不変に保つ。

覚え方:

舞台になぞらえる。観客席から舞台を見ている所を想像する。

  1.  d: ステージを回転させる。
  2.  R: 上手(かみて)から演者が入場する。
  3.  F': 観客から拍手が起こる。
  4.  U: 天井が回転する。 5:  R': 再び上手(かみて)から演者が入場する。 6:  F: 観客から拍手が起こる。 7:  d': ステージを戻す。

また、間の RF' \cdot U \cdot R'Fの部分はconjugateになっていないのがポイントである。 d \cdots d'に部分はconjugateになっているが、その間はconjugateになっていないというように覚える。

1本のdedgeを反転する(OLL parityの解消)

Dedgeとは、2つ組のエッジキューブで作られた、3x3x3 RCのエッジキューブに対応する2つ組のキューブのことである。1本のdedgeを反転するには、そのdedgeをFとUの間に持っていき、下記を行う:

 \displaystyle
rU2 \cdot x \cdot rU2 \cdot (rU2 \cdot r'U2 \cdot lU2 \cdot r'U2 \cdot rU2 ) \cdot r'U2 \cdot r'

このアルゴリズムが一番難しい。一見長くて覚えづらいように見えるが、実はある程度規則的な形になっている。

使い方:3x3x3 RCを解くフェーズの途中で使う。新高橋メソッドでは、「時計の3時、6時、9時」の動作を行っている際の異変の有無で必要性に気づくことができる。通常の3x3x3 RCでは、エッジキューブが1個のみ反転した状態は決して作ることができない(http://www.rubiksplace.com/cubes/4x4/)。したがって、「時計の3時、6時、9時」の状態から1辺のみが欠けていることに気づいた場合、その時点ですぐに上記のアルゴリズムを適用して辺を戻すことで、3x3x3 RCの解き方を続行できる。

覚え方:

  • 全部で8回の \alpha U2 がある。最後だけ U2が無く r'単体となっている。
  • 最初の rU2 \cdot x \cdot rU2 はconjugateもどきになっている。
  • 間の rU2 \cdot r'U2 \cdot lU2 \cdot r'U2 \cdot rU2 はABCBAという山のような形になっている。間の l r'はどちらも自分側への回転で、これらが間で呼応するように出現する。

対面するdedge同士を反転する(PLL parityの解消)

 \displaystyle
(R_2 2 \cdot U2) \cdot (R_2 2 \cdot u2) \cdot (R_2 2 \cdot U_2 2)

使い方:下記の場合に使える:

  • 対面しているdedge同士を入れ替えたい場合
    • この場合、対面している辺のうちのどちらか1方を F, U面の交線に配置して上記を行う。
  • 高橋メソッドを完走した後、2つのコーナーキューブのみが入れ替わっており、他は全て揃っている場合がある。
    • この場合、PLL parityが不正になっているので、parityを解消する必要がある。
    • この場合、入れ替えたい2つのコーナーキューブを F, U面の交線上に配置して上記を行うとPLL parityが解消され、解ける3x3x3の配置になる。最後の1面のみが揃っていない状態になるはずなので、その時点から新高橋メソッドを使ってキューブを揃える。

覚え方:

  • 全て \alpha 2の形の回転になっている。そのため、向き(時計回りか反時計回りか)を覚えなくて良い。(どっち回りだったとしても2回適用した結果は変わらないため)
  • 全て R_2 2 \cdot \alpha 2の形になっている。
    • 入れ替えたいdedge同士を貫くような中間の層 R_2 2を最初に回転させてから、上の面を回転させている。
  •  \alphaの部分が U \to u \to U_2のように、「上・全部・下」のように上から下へ移動している。

解き方

参考文献:

解き方:

  • I: 3x3x3 RCを作る
    • ステップ1: 白の中心2x2を揃える
      • 「中心2x2マスを揃える時の基本動作」を使う。
    • ステップ2: 白の対面に黄の中心2x2を揃える
      • 「中心2x2マスを揃える時の基本動作」を使う。
    • ステップ3: 配色(展開図)に注意しながら他の中心2x2を揃える
      • 「中心2x2マスを揃える時の基本動作」を使う。
    • ステップ4: 辺を揃える。
      • 「辺を揃える時の基本動作」を主に使う。必要なら「最後の1辺のパーツの入れ替え」を使う。
        • 上側1層のみの回転( RLFBUD)と中心2層のみの回転(https://macozy.com/rubik/4rc/step1_4.htmlに載っているもう一つの状態)に揃えた後、「辺を揃える時の基本動作」を使って辺を揃える。
      • dedgeのペアを上下反転させたいときは、中心2層を移動させると良い。例えば FR面のdedgeを上下反転させたいときは、D_2'U_2\cdot F2(中心2層を1/4回転してdedgeを反対側に持ってきた後、dedgeの位置を元に戻す)を使う。
  • II: 3x3x3 RCを、パリティに注意しながら解く
    • ステップ5: 高橋メソッドを使って「3時、6時、9時」の時点まで解く。
      • ここで dedge 1辺のみが反転している場合、「1本のdedgeを反転する(OLL parityの解消)」を使ってdedge反転させる。
    • ステップ6: 高橋メソッドを完走する
    • ステップ7: 必要ならばPLL parityを解消する
      • この時点で、ある1辺上のエッジキューブ2つのみが反転しており他はすべて揃っている状態になることがある。この状態になった場合、エッジキューブが反転している辺を FU面の交線に持っていき、「対面するdedge同士を反転する(PLL parityの解消)」を行う。

この方法で4x4x4 RCが解けるはずである。

おまけ

パリティの詳細

パズルにおいて、配置を行き来可能な「世界」に分類するパリティの考え方は、ルービックキューブ特有のものではなく、他のパズルにおいても広く用いられる。パリティを用いることでパズルに関する色々な性質を証明できる。例えば、15パズルにおいて14と15のピースのみを入れ替えたものは決して解けないことが知られているが、この証明の際にもパリティを用いる。詳しくは 15パズルのパリティと転倒数 | Mathlog などを参照。

パリティの語源はpair = 2つ組である。数学においてparityと言った場合、主に整数が偶数であるか奇数であるかのことを指す。元々は、15パズルの場合において「世界」が2つしかなく、ある盤面がどちらの世界に属しているか判定するための計算に数の偶奇が用いられていたことからparityと呼ばれているようである。

このように、元々は「パリティ」は盤面の状態そのものではなく、盤面の状態に付随するある数(不変量と呼ばれる)が偶数か奇数であるか否かに由来し、そこから盤面自体が偶奇つまりパリティを持つと呼ばれるようになった。そこから更に転じて、盤面の分類つまり「世界」が2個より多い場合も、便宜上同じ用語「パリティ」が使われている。

CommutatorとConjugateの詳細

Commutatorは、動作 A Bの「差分」を表す動作である。 A Bが互いに無関係、例えば A=L, ~ B=Rの場合、 ABA'B' = e(何もしない動作を eと置いた)となる。これは L Rの動作範囲が全く交わらないからである。一方、動作範囲が互いに交わる A=R, ~ B=Uとおくと ABA'B'は右動作となり、 ABA'B' \neq eとなる。

Commutatorは次のような特徴を持っている:

  •  A B可換 (commutative) ならば、 ABA'B' = eが成り立つ。ここで A Bが可換であるとは、 AB=BAが成り立つことを表す。
    • この対偶より、 ABA'B' \neq eならば A Bは可換ではないことがわかる。

このような特徴から、commutatorは A Bがどれだけ可換であるかを測っていると言える。

また、 A Bの動作範囲が交わらない部分の効果は打ち消される。したがって、commutatorはその作用の動作範囲を最小限に留めるようなアルゴリズムとなりやすい。

Conjugate  ABA' は、行列の相似変換 (https://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E3%81%AE%E7%9B%B8%E4%BC%BC) や、行列の対角化 (https://ja.wikipedia.org/wiki/%E5%AF%BE%E8%A7%92%E5%8C%96) の際に用いる変換と同じ作られ方をしている。行列の対角化の意味からの類推を行うと、conjugate  ABA' は「 Aの座標系に座標変換し、その世界の中で Bを行い、再び座標系を戻すために A'を行う」ような動作を表していると言える。