8パズルのゲームソルバーをC++でコーディングしようとしていますが、それを実行しているときに多くの問題が発生します。プログラムは現在機能していますが、パズルを解くには手順が多すぎます。つまり、最適なソリューションを見つけることができる場合もあれば、それを解決するのに400ステップもかかる場合もあります。私の主な疑問は次のとおりです。私がこの図を持っていると想像してください(これは単なるドラフトです):
ヒューリスティック関数としてマンハッタン距離を使用しています。最初のステップの後、f(n)= 5の2つの状態があるので、ツリーを展開しました。展開した後でも、f(n)=2の2つの状態があります。ここに私の疑問があります。一意の最低f(n)が得られるまで、ツリーを拡張する必要がありますか?
前もって感謝します!