搜索
您的当前位置:首页基于并行计算的大规模图多源最短路径算法设计

基于并行计算的大规模图多源最短路径算法设计

来源:飒榕旅游知识分享网
2O17年笫4 总; 185 基于并行计算的大规模图多源最短路径算法设计 万一红徐常福 (江西财经大学软件与通信 程学院,江西南昌330032) 摘要:大数据时代的到来,社交网络、交通网络等抽象的图结构的规模也越来越大,面对数据量大、结构复杂的 图数据的最短路径计算,原始的最短路径算法已经不再适用,数据的并行化处理是大规模图计算较为常用的方 法。在实际应用中往往需要计算任意两点问的最短路径,因此多源最短路径算法的研究是有意义的。本文参考 Floyd算法思想,提出一个并行处理的大规模图多源最短路径算法,该算法将图中节点与边的关系抽象为矩阵, 再通过矩阵分割的方式,将超大规模的矩阵切分为多个子矩阵进行并行处理,减少最短路径计算中算法迭代时 间复杂度以提高算法的执行效率。 关键词:多源最短路径;并行计算;矩阵分割 中图分类号:TP301 文献标识码:A 文章编号:1671—4792(2017)4.0068 05 All-pair Shortest Path Algorithm Based on Parallel Computing Wan Yihong Xu Changfu (School ofSoftware and Communication Engineering,Jiangxi University ofFinance and Economics, Jiangxi Nanchang 330032) Abstract:In the era of big data,graph structures such as social network and transportation network are becoming in- creasingly large.At present,graph data are in great amount and original shortest path algorithms are no longer appro— priate.Parallel processing is a common method for large—scale graph calculation.In actual application,we need to compute the shortest path between any two points,and,therefore,the study of multi-SOUl ̄Ce shortest path algorithm makes sense.In this paper,referring to the main idea of Floyd algorithm,we present a parallel multi—source shortest path algorithm for large・scale graph.This calculation abstracts the relationship between nodes and edges in the graph as a matrix,divides the large matrix into several sub-matrices and processes them in paralle1.It can reduce the itera— tion time complexity,improving the eficifency ofthe algorithm. Keywords:Multi-source Shortest Path;Parallel Computing;Matrix Partition 0引言 等。 最短路径问题是图论中比较经典的问题。随着 最基础的最短路径是研究单源最短路径,也就 是研究网络中从某个源节点到所有节点的最短路 径。单源最短路径算法中Dijkstra算法【6J是比较经典 现代科技的迅速发展,最短路径的应用场景多种多 样,应用十分广泛。近年来比较热门的交通网络、汽 车导航的最短路径【I-3】,以及社会网络分析的运用 、 路由算法的研究[5】等。最短路径的研究是为了求解许 多问题的最高效率问题,它不仅仅是字面意义上的 路径最短,还可以是时间最少、开销最少、性能最优 一的,对于计算一个带权图,该算法可以在0((M+N) log_N)时间完成一个节点到其他所有节点的最短路 径的计算。近期,许多学者在对单源最短路径的求解 上有了新的改进,文献f7 11]提出了在不同数据集下 68一 的单源最短路径计算算法。然而只求得单源最短路 径不能满足需求,求多源最短路径的算法应运而生。 Floyd算法是比较经典的多源最短路径算法,它被 大量用在解决所有节点的最短路径问题。Floydt 用 j n}。 定义2将路径的权值集合w用n×n的矩阵 表示,即: 2 三个嵌套循环遍历这些节点来计算所有节点中的最 优路径,这很容易使用程序循环来实现。另一种求 解多源最短路径的方法是重复使用单源最短路径算 法。源节点顺序得沿着节点列表来变化,并行计算当 W= W22 ●●● ●●● 前源节点的单源最短路径。这种方法可以很好的实 现并行化计算,每一个源节点路径的计算都可以通 过一个或多个处理器来执行,它的算法时间复杂度 与Floyd算法相似,但是它与Floyd算法的最大差 别是,Floyd算法适合于节点密集的网络中,重复使 用单源最短路径算法适合于稀疏的网络节点中,例 如交通运输网络。 大数据时代的到来,网络中的数据庞大且类型 复杂,使原有的传统最短路径算法不再适用。对于 ,,,J...........。。,,.,.....。。。..... 大规模图的处理,近几年用的最多的方法是并行化 ~ 处理,将大规模图切分成多个子图并交给多个处理 节点并行计算,以加快算法的求解速度。目前大规 ● ● ● ● ● ● ● ● 模图最短路径求解的算法有许多不足,首先,对大规 模图的多源最短路径算法的研究文献较少,.~ 但实际 应用中很多情况需要求解图的多源最短路径。其次, 图计算中算法执行效率受算法的迭代次数影响,过 多的迭代计算不仅降低了算法的执行效率,而且迭 代过程中产生的中间结果保留在内存中占用了宝贵 的内存资源。根据这两点,本文提出一个减少算法 迭代次数的大规模图并行多源最短路径算法。 1任务模型 在详细描述本算法前,先对以下几个概念进行 定义。 定义1带权有向图G=(V,E,W),其中V表示 节点集,V={v ,V2,…,Vn},E表示路径集,E={vivj[i# j,ls i,j n),、,ivj表示有序节点<v ,v_i>相关联的路 径,w表示每条路径的权值集合,W={wijli#J,l i, 用矩阵可以表示任意两点间的路径的权值,并 且通过矩阵变换,可以求得任意两点问的最短路径 的权值。 路径的权值矩阵w的第i行的元素都是由节 点Vi出发。如果 和vi之间有相连的路径,则给第i 行第J列的元素w 赋值,且Wii的大小为vi到V_i的 路径的和。路径的权值矩阵的定义形式为:对角线的 值为0,表示节点vi到节点vi的路径为0;w i的值无 穷大,表示节点 到节点vj没有路径相连;w ∈(0, +o。),表示节点 到节点vj有路径相连,且路径的 权值为w日,表示如下: l0 ,i= ,={oO , 与v,不可达 (2) l其他,v,- ̄v 有路径 定义3权值矩阵w以<Vi,vj,wii>三元组的形 式存储在一个文本文件中,wii=0不记录。 定义4最短路径是vi到vj的各通路中路径的 权值的和为最小的通路。 定义5路径的权值矩阵w的第i行的元素都 是由节点v 出发,定义mx n维矩阵可计算范围内 的节点集合V—fv 10<i ̄n}。 2最短路径并行计算 前文我们将节点以图结构的形式表示,并完成 了对最短路径的权值矩阵的描述。接下来我们要运 用最短路径并行算法,求得任意节点间的最短路径。 2.1算法思想 本算法计算大规模图的多源最短路径,图数据 以矩阵的形式存储,在Floyd算法动态规划的思想 一69一 上,对矩阵进行先切分再连接的并行计算。 是按行切分矩阵的方法,将原矩阵切分为k个Ix n 本算法将节点路径图用带权有向图G={V,E, w}表示,节点路径的权值用n×n维的矩阵w表示。 维的子矩阵。其中厂l0 ]:ll 孚l‘  I。 算法的步骤如下: 第二点,矩阵分割后丢失的信息。南于路径的权 第一步,矩阵分割,将矩阵w按行平均分割成 值矩阵w的第i行的元素都是由节点vi出发,所以分 k个lx n维的子矩阵。 割后的子矩阵只保留了由节点v 到v,+ 出发的路径。 第二步,子矩阵多源最短路径计算,运用多台计 第j点,矩阵分割后的优点。这是一种“分而治 算机并行计算子矩阵可计算范同内的任意节点的最 之”的方式,将大型的矩阵分割为若干个子矩阵,就 短路径,得到部分节点的最短路径的权值矩阵。 可以使用多台计算机同时计算这些子矩阵,因此在 第■步,迭代求解最优路径。将子矩阵两两合 子矩阵中最短路径的迭代计算可以并行执行。 并,得到新的子矩阵,再对新的子矩阵做计算,此处 矩阵分割的具体方法如下: 的子矩阵计算不同于第二步,权值矩阵中只有部分 设路径的权值矩阵为: 数据需要更新,得到新的部分节点的最短路径的权 值矩阵,第一步这个过程称为一次迭代计算。 第四步,重复第j步的过程,直到迭代计算完 :I t 成。迭代计算完成的标志是子矩阵迭代计算的次数 Il…  达到算法的预设值。算法基本流程如图一所示。 f 。 将矩阵w按行分割为大小相同的k个子矩阵。 将w按行分割,使得W={W ,W2,…,WklI(= ~ l■I广 1 =2 },k表示切分的子矩阵个数,l表示子矩阵行 数, 为lx n阶矩阵。w切分后的子矩阵为: f 跃( —1)}l W{f 一1))2 W{』x(i—l I .1)+1)1 W{txo-ml}2 ,×( 1)+l (3) :w{J 一1)+J}1 w{f×(j。)+j)2 w{J ̄ ̄i-1)+伽 是 Wi={wr ̄lP#qllx(i一1)≤p≤lx(i~1)十l,1s q≤n},1≤i k 图一算法摹本流程 2.2矩阵分割 矩阵分割的过程中,我们需要讨论三点:第一 则 :●  点,矩阵的分割方式;第二点,分割后的子矩阵相比 原矩阵会丢失哪些信息;第三点,矩阵分割的优点。 第一点,矩阵的分割方式。在本算法中,使用的 w 表示在子矩阵Wi中,从节点Vp到节点Vq最 一70一 多经过m个节点的最短路径,0≤m≤n一2。切分后 矩阵wi经过矩阵路径计算后,最初的Wi的值 被覆盖,得到的新矩阵W。描述的就是局部节点的 的路径集合为: Ei={wpqIp≠ql,Ix(i一1)≤p≤≤lx(i—1)+l, 1≤q-<n} (4) 最短路径,wi就是本节要求的局部节点的最短路径 的权值矩阵。 2.4迭代求解最优路径 设定两个参数,参数count记录迭代的次数,子 矩阵合并,并且求解合并后子矩阵的路径称为一次 分割后的子矩阵将交给不同的计算机进行下一 步的计算,子矩阵间的计算是并行执行的。 2.3并行局部路径求解 局部路径的求解就是要找到局部节点的最短路 迭代,参数是预计的合并次数,给count赋初始值, 径的权值矩阵,局部最短路径的求解有两种计算模 型,即首次子矩阵路径最短计算模型与合并后的子 矩阵最短路径计算模型。 首次子矩阵路径最短计算方法与Floyd算法类 似,针对某个子矩阵 ,在矩阵Wi可计算范围内的 节点,如果O<wpq,、Ⅳm< ,矩阵可计算范围内的节 点,说明有一条路径是由节点Vp经过节点v 到达节 点 的,并且这个距离值为、 =、;l,p + 。因为要求的 是Vp经过节点vq到达节点 的最短距离,所以要 针对所有的0<ts n,Ix(i一1) p<l×(i一1)+1迭 代计算求出 ,找到它的最小值,这个过程称为矩 阵路径计算。W试的计算公式如下: Ix(i-1)+1 .w 1)( , +Wqf) ‘5’ 当w w _w 时,要将路径vp、rqVt添加到路径 集合E.中,记录经过了vI的最短路径。 两两合并后的子矩阵最短路径计算,有一部分 数据是不需要更改的,例如1=2,子矩阵w,与子矩 阵w2合并后得到的新矩阵w 中,如式(6)所示, 方框内的值是已经计算完成的,合并后的子矩阵计 算不需要再对它们进行修改。 wl3 w23 2= (6) w33 w34 w43 W44 L, 即count=0。每开始一次迭代count自加1,当 count=T时迭代计算结束。 首先将子矩阵进行第一次两两合并,得到新的 子矩阵,count自加l,即count--O,表示是矩阵的第 一次迭代。矩阵第一次合并后,子矩阵的行数为: I(。。 .D)=2。 ×l(。∞ o) (7) 合并后的子矩阵wi一是一个{l 。 ×(i一1) +l 咄o1)x n维矩阵,矩阵的下标i表示合并后的矩 阵位数,上标count表示是第count次合并后得到的 子矩阵。 合并后的子矩阵为: 酬删}・ 删x(f_I】}2 = w{{ 1 一I)+l 1 1)+82 一 + )1 叫(州一9}2 l删)((¨) 一 )+I (8) ・・ Wr托— )  (H =I) 、 Wj =Wf+ W。+1:{p≠qI 1 n:o)×(i一1) p-l(。 1 0) ×(i一1)+l 。 D),1s q≤11},此时子矩阵的个数为 k=2 个。为了方便之后的迭代计算,完成一次合 后,重新定义矩阵维矩阵{l(c帆毗。)×(i一1)+l 。)}× n,令Wi=w 。 然后,针对合并后的子矩阵W计算wp,t。计算 一71~ 方法为上一节的矩阵局部路径求解。每完成一次迭 代,比较count值。 似算法[J】.软件学报,2011,(1O). 【5】刘莉莉,徐野,无标度的WSNs路由算法研究【J].沈阳 理工大学学报,2016,(06). 若count ̄T,则迭代求解最优路径完成,Wi描 述的就是任意节点间的最短路径,wi是vp到Vq的 任意两点间的最短路径的权值矩阵,p≠q,1≤p, n。 若count>T,则进入下一次迭代求解。 3结束语 图的最短路径计算为网络分析提供了重要的参 考数据,将大规模的图并行化处理,使用多台计算机 同时计算,加快了最短路径算法的执行。将图以文 本的形式存储,以矩阵的逻辑计算可以解决矩阵对 于大规模稀疏图存储占用过多的存储空间的问题, 运用矩阵的逻辑运算,引用Floyd算法的思想,将矩 阵切分并行化计算,将子矩阵中的最短路径的迭代 并行实现,减少了迭代计算的时问,加快了多源最短 路径算法的执行效率。 参考文献 【1]Chun Jiang Zhua,Kam-Yiu Lama,Song Hanb.Approxi・ mate path searching for supporting shortest path queries on roadnetworks.0020—0255/?2015Elsevierlnc.Allrightsreserved. 【21G.Kellaris,K.Moumtidis,Shorte ̄path computation on air indexes,PVLDB3(1)(2010)747-757. 【3】卢照,师军。于海蛟,等.城市路网的最短路径并行求 解【J】.计算机技术 发展,2010,(01). 【4】唐晋韬,王挺,王戟.适合复杂网络分析的最短路径近 一72一 [6]Dijkstra,E.W.A note on two problems in connexion with graphs[J1.Numerische Mathematik,1959,(O1):269—27l, 【7]Chun Jiang Zhua,Kam—YiuLama,SongHanb.Approxi— mate path searchingfor supporting shorte ̄pathqueries on road networks.0020—0255 ̄01 5 Elsevier lne.All rights reserved. 【8]Chun Jiang Zhua,Kam—YiuLama,SongHanb.Approxi— mate path searching for supporting shortest path queries on road networks.0020-0255 ̄01 5 Elsevier Inc.M1 irghts reserved. 【9]Chun Jiang Zhua,Kam-Yiu Lama,Song Hanb.Approxi— matepath searchingfor supportmg shorte ̄path queries on road networks.0020-0255/2015 Elsevier lnc.All irhgts reserved. 【lO]U.Meyer,P.Sanders.Delta-stepping:A parallelizable shortestpathalgorithm[J].J.Mgorithms,2003,49(03):114—152. 【l 1]s.Malekiyz,D.Nguyenx,A.Lenharthx.M.Garzar ̄ny, D.Paduay,K.Pingalix.DSMR:A Parallel Algorithm for Sin— gle—Source Shortest Path Prol ̄lem.ICS’16,June 01—03,2016, Istanbu1.Turkeyc 2016 ACM.ISBN 978—1—4503—4361—9/16/06. 【1 2]Floyd,Robert W.Algorithm 97:Shortest Path【J】.Com— municmions ofthe ACM,1962,5(06). 作者简介 万一红(1993一),女,硕上研究生,主要研究方向:大数 据分析; 徐常福(1991~),男,硕上研究生,主要研究方向:社交 网络分析、软件工程。 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top