具有障碍物的欧几里德最短路径问题

原创 2002年03月22日 17:40:00

这个问题是计算几何学中的一个经典课题:具有障碍物的欧几里德最短路径问题(ESP0)

ESPO可以描述如下:给定平面中两点s和t,及多边形障碍物集Ω={ω1,ω2,...,ωk},要求由s至t并避开所有障碍物的最短路径。

平面中的ESPO问题在多项式时间内可以求解,而E^3中具有多面体障碍物时确定最短路径长度的问题是NP难的。

一个简单的算法如下:由s到t的最短路径是一条折线链,该链的顶点是多边形障碍物的顶点。利用Dijkstra的最短路算法和可视图算法可以求解ESPO问题,其时间复杂性为0(n^2)。如果可视图是稀疏的,则在O(m+nlogn)时间内可以确定解,其中m是可视图边的数目。

 


对于该问题还有一些更好的算法,下面也一并作简单的介绍:利用最短路径映射SPM(s,Ω)在O(n(k+logn))时间内求解任意多边形障碍物的ESPO问题的方法是由Reif和Storer提出的。如果给定SPM(s,Ω),则在O(logn)时间内可以确定包含t的域,而在0(b+logn)时间内能够确定到t的路径,其中b是路径上线段的数目。Welzl等人利用可视图给出了求解平面上n条线段的ESPO问题的算法,该算法要求0(n^2)时间。不难修改这个算法使其能处理多边形障碍物,并且具有相同的时间复杂性。注意,如果使用可视图方法,那么对限界0(n^2)将不可能改进。多边形物体中两个物体(而非点)之间的最短路径的0(n^2)算法是已知的。当n是平行线段集合时,Lee和Preparata提出θ(nlogn)平面扫描算法。线段穿过扫描线并且把最短路径映射到扫描线。平面上没有最短路径的0(n^2)算法能处理避开n条任意相交的线段。Rohnert给出平面中避开k个凸障碍物最短路径的O(nlogn+k^2)时间的算法。这个时间限界在O(k^2logn+n)时间和O(n+k^2)空间预处理障碍物的条件下达到。预处理包括构造可视图的子图。Rohnert还给出平面中避开k个凸障碍物最短路径的O(knlogn)时间和O(n)空间的算法。后者不需预先处理障碍物,而是利用Dijkstra最短路径算法在线计算可视性。当平面中有k个凸障碍物并且其边界至多相交两次时,Rohnert给出的算法能找到平面中任意两点之间的最短路径,其时间复杂性为O(nlogn+k^2)。这个时间限界在O(nlogn+k^3)时间和O(n+k^2)空间预处理障碍物的条件下达到。

以上的那些算法你可以参考相关的论文。(去http://cora.whizbang.com/搜索"ESPO"关键字)
   
对于E^3中有多面体障碍物的情况,因为是NP难的,这里不做讨论,但是现在也有很多成熟的多项式时间近似算法。

 

多边形障碍环境中避障路径的遗传算法

  • 2012年12月08日 20:32
  • 50KB
  • 下载

具有障碍物的欧几里德最短路径问题

这个问题是计算几何学中的一个经典课题:具有障碍物的欧几里德最短路径问题(ESP0)ESPO可以描述如下:给定平面中两点s和t,及多边形障碍物集Ω={ω1,ω2,...,ωk},要求由s至t并避开所有障...
  • starfish
  • starfish
  • 2002年03月22日 17:40
  • 1688

最短路径算法汇总

最短路径算法精讲 1.Floyed 2.Dijstra 3.SPFA(队列优化Bellman算法) 4.Best-First-Search——A算法 5.启发式A* 6.启发式的A*的平局打破 7.目...
  • ltyqljhwcm
  • ltyqljhwcm
  • 2016年07月19日 21:07
  • 8854

最短路径问题--Bellman-Ford最短路径算法

Bellman-Ford最短路径算法
  • chaoshengmingyue
  • chaoshengmingyue
  • 2016年06月29日 13:30
  • 567

[图算法]多段图最短路径

[图算法]多段图最短路径多段图最短路径问题是应用动态规划的经典问题之一,许多优化问题都能转化为多段图最短路径问题进而求解。多段图最短路径的问题描述如下:问题描述 设G=(V,E)是一个赋权有向图,...
  • u014359097
  • u014359097
  • 2015年11月15日 21:06
  • 2226

理论: 图论(5): 无权图的最短路径

概述· 上图表示一个无权图G, 使用每个顶点S 作为输入参数, 我们想要找出从S到所有顶点的最短路径。我们只对包含在路径中的边数有兴趣, 因此在边上不存在权。 显然, 这是赋权最短路径的特殊情形。因...
  • sun897949163
  • sun897949163
  • 2016年01月01日 17:53
  • 744

理论: 图论(7): 无圈图的最短路径和关键路径

总括在我们不知道图的类型(有圈无圈、有负圈无负圈)的时候, Ford算法和上文中Dijkstra算法的优化版会给予我们一种通用的解法, 但是我们要注意到他们的时间复杂度为0(E * V); 这个时间的...
  • sun897949163
  • sun897949163
  • 2016年01月02日 12:03
  • 1675

HDU 3790 最短路径问题 (Dijkstra算法)

最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S...
  • aozil_yang
  • aozil_yang
  • 2016年06月09日 15:06
  • 764

最短路径算法总结(Floyd,bellmen-ford,dijkstra,Spfa)

Dijkstra:适用于权值为非负的图的单源最短路径,用斐波那契堆的复杂度O(E+VlgV) BellmanFord:适用于权值有负值的图的单源最短路径,并且能够检测负圈,复杂度O(VE) SPFA:...
  • yao1373446012
  • yao1373446012
  • 2016年03月01日 16:09
  • 1348

HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis...
  • zwj1452267376
  • zwj1452267376
  • 2015年08月17日 19:19
  • 1139
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:具有障碍物的欧几里德最短路径问题
举报原因:
原因补充:

(最多只允许输入30个字)