一种直线优化的最短路径搜索方法

文档序号:7929860阅读:236来源:国知局
专利名称:一种直线优化的最短路径搜索方法
技术领域
本发明涉及路径搜索领域,具体涉及一种直线优化的最短路径搜 索方法。
背景技术
最短路径法求解最为著名的是Dijkstra搜索方法。原始Dijkstra搜 索方法将网络结点分为未标记结点、临时标记结点和永久标记结点三 种类型。网络中所有结点首先初始化为未标记结点,在搜索过程中和 最短路径结点相连通的结点为临时标记结点,每一次循环都是从临时 标记结点中搜索距源点路径长度最短的结点作为永久标记结点,直至 找到目标结点或者所有结点都成为永久标记结点才结束搜索过程。
原始Dijkstra搜索过程中,由于临时标记结点无序地存储,因此 每次在临时标记结点中搜索路径最短的结点时,都要遍历所有的临时 标记结点。减小算法中搜索的范围,以尽快达到目标结点,是一种行 之有效的优化方法。
从图2中可以看出,原始Dijkstra搜索方法可以近似为以源结点为 圆心的 一 系列同心圆,搜索过程没有考虑目标结点所在的方向或者位 置,从源结点出发的搜索过程中,其他结点与目标结点被搜索到的概 率是相同的。而直线优化Dijkstra的搜索方法过程,可以近似为以源 结点和目标结点为焦点的 一 系列同心椭圆。因为永久标记结点的选取 原则是当前结点距离源结点的最短路径距离与次结点到终点的直线 距离之和最小者被选取为永久标记结点,所以 一般来说其搜索过程明 显趋向于目标结点,搜索到的结点少于原始Dijkstm搜索方法,搜索 过程结東的时间也会明显少于原始Dijikstra方法
发明内容
本发明的目的是提供一种直线优化的最短路径搜索方法,将临时 标记结点到源结点的最短路径距离与该临时结点到目标结点的直线 距离之和作为从临时结点集合中选取永久标记结点的依据,克服了现 有技术中遍历的结点个数多、搜索速度慢的缺陷。
本发明提供的直线优化的最短路径搜索方法核心思想是在研究 的网络可以看作平面网络的条件下,将临时标记结点到源结点的最短 路径距离与本临时结点到目标结点的直线距离之后作为从临时结点 集合中选取永久标记结点的依据(见图l )。这种原则将使得搜索方法 职能地趋向目标结点,减少搜索中遍历的结点个数,从而提高搜索的 速度。
为了达到以上发明目的,本发明提供了 一种获取两地间最短路径
的方法,所述获取两地间最短路径的方法包括步骤
Sl,获取两地的起点、终点以及所述起点的相邻点;
S2 ,获取所述相邻点到起点之间的最短路径距离;
S3,获取上述各相邻点与终点之间的直线距离;
S4,获取上述最短路径距离与直线距离之和的最小值以及取得该
最小值的点;
S5,判断上述取得最小值的点是否是终点,如果是,则获取上述 起点经所述取得最小值的点到终点的路径距离为起点与终点之间的 最短路径距离;如果否,则获取上述取得最小值的点的所有相邻点, 然后转步骤S2,其中用所述取得最小值的点的相邻点取代步骤S2中所 述的相邻点。
其中,所述步骤S1中起点的相邻点为与起点有路径的点。 其中,所述步骤S5之前还包括
SA,判断上述取得最小值的点是否有相邻点,如果没有,则获 取上述起点经所述取得最小值的点到终点的路径距离为起点与终点 之间的最短路径距离,如果有,则转步骤SBSB,判断所述取得最小值的点的相邻点是否被选取作过最小值 点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距 离为起点与终点之间的最短路径距离,如果否,则转步骤S2。
本发明还提供了 一种获取两地间最短路径的装置,所述获取两地
间最短路径的装置包括
输入单元,用于输入两地的起点、终点以及与所述起点的相邻点; 计算单元,与所述输入单元相连,获取上述各相邻点到起点之间
的最短路径距离、上述各相邻点与终点的直线距离;以及上述最短路
径距离与直线距离之和的最小值;
判断单元,与所述计算单元相连,用于判断使得起点与其所有相
邻点的最短路径距离及所述起点的相邻点与终点的直线距离之和取
得最小值的点;
输出单元,与所述判断单元相连,用于输出所述最短路径距离。 本发明所提供的直线优化的最短路径搜索方法,将临时标记结点 到源结点的最短路径距离与本临时结点到目标结点的直线距离之后 作为从临时结点集合中选取永久标记结点的依据,减少搜索中遍历的 结点个数,从而提高搜索的速度。


