スターアルゴリズムで8パズルソルバーを実行しています。このソルバーにマンハッタンと置き忘れたヒューリスティック関数を実装します。場合によっては、ソルバーは正常に機能します。しかし、場合によっては、解決策を見つけるのに多くの時間がかかります。私の問題の1つは、オープンリスト(拡張を待機中)で最も低い値を持つノードを検索する関数にあると思います。
a part of psedocode(from wiki)
while openset is not empty
x := the node in openset having the lowest f_score[] value
if x = goal
return reconstruct_path(came_from, came_from[goal])
................................
では、最小のf_score値を見つけるための最良の方法は何ですか?最小値を見つけるか、追加する状態があるときにリストを変更する必要があります(状態を追加するときにリストを並べ替えます)。これにより、最小値が最初の位置になります。