我正在尝试理解为什么在理论上,A*搜索算法
被认为比A搜索算法
更好。
在这两种算法中,节点根据函数f(n)
进行扩展。
在A
中:f(n) = g(n) + h(n)
在A*
中:f(n) = g(n) + h*(n)
(*表示该函数是一个估计值)。
A*
应该减少必须生成和比较的路径的数量。我的问题是:使用h*(n)
而不是h(n)
如何减少路径的数量?
谢谢 :)
我正在尝试理解为什么在理论上,A*搜索算法
被认为比A搜索算法
更好。
在这两种算法中,节点根据函数f(n)
进行扩展。
在A
中:f(n) = g(n) + h(n)
在A*
中:f(n) = g(n) + h*(n)
(*表示该函数是一个估计值)。
A*
应该减少必须生成和比较的路径的数量。我的问题是:使用h*(n)
而不是h(n)
如何减少路径的数量?
谢谢 :)
A
是一种“假设”的算法,而A*
则是你实际使用的算法(?) - CheshieA*
生成的路径与A
一样好,并且实际上很容易实现。 - Sneftel