是否还有适用于真实3D环境的寻路算法,例如真正的建筑物有多个楼梯等.C ++库或开放式实施将是出色的;-) 我看到的一个解决方案是Djikstra,但我想知道是否有更优化的东西。 正常A *不会比Djikstra更好,因为距离启发式效果不好(位于目的地上方一层)。 我目前正在思考的另一个解决方案是在二维图上绘制三维环境。因此,如果有一些可用的C ++实现/库以这种方式运行它也会有所帮助。
答案 0 :(得分:2)
如果路径必须考虑到穿越障碍物的能力(即移动是某个具有已知空间体积的实体的移动),那么我建议查看有关机器人运动规划的文献。配置空间的概念允许您处理姿势的变化以处理障碍物。参见Jean-Claude Latombe的经典教科书
对于更简单的场景,您可以使用第一人称电脑游戏中使用的路径规划算法,类似于Dijkstra,A * (example)
答案 1 :(得分:1)
对于近似算法,您可以轻松地将3d映射到1d曲线并使用格雷码遍历八叉树。这样你就可以重新排序每条路径。我不知道是否有保证在最佳解决方案范围内,但它必须比任何启发式方法更好。