The dual Dijkstra search for planning multiple paths is performed by: (1) calculating a first shortest cost from start to all nodes by utilizing an algorithm known as the Dijkstra algorithm; (2) calculating a second shortest cost from goal to all nodes by utilizing the Dijkstra algorithm; (3) summing up the first shortest cost and the second shortest cost to obtain a summed up shortest cost; and (4a) storing at all nodes the summed up shortest cost as a cost of shortest path from start to goal via respective nodes, or, (4b) obtaining at all nodes a shortest path from start to goal via respective nodes with reference to the summed up shortest cost, thereby searching a path from start to goal.

BACKGROUND OF THE INVENTION

[0001] (1) Field of the Invention

[0002] The present invention relates to the dual Dijkstra search for planning multiple paths that are preferably used for calculating multiple solutions rapidly and simultaneously with respect to various planning problems in the field of computer graphics or robotics and navigation systems and so on.

[0003] (2) Prior Art Statement

[0004] Generally, as a path search algorithm, the most suitable path from a start point to a goal point is searched. In the path search algorithm, there is sometimes a case such that multiple solutions are to be searched other than the most suitable solution. An algorithm for searching such multiple paths is generally investigated as the K shortest path algorithm. However, the K shortest algorithm is performed by: searching the most suitable path as shown in FIG. 7; searching successively other paths near the thus searched most suitable path; and deciding the second, third, and so on suitable paths, the following problems arise.

[0005] (1) Since it is necessary to perform repeated calculations, a long calculation time is necessary as compared to the case such that only the most suitable path is searched.

[0006] (2) Since many other paths are found near the most suitable path, it is necessary to make a value K larger if such other paths that are not analogous to the most suitable path are to be searched.

[0007] In a large number of problems, it is necessary to search different paths other than such analogous paths. Here, a term "different path" means a non-successive transition path as shown in FIG. 8. That is, the different path has different topology. In order to search such a path having a different topology, it is necessary to perform an extreme number of calculations in the known algorithm, since it has problems as mentioned above.

SUMMARY OF THE INVENTION

[0008] An object of the invention is to provide the dual Dijkstra search for planning multiple paths in a path search problem, wherein multiple paths other than the most suitable path can be searched simultaneously, and, wherein various paths other than analogous paths near the most suitable path can be searched.

[0009] According to the first aspect of the invention, the dual Dijkstra search for planning multiple paths, comprises the steps of: calculating a first shortest cost from start to all nodes by utilizing an algorithm known as the Dijkstra algorithm; calculating a second shortest cost from goal to all nodes by utilizing the Dijkstra algorithm; summing up the first shortest cost and the second shortest cost to obtain a summed up shortest cost; and storing at all nodes the summed up shortest cost as a cost of the shortest path from start to goal via respective nodes, thereby searching a path from start to the goal.

[0010] Moreover, according to the second aspect of the invention, the dual Dijkstra search for planning multiple paths, comprises the steps of: calculating a first shortest cost from start to all nodes by utilizing an algorithm known as the Dijkstra algorithm; calculating a second shortest cost from goal to all nodes by utilizing the Dijkstra algorithm; summing up the first shortest cost and the second shortest cost to obtain a summed up shortest cost; and obtaining at all nodes a shortest path from start to goal via respective nodes with reference to the summed up shortest cost, thereby searching a path from start to goal.

[0011] In the present invention, it is possible to search the multiple paths by the substantially same calculation time as that of obtaining the most suitable path only, by performing the steps of: (1) calculating a first shortest cost from start to all nodes by utilizing the Dijkstra algorithm; (2) calculating a second shortest cost from goal to all nodes by utilizing the Dijkstra algorithm; (3) summing up the first shortest cost and the second shortest cost to obtain a summed up shortest cost; and (4a) storing at all nodes the summed up shortest cost as a cost of the shortest path from start to goal via respective nodes, or, (4b) obtaining at all nodes a shortest path from start to goal via respective nodes with reference to the summed up shortest cost, thereby searching a path from start to goal. As a result, if the present invention is used for various planning problems in a field of computer graphics or robots and navigation systems, it is possible to perform a rapid search for various motions of robots and CG characters.

[0012] As a preferred embodiment, (1) locally most suitable multiple paths, whose topologies are different to each other, are searched by utilizing a path via one point and its cost, and, (2) the twice cost calculations by utilizing the Dijkstra algorithm, or, the twice cost calculations and the path search for the different topology are processed in parallel. In both cases, it is preferred since the multiple path search can be more rapid.

DETAILED DESCRIPTION OF THE INVENTION

