用于计划多道路的双重dijkstra搜索的制作方法

文档序号:6440572阅读:195来源:国知局
专利名称:用于计划多道路的双重dijkstra搜索的制作方法
技术领域
本发明的背景(1)本发明的领域本发明涉及用于计划多道路的双重Dijkstra搜索,这些道路宜对于计算机图形学或机器人学与导航系统等领域中的各种计划问题,用于快速并同时计算多个解。
(2)先有技术的阐述一般来说,作为道路搜索算法,是要搜索从起点到目标点的最适合道路。在道路搜索算法中,有时的情形是,要搜索的是多个解而不是最适合道路。用于搜索这种多道路的算法一般作为K最短道路算法被研究。然而,K最短算法是这样进行的搜索按图7所示搜索最适合道路;相继搜索在这样已搜索到的最适合道路附近的其它道路;决定第二,第三等适合道路,这出现了以下问题。
(1)由于必须进行重复计算,与只搜索最适合道路的情形比较必须要长的计算时间。
(2)由于在最适合道路附近找到许多其它道路,如果要被搜索的其它道路与最适合道路并类似,则必须时值K较大。
在大量的问题中,必须搜索与这种类似道路不同的道路。这里的术语“不同的道路”是指如图8中所示的非连续过渡的道路。就是说,不同的道路具有不同的拓扑。为了搜索这种具有不同拓扑的道路,由于有上述的问题,故按已知的算法必须进行非常大量计算。
本发明的概述本发明的目的是要提供用于在道路搜索问题中计划多道路的双重Dijkstra搜索,其中能够同时搜索不同于最适合道路的多道路,且其中能够搜索不同于最适合道路附近类似道路的各种道路。
根据本发明的第一方式,用于计划多道路的双重Dijkstra搜索,包括以下步骤采用称为Dijkstra算法的算法计算从开始到所有结点的第一最短成本;采用Dijkstra算法计算从目标到所有结点的第二最短成本;把第一最短成本与第二最短成本相加获得相加的最短成本;并在所有结点存储相加的最短成本,作为从开始到目标通过各结点的最短道路的成本,从而搜索从开始到目标的一道路。
此外,根据本发明的第二方式,用于计划多道路的双重Dijkstra搜索,包括以下步骤采用称为Dijkstra算法的算法计算从开始到所有结点的第一最短成本;采用Dijkstra算法计算从目标到所有结点的第二最短成本;把第一最短成本与第二最短成本相加获得相加的最短成本;并在所有结点对于相加的最短成本获得从开始到目标通过各结点的最短道路,从而搜索从开始到目标的一道路。
在本发明中,通过执行以下步骤,以同只获得最适合道路基本相同的计算时间能够搜索到多个道路(1)采用Dijkstra算法计算从开始到所有结点的第一最短成本;(2)采用Dijkstra算法计算从目标到所有结点的第二最短成本;(3)把第一最短成本与第二最短成本相加获得相加的最短成本;以及(4a)在所有结点存储存储相加的最短成本作为从开始到目标通过各结点的最短道路成本;或(4b)在所有结点获得从开始到目标通过各结点对于相加的最短成本的最短道路,从而搜索从开始到目标的一道路。结果是,如果本发明用于计算机图形学或机器人及导航系统领域中各种计划问题,能够对机器人和CG特性的各种运动进行快速搜索。
作为一优选实施例,(1)利用通过一点的道路及其成本,搜索其拓扑彼此不同的局部最适合的多个道路,以及(2)并行处理利用Dijkstra算法的两次成本计算,或对不同拓扑的两次成本计算与道路搜索。两种情形下,由于能够更快速进行多道路搜索,都是优选的。
附图的简要说明为了更好地理解本发明,要参照附图,其中

