2

変化する環境を処理するために A* アルゴリズムを適応させるのに問題があります。最小限の例として、次のローグライク マップを考えてみましょう。

######
#!   #
###  #
#S   #
##+###
##F###
######

ゴールは から まで到​​達することSですFが、そうするためにプレイヤー!はドアを踏む必要があります。私が抱えている問題は、A * でグリッドポイントにアクセスすると、それが「閉じられ」、再入力できないことです。このパズルを解くためにアルゴリズムを変更するにはどうすればよいですか?

4

2 に答える 2

3

A* を 2 回実行できます。

  1. 最初!にドアが壁のようなスイッチ ( )への最短経路を見つけます
  2. 次に、ドアが空白のタイルであるスイッチから最後までの最短経路を見つけます。

最短経路は、これら 2 つの経路の組み合わせになります。

于 2012-07-14T19:24:11.793 に答える
2

あなたの問題では、ポイント(x、yコード)を訪れたときにA *で同じポイントを再び訪れないというのは真実ではありません。

その理由は、問題では状態がグリッド内の位置であり、各ドアの状態 (開いているか閉じているか) であるためです。したがって、最初の例では、初期状態は (3,1,{false}) です。(false はドアが閉じていることを意味します)。

「!」に到達すると、新しい状態は (1,1,{true}) になるため、ドアに到達するとドアを通過します。

于 2012-07-14T19:41:17.683 に答える