ルービックキューブを揃えるアプリの真相!カメラ解析で6面完成の裏側
話題沸騰中の ルービックキューブを揃えるアプリの真相!カメラ解析で6面完成の裏側について、多角的な視点を整理して公開しています。
「カメラにかざすだけで誰でも6面完成する」という謳い文句を耳にしたとき、多くの人は手品や誇大広告ではないかと疑念を抱きます。しかし、ルービックキューブ自動解析の真相を紐解くと、そこには極めて論理的で洗練されたコンピュータービジョンと数学的アルゴリズムの融合が存在しています。
スマートフォンのカメラを用いたルービックキューブカメラ読み取りアプリは、端末のカメラ機能を通じてキューブの各面(白・黄・赤・橙・青・緑の6面)に配置された計54個のステッカーの色情報をスキャンします。画像認識ライブラリ(OpenCVや端末固有のCoreML、TensorFlow Liteなど)がキューブの格子状の境界線を捉え、照明の反射や影による色味の変化を自動補正しながら各ピースの座標と色をデジタルデータへと変換する仕組みです。
スキャンが完了すると、解析エンジンがその配置データを処理します。ここで標準的に使われているのが、数学者ハーバート・コシエンバ(Herbert Kociemba)氏が開発した「二段階探索アルゴリズム(Kociemba's Algorithm)」です。ルービックキューブの取り得る状態の総数は約4325京2003兆2744億8985万6000通り(約4.3×10^19)という天文学的な数値に達しますが、数学的には「どのような乱雑な状態からでも、最大20手以内で必ず解くことができる」ことが証明されています(この20手という限界値は、パズル界で「神の数字(God's Number)」と呼ばれます)。
一般的なルービックキューブ揃え方初心者向けのマニュアルでは、底面から一層ずつ揃えていく「LBL法(Layer by Layer)」が解説されますが、この手法は完成までに平均80〜120手ほどの回転を要し、複数の手順(F2L、OLL、PLL)を暗記しなければなりません。対照的に、Kociembaアルゴリズムを実装したソルバーアプリは、群論とグラフ探索を駆使して平均20手前後の「人間には直感で導き出せない最短ルート」を一瞬で計算します。ユーザーは画面に表示される3Dアニメーションの指示通りにキューブを右や上に回すだけでよいため、解法理論を一切理解していなくても確実に6面を揃えられるのです。