图1a-1c是分别表示作为一般图形搜索方法的Dijkstra算法的步骤的示意图2是表示从Dijkstra算法中先前结点的信息搜索最短道路方法的示意图;图3是表示根据本发明在双重Dijkstra搜索中从开始到所有结点的最短道路的示意图;图4是表示根据本发明在双重Dijkstra搜索中从目标到所有结点的最短道路的示意图;图5是表示根据本发明在双重Dijkstra搜索中通过各点的道路的示意图;图6是表示根据本发明在双重Dijkstra搜索中从开始到目标通过一个结点的最短道路的示意图;图7是表示通过已知的K最短道路问题产生的道路的示意图;以及图8是表示不同的拓扑道路的示意图。
本发明的详细说明在说明根据本发明的双重Dijkstra搜索算法之前,将先说明作为搜索最短道路的一般方法的Dijkstra搜索算法。Dijkstra搜索是用于计算从图形上一个结点到所有结点的最短道路的算法。在Dijkstra搜索算法中,图形上到所有结点的最短道路是从开始点逐一确定的。最短道路的决策区域是逐步扩展的。最后,搜索到所有结点的最短道路。实际上,Dijkstra搜索是通过以下步骤进行的。
(1)如图1a所示,开始点的成本设为零。
(2)如图1b所示,计算与开始点连接的结点的成本。
(3)形成其中成本已被计算的结点的一列表。开始点从该列表中被去除。
(4)如图1c所示,在列表中选择具有较低成本的结点,并计算与具有较低成本的结点连接的结点的成本。这里1.其中把其成本被新计算的结点添加到列表中。
2.在对同一结点多次计算成本的情形下,较低成本被重新记录到列表上。
(5)在连接的结点成本计算之后,结点从列表中去除,并决定结点的成本。
(6)当通过重复执行(3)和(4)列表成为空时,决定所有结点的成本,且上述这一重复操作结束。
这样,采用Dijkstra搜索能够计算在各结点对开始点的最短成本。此外,在其中决定成本的步骤(4),如果先前的结点位置存储在各结点处,如图2所示能够通过跟踪结点顺序计算最短结点。Dijkstra搜索对于计算的开始点到目标点的最短道路是有效的,但不能计算连接两点的多个道路。
根据本发明的双重Dijkstra搜索主要通过两步被分类。首先,作为最初一步,通过所有点两次采用Dijkstra搜索计算从开始到目标通过一定的点的道路成本。然后,作为第二步,在所计算的道路中,选择具有不同拓扑的道路。以下,将顺序说明以上各步骤。
步骤1(1)如图3所示,从开始点进行Dijkstra搜索。
(2)如图4所示,还从目标点进行Dijkstra搜索。
(3)对通过两次Dijkstra搜索计算并分别存储在所有结点中的成本求和。
作为这些步骤的结果,在一点分别获得以下成本和位置。
(1)从开始到靶结点的最低成本及从目标到靶结点的最低成本。就是说,如图5所示,从开始到目标通过各结点的道路的最低成本。
(2)连接靶结点与开始结点的道路中靶结点的先前结点的位置。就是说图6中所示的指针(a)。
(3)连接靶结点与目标结点的道路中靶结点的先前结点的位置。就是说图6中所示的指针(b)。
如果如图8所示既沿开始点方向又沿目标点方向跟踪道路,就能够决定通过一点的最短道路。由于这一信息能够在所有结点被存储,因而能够最好地获得达到结点数目的通过一点的最短道路。
步骤2
局部上采用其数目对应于通过步骤1获得的结点及它们的成本的道路集合,计算出具有不同拓扑的最适合道路。如前所述,具有不同拓扑的道路意思是非连续过渡的道路。如果道路不是连续过渡的,则必定存在彼此不相邻的点。使用这一条件,应用以下的步骤。
(1)选择具有较低成本的结点,描绘其结点是被这样选择的结点的道路。这种道路就是最适合的道路。
(2)标记这种道路上的所有结点。
(3)选择具有第二较低成本的结点,并考虑其结点是这样被选择的结点的道路。这里1.在这种道路上所有结点都是对先前标记的结点相邻的情形下,不描绘这种道路。
2.在即便只存在一个结点不与标记的结点相邻的情形下,则对这种道路进行描绘。这一道路是具有不同拓扑的最适合道路。
(4)重复以上步骤直到所有结点被标记。
首先,这一方法增加了围绕最短道路具有相同拓扑的区域。如果找到具有不同拓扑的道路,则从该道路增加了具有另外拓扑的一区域。最后所有空间被划分为具有不同拓扑的区域。这样,只描绘相同的拓扑中最适合的道路。
采用并行处理能够快速执行根据本发明的双重Dijkstra搜索的算法。由于基于双重执行的Dijkstra搜索的计算是被独立进行的,因而能够采用并行处理。此外,由于计算具有不同拓扑的道路的一部分还能够通过增加具有相同拓扑不仅围绕最短多个热道路的区域而进行,因而还能够采用并行处理。
从以上说明可清楚地理解,根据本发明用于计划多道路的双重Dijkstra搜索,能够通过只是基本上与获得最适合道路相同的计算时间,就能够搜索多个道路。其结果是,如果本发明用于计算机图形学或机器人及导航系统的领域,则能够对机器人和CG特性的各种运动进行快速搜索。此外,该方法提供了多个道路,能够用于计划道路。
权利要求
1.用于计划多道路的双重Dijkstra搜索,包括以下步骤采用称为Dijkstra算法的算法计算从开始到所有结点的第一最低成本;采用Dijkstra算法计算从目标到所有结点的第二最低成本;把第一最低成本与第二最低成本相加获得相加的最低成本;并在所有结点存储相加的较低成本,作为从开始到目标通过各结点的较低道路的成本,从而搜索从开始到目标的一道路。
2.用于计划多道路的双重Dijkstra搜索,包括以下步骤采用称为Dijkstra算法的算法计算从开始到所有结点的第一最低成本;采用Dijkstra算法计算从目标到所有结点的第二最短成本;把第一最短成本与第二最短成本相加获得相加的最短成本;并在所有结点对于相加的最短成本获得从开始到目标通过各结点的最短道路,从而搜索从开始到目标的一道路。
3.根据权利要求1或2用于计划多道路的双重Dijkstra搜索,其中利用通过一点的道路及其成本,搜索其拓扑彼此不同的局部最适合的多个道路。
4.根据权利要求1或2用于计划多道路的双重Dijkstra搜索,其中并行处理利用Dijkstra算法的两次成本计算,或对不同拓扑的两次成本计算与道路搜索。
5.一种运动计划,其中采用根据权利要求1或2的用于计划多道路的双重Dijkstra搜索。
全文摘要
通过以下步骤为计划多个道路执行双重Dijkstra搜索(1)采用称为Dijkstra算法的算法计算从开始到所有结点的第一最短成本;(2)采用Dijkstras算法计算从目标到所有结点的第二最短成本;(3)把第一最短成本与第二最短成本相加获得相加的最短成本;以及(4a)在所有结点存储存储相加的最短成本作为从开始到目标通过各结点的最短道路的成本;或(4b)在所有结点获得从开始到目标通过各结点对于相加的最短成本的最短道路,从而搜索从开始到目标的一道路。
文档编号G06Q10/04GK1459744SQ0310382
公开日2003年12月3日 申请日期2003年2月12日 优先权日2002年2月12日
发明者中村仁彦, 藤田悠介 申请人:东京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1