よかひよかとき − ルービックキューブ自動解法  HTML版 Java版 FLASH版


         RubiksCube2×2×2の解法について   (2017. 6. 10  YokahiYokatoki)

 RubiksCube2×2×2は、どのような状態でも 11手以内(180度の回転は1手とみなす)ですべての面の色がそろった完成形にすることができることが示されている。
(参照)「Jaap's Puzzle Page」MiniCube,the 2×2×2Rubik's Cube: hhttps://www.jaapsch.net/puzzle/cube2.htm

 ということは、完成形から 11手以内の操作を行って、可能なすべての状態を作ることができると言うことである。そこで、完成形から 11手 まで操作を行ってできるすべての状態を、その操作手順とともにデータとして保存しておけば、ある状態が与えられたとき、その状態と一致するものをデータ内から探し、それにともなった操作手順を逆順に逆操作させれば完成形に戻すことができることになる。

   1手の回転操作として、次の8種類とする。

     F  前面をX軸の回りに 90度 (時計回り)
     F2      〃       180度
     F'      〃       -90度 (反時計回り)

     R  右面をY軸の回りに 90度 (時計回り)
     R2      〃       180度
     R'      〃       -90度 (反時計回り)

     U  上面をZ軸の回りに 90度 (時計回り)
     U2      〃       180度
     U'      〃       -90度 (反時計回り)

   向こう側下段のキューブは移動することはない。

 1手から 11手までにできる状態数 (同じ状態になるものは除く) を求めた結果は次の表の通りである。

手数できる
状態数
先にできていたものと同じ状態数
0手1手2手3手4手5手6手7手8手9手10手11手
010-----------
1900----------
2549180---------
33210541083--------
418470032466058-------
5999200019054038688------
650136000010680233045808-----
72275360000055944125833241912----
8870072000000269448631596276708---
9188774480000000114678029898721806248--
10623800000000003693996101138522558084-
1126440000000003181884241063219040
3674160












 この表について説明する。
 0手は、完成状態のままである。
 1手は、完成状態から9通りの操作をそれぞれ1回行うと、同じ状態のものはなく、状態の数は9個。
 2手は、1手目でできた9個のそれぞれの状態に対して、さらに9通りの操作を行うと81個の状態ができるが、0手目の完成状態になるものが9個でき、また1手目でできる状態と同じものが18個できる。それらを除くと状態数は54個。
   …
 5手は、4手目でできた1847個の状態に対して,さらに9通りの操作を行うと1847×9=16593通りの状態ができるが、3、4、5手でできる状態と同じものがそれぞれ 1905個、4038個、688個 あってそれらを除くと、新たにできる状態数は 9992個。
 以下同様である。結果、できる状態数は 3674160 (=7!×36) 個である。

 ちなみに、11手までのすべての状態を
  求めるに要した時間は、約24分
  ファイルに書き込むに要した時間は、約 3時間49分
  (by ノートパソコン CPU:Core i5 520M 2.4GHz/2コア,メモリ:4GB) である。

  RubiksCube3×3×3 においては、場合の数が大きすぎて、ここでのやり方は私の性能の低いパソコンではできない。しかしながら、隅の8個のキューブを揃えるには、ここでの成果がそのまま利用できる。その後、辺のキューブ同士を入れ替える操作を行うことによって、完成形にする方法もある。  説明 → RubukisCube3×3×3の解法について
----------------------------------------------------------------
Copyright(C) 2017-, YokahiYokatoki