[0022] Prior to explaining an algorithm of the dual Dijkstra search according to the invention, an algorithm of the Dijkstra search that is a general method of searching the shortest path will be explained. The Dijkstra search is an algorithm for calculating a shortest path from one node to all nodes on a graph. In the Dijkstra search algorithm, the shortest paths to all nodes on the graph are decided one by one from a start point. The area of decisions of the shortest paths is gradually widened. Finally, the shortest paths to all nodes are searched. Actually, the Dijkstra search is performed by the following steps.

  • [0023] (1) As shown in FIG. 1a, a cost of the start point is set to zero.
  • [0024] (2) As shown in FIG. 1b, a cost of the node connected to the start point is calculated.
  • [0025] (3) A list of the nodes wherein the costs are calculated is formed. The start point is taken off from the list.
  • [0026] (4) As shown in FIG. 1c, the node having the lower cost is selected on the list, and a cost of node connected to the node having the lower cost is calculated. Here,
    • [0027] 1. The nodes wherein their costs are newly calculated are added to the list.
    • [0028] 2. In the case that the cost is calculated at multiple times to the same node, the lower cost is re-registered on the list.
  • [0029] (5) After a cost calculation of the connected node, the node is taken off from the list, and the cost of the node is decided.
  • [0030] (6) When the list becomes empty by repeatedly performing the steps (3) and (4), the costs of all the nodes are decided, and thus this repeated operation mentioned above is finished.

[0031] In this manner, it is possible to calculate the shortest costs to the start point at respective nodes by utilizing the Dijkstra search. Moreover, in the step (4) wherein the cost is decided, if a previous node position is stored at respective nodes, the shortest node can be calculated by tracing the nodes sequentially as shown in FIG. 2. The Dijkstra search is effective for calculating the shortest path from the start point to the goal point, but it is not possible to calculate multiple paths that connect two points.

[0032] The dual Dijkstra search according to the invention is largely categorized by two steps. At first, as a primary step, costs of paths from start to goal via a certain point are calculated via all points by utilizing the Dijkstra search twice. Then, as a second step, among the calculated paths, paths having different topology are selected. Hereinafter, the above steps will be explained successively.

[0033] Step 1:


  • [0034] (1) As shown in FIG. 3, the Dijkstra search is performed from the start point.
  • [0035] (2) As shown in FIG. 4, the Dijkstra search is also performed from the goal point.
  • [0036] (3) The costs, which are calculated by twice Dijkstra search and are stored in all nodes respectively, are summed up.

[0037] As a result of these steps, the following cost and position are obtained respectively at one node.


  • [0038] (1) A lowest cost from start to the target node and a lowest cost from goal to the target node. That is, as shown in FIG. 5, the lowest cost of the path from start to goal via respective nodes.
  • [0039] (2) A position of the previous node of the target node in the path connecting the target node and the start node. That is, pointer (a) shown in FIG. 6.
  • [0040] (3) A position of the previous node of the target node in the path connecting the target node and the goal node. That is, pointer (b) shown in FIG. 6.

[0041] If the path is traced along both the start point direction and the goal point direction as shown in FIG. 8, it is possible to decide the shortest path via one point. Since this information can be stored at all nodes, it is possible to obtain the shortest paths via one point to the number of the nodes at best.


[0042] Step 2:

[0043] Locally the most suitable paths having different topology are calculated by utilizing a set of the paths whose number corresponds to the nodes obtained by the step 1 and their costs. As previously mentioned, the paths having different topology means non-successively transition path. If the path is not successively transited, points that are not adjacent to each other exist necessarily. By utilizing this condition, the following steps are used.

  • [0044] (1) A node having the lower cost is selected, and a path whose node is the thus selected node is depicted. This path is the most suitable path.
  • [0045] (2) All nodes on this path are marked.
  • [0046] (3) A node having the second the lower cost is selected, and a path whose node is the thus selected node is considered. Here,
    • [0047] 1. In the case that all nodes on this path are adjacent to the previously marked nodes, this path is not depicted.
    • [0048] 2. In the case that even one node that is not adjacent to the marked node at all exists, this path is depicted. This path is the most suitable path having a different topology.
  • [0049] (4) The above steps are repeated till all nodes are marked.

[0050] At first, this method increases a region having the same topology around the shortest path. If the path having a different topology is found, a region having another topology is increased from the path. Finally, all space is divided into regions having different topology. In this manner, only the most suitable path among the same topology is depicted.

[0051] The algorithm of the dual Dijkstra search according to the invention can be performed rapidly by utilizing parallel processing. Since the calculation based on the Dijkstra search that is performed twice is performed independently, it is possible to utilize parallel processing. Moreover, since a part of calculating the path having different topology can also be performed by increasing regions which have same topologies around not only the shortest hot multiple paths, it is also possible to utilize parallel processing.

