我正在寻找一种有效的算法,找到二维空间中具有多边形障碍物的两点之间的全局最短路径。
源数据采用非退化垂直梯形的形式,由最多10 ^ 4个梯形组成(非简并意味着每个梯形的下侧和上侧各有至少2个相邻的梯形)。
在梯形本身上运行最短路径算法然后使用漏斗算法并不能保证找到全局最短路径。
计算角顶点的可见性图可能有效,但我怀疑这可能会使用太多内存,因为对算法的要求是它可以在具有多个的服务器上频繁使用(大约每秒100次)(在记忆中有多达700个地图,但如果您认为这不是问题,请随时纠正我!
为了可视化数据的样子,我上传了一张小地图的三角剖分,你可以点击图片将其作为SVG查看。
答案 0 :(得分:1)
如果使用
创建图表1)除了源点和目的地点之外,梯形的所有顶点都有顶点。
2)这些顶点中任意两个顶点之间的边缘,如果它们相对于彼此是视线并且边缘权重等于2个顶点之间的距离。
那么这个问题看起来就像是图形问题中2点之间的最短距离,它有许多众所周知的解决方案(Dijkstra's Algorithm等)。