多くの人が言及しているように、astar の実装に応じて、同じヒューリスティックで異なる結果が表示されます。これは同点のためです。2 つ以上のパスが結合している場合、オープン セットの順序によって、最終的なパスの外観が決まります。許容できるヒューリスティックがある場合は常に最適なパスが得られますが、訪問するノードは、(それほど多くのタイを生成しないヒューリスティックと比較して) 持っているタイの数に応じて増加します。
より多くのノードにアクセスすることが問題であると思わない場合は、ランダム化(現在受け入れられている回答)の提案を使用することをお勧めします。より多くのノードを検索することが問題であり、最適化したい場合は、ある種のタイブレーカーを使用することをお勧めします。マンハッタン距離を使用しているようです.2つのノードがタイブレーカーとして結ばれているときにユークリッド距離を使用すると、ゴールへのより多くの直線的なパスが得られ、アクセスするノードが少なくなります. これにはもちろん、トラップやゴールへの視線のブロックはありません。
視線パスにブロック要素があるノードにアクセスしないようにするには、これらのブロック要素を考慮したヒューリスティックを見つけることをお勧めします。もちろん、新しいヒューリスティックは、通常のスター検索よりも多くの作業を行うべきではありません。
この問題に対するいくつかのアイデアと解決策が得られる可能性があるため、私の質問を見ることをお勧めします。