A* 启发式搜索,我正在尝试确定启发式

A* Search with heuristics, I am trying to determine the heuristics

我有一个搜索图 v1-v30,V=顶点(节点),我在道路网络旅行商问题上使用顶点之间的时间(以分钟为单位)。

如何确定这些顶点之间的试探法?

我已经起草了一个启发式 table 假设(有根据的猜测)在节点之间花费的时间。

例如:从 v1-v2 我有 20 分钟的时间从 google 地图获取我正在使用的位置。然后我根据纯粹的观察和有根据的猜测使用了 30 分钟的启发式 h(n) 值。

我按照我的方式假设启发式方法是否走在正确的道路上?

还有 A* 是如何处理死角的?

A* 可以很好地处理死胡同。不过,我认为您不应该将该策略用于您的启发式方法。如果你错了(如果由于某种原因你高估了所需的时间),你的 A* 不能保证找到最佳路径。如果您使用的是 Google 地图,则可以使用地图标记

的 lat/long 值从起点到终点的直线距离

关于死胡同,由于 A* 对它猜测需要很长时间才能完成的任何状态给予较低的优先级,具有 current_node = v22prev_node = v20 的状态将具有较低的优先级优先于从未走那条路到死胡同的国家。通过这种方式,A* 算法将优雅地忽略这些死胡同状态。所以你甚至不需要担心自己手动递归备份路径。