0

我开始使用 A* 算法,但我不知道它是如何详细工作的。

例如,我有一个图表,它是:

A -> B = 9(不是最初错误询问的 90)

A -> C = 20

C -> D = 40

现在我想从 A 开始并使用提到的路径去 D。

如果我使用这个启发式函数: h(n) = 直接方式到 D 的距离 B 和 D 之间的直接距离为 2,但 B 和 D 之间没有任何路径。

我想知道的是:

A* 算法是不是先到 B 再回到 A (因为 B 和 D 之间没有任何路径(目标)?

还是我的启发式函数不可接受?(但我在教科书上见过,没关系)

4

1 回答 1

0

Well, you should give us more details on your function.

Generally speaking, A* should return the path if it exists, so you may treat a non-existing path as a infinite-cost or just as a "stop-here" sign. When you reach the end of the path without reaching the destination, you roll back to the previous node with other possibilities. So the answer to your first question is 'yes'.

于 2013-03-29T23:07:26.427 回答