寻找路径主要是空加权网格

时间:2013-01-13 08:03:22

标签: algorithm sorting path-finding heuristics

我需要在8个连接的网格中找到从A到B的路径(上/下左/右和对角线)。问题是,这个网格是空的(25-60%)是空的,但是有一些高加权值的地方(空砖的重量的约20倍)可能必须通过。我已经用RSR和JPS查看了A *之类的东西,但这些似乎只适用于未加权的网格。现在我已经推出了A *实现,但它比我想要的慢。我甚至不需要一个完全最优的算法,只需要一些接近的算法。

2 个答案:

答案 0 :(得分:1)

制定了

JPS并分析了带有障碍物的均匀网格。我认为,如果你对待任何“不寻常”的瓷砖,就像对待障碍物一样,JPS会起作用(即让你快速穿过均匀的区域)。 JPS的作者甚至在对JPS blog post的评论中推测得很多(而且看起来相当明显):

  

简单地将任何具有不同地形类型的邻居视为   当前节点,强制。这将允许您快速搜索   统一成本区域,当进入a时停止扩展节点   不同的地区,并继续在另一边跳跃

然而,您似乎暗示您的网格不仅仅是非均匀的,而且除了惩罚拼贴之外还有奖励拼贴。您还需要处理这些问题(例如,将所有网格权重偏向上以避免负权重)。

答案 1 :(得分:0)

如果需要考虑速度,请考虑使用图形硬件(例如CUDA或OpenCL)。 This paper讨论了3d网格上的“brushfire”算法,以找到具有旋转的2d机器人的路径。这几乎与你的问题完全一样,尽管你已经在2d了。