图l是本发明最短路径搜索方法中选取永久标记结点的理论依据 示意图2是原始Dijkstra搜索方法与本发明直线优化最短路径搜索方
法最大搜索范围示意图3是本发明直线优化最短路径搜索方法的流程示意图4是本发明直线优化最短路径搜索装置结构示意图5是本发明应用于城巿间公路信息查询系统的城巿间公路情况
示意图。
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。 本发明提供了 一种获取两地间最短路径的方法,所述方法包括步
骤Sl,获取两地的起点、终点以及所述起点的相邻点;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, f小于SD[j]时,应该用SD[k] + w〈k, j〉的长度来修改D(j]的值。w<k, p为路径的权值。
下面参照附图结合示例性实施例对本发明作进一步详细的说明。 以城巿间公路信息查询为例,对本发明进行详细描述。图5中,显示 的abcde五个城巿间的公路情况,连线中数字是城巿间公路的里程数, 旁边小一号数字表示城巿间的直线距离数。现要求求解城巿d到城巿e 间的最短路径与最短距离。下面是利用本发明的搜索方法进行求解的 步骤
第一步将源结点城市d加入永久标记结点集合A。此时集合A中 只有一个结点A其到源结点最短路径是A最短距离是0。
第二步与d相邻的结点是"、c、 e,加入临时结标记点集合B。第三步分别计算集合B中仏C、 e到源结点的最短路径距离与目 标结点的直线距离之和 a:£fe + ae = 10 + 71 = 81
e:cfe + S = 100 + 0 = 100
第四步根据所得的结果值,选择a结点加入集合A。
第五步调整集合A中各结点的最短路径。A中有结点A仏其
中c/是源结点,a的最短路径是^。
第六步清空集合B,把与a相邻的结点b,加入到集合A中。 第七步集合B中只有临时结点b,选取加入到集合A中。 第八步调整集合A中各结点的最短路径。A中有结点丄"、6,
其中d是源结点,"的最短路径还是&, 6的最短路径是^/W。
第九步:清空集合B,把与6相邻的结点c、 e,加入到集合B中。 第十步分别计算集合B中c、 e到源结点d的最短路径距离与到目
标结点e的直线距离之和
c: A + ce = & + W + + ce = 10 + 50 + 20 + 52 = 132
第十一步调整集合A中各结点的最短路径,d是源结点,a的最 短路径还是c/a, 6的最短路径是c/a6, e的最短路径是^^e。
第十二步由于e是目标结点,搜索过程结東。
第十三步输出结果,源结点d与目标结点e的最短路径是^^e。
以上通过一个实例描述了源结点与目标结点间的最短路径的求 解方法。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关 技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化,因此所有等同的技术方案也属于本发明的范 畴,本发明的专利保护范围应由其权利要求限定。
权利要求
1、一种获取两地间最短路径的方法,其特征在于,所述获取两地间最短路径的方法包括步骤S1,获取两地的起点、终点以及所述起点的相邻点;S2,获取所述相邻点到起点之间的最短路径距离;S3,获取上述各相邻点与终点之间的直线距离;S4,获取上述最短路径距离与直线距离之和的最小值以及取得该最小值的点;S5,判断上述取得最小值的点是否是终点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距离为起点与终点之间的最短路径距离;如果否,则获取上述取得最小值的点的所有相邻点,然后转步骤S2,其中用所述取得最小值的点的相邻点取代步骤S2中所述的相邻点。
2、 如权利要求l所述的获取两地间最短路径的方法,其特征在于, 所述步骤S1中起点的相邻点为与起点有路径的点。
3、 如权利要求1所述的获取两地间最短路径的方法,其特征在于, 所述步骤S5之前还包括SA,判断上述取得最小值的点是否有相邻点,如果否,则获取 上述起点经所述取得最小值的点到终点的路径距离为起点与终点之 间的最短路径距离,如果是,则转步骤SB;SB,判断所述取得最小值的点的相邻点是否被选取作过最小值 点,如果是,则获取上述起点经所述取得最小值的点到终点的路径距 离为起点与终点之间的最短路径距离,如果否,则转步骤S2。
4、 一种获取两地间最短路径的装置,其特征在于,所述获取两 地间最短路径的装置包括输入单元,用于输入两地的起点、终点以及所述起点的相邻点; 计算单元,与所述输入单元相连,获取上述各相邻点到起点之间的最短路径距离、上述各相邻点与终点的直线距离;以及上述最短路 径距离与直线距离之和的最小值;判断单元,与所述计算单元相连,用于判断使得起点与其所有相 邻点的最短路径距离及所述起点的相邻点与终点的直线距离之和取得最小值的点;输出单元,与所述判断单元相连,用于输出所述最短路径距离。
全文摘要
本发明涉及一种直线优化的最短路径搜索方法。所述方法在研究的网络可以看作平面网络的条件下,将临时标记结点到源结点的最短路径距离与本临时结点到目标结点的直线距离之后作为从临时结点集合中选取永久标记结点的依据。本发明所提供的最短路径搜索方法,减少搜索中遍历的结点个数,从而提高搜索的速度。
文档编号H04L12/56GK101447947SQ20081024685
公开日2009年6月3日 申请日期2008年12月26日 优先权日2008年12月26日
发明者刘忠强, 钢 喻, 张方田, 王开义, 赵春江, 静 隋 申请人:北京农业信息技术研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1