CN111552844B - 一种求解大规模多段图最短路径的分布式方法 - Google Patents

一种求解大规模多段图最短路径的分布式方法 Download PDF

Info

Publication number
CN111552844B
CN111552844B CN202010329809.4A CN202010329809A CN111552844B CN 111552844 B CN111552844 B CN 111552844B CN 202010329809 A CN202010329809 A CN 202010329809A CN 111552844 B CN111552844 B CN 111552844B
Authority
CN
China
Prior art keywords
vertex
turning
taking
shortest path
cyclic variable
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
Application number
CN202010329809.4A
Other languages
English (en)
Other versions
CN111552844A (zh
Inventor
崔焕庆
刘瑞雪
许少华
张峰
魏永山
徐强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University of Science and Technology
Original Assignee
Shandong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University of Science and Technology filed Critical Shandong University of Science and Technology
Priority to CN202010329809.4A priority Critical patent/CN111552844B/zh
Publication of CN111552844A publication Critical patent/CN111552844A/zh
Application granted granted Critical
Publication of CN111552844B publication Critical patent/CN111552844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种求解大规模多段图最短路径的分布式方法,属于计算机技术领域。包括如下步骤:多段图划分;各部分子图求部分最短路径;各计算节点通信求多段图最短路径。本发明相较于单机求解算法,能够使用分布式系统处理更大规模的多段图数据;相较于已有的分布式求解算法,满足负载均衡的要求并最小化通信开销。

Description

一种求解大规模多段图最短路径的分布式方法
技术领域
本发明属于计算机技术领域,具体涉及一种求解大规模多段图最短路径的分布式方法。
背景技术
最短路径问题是图论中的一个经典问题,旨在寻找图中一对顶点之间的最短路径。多段图是一类特殊的加权有向图,图中的顶点分为至少两个不相交的集合(称为阶段),其中第一个和最后一个阶段有且仅有1个顶点,分别称为源点和汇点,图中边只能从前一阶段的顶点指向后一阶段的顶点。很多工程应用中的实际问题都可以建模为多段图,所以其应用十分广泛。
随着多段图规模的不断增大,单机算法既无法存储所有的多段图数据,也无法实现最短路径的求解。此时,分布式算法成为必选。
分布式算法是将图数据尽量均衡地分配到计算机集群的计算节点上,然后各个计算节点并行计算本机上结果,再汇总各个部分结果得到最终结果。目前,已经提出了并行Dijkstra算法、并行Floyd算法、基于ball string模型的并行算法、Δ-Stepping并行算法等,这些方法虽然也适用于于多段图,但是没有充分利用多段图的特点,通信量过大,计算效率低。
发明内容
针对现有技术中存在的上述技术问题,本发明提出了一种求解大规模多段图最短路径的分布式方法,设计合理,克服了现有技术的不足,具有良好的效果。
为了实现上述目的,本发明采用如下技术方案:
一种求解大规模多段图最短路径的分布式方法,用|A|表示集合A中元素的个数;用
Figure BDA0002464528940000014
表示不大于a的最大整数,多段图是一个加权有向图G=(V,E,W),其中:
(1)
Figure BDA0002464528940000013
是顶点集合,满足/>
Figure BDA0002464528940000011
其中Vi是第i个阶段的顶点集合,m为阶段个数;
(2)Vi={vi,j|j=1,2,…,ni},其中ni=|Vi|表示第i个阶段的顶点个数;
(3)E={〈vi,j,vi+1,k>|i=1,2,…,m-1;j=1,2,…,ni;k=1,2,…,ni+1}是边集合;
(4)W={wi,j,i+1,k|i=1,2,…,m-1;j=1,2,…,ni;k=1,2,…,ni+1}是权重集合,wi,j,i+1,k是〈vi,j,vi+1,k〉的权重;
(5)V1={v1,1},Vm={vm,1},v1,1和vm,1分别称为源点和汇点;
Figure BDA0002464528940000012
表示每个计算节点能够存储的边的最大数量;
具体步骤如下:
步骤1:执行如下步骤,对多段图进行划分:
步骤1.1:取当前计算节点编号p=1,当前边的总数量Sum=0,循环变量i=1,第p个计算节点CNp存储的第一个阶段编号sp=i;
步骤1.2:取阶段i至阶段(i+1)的边集合Ei={<vi,j,vi+1,k>|j=1,2,…,ni;k=1,2,…,ni+1};
步骤1.3:取Sum=Sum+|Ei|,若
Figure BDA00024645289400000213
则将Ei中所有边分配到计算节点CNp中,取CNp存储的最后一个阶段ep=i+1,并继续下一步,否则转步骤1.5;
步骤1.4:取i=i+1;若i≤m-1,转步骤1.2,否则转步骤2;
步骤1.5:取Sum=0,p=p+1,sp=i,转步骤1.3;
步骤2:第l个计算节点CNl(l=1,2,…,p)执行如下步骤求各部分子图的部分最短路径,即所有计算节点并行执行如下步骤:
步骤2.1:对CNl中存储的每个顶点vi,j(i=sl,sl+1,…,el,j=1,2,…,ni),用
Figure BDA0002464528940000021
表示顶点/>
Figure BDA0002464528940000022
到顶点vi,j的最短路径距离,用/>
Figure BDA0002464528940000023
表示顶点/>
Figure BDA0002464528940000024
到顶点vi,j的最短路径上,vi,j的前驱顶点在第(i-1)个阶段的序号;
步骤2.2:对CNl中存储的第一个阶段的每个顶点
Figure BDA0002464528940000025
置/>
Figure BDA0002464528940000026
Figure BDA0002464528940000027
步骤2.3:取循环变量i=sl
步骤2.4:置i=i+1,若i≤el,即CNl中存储的最后一个阶段的编号,转下一步,否则转步骤2.11;
步骤2.5:取循环变量j=0;
步骤2.6:置j=j+1,若j≤ni,即不大于Vi中最后一个顶点的编号,转下一步,否则转步骤2.4;
步骤2.7:取循环变量k=0;
步骤2.8:置k=k+1,若
Figure BDA0002464528940000028
即不大于/>
Figure BDA0002464528940000029
中最后一个顶点的编号,转下一步,否则转步骤2.6;
步骤2.9:取
Figure BDA00024645289400000210
步骤2.10:取
Figure BDA00024645289400000211
其中vi-1,q是/>
Figure BDA00024645289400000212
所对应的顶点,转步骤2.8;
步骤2.11:用
Figure BDA0002464528940000031
表示顶点/>
Figure BDA0002464528940000032
到顶点/>
Figure BDA0002464528940000033
的最短路径。取循环变量i=0;
步骤2.12:置i=i+1,若
Figure BDA0002464528940000034
即不大于/>
Figure BDA0002464528940000035
中最后一个顶点的编号,转下一步,否则转步骤2.18;
步骤2.13:取循环变量j=0;
步骤2.14:置j=j+1,若
Figure BDA0002464528940000036
即不大于/>
Figure BDA0002464528940000037
中最后一个顶点的编号,转下一步,否则转步骤2.12;
步骤2.15:取循环变量k=i,循环变量h=el
Figure BDA0002464528940000038
步骤2.16:若h≠sl,转下一步,否则转步骤2.14;
步骤2.17:取
Figure BDA0002464528940000039
h=h-1,/>
Figure BDA00024645289400000310
转步骤2.16;
步骤2.18:CNl中存储的第el阶段的每个顶点
Figure BDA00024645289400000311
产生一个最短路径信息列表/>
Figure BDA00024645289400000312
其中Lenj和Pathj分别表示/>
Figure BDA00024645289400000313
到/>
Figure BDA00024645289400000314
的最短路径的长度和路径;
步骤3:执行如下步骤,通过各计算节点通信来求多段图最短路径:
步骤3.1:参与通信的计算节点编号集合R={1,2,…,p};
步骤3.2:若|R|>1,转下一步,否则转步骤3.6;
步骤3.3:每个计算节点
Figure BDA00024645289400000315
将/>
Figure BDA00024645289400000316
发送给计算节点/>
Figure BDA00024645289400000317
步骤3.4:每个计算节点
Figure BDA00024645289400000318
执行如下步骤:
步骤3.4.1:取循环变量k=0;
步骤3.4.2:置k=k+1,若
Figure BDA00024645289400000319
即不大于/>
Figure BDA00024645289400000320
中最后一个顶点的编号;置临时变量/>
Figure BDA00024645289400000321
即空集,转下一步,否则转步骤3.5;
步骤3.4.3:取循环变量j=0;
步骤3.4.4:置j=j+1,若
Figure BDA00024645289400000322
即不大于/>
Figure BDA00024645289400000323
中最后一个顶点的编号,转下一步,否则转步骤3.4.10;
步骤3.4.5:取循环变量g=0;
步骤3.4.6:置g=g+1,若
Figure BDA00024645289400000324
转下一步,否则转步骤3.4.4;
步骤3.4.7:取循环变量h=0;
步骤3.4.8:置h=h+1,若
Figure BDA0002464528940000041
转下一步,否则转步骤3.4.6;
步骤3.4.9:若
Figure BDA0002464528940000042
的最后一个顶点与/>
Figure BDA0002464528940000043
的第一个顶点相同,置/>
Figure BDA0002464528940000044
转步骤3.4.8;
步骤3.4.10:置
Figure BDA0002464528940000045
取循环变量g=0;
步骤3.4.11:置g=g+1,若
Figure BDA0002464528940000046
即不大于/>
Figure BDA0002464528940000047
中最后一个顶点的编号,转下一步,否则转步骤3.4.2;
步骤3.4.12:
Figure BDA0002464528940000048
其中/>
Figure BDA0002464528940000049
且为以/>
Figure BDA00024645289400000410
为起点、以/>
Figure BDA00024645289400000411
为终点的所有路径的最短路径,转步骤3.4.11;
步骤3.5:所有计算节点完成步骤3.4后,置
Figure BDA00024645289400000412
转步骤3.2;
步骤3.6:计算节点CNp的顶点vm,1中所存储的SPLm,1即为结果,其中SPLm,1.Len是最短路径长度,SPLm,1.Path是最短路径。
本发明所带来的有益技术效果:
(1)相较于单机求解算法,此算法能够使用分布式系统处理更大规模的多段图数据。
(2)相较于已有的分布式求解算法,满足负载均衡的要求并最小化通信开销。
附图说明
图1为本发明方法的流程图。
图2为多段图划分阶段子流程图。
图3为求多段图部分最短路子流程图。
图4为各计算节点通信子流程图。
图5为多段图实例图。
图6为多段图划分结果示意图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
本方法涉及到多个符号表示,我们按出现顺序概述了符号所代表的含义,如表1所示:
表1
Figure BDA00024645289400000413
Figure BDA0002464528940000051
具体实施步骤将结合图5给出的多段图实例进行详细展开。
首先,根据步骤1对多段图进行划分。根据步骤1.1和1.2,初始化p=1,Sum=0,i=1,s1=1,取多段图第1阶段所有边。
根据步骤1.3,第1阶段所有边数量之和|E1|=3,则Sum=3。设每个计算节点的最大负载
Figure BDA0002464528940000052
为15条边,则Sum≤C,将第1阶段的边全部分配到计算节点CN1上,取e1=2。
根据步骤1.4,多段图共9个阶段,则m=9,取i=2,因i≤8,则取第2阶段所有边,即|E2|=7,Sum值更新为10,即第1阶段3条边加第二阶段7条边,因10<15,将第2阶段的出边全部分配到计算节点CN1上,更新e1=3。再取i=3,满足i≤8,取第3阶段所有边,即|E3|=7,Sum=17,因17>15,则转步骤1.5。
根据步骤1.5,重置Sum=0,取p=2,s2=3,转步骤1.3更新Sum值为7,因7<15,将第3阶段的所有边分配到计算节点CN2上,取e2=4。转步骤1.4取i=4,满足i≤8,取第4阶段所有边,即|E4|=5,更新Sum值为12,因12<15,将第4阶段的所有边分配到计算节点CN2上,更新e2=5。按此一直循环得到第5阶段和第6阶段的12条边全部分配到计算节点CN3上,s3=5,e3=7;第7阶段和第8阶段的8条边全部分配到计算节点CN4上,s4=7,e3=9。最后分配结果如图6所示。
然后,根据步骤2,每个计算节点计算各个子图的部分最短路径。根据步骤2.1到2.8,4个计算节点并行执行,计算节点CN1上置i=2,j=1,k=1,计算节点CN2上置i=4,j=1,k=1,计算节点CN3上置i=6,j=1,k=1,计算节点CN4上置i=8,j=1,k=1。
根据步骤2.9和2.10,各个计算节点上取
Figure BDA0002464528940000061
即计算节点CN1上/>
Figure BDA0002464528940000062
转步骤2.8后计算节点CN1上取k=2,因n1=1,不满足k≤n1,转步骤2.6循环两次,得到/>
Figure BDA0002464528940000063
因j=4,n2=3,不满足j≤n2,转步骤2.4循环四次,得到/>
Figure BDA0002464528940000064
Figure BDA0002464528940000065
其他三个计算节点与计算节点CN1同理得到/>
Figure BDA0002464528940000066
和/>
Figure BDA0002464528940000067
四个计算节点结果如下:
Figure BDA0002464528940000068
CN1计算结果
Figure BDA0002464528940000069
CN2计算结果
Figure BDA00024645289400000610
CN3计算结果
Figure BDA00024645289400000611
CN4计算结果
根据步骤2.11到2.15,4个计算节点并行执行,计算节点CN1上取k=1,h=3,
Figure BDA00024645289400000612
计算节点CN2上取k=1,h=5,/>
Figure BDA00024645289400000613
计算节点CN3上取k=1,h=7,/>
Figure BDA0002464528940000071
计算节点CN4上取k=1,h=9,/>
Figure BDA0002464528940000072
根据步骤2.16到2.17,因计算节点CN1满足h≠s1,则取
Figure BDA0002464528940000073
h=2,
Figure BDA0002464528940000074
转步骤2.16后仍满足h≠s1,取/>
Figure BDA0002464528940000075
h=1,/>
Figure BDA0002464528940000076
再转步骤2.16后不满足h≠s1,则转步骤2.14取j=2,不满足/>
Figure BDA0002464528940000077
则转步骤2.12后再同上循环3次,得到/>
Figure BDA0002464528940000078
同理求得其他3个计算节点上各自sp。
根据步骤2.18求得4个计算节点上最大阶段各个点最短路径信息列表,计算节点CN1上得到:
SPL3,1={(8,{v1,1,v2,2,v3,1})}
SPL3,2={(9,{v1,1,v2,2,v3,2})}
SPL3,3={(7,{v1,1,v2,3,v3,3})}
SPL3,4={(7,{v1,1,v2,2,v3,4})}
计算节点CN2上得到:
SPL5,1={(9,{v3,1,v4,2,v5,1}),(8,{v3,2,v4,2,v5,1}),(8,{v3,3,v4,2,v5,1})}
SPL5,2={(8,{v3,1,v4,1,v5,2}),(5,{v3,2,v4,1,v5,2}),(11,{v3,4,v4,3,v5,2})}
SPL5,3={(15,{v3,1,v4,2,v5,3}),(11,{v3,2,v4,3,v5,3}),(14,{v3,3,v4,2,v5,3}),(12,{v3,4,v4,3,v5,3})}
计算节点CN3上得到:
SPL7,1={(10,{v5,1,v6,1,v7,1}),(11,{v5,2,v6,1,v7,1}),(6,{v5,3,v6,1,v7,1})}
SPL7,2={(9,{v5,1,v6,2,v7,2}),(11,{v5,2,v6,2,v7,2}),(9,{v5,3,v6,1,v7,2})}
SPL7,3={(8,{v5,1,v6,2,v7,3}),(10,{v5,2,v6,1,v7,3}),(5,{v5,3,v6,2,v7,3})}
SPL7,4={(5,{v5,1,v6,2,v7,4}),(8,{v5,2,v6,2,v7,4}),(10,{v5,3,v6,2,v7,4})}
计算节点CN4上得到:
SPL9,1={(12,{v7,1,v8,1,v9,1}),(11,{v7,2,v8,2,v9,1}),(12,{v7,3,v8,1,v9,1}),(12,{v7,4,v8,1,v9,1})}
最后,根据步骤3计算最终结果。根据步骤3.1和3.2,置R={1,2,3,4},因|R|=4,满足|R|>1,则转步骤3.3,计算节点CN1将SPL3,1,SPL3,2,SPL3,3,SPL3,4发送给计算节点CN2,同时计算节点CN3将SPL7,1,SPL7,2,SPL7,3,SPL7,4发送给计算节点CN4
根据步骤3.4.1至3.4.8,计算节点CN2和CN4分别置
Figure BDA0002464528940000079
取k=j=g=h=1。
根据步骤3.4.9到3.4.12,SPL3,1.Path1的终点v3,1与SPL5,1.Path1的起点v3,1相同,所以置SPL′5,1={(17,{v1,1,v2,2,v3,1,v4,2,v5,1})},步骤3.4.9再循环3次无匹配,转步骤3.4.6后取g=2,因|SPL3,1|=1,不满足g≤|SPL3,1|,则转步骤3.4.4取j=2,当循环到h=2时,SPL3,2.Path1的终点v3,2与SPL5,1.Path2的起点v3,2相同,所以置SPL′5,1={{(17,{v1,1,v2,2,v3,1,v4,2,v5,1}),(17,{v1,1,v2,2,v3,2,v4,2,v5,1})};
步骤3.4.4同理再循环2次得到SPL′5,1
{(17,{v1,1,v2,2,v3,1,v4,2,v5,1}),(17,{v1,1,v2,2,v3,2,v4,2,v5,1}),(15,{v1,1,v2,3,v3,3,v4,2,v5,1})},当j=5,n3=4,不满足j≤n4,则转步骤3.4.10至3.4.12,置
Figure BDA0002464528940000081
g=1,在SPL′5,1中选取以v1,1为起点、以v5,1为终点的所有路径的最短路径,更新SPL5,1={(15,{v1,1,v2,3,v3,3,v4,2,v5,1})},转步骤3.4.11后不满足g≤n1,则转步骤3.4.2后再按上述步骤原理循环2次,得到SPL5,2={(14,{v1,1,v2,2,v3,2,v4,1,v5,2})},SPL5,3={(19,{v1,1,v2,2,v3,4,v4,3,v5,3})}。
同理计算节点CN3与CN4进行通信后得SPL9,1
{(17,{v5,1,v6,2,v7,4,v8,1,v9,1}),(20,{v5,2,v6,2,v7,4,v8,1,v9,1}),(17,{v5,3,v6,2,v7,3,v8,1,v9,1})}。
根据步骤3.5,置R={2,4},转步骤3.2后与第一次通信同理。最后根据步骤3.6得到SPL9,1={(32,{v1,1,v2,3,v3,3,v4,2,v5,1,v6,2,v7,4,v8,1,v9,1})},表示最短路径长度为32,最短路径为{v1,1,v2,3,v3,3,v4,2,v5,1,v6,2,v7,4,v8,1,v9,1}。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (1)

1.一种求解大规模多段图最短路径的分布式方法,其特征在于:用|A|表示集合A中元素的个数;用
Figure QLYQS_1
表示不大于a的最大整数,多段图是一个加权有向图G=(V,E,W),其中:
(1)
Figure QLYQS_2
是顶点集合,满足/>
Figure QLYQS_3
其中Vi是第i个阶段的顶点集合,m为阶段个数;
(2)Vi={vi,j|j=1,2,…,ni},其中ni=|Vi|,表示第i个阶段的顶点个数;
(3)E={<vi,j,vi+1,k>|i=1,2,…,m-1;j=1,2,…,ni;k=1,2,…,ni+1}是边集合;
(4)W={wi,j,i+1,k|i=1,2,…,m-1;j=1,2,…,ni;k=1,2,…,ni+1}是权重集合,wi,j,i+1,k是<vi,j,vi+1,k>的权重;
(5)V1={v1,1},Vm={vm,1},v1,1和vm,1分别称为源点和汇点;
以c表示每个计算节点能够存储的边的最大数量;
具体步骤如下:
步骤1:执行如下步骤,对多段图进行划分:
步骤1.1:取当前计算节点编号p=1,当前边的总数量Sum=0,循环变量i=1,第p个计算节点CNp存储的第一个阶段编号sp=i;
步骤1.2:取阶段i至阶段(i+1)的边集合Ei={<vi,j,vi+1,k>|j=1,2,…,ni;k=1,2,…,ni+1};
步骤1.3:取Sum=Sum+|Ei|,若Sum<c,则将Ei中所有边分配到计算节点CNp中,取CNp存储的最后一个阶段编号ep=i+1,并继续下一步,否则转步骤1.5;
步骤1.4:取i=i+1;若i≤m-1,转步骤1.2,否则转步骤2;
步骤1.5:取Sum=0,p=p+1,sp=i,转步骤1.3;
步骤2:所有计算节点并行执行如下步骤求所存储子图的部分最短路径,对第l个计算节点CNl(l=1,2,…,p),步骤如下:
步骤2.1:对CNl中存储的每个顶点vi,j(i=sl,sl+1,…,el,j=1,2,…,ni),用
Figure QLYQS_4
表示顶点/>
Figure QLYQS_5
到顶点vi,j的最短路径长度,用/>
Figure QLYQS_6
表示顶点/>
Figure QLYQS_7
到顶点vi,j的最短路径上,vi,j的前驱顶点在第(i-1)个阶段的编号;
步骤2.2:对CNl中存储的第一个阶段的每个顶点
Figure QLYQS_8
置/>
Figure QLYQS_9
Figure QLYQS_10
步骤2.3:取循环变量i=sl
步骤2.4:置i=i+1,若i≤el,即不大于CNl中存储的最后一个阶段的编号,转下一步,否则转步骤2.11;
步骤2.5:取循环变量j=0;
步骤2.6:置j=j+1,若j≤ni,即不大于Vi中最后一个顶点的编号,转下一步,否则转步骤2.4;
步骤2.7:取循环变量k=0;
步骤2.8:置k=k+1,若
Figure QLYQS_11
即不大于/>
Figure QLYQS_12
中最后一个顶点的编号,转下一步,否则转步骤2.6;
步骤2.9:取
Figure QLYQS_13
步骤2.10:取
Figure QLYQS_14
其中vi-1,q是/>
Figure QLYQS_15
所对应的顶点,转步骤2.8;
步骤2.11:用
Figure QLYQS_16
表示顶点/>
Figure QLYQS_17
到顶点/>
Figure QLYQS_18
的最短路径,取循环变量i=0;
步骤2.12:置i=i+1,若
Figure QLYQS_19
即不大于/>
Figure QLYQS_20
中最后一个顶点的编号,转下一步,否则转步骤2.18;
步骤2.13:取循环变量j=0;
步骤2.14:置j=j+1,若
Figure QLYQS_21
即不大于/>
Figure QLYQS_22
中最后一个顶点的编号,转下一步,否则转步骤2.12;
步骤2.15:取循环变量k=i,循环变量h=el
Figure QLYQS_23
步骤2.16:若h≠sl,转下一步,否则转步骤2.14;
步骤2.17:取
Figure QLYQS_24
h=h-1,/>
Figure QLYQS_25
转步骤2.16;
步骤2.18:CNl中存储的第el阶段的每个顶点
Figure QLYQS_26
产生一个最短路径信息列表/>
Figure QLYQS_27
其中Lenj和Pathj分别表示/>
Figure QLYQS_28
到/>
Figure QLYQS_29
的最短路径的长度和路径;
步骤3:执行如下步骤,通过各计算节点通信来求多段图最短路径:
步骤3.1:参与通信的计算节点编号集合R={1,2,…,p};
步骤3.2:若|R|>1,转下一步,否则转步骤3.6;
步骤3.3:每个计算节点
Figure QLYQS_30
将/>
Figure QLYQS_31
发送给计算节点/>
Figure QLYQS_32
步骤3.4:每个计算节点
Figure QLYQS_33
执行如下步骤:
步骤3.4.1:取循环变量k=0;
步骤3.4.2:置k=k+1,若
Figure QLYQS_34
即不大于/>
Figure QLYQS_35
中最后一个顶点的编号;置临时变量
Figure QLYQS_36
即空集,转下一步,否则转步骤3.5;
步骤3.4.3:取循环变量j=0;
步骤3.4.4:置j=j+1,若
Figure QLYQS_37
即不大于/>
Figure QLYQS_38
中最后一个顶点的编号,转下一步,否则转步骤3.4.10;
步骤3.4.5:取循环变量g=0;
步骤3.4.6:置g=g+1,若
Figure QLYQS_39
转下一步,否则转步骤3.4.4;
步骤3.4.7:取循环变量h=0;
步骤3.4.8:置h=h+1,若
Figure QLYQS_40
转下一步,否则转步骤3.4.6;
步骤3.4.9:若
Figure QLYQS_41
的最后一个顶点与/>
Figure QLYQS_42
的第一个顶点相同,置/>
Figure QLYQS_43
转步骤3.4.8;
步骤3.4.10:置
Figure QLYQS_44
取循环变量g=0;
步骤3.4.11:置g=g+1,若
Figure QLYQS_45
即不大于/>
Figure QLYQS_46
中最后一个顶点的编号,转下一步,否则转步骤3.4.2;
步骤3.4.12:
Figure QLYQS_47
其中/>
Figure QLYQS_48
目为以/>
Figure QLYQS_49
为起点、以/>
Figure QLYQS_50
为终点的所有路径的最短路径,转步骤3.4.11;
步骤3.5:所有计算节点完成步骤3.4后,置
Figure QLYQS_51
转步骤3.2;
步骤3.6:计算节点CNp的顶点vm,1中所存储的SPLm,1即为结果,其中SPLm,1.Len是最短路径长度,SPLm,1.Path是最短路径。
CN202010329809.4A 2020-04-24 2020-04-24 一种求解大规模多段图最短路径的分布式方法 Active CN111552844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010329809.4A CN111552844B (zh) 2020-04-24 2020-04-24 一种求解大规模多段图最短路径的分布式方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010329809.4A CN111552844B (zh) 2020-04-24 2020-04-24 一种求解大规模多段图最短路径的分布式方法

Publications (2)

Publication Number Publication Date
CN111552844A CN111552844A (zh) 2020-08-18
CN111552844B true CN111552844B (zh) 2023-07-04

Family

ID=72005768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010329809.4A Active CN111552844B (zh) 2020-04-24 2020-04-24 一种求解大规模多段图最短路径的分布式方法

Country Status (1)

Country Link
CN (1) CN111552844B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114861970A (zh) * 2022-03-21 2022-08-05 北京化工大学 有限资源下大规模图的全源最短路径分治求解方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631094B1 (en) * 2008-08-08 2014-01-14 Google Inc. Distributed parallel determination of single and multiple source shortest paths in large directed graphs
CN108449268A (zh) * 2018-02-08 2018-08-24 四川速宝网络科技有限公司 对等网络中点到点最短路径计算系统
CN109033191A (zh) * 2018-06-28 2018-12-18 山东科技大学 一种面向大规模幂律分布图的分割方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120250535A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation Hub label based routing in shortest path determination
US10521473B2 (en) * 2012-05-21 2019-12-31 Kent State University Shortest path computation in large networks
US9116738B2 (en) * 2012-11-13 2015-08-25 International Business Machines Corporation Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631094B1 (en) * 2008-08-08 2014-01-14 Google Inc. Distributed parallel determination of single and multiple source shortest paths in large directed graphs
CN108449268A (zh) * 2018-02-08 2018-08-24 四川速宝网络科技有限公司 对等网络中点到点最短路径计算系统
CN109033191A (zh) * 2018-06-28 2018-12-18 山东科技大学 一种面向大规模幂律分布图的分割方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Distributed Shortest Path Algorithms;R. G. Gallager;Open Problems in Communication and Computation;123-124 *
K最短路径算法综述;徐涛 等;计算机工程与设计(第11期);3900-3906 *
双重并行环境下最短路径的研究;孙玉强 等;计算机测量与控制(第03期);195-196 *
求解大规模稀疏有向图回路的多线程并行算法;牛健 等;山东科技大学学报(自然科学版)(第02期);32-38 *

Also Published As

Publication number Publication date
CN111552844A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
Jiang et al. Efficient network architecture search via multiobjective particle swarm optimization based on decomposition
Wang et al. Stability of recurrent neural networks with time-varying delay via flexible terminal method
CN109840154B (zh) 一种移动云环境下基于任务依赖的计算迁移方法
CN109299781A (zh) 基于动量和剪枝的分布式深度学习系统
CN112784968A (zh) 一种加速分布式深度神经网络训练的混合流水线并行方法
CN106684885B (zh) 基于多场景分析的风电机组配电网无功优化方法
CN112700060A (zh) 站所终端负荷预测方法和预测装置
CN111552844B (zh) 一种求解大规模多段图最短路径的分布式方法
CN114489061A (zh) 一种基于鲸鱼优化算法的平滑路径规划方法
CN106843997A (zh) 一种基于Spark与优化MBBO算法的并行虚拟机聚合方法
CN103679564B (zh) 一种用于配电网拓扑分析分布式计算的任务分配方法
Gao et al. A hybrid harmony search algorithm for the no-wait flow-shop scheduling problems
CN107276896A (zh) 改进迪杰斯特拉算法的两点间最短路径搜索方法
Zhou et al. Research on optimal path based on Dijkstra algorithms
CN107480096B (zh) 一种大规模群体仿真中的高速并行计算方法
CN116883229A (zh) 异构gpu集群中加速神经网络训练的流水线并行方法
CN108197186B (zh) 一种应用于社交网络中的动态图匹配查询方法
CN113191486B (zh) 基于参数服务器架构的图数据与参数数据的混合划分方法
CN114977189A (zh) 一种基于DistFlow线性潮流的配电网潮流计算方法及系统
CN114386593A (zh) 基于改进粒子群算法和动态步长神经网络处理tsp问题的方法
CN114386322A (zh) 一种基于蜻蜓算法的含分布式电源的配电网无功优化方法
Ezhilarasi et al. Network decomposition using evolutionary algorithms in power systems
Gál et al. Modified bacterial memetic algorithm used for fuzzy rule base extraction
CN112183843A (zh) 一种基于混合智能算法的火电厂负荷优化分配方法
Ren et al. Improved artificial bee colony algorithm based on Cauchy OBL

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant