問題を解決するためのグラフ理論的な方法は、ボードのすべての構成をグラフの頂点として想像し、ボードのマンハッタン距離のようなものに基づいた剪定を伴う息優先検索を使用して、開始点からの最短経路を導き出すことです。ソリューションへの構成。
このアプローチの問題点の 1 つは、ゲーム スペースが非常に大きくなり、アクセスした頂点を効率的にマークする方法が明確でないn x n
ボードであるということです。n > 3
言い換えれば、ボードの現在の構成が、他のパスをたどって以前に発見されたものと同一であるかどうかを評価する明確な方法はありません。もう 1 つの問題は、グラフ サイズが非常に急速に大きくなりn
(約(n^2)!
)、パスの数が計算上通過できなくなるため、総当たり攻撃には適していないことです。
Ian Parberry によるこの論文- パズルのリアルタイム アルゴリズムでは(n^2 − 1)
、最初の行、次に最初の列、次に 2 番目の行を完了することによって反復的に解に到達する単純な貪欲なアルゴリズムについて説明しています...ほとんど即座に解に到達します、しかし、解決策は最適とはほど遠いです。基本的に、計算能力を一切活用せずに人間が行う方法で問題を解決します。
この問題は、ルービック キューブを解く問題と密接に関連しています。すべてのゲームのグラフは、強引に解決するには大きすぎると述べていますが、器用な人間が約 1 ~ 2 分でキューブを解決するために使用できるかなり単純な 7 ステップの方法があります。もちろん、このパスは最適ではありません。一連の動きを定義するパターンを認識することを学習することで、速度を17 秒まで下げることができます。しかし、ジリのこの偉業はどこか超人的です!
Parberry が説明する方法では、一度に 1 つのタイルのみを移動します。ジリの器用さを利用し、一度に複数のタイルを移動することで、アルゴリズムをより良くすることができると想像できます。これは、Parberry が証明するように、パスの長さを から減らすことにはなりませんがn^3
、主項の係数を減らすことになります。