[0052] As is clearly understood from the above explanations, according to the dual Dijkstra search for planning multiple paths of the invention, it is possible to search the multiple paths by the substantially same calculation time as that of obtaining the most suitable path only. As a result, if the present invention is used for various planning problems in field of computer graphics or robots and navigation systems, it is possible to perform a rapid search for various motions of robotics and CG characters. Moreover, it provides multiple paths that can be used for planning the path.

SRC=https://www.google.com.hk/patents/US20030223373

Dual Dijkstra search for planning multiple paths的更多相关文章

  1. Sizing and Capacity Planning for SharePoint 2013 - Resources

    http://blogs.msdn.com/b/sanjaynarang/archive/2013/04/06/sizing-and-capacity-planning-for-sharepoint- ...

  2. How to: Add SharePoint 2010 Search Web Parts to Web Part Gallery for Upgraded Site Collections

    When you upgrade to Microsoft SharePoint Server 2010, some of the new SharePoint Enterprise Search W ...

  3. Solving the SQL Server Multiple Cascade Path Issue with a Trigger (转载)

    Problem I am trying to use the ON DELETE CASCADE option when creating a foreign key on my database, ...

  4. 最短路径问题的Dijkstra算法

      问题 最短路径问题的Dijkstra算法 是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出.迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法终于得到一个最短路径树>    ...

  5. Deep Dive into Neo4j 3.5 Full Text Search

    In this blog we will go over the Full Text Search capabilities available in the latest major release ...

  6. RFC 8684---TCP Extensions for Multipath Operation with Multiple Addresses

    https://datatracker.ietf.org/doc/rfc8684/?include_text=1 TCP Extensions for Multipath Operation with ...

  7. Video processing systems and methods

    BACKGROUND The present invention relates to video processing systems. Advances in imaging technology ...

  8. 绿色 或者 免安装 软件 PortableApps

    Refer to http://portableapps.com/apps for detail. Below is just a list at Jan-01-2017 for quick show ...

  9. osg 添加 fbx插件 osg中编译fbx

    使用osg加载fbx模型,需要自己编译fbx插件,编译流程与插件使用案例如下 代码地址:https://github.com/shelltdf/osgFBX CMake Error: The foll ...

随机推荐

  1. javascript面对对象编程 之继承

    上一篇博客中为大家介绍了javascript面向对象编程原则的封装,今天为大家介绍继承.在javascript中没有类的概念,全部不能像c#.java语言那样.直接的用类去继承类.比方如今有比方.如今 ...

  2. maven 怎么在MyEclipse中打开Navigator视图

    方法一:1.点击菜单window2.选择show view菜单项3.选择other菜单项4.点击general,在其中可以找到 方法二:1.点击菜单window2.选择show view菜单项3.选择 ...

  3. VS无法访问IIS元数据库 您没有足够的特权访问计算机上的IIS网站

    进入windows\regedit.exe下的HKEY_CRRENT_USER\Software\Microsoft\Windows\CurrentVersion\Exploer\User Shell ...

  4. (转)Vim练级攻略

    (转)Vim练级攻略 原文链接:http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆 ...

  5. jquery ajax实现省市二级联动

    今天给大家带来使用jQuery ajax实现的省市联动效果.我们直奔主题,先说下实现思路: 准备数据 这里数据库我使用的是mysql,先看下表格: provience表 city表 这里使用provi ...

  6. QAtomicInt支持四种类型的操作,Relaxed、Acquired、Release、Ordered

    Memory Ordering   Background 很久很久很久以前,CPU忠厚老实,一条一条指令的执行我们给它的程序,规规矩矩的进行计算和内存的存取. 很久很久以前, CPU学会了Out-Of ...

  7. 广播(broadcast)、电视与电视网络

    1. 闭路电视与电视 Closed Circuit Television (CCTV) 一种图像通信系统.其信号从源点只传给预先安排好的与源点相通的特定电视机.广泛用于大量不同类型的监视工作.教育.电 ...

  8. USB 3.0规范中译本 第4章 超高速数据流模型

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章展示数据和信息如何在超高速上通过的一种高层次的描述.请阅读协议层一章关于低层次协议的细节.本章提供设备架 ...

  9. TrustedBSD Mandatory Access Control Framework分析

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本文分析FreeBSD 10.0[ http://xrefs.info/freebsd-10.0/ ]的MA ...

  10. 封装springmvc处理ajax请求结果

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79064818 需求描述:ajax向后台发起请求,springmvc在处理完请求后返回的结 ...