CN101447947B - 一种直线优化的最短路径搜索方法 - Google Patents
一种直线优化的最短路径搜索方法 Download PDFInfo
- Publication number
- CN101447947B CN101447947B CN2008102468523A CN200810246852A CN101447947B CN 101447947 B CN101447947 B CN 101447947B CN 2008102468523 A CN2008102468523 A CN 2008102468523A CN 200810246852 A CN200810246852 A CN 200810246852A CN 101447947 B CN101447947 B CN 101447947B
- Authority
- CN
- China
- Prior art keywords
- point
- obtaining
- shortest path
- minimum value
- consecutive points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Navigation (AREA)
Abstract
本发明涉及一种直线优化的最短路径搜索方法。所述方法在研究的网络可以看作平面网络的条件下,将临时标记结点到源结点的最短路径距离与本临时结点到目标结点的直线距离之后作为从临时结点集合中选取永久标记结点的依据。本发明所提供的最短路径搜索方法,减少搜索中遍历的结点个数,从而提高搜索的速度。
Description
技术领域
本发明涉及路径搜索领域,具体涉及一种直线优化的最短路径搜索方法。
背景技术
最短路径法求解最为著名的是Dijkstra搜索方法。原始Dijkstra搜索方法将网络结点分为未标记结点、临时标记结点和永久标记结点三种类型。网络中所有结点首先初始化为未标记结点,在搜索过程中和最短路径结点相连通的结点为临时标记结点,每一次循环都是从临时标记结点中搜索距源点路径长度最短的结点作为永久标记结点,直至找到目标结点或者所有结点都成为永久标记结点才结束搜索过程。
原始Dijkstra搜索过程中,由于临时标记结点无序地存储,因此每次在临时标记结点中搜索路径最短的结点时,都要遍历所有的临时标记结点。减小算法中搜索的范围,以尽快达到目标结点,是一种行之有效的优化方法。
从图2中可以看出,原始Dijkstra搜索方法可以近似为以源结点为圆心的一系列同心圆,搜索过程没有考虑目标结点所在的方向或者位置,从源结点出发的搜索过程中,其他结点与目标结点被搜索到的概率是相同的。而直线优化Dijkstra的搜索方法过程,可以近似为以源结点和目标结点为焦点的一系列同心椭圆。因为永久标记结点的选取原则是:当前结点距离源结点的最短路径距离与次结点到终点的直线距离之和最小者被选取为永久标记结点,所以一般来说其搜索过程明显趋向于目标结点,搜索到的结点少于原始Dijkstra搜索方法,搜索过程结束的时间也会明显少于原始Dijikstra方法。
发明内容
本发明的目的是提供一种直线优化的最短路径搜索方法,将临时标记结点到源结点的最短路径距离与该临时结点到目标结点的直线距离之和作为从临时结点集合中选取永久标记结点的依据,克服了现有技术中遍历的结点个数多、搜索速度慢的缺陷。
为了达到以上发明目的,本发明提供了一种获取两地间最短路径的方法,所述获取两地间最短路径的方法包括步骤:
S1,获取两地的起点、终点以及所述起点的相邻点;
S2,获取所述相邻点到起点之间的最短路径距离;
S3,获取上述各相邻点与终点之间的直线距离;
S4,获取上述最短路径距离与直线距离之和的最小值以及取得该最小值的点;
S5,判断上述取得最小值的点是否是终点,如果是,则获取上述起点经所述取得该最小值的点到终点的路径距离为起点与终点之间的最短路径距离;如果否,则获取上述取得该最小值的点的所有相邻点,然后转步骤S2,其中用所述取得该最小值的点的相邻点取代步骤S2中所述的相邻点。
其中,所述步骤S1中起点的相邻点为与起点有路径的点。
其中,所述步骤S5之前还包括:
SA,判断上述取得该最小值的点是否有相邻点,如果没有,则获取上述起点经所述取得该最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果有,则转步骤SB
SB,判断所述取得该最小值的点的相邻点是否被选取作过最小 值点,如果是,则获取上述起点经所述取得该最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果否,则转步骤S2。
本发明还提供了一种获取两地间最短路径的装置,所述获取两地间最短路径的装置包括:
输入单元,用于输入两地的起点、终点以及与所述起点的相邻点;
计算单元,与所述输入单元相连,获取上述各相邻点到起点之间的最短路径距离、上述各相邻点与终点的直线距离;以及上述最短路径距离与直线距离之和的最小值;
判断单元,与所述计算单元相连,用于判断使得起点与其所有相邻点的最短路径距离及所述起点的相邻点与终点的直线距离之和取得最小值的点;
输出单元,与所述判断单元相连,用于输出所述最短路径距离。
本发明所提供的直线优化的最短路径搜索方法,将临时标记结点到源结点的最短路径距离与本临时结点到目标结点的直线距离之后作为从临时结点集合中选取永久标记结点的依据,减少搜索中遍历的结点个数,从而提高搜索的速度。
附图说明
图1是本发明最短路径搜索方法中选取永久标记结点的理论依据示意图;
图2是原始Dijkstra搜索方法与本发明直线优化最短路径搜索方法最大搜索范围示意图;
图3是本发明直线优化最短路径搜索方法的流程示意图;
图4是本发明直线优化最短路径搜索装置结构示意图;
图5是本发明应用于城市间公路信息查询系统的城市间公路情况示意图。
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明提供了一种获取两地间最短路径的方法,所述方法包括步骤:S1,获取两地的起点、终点以及所述起点的相邻点;S2,获取所述相邻点到起点之间的最短路径距离;S3,获取上述各相邻点与终点的直线距离;S4,获取上述最短路径距离与直线距离之和的最小值以及取得该最小值的点;S5,判断上述取得最小值的点是否是终点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离;如果否,则获取上述取得最小值的点的所有相邻点,然后转步骤S2,其中用所述取得最小值的点的相邻点取代步骤S2中的相邻点。其中,所述步骤S1中起点的相邻点为与起点有路径的点。其中,所述步骤S5之前还包括:SA,判断上述取得最小值的点是否有相邻点,如果没有,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果有,则转步骤SB;SB,判断所述取得最小值的点的相邻点是否被选取作过最小值点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果否,则转步骤S2。
本发明还提供了一种获取两地间最短路径的装置,如图4所示,所述获取两地间最短路径的装置包括:输入单元,用于输入两地的起点、终点以及与所述起点相邻的点;计算单元,与所述输入单元相连,获取上述各相邻点到起点之间的最短路径距离、上述各相邻点与终点的直线距离;以及上述最短路径距离与直线距离之和的最小值;判断单元,与所述计算单元相连,用于判断使得起点与其所有相邻点的最短路径距离及所述起点的相邻点与终点的直线距离之和取得最小值的点;输出单元,与所述判断单元相连,用于输出所述最短路径距离。
作为对本发明技术方案的进一步阐述,下面介绍本发明的一种实施搜索方法,首先(1)建立永久标记结点集合A和临时标记结点集 合B;(2)将源结点s加入所述永久标记结点集合A,将源结点s的相邻结点加入所述临时标记结点集合B;其次(3)分别计算所述临时标记结点集合B中的各临时标记结点到源结点s的最短路径距离与所述临时标记结点到目标结点t的直线距离之和,并计算所述和的最小值;(4)将取得上述最小值的临时标记结点k加入到永久标记结点集合A中,并调整永久标记结点集合A中各结点的最短路径距离;然后(5)清空所述临时标记结点集合B,并把临时标记结点k的相邻结点加入临时标记结点集合B;重复步骤(3)-(5)直到所述临时标记结点k与目标结点t为同一个结点,或者所述临时标记结点k没有相邻结点或者所述临时标记结点k的所有相邻结点都在永久标记结点集合A时,获取源结点s与目标结点t的最短路径。
其中,步骤(4)中所述的调整永久结点集合A中最短路径是由于k的加入,可能使得各结点的最短路径距离减小。对于任意的结点j,若k加入后,使j的最短路径距离SD[j]变小,则必定是由于存在一条从s到j且包含k的更短路径:<s,......,k,j>。且SD[j]减小的新路径只可能是由于路径<s,......,k>和路径<k,j>组成,所以当SD[k]+w<k,j>小于SD[j]时,应该用SD[k]+w<k,j>的长度来修改D[j]的值。w<k,j>为路径的权值。
下面参照附图结合示例性实施例对本发明作进一步详细的说明。以城市间公路信息查询为例,对本发明进行详细描述。图5中,显示的abcde五个城市间的公路情况,连线中数字是城市间公路的里程数,旁边小一号数字表示城市间的直线距离数。现要求求解城市d到城市e间的最短路径与最短距离。下面是利用本发明的搜索方法进行求解的步骤:
第一步:将源结点城市d加入永久标记结点集合A。此时集合A中只有一个结点d,其到源结点最短路径是d,最短距离是0。
第二步:与d相邻的结点是a、c、e,加入临时结标记点集合B。
第三步:分别计算集合B中a、c、e到源结点的最短路径距离与目标结点的直线距离之和:
a:da+ae=10+71=81
c:dc+ce=30+52=82
e:de+ee=100+0=100
第四步:根据所得的结果值,选择a结点加入集合A。
第五步:调整集合A中各结点的最短路径。A中有结点d、a,其中d是源结点,a的最短路径是da。
第六步:清空集合B,把与a相邻的结点b,加入到集合A中。
第七步:集合B中只有临时结点b,选取加入到集合A中。
第八步:调整集合A中各结点的最短路径。A中有结点d、a、b,其中d是源结点,a的最短路径还是da,b的最短路径是dab。
第九步:清空集合B,把与b相邻的结点c、e,加入到集合B中。
第十步:分别计算集合B中c、e到源结点d的最短路径距离与到目标结点e的直线距离之和:
c:dc+ce=da+ab+bc+ce=10+50+20+52=132
e:de+ee=100+0=100
第十一步:调整集合A中各结点的最短路径,d是源结点,a的最短路径还是da,b的最短路径是dab,e的最短路径是dabe。
第十二步:由于e是目标结点,搜索过程结束。
第十三步:输出结果,源结点d与目标结点e的最短路径是dabe。
以上通过一个实例描述了源结点与目标结点间的最短路径的求解方法。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由其权利要求限定。
Claims (3)
1.一种获取两地间最短路径的方法,其特征在于,所述获取两地间最短路径的方法包括步骤:
S1,获取两地的起点、终点以及所述起点的相邻点;
S2,获取所述相邻点到起点之间的最短路径距离;
S3,获取上述各相邻点与终点之间的直线距离;
S4,获取上述最短路径距离与直线距离之和的最小值以及取得该最小值的点;
S5,判断步骤S4中取得该最小值的点是否是终点,如果是,则获取上述起点经所述取得该最小值的点到终点的路径距离为起点与终点之间的最短路径距离;如果否,则获取上述取得该最小值的点的所有相邻点,然后转步骤S2,其中用所述取得该最小值的点的相邻点取代步骤S2中所述的相邻点;
所述步骤S5之前还包括:
SA,判断上述取得该最小值的点是否有相邻点,如果否,则获取上述起点经所述取得该最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果是,则转步骤SB;
SB,判断所述取得该最小值的点的相邻点是否被选取作过最小值点,如果是,则获取上述起点经所述取得该最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果否,则转步骤S2。
2.如权利要求1所述的获取两地间最短路径的方法,其特征在于,所述步骤S1中起点的相邻点为与起点有路径的点。
3.一种获取两地间最短路径的装置,其特征在于,所述获取两地间最短路径的装置包括:
输入单元,用于输入两地的起点、终点以及所述起点的相邻点;
计算单元,与所述输入单元相连,获取上述各相邻点到起点之间的最短路径距离、上述各相邻点与终点的直线距离;以及上述最短路径距离与直线距离之和的最小值;
判断单元,与所述计算单元相连,用于判断使得起点与其所有相邻点的最短路径距离及所述起点的相邻点与终点的直线距离之和取得最小值的点;判断上述取得最小值的点是否有相邻点,如果否,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果是,则判断所述取得最小值的点的相邻点是否被选取作过最小值点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果否,则重新获取使得距离之和达到最小值的点;判断上述取得最小值的点是否是终点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离,如果否,则获取上述取得最小值的点的所有相邻点,并获取这些相邻点中能够使距离之和达到最小值的点;
输出单元,与所述判断单元相连,用于输出所述最短路径距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102468523A CN101447947B (zh) | 2008-12-26 | 2008-12-26 | 一种直线优化的最短路径搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102468523A CN101447947B (zh) | 2008-12-26 | 2008-12-26 | 一种直线优化的最短路径搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101447947A CN101447947A (zh) | 2009-06-03 |
CN101447947B true CN101447947B (zh) | 2011-02-23 |
Family
ID=40743359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102468523A Active CN101447947B (zh) | 2008-12-26 | 2008-12-26 | 一种直线优化的最短路径搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101447947B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753694B (zh) * | 2013-12-25 | 2018-06-26 | 中国移动通信集团河北有限公司 | 一种光缆自动化路由选择的方法和装置 |
US9576073B2 (en) * | 2014-06-02 | 2017-02-21 | Microsoft Technology Licensing, Llc | Distance queries on massive networks |
CN106997355B (zh) * | 2016-01-25 | 2020-06-02 | 北京四维图新科技股份有限公司 | 基于Mongodb获取距离、确定距离最短线段的方法及装置 |
CN105788345A (zh) * | 2016-05-03 | 2016-07-20 | 杨崔波 | 基于智能终端的寻车方法 |
CN112529235A (zh) * | 2019-09-18 | 2021-03-19 | 北京三快在线科技有限公司 | 路径确定方法和装置、电子设备和计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261136A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种基于移动导航系统的路径搜索方法 |
-
2008
- 2008-12-26 CN CN2008102468523A patent/CN101447947B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261136A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种基于移动导航系统的路径搜索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101447947A (zh) | 2009-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101447947B (zh) | 一种直线优化的最短路径搜索方法 | |
Shu-Xi | The improved dijkstra's shortest path algorithm and its application | |
CN101616466B (zh) | 一种自组网区域路由方法 | |
CN102025538B (zh) | 基于ecmp路径实现组播流量负荷分担的方法和装置 | |
CN101187996B (zh) | 一种基于自适应骨干网的快速公交选线方法 | |
JP2013190218A (ja) | 経路探索方法、経路探索装置、及びプログラム | |
CN103808325A (zh) | 交通出行方案的生成方法及装置 | |
CN101980326A (zh) | 建构公交换乘网络的方法与装置 | |
CN107872388A (zh) | 用于实现报文转发的方法、装置和系统 | |
CN105740964A (zh) | 一种城市路网数据组织与最短路径快速计算方法 | |
Amaliah et al. | Finding the shortest paths among cities in Java Island using node combination based on Dijkstra algorithm | |
CN104391907A (zh) | 一种可变解析度的快速路径搜寻方法 | |
CN111368149A (zh) | 网络化运营条件下基于图论的行程可达性计算和展示方法、计算机设备及存储介质 | |
CN100542117C (zh) | 一种基于复杂网络商空间模型的路径搜索方法 | |
Tabassum et al. | Dynamic group trip planning queries in spatial databases | |
CN107633319A (zh) | 一种新增公交线路优化设计方法 | |
CN105698796B (zh) | 一种多机器人调度系统的路径搜索方法 | |
Bing et al. | Improvement and application of Dijkstra algorithms | |
CN105987702A (zh) | 一种导航路线的路段扩张方法及其装置 | |
CN106953806A (zh) | 一种基于后缀索引匹配ip地址的方法及系统 | |
CN110096564B (zh) | 一种基于bim+gis的路线点定位方法、装置及系统 | |
CN110233796B (zh) | 一种基于加权路由算法的电力通信网优化方法及设备 | |
CN102750460A (zh) | 分层简化大规模图数据的运算方法 | |
CN115086224B (zh) | 基于Farey模型的最短路由实现方法及系统 | |
Barrett et al. | Label constrained shortest path algorithms: An experimental evaluation using transportation networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |