找到有限圆范围的2个点之间的可能路径(算法)

时间:2017-05-21 21:12:06

标签: algorithm path shortest-path

如果路径可行,我正在努力寻找算法。

我有一个积分领域,这些积分的位置是完全随机的。我还有一个起点和一个目的地点。在我的起点上,我可以在有限的半径内跳到起点周围的任何点,并从那里继续相同,但只有有限的跳跃量。在这种情况下的表现很重要!像Dijkstra这样的远程算法对我没有帮助。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以构造一个以点为顶点的无向图。每个边缘连接两个点,这两个点不比跳跃距离限制更远。构建此图后,您可以使用传统算法找到最短路径。

要构建图形,您可以将点分配给2D矩阵单元格。单元格高度和宽度是跳转半径限制。给定点的边缘的候选点必须属于其矩阵单元或直接相邻的单元。这减少了施工时间。

进一步的加速可以是将图形的第一版本限制为位于起点和终点之间的直接视线附近的那些网格单元。只有搜索不成功,您才可以扩大搜索区域并重试。

如果起点和终点比半径限制时间跳跃限制更远,则不存在可行路径。

答案 1 :(得分:0)

以防万一有人想要解决方案: 由于跳跃量有限,我创建了一个径向网格,其中最大半径是圆的数量乘以它们自己的半径。 之后我只使用A-star路径查找器。 (我使用了一个http://www.rapidfirestudio.com