首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

游戏中超过障碍物的算法最好的是什么?解决方法

2013-01-07 
游戏中超过障碍物的算法最好的是什么?rt[解决办法] 最短路径问题:在联结图G(V,E)中,顶点集E-R+(即是权值

游戏中超过障碍物的算法最好的是什么?
rt
[解决办法]
 最短路径问题:     
  在联结图   G=(V,E)中,   顶点集E->R+(即是权值为正)   ,在点集V中的固定顶点s,寻找s到V中各顶点   v的最短路径.     
  Dijkstra算法     
  Dijkstra算法是一种解决最短路径问题的非常有效的算法,时间复杂度为   O(
[解决办法]
V
[解决办法]
2):(这段是MIT一位老先生写得,不翻译了,保持原作)     
  1.Set   i=0,   S0=   {u0=s},   L(u0)=0,   and   L(v)=infinity   for   v   <>   u0.   If   
[解决办法]
V
[解决办法]
   =   1   then   stop,   otherwise   go   to   step   2.     
  2.For   each   v   in   V\Si,   replace   L(v)   by   min{L(v),   L(ui)+dvui}.   If   L(v)   is   replaced,   put   a   label   (L(v),   ui)   on   v.     
  3.Find   a   vertex   v   which   minimizes   {L(v):   v   in   V\Si},   say   ui+1.     
  4.Let   Si+1   =   Si   cup   {ui+1}.     
  5.Replace   i   by   i+1.   If   i=
[解决办法]
V
[解决办法]
-1   then   stop,   otherwise   go   to   step   2.     
  6.Set   i=0,   S0=   {u0=s},   L(u0)=0,   and   L(v)=infinity   for   v   <>   u0.   If   
[解决办法]
V
[解决办法]
   =   1   then   stop,   otherwise   go   to   step   2.     
  7.For   each   v   in   V\Si,   replace   L(v)   by   min{L(v),   L(ui)+dvui}.   If   L(v)   is   replaced,   put   a   label   (L(v),   ui)   on   v.     


  8.Find   a   vertex   v   which   minimizes   {L(v):   v   in   V\Si},   say   ui+1.     
  9.Let   Si+1   =   Si   cup   {ui+1}.     
  10.Replace   i   by   i+1.   If   i=
[解决办法]
V
[解决办法]
-1   then   stop,   otherwise   go   to   step   2.     
  对于该问题还有一些更好的算法,下面作一些简单的介绍:利用最短路径映射     
  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)空间预处理障碍物的条件下达到。  

热点排行