ルービックキューブを自分の力で解く方法(その6) の続きです。

 その結果は次のようになります。
97bfe4a0657ddd9da57a6df51ee37315ac627efb

 わーい! ついに、どれも位置を変えず、2つのコーナーの向きだけ変える。今まででもっとも変化の小さな手順ができました! これがあれば、手戻りせずに3段目を揃えていけそうです。

 (3辺入れ替えも、このあたりにあるのかもしれません)
 

10. 3段目の揃え方

 ということで、以上の手順を用いて、3段目の揃え方を整理すると次のようになります。具体的な手順は最後に載せておきます。

 (1) コーナーキューブの位置を合わせる。向きは無視して良い。それには、3つのコーナーの位置を入れ替える proc.A・T- を使う。
 位置の入れ替わりにはいろんなパターンがあるが、proc.A・T- を組み合わせればいつかできるはず。

 (2) 辺キューブの向きを合わせる。proc.B を使う。これは辺キューブの向きを2つ入れ替える。辺キューブは位置を変えるが後で揃える。コーナーキューブは位置を変えないので、(1)を破壊しない。向きは変わるが後で揃える。

 (3) コーナーキューブの向きを合わせる。proc.B と proc.B* を組み合わせたものを使うと、2つのコーナーキューブの向きを変えられる。どの位置も変えないし、他の向きは変えないので、(1)(2)を破壊しない。

 (4) 辺キューブの位置を合わせる。3つを入れ替える手順で揃える。他に十字型や二の字に入れ替わっている場合があるが、3つを入れ替える手順を繰り返すことで揃えられる。ただし、私の作った3つ入れ替え手順は十字や二の字の倍かかるので、それぞれの手順でやった方が楽。

 (5) 完成!


11. 終わりに

 いかがでしたでしょうか。

 今回開発した手順は、いわゆる攻略法で紹介されているものに比べると遥かに長手順ですから、早く解きたいのであれば、まるで役に立ちません。

 しかし、作る過程を示したように、比較的動きの少ない要素手順を上手に組み合わせていくことによって、他に影響の少ない有益な手順を作り出しています。組み合わせですから、手順は長くても、なぜそれで目的の手順が実現できるか理解しながら、手を進めることができます。手順を理解するという点では、短手順の攻略法よりもわかりやすいのではないでしょうか。

 これが私が小学校のころ読んだ論文のアプローチです。このようにアプローチすれば、あのルービックキューブが自分で解けてしまうのです。

 このようなアプローチは、いつか他の役に立つかもしれません。特にコンピュータで様々な問題を解くときに。複雑そうに見える問題は機械学習に頼りがちな今日ですが、問題を整理すると、意外ときれいに切り分けられたりするものです。そのためには、こんなパズルに頭を悩ませることもいい訓練になるでしょう。

 この手法を参考に是非いろんなパズルを解いてみてください!

 12. 実際に作られた手順

 (1) 
proc.A・T-
 = SE-S-E・G・SE-S-E・G-・T-・E-SES- ・T-

 (2)
proc.B 
= proc.X・T2・proc.X・T2・proc.X- ・T2
= SE-S-E・T2・SE-S-E・T2・E-SES-  ・T2

 (3) コーナーキューブの向き
・proc.B

・上から見て、ルービックキューブ全体を90度時計回りに回転。

・ proc.B* 
 proc.X-・T2・proc.X-・T2・proc.X ・T2
 = E-SES-・T2・E-SES-・T2・ SE-S-E ・T2

 (4) 辺キューブの位置
・3つが入れ替わっている場合。

 S2E2S2E2S2E2
 STS-
 S2E2S2E2S2E2
 ST-S-
 E・
 T2E2T2E2T2E2
 E-

・十字の場合。

 W2N2B2・S2E2S2E2S2E2・B2N2W2

・二の字の場合も、十字似たような手順で可能。本文には書いてません。

 W2B2N2B-・S2E2S2E2S2E2・BN2B2W2

 13. おまけ

 今回は、1段目揃えて、2段目揃えて、3段目を揃えるという流れは、世の中の攻略法に倣いました。

 しかし、そこを鵜呑みにするというのも、なんだかつまりません。揃える順序も違うものを作ってみたいものです。