多核平台上的路网近似最短路径计算方法

文档序号:9217389阅读:180来源:国知局
多核平台上的路网近似最短路径计算方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种多核平台上的路网近似最短路径计算方法。
【背景技术】
[0002]两点间最短路径问题是一个经典的算法问题,也是许多实际应用中的重要子问题。
[0003]目前无论PC还是手机、平板电脑等移动设备,都广泛使用了多核处理器。然而,现有技术中,一方面,没有有效并行化计算两点间最短路径的相关方案,使得计算资源难以得到充分利用;另一方面,某些方案还需要进行预处理才可进行计算。

【发明内容】

[0004]本发明的目的是提供一种多核平台上的路网近似最短路径计算方法,可充分利用多核资源进行最短路径计算,同时,还可以提高计算结果的精确度。
[0005]本发明的目的是通过以下技术方案实现的:
[0006]一种多核平台上的路网近似最短路径计算方法,其特征在于,包括:
[0007]根据多核平台处理器核心的个数2η,从地图信息中估计给定起点s和终点t的最短路径中可能经过的η个不同的节点IV从而获得η组待求解的路径问题,每一组待求解的路径问题包括两个子问题:(s,Hii)与Ov t);其中,I ^ i ;
[0008]基于欧氏距离的A*算法,并结合多核异步并行计算η组不同的路径问题,获得2η段路径结果;
[0009]计算2η段路径结果之间的相交点,每两个交点之间若有一条以上的路径,则只保留最短的一条,最终获得一条从起点s到终点t的近似最短路径。
[0010]所述A*算法的估值函数系数设置为大于I的值。
[0011]由上述本发明提供的技术方案可以看出,该方案可以在不做预处理的前提下,充分利用多核计算资源来计算路网上两点间最短路径的近似解;一方面利用通过估计中间点可将最短路径问题分解为两个子问题,然后并行求解;另一方面,通过选择多个中间点产生冗余的计算任务,使用其他冗余的处理器核心进行计算,从而提高解的近似精度。
【附图说明】
[0012]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0013]图1为本发明实施例提供的一种多核平台上的路网近似最短路径计算方法的流程图。
【具体实施方式】
[0014]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0015]实施例
[0016]图1为本发明实施例提供的一种多核平台上的路网近似最短路径计算方法的流程图。如图1所示,该方法主要包括如下步骤:
[0017]步骤11、根据多核平台处理器核心的个数2η,从地图信息中估计给定起点s和终点t的最短路径中可能经过的η个不同的节点!V从而获得η组待求解的路径问题,每一组待求解的路径问题包括两个子问题:(s,Hii)与Ov t)。
[0018]本发明实施例中,一方面,将求解定起点s和终点t的最短路径问题(s,t)分解为独立的子问题,即估计二者最短路径中可能经过的节点m,再求解路径问题(s,m)和(m,t)。另一方面,只求解一组(s,m) (m, t)虽然可以快速得到路径,但误差较高;考虑到多核计算资源往往有闲置,因此利用多核异步并行计算η组不同的路径,然后取出局部最优的子路径进行组合得到最终结果。假设有2η个处理器核心,则可以选择η个不同的中间点,得到η组待求解的路径问题,每一组待求解的路径问题包括两个子问题:(8,π0与Ovt);其中,I < i < η。
[0019]步骤12、基于欧氏距离的Α*算法,并结合多核异步并行计算η组不同的路径问题,获得2η段路径结果。
[0020]A* (A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法。通常而言,两个子问题(s,m)和(m,t)的搜索空间之和要小于原问题(s,t),并且可以并行求解。由于不能保证一定是(s,t)最短路径上的点,因此即使A*算法的估值函数系数为1,所求得的路径也是近似解。若该系数大于1,则可以更快速地执行完A*算法,因此,本发明实施例中,所述A*算法的估值函数系数设置为大于I的值,并且由此导致的较大的结果误差可以借助冗余的计算而降低。
[0021]对步骤11中的η组路径问题(2η个子问题)进行并行计算,可获得2η段路径结果O
[0022]步骤13、计算2η段路径结果之间的相交点,每两个交点之间若有一条以上的路径,则只保留最短的一条,最终获得一条从起点s到终点t的近似最短路径。
[0023]具体过程如下:对每条路径进行一次遍历,遍历时检查其他路径是否经过此节点,若经过,则该结点为一个交点。显然s,t 一定是交点。每检查到一个交点,其与上一个交点之间必然有两条以上路径。借助之前A*算法的搜索结果可以很容易判断这些路径的长短。保留其中最短的一条。最终s到t之间只会剩下唯一一条比较优化的路径。
[0024]本发明上述方案可以在不做预处理的前提下,充分利用多核计算资源来计算路网上两点间最短路径的近似解;一方面利用通过估计中间点可将最短路径问题分解为两个子问题,然后并行求解;另一方面,通过选择多个中间点产生冗余的计算任务,使用其他冗余的处理器核心进行计算,从而提高解的近似精度。
[0025]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0026]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
【主权项】
1.一种多核平台上的路网近似最短路径计算方法,其特征在于,包括: 根据多核平台处理器核心的个数2η,从地图信息中估计给定起点S和终点t的最短路径中可能经过的η个不同的节点IV从而获得η组待求解的路径问题,每一组待求解的路径问题包括两个子问题:(S,HIi)与Ov t);其中,I ^ i ^ η ; 基于欧氏距离的Α*算法,并结合多核异步并行计算η组不同的路径问题,获得2η段路径结果; 计算2η段路径结果之间的相交点,每两个交点之间若有一条以上的路径,则只保留最短的一条,最终获得一条从起点s到终点t的近似最短路径。2.根据权利要求1所述的方法,其特征在于,所述A*算法的估值函数系数设置为大于I的值。
【专利摘要】本发明公开了一种多核平台上的路网近似最短路径计算方法,该方法包括:根据多核平台处理器核心的个数2n,从地图信息中估计给定起点s和终点t的最短路径中可能经过的n个不同的节点mi,从而获得n组待求解的路径问题,每一组待求解的路径问题包括两个子问题:(s,mi)与(mi,t);其中,1≤i≤n;基于欧氏距离的A*算法,并结合多核异步并行计算n组不同的路径问题,获得2n段路径结果;计算2n段路径结果之间的相交点,每两个交点之间若有一条以上的路径,则只保留最短的一条,最终获得一条从起点s到终点t的近似最短路径。采用本发明公开的方法,可充分利用多核资源进行最短路径计算,同时,还可以提高计算结果的精确度。
【IPC分类】G06F17/50
【公开号】CN104933248
【申请号】CN201510334047
【发明人】孙广中, 孙经纬, 詹石岩, 刘惠民
【申请人】中国科学技术大学
【公开日】2015年9月23日
【申请日】2015年6月16日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1