java - astar 的启发式函数

标签 java heuristics a-star

我需要一个用于笔式绘图仪/TSP 的 A 星的良好启发式函数,其中我的系统的每个状态都有:

  • 已走过的路径距离
  • 笔当前所在的点
  • 向上/向下画笔

“上笔/落笔”是指刚刚画完一条线或者移动到一个点开始新线的状态。

由于我必须在某个阶段遍历每个点,因此最终目标状态可能是任何点,这使得我在互联网上找到的任何启发法都无法正确使用。我已经尝试过以下方法,但未能从中获得良好的启发:

(g(x) divided by the sum of the total distance traveled) * number of states remaining (assuming you are alternating between drawing a line or moving to a new point to draw a line)

我也尝试过

the euclidean distance between the current state and the goal state (find the closest possible goal state).

这不起作用,因为它给你的启发式为 0,因为任何状态/点都可以是目标状态

最佳答案

Taxicab Geometry可能是一个解决方案。我已经尝试过使用结果来完成 sliding tile 的代码。拼图

关于java - astar 的启发式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7508312/

相关文章:

java - 在运行时加载jsp所需的库

algorithm - 如何判断 A* 算法何时是一个好的选择,以及如何选择一个好的启发式算法?

c++ - A* 寻路和大量指针问题?

algorithm - 明星寻路。为什么你需要重新评估一个已经在开放列表中的相邻节点,如果它比当前节点具有更低的 g 成本?

java - Maven访问gcloud

java 从点数组列表中绘制折线

Java 版本 "Pointer Pointer"

computer-science - 启发式和元启发式有什么区别?

R:sample.int() 中的错误:NMOF 包

performance - 什么是 A* (AStar) 的良好基准?