在多边形中找到成本最低的路径

时间:2014-07-10 10:35:45

标签: algorithm math graph polygon graph-algorithm

考虑到成本,我试图在多边形内找到一条路径。

在我的具体情况中,我的角色应该只是相对笔直的,即移动到北,东,南或西不应该相差几度。

理想情况下,我会指定一个随偏差而增加的成本。我假设这是一个图论相关的问题,但我不知道如何在多边形中做到这一点......

插图中的红色虚线路径是常规算法产生的;绿色是我想要的。 编辑:我搞砸了一下图片;澄清:红色路径是多边形内部最短的路径,我希望绿色路径是角度约束条件下可能的最短路径。

Illustration

(澄清一下,如果我的多边形看起来像 (1)我希望路径类似于 (2)不仅仅是点之间的直线)

(1)   ,-------------------+      (2)   ,-------------------+
     /               (B)  |           /               (B)  |
    /                     |          /                /    |
+--+                      |  ->  +--+                /     |
|                       +-+      |                  /    +-+
| (A)                   |        | (A)-------------+     |
+-----------------------+        +-----------------------+

3 个答案:

答案 0 :(得分:1)

这真的是一个评论,但我不能评论,因为它需要50个声誉...... Otoh,我不认为这个问题有令人满意的答案,因为它没有明确定义。但是+1有趣的问题: - )

给出红色虚线的算法从路径的起点和终点之间的直线开始(不完全在多边形内部。)然后沿着多边形的边缘滑动直到你到达角落并采取这是你的新起点。 (请注意,您绘制的红色虚线实际上不是最短路径。)现在您的绿线基本上是红线,您更换了不喜欢的部分(错误的角度),路径较长但由于某种原因更好(很好的角度。)这也是为你提供下面例子的“正确”答案的原因。从(A)到(B)的直线开始,这是最短的路径,位于多边形内。现在用更有利的角度替换这条线。 (这可能会迫使你一般多转几次......)

只是一些想法。

答案 1 :(得分:1)

运行Rapidly exploring random tree algorithm但是将探测方向限制在平行于轴的几个方向上,并选择较大的增量距离以保持较低的转弯次数。基本上可以根据自己的意愿添加任何启发式方法。

Rapidly-Exploring Random Trees: A New Tool for Path Planning是关于快速探索随机树的开创性论文。

答案 2 :(得分:1)

我会在这里添加另一个答案,因为它与我的另一个答案截然不同。从常规路径寻找算法的结果开始,运行随机优化以最大化适应度函数,该函数描述了相对平直度"通过添加顶点,移动顶点和删除路径中的顶点,以及保持路径有效的路径(以及您希望的短路和其他指标)。

常见的随机优化方法包括Simulated Annealing