CN112116136A - 一种最短路径的生成方法及相关装置 - Google Patents
一种最短路径的生成方法及相关装置 Download PDFInfo
- Publication number
- CN112116136A CN112116136A CN202010921354.5A CN202010921354A CN112116136A CN 112116136 A CN112116136 A CN 112116136A CN 202010921354 A CN202010921354 A CN 202010921354A CN 112116136 A CN112116136 A CN 112116136A
- Authority
- CN
- China
- Prior art keywords
- path
- paths
- result list
- equal
- increment
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012216 screening Methods 0.000 claims abstract description 41
- 238000001914 filtration Methods 0.000 claims description 24
- 230000001174 ascending effect Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 3
- 230000006854 communication Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 2
- 230000010391 action planning Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种最短路径的生成方法及相关装置,该方法首先将边带多个非负权重值的最短路径生成问题简化为边带单个非负权重值的问题,然后根据增量筛选算法,利用有向图中每条边的其他非负权重值对K条候选路径依次进行筛选,以获取K条最终路径,实现了对边带多个非负权重值的问题的解决,且该方法通过增量筛选算法将边带单个非负权重值的最短路径问题还原为边带多个非负权重值的最短路径问题,这个过程中无需引入虚拟节点,避免了引入虚拟节点后图的规模庞大的问题,实现了降低时间复杂度,提高时效性的目的。
Description
技术领域
本申请涉及路径规划技术领域,更具体地说,涉及一种最短路径的生成方法及相关装置。
背景技术
最短路径算法是计算图中一个节点中其他所有节点的最短路径的算法,主要特点是以起点为中心向外层层扩展,直到扩展到终点为止。
最短路径算法在交通运输、通信、机器人动作规划、计算分子生物学以及Huffman编码等领域都有着非常广泛的应用。以通信领域为例,当一个通信网络中包括多个网络设备时,每个网络设备均需以自身为根节点计算自身到其他网络设备的最短路径,从而生成最短路径优先树(Shortest Path First Tree,SPF tree),在通信过程中以最短路径优先树为依据与其他网络设备通信,从而提升通信网络的通信效率。
现有技术中的最短路径算法均只适用于图中的边带单个非负权重值的情形,为了解决图中的边带多个非负权重值的问题,可通过引入虚拟节点将一条边拆分成多条边,从而使得每条边只带单个权重值,进而利用现有的最短路径算法解决边带多个非负权重值的问题。但是这种方式的弊端在于引入虚拟节点后图的规模非常大,使得最短路径的计算过程的时间复杂度很高,往往不能满足时效性的要求。
发明内容
为解决上述技术问题,本申请提供了一种最短路径的生成方法及相关装置,以在解决边带多个非负权重值的问题的基础上,实现降低时间复杂度,提高时效性的目的。
为实现上述技术目的,本申请实施例提供了如下技术方案:
一种最短路径的生成方法,所述最短路径的生成方法包括:
获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个;
根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值;
计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中;
对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
可选的,所述根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径包括:
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,计算所有新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中大于所述增量指标上限的新路径抛弃,将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中小于或等于所述增量指标上限的新路径,以升序的方式插入所述第二结果列表中,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
可选的,所述根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径包括:
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,将所有所述新路径放入待筛选集合中;
计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限,如果否,则将第i条新路径抛弃,在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径;在当第i条新路径不是所述待筛选集合中的最后一条新路径时,令i=i+1,并返回判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限的步骤;
如果是,则将第i条新路径以升序插入所述第二结果列表中,在当第i条新路径不是所述待筛选集合中的最后一条新路径时,更新所述增量指标上限,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
可选的,所述计算所述有向图中从起点到终点的前K条最短路径包括:
使用Dijkstra算法计算所述有向图中前M条最短路径,M小于K,并将前M条最短路径放入所述第一路径集合中;
取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点,以预设条件为约束,计算每个所述偏离节点到所述终点的最短路径,将每个所述偏离节点到所述终点的最短路径与起点到所述偏离节点的路径拼接为备选路径放入待选集合中;
从所述待选集合中选取路径最短的一条备选路径放入所述第一路径集合中,判断M+1是否大于或等于K,如果否,则令M=M+1,并返回取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点的步骤,如果是,则将所述第一路径集合中的前K条备选路径作为所述有向图中从起点到终点的前K条最短路径;
所述预设条件包括:所述偏离节点到所述终点的最短路径不通过第M条最短路径上从起点到偏离节点之间的任何节点;从偏离节点分出的边不与所述第一路径集合中的任何最短路径中从偏离节点分出的边相同。
可选的,所述对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径之后还包括:
将K条最短路径以预设格式输出。
一种最短路径的生成系统,所述最短路径的生成系统包括:
输入模块,用于获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个;
图形构建模块,用于根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值;
路径计算模块,用于计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中;
增量筛选模块,用于对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
可选的,所述增量筛选模块,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径具体用于,
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,计算所有新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中大于所述增量指标上限的新路径抛弃,将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中小于或等于所述增量指标上限的新路径,以升序的方式插入所述第二结果列表中,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
可选的,所述增量筛选模块,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径具体用于,
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,将所有所述新路径放入待筛选集合中;
计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限,如果否,则将第i条新路径抛弃,在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径;在当第i条新路径不是所述待筛选集合中的最后一条新路径时,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;
如果是,则将第i条新路径以升序插入所述第二结果列表中,在当第i条新路径不是所述待筛选集合中的最后一条新路径时,更新所述增量指标上限,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
可选的,所述路径计算模块计算所述有向图中从起点到终点的前K条最短路径具体用于,
使用Dijkstra算法计算所述有向图中前M条最短路径,M小于K,并将前M条最短路径放入所述第一路径集合中;
取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点,以预设条件为约束,计算每个所述偏离节点到所述终点的最短路径,将每个所述偏离节点到所述终点的最短路径与起点到所述偏离节点的路径拼接为备选路径放入待选集合中;
从所述待选集合中选取路径最短的一条备选路径放入所述第一路径结合中,判断M+1是否大于或等于K,如果否,则令M=M+1,并返回取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点的步骤,如果是,则将所述第一路径集合中的前K条备选路径作为所述有向图中从起点到终点的前K条最短路径;
所述预设条件包括:所述偏离节点到所述终点的最短路径不通过第M条最短路径上从偏离节点到终点之间的任何节点;从偏离节点分出的边不与所述第一路径集合中的任何最短路径中从偏离节点分出的边相同。
可选的,还包括:
输出模块,用于将K条最短路径以预设格式输出;
一种最短路径的生成系统,包括存储器和处理器;
所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,所述程序代码用于执行上述任一项所述的最短路径的生成方法的各个步骤。
一种存储介质,所述存储介质上存储有程序代码,所述程序代码被执行时实现上述任一项所述的最短路径的生成方法的各个步骤。。
从上述技术方案可以看出,本申请实施例提供了一种最短路径的生成方法及相关装置,其中,所述最短路径的生成方法在获取了原始数据后,首先选取每条边的最小非负权重值构建有向图,将原边带多个非负权重值的问题松弛为边带单个非负权重值的问题,然后计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中,最后根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径,实现了对边带多个非负权重值的问题的解决,并且所述最短路径的生成方法通过增量筛选算法将边带单个非负权重值的最短路径问题还原为边带多个非负权重值的最短路径问题,这个过程中无需引入虚拟节点,避免了引入虚拟节点后图的规模庞大的问题,实现了降低时间复杂度,提高时效性的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请的一个实施例提供的一种最短路径的生成方法的流程示意图;
图2为本申请的另一个实施例提供的一种最短路径的生成方法的流程示意图;
图3为本申请的又一个实施例提供的一种最短路径的生成方法的流程示意图。
具体实施方式
正如背景技术中所述,现有技术中,解决最短路径问题的最成熟的算法由Yen在1971年提出。Yen算法首先使用Dijkstra(迪杰斯特拉)算法找到从起点s到终点t的最短路径,将其作为p1并放入结果列表A中。在求得了前k条路径{p1,p2,...,pk}之后,计算pk+1的过程如下:
(1)取pk中除了终止节点t之外的每个节点vi作为可能的偏离节点,计算vi到节点t的最短路径。在计算vi到t的最短路径时,需要满足以下两个条件:第一,为了保证无环,该路径不能通过当前最短路径pk上从s到vi之间的任何节点;第二,为了避免与以前找到的路径重复,从节点vi分出的边不能与以前找到的最短路径p1,p2,...,pk上从vi分出的边相同。
(2)在找到了vi与t之间满足以上两个条件的最短路径后,将该最短路径与当前路径pk上从s到vi的路径拼接在一起构成pk+1的一条候选路径,并将其存储在候选路径列表B中。
(3)从候选路径列表B中选择最短的一条作为pk+1,并将其放入结果列表A中。以上过程不断重复,直到得到K条路径为止。
Yen算法的时间花费主要体现在以下四点:第一,最短路径的计算,Dijkstra算法求解两点间最短路径的时间复杂度为O(m+nlogn);第二,考虑到在结果列表A中最多有K条无环路经需要维护,每次插入新的候选路径需要的时间复杂度为O(logK);第三,每条路径pk+1最多包含n个节点,因此求每个节点到目的节点的最短路径的时间复杂度为O(n(m+nlogn));第四,pk+1最多有n个候选路径,从中选择最短的路径的时间复杂度为O(n)。因此,Yen算法的时间复杂度为O(Kn(m+nlogn))。
而如果通过引入虚拟节点将一条带多个非负权重值的边拆成多条带单个非负权重值的边,以所有边均包含q个非负权重值的图为例,转化后的图的边数和顶点数分别为m′=2qm,n′=n+mq,直接利用Yen算法的时间复杂度为O(Kn′(m′+n′logn′))=O(K(n+mq)(2qm+(n+mq)log(n+mq))),相比O(Kn(m+nlogn))增加的幅度导致方法时效性往往达不到实际应用场景的要求。
有鉴于此,本申请实施例提供了一种最短路径的生成方法,以期解决这一问题。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种最短路径的生成方法,如图1所示,包括:
S101:获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个。
所述原始数据可以以csv文件格式存储。在获取了所述原始数据之后,通常还将两节点(有向边起点与有向边终点)之间的多个非负权重值以升序的方式排列。
参考表1,表1以示例的方式示出了一种可能的经过升序方式排列后的原始数据。
表1原始数据
有向边起点 | 有向边终点 | 非负权重值 |
有向边起点A | 有向边终点B | 5 |
有向边起点A | 有向边终点B | 7 |
有向边起点A | 有向边终点B | 9 |
有向边起点A | 有向边终点C | 4 |
有向边起点A | 有向边终点D | 7 |
有向边起点B | 有向边终点D | 8 |
…… | …… | …… |
从表1中可以看出,对于同一个节点B,既可以作为节点A的有向边终点,也可以作为节点D的有向边起点。
对于不同的应用场景,所述原始数据中的节点(有向边起点或有向边终点)表示不同的含义。以通信系统为例,当所述原始数据表征通信系统的数据时,所述原始数据中的节点可以表征通信系统中的网络设备,此时所述有向边起点到所述有向边终点的非负权重值可以表征两个网络设备之间的通信长度或通信延迟或通信平均时间等。以交通运输系统为例,当所述原始数据表征交通运输系统的数据时,所述原始数据中的节点可以表征交通运输系统中的交通枢纽或交通节点,此时所述有向边起点到所述有向边终点的非负权重值可以表征两个节点之间的路程。
S102:根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值。
在步骤S102中,仅选取每条边的最小非负权重值构建有向图,将原边带多个非负权重值的问题松弛为边带单个非负权重值的问题,以使Yen最短路径算法等现有算法可以计算出所述有向图中的前K条最短路径。
另外,所述有向图中的每两个节点是指一个有向边起点和一个有向边终点构成的组合,所述有向图中每两个节点构成的边是指某一有向边起点到某一有向边终点的连线构成的有向边(简称边),所述有向图中每两个节点构成的边的权重值是指这两个节点(有向边起点和有向边终点)分别作为边的起点和终点时,有向边起点到所述有向边终点的非负权重值。
S103:计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中。
在步骤S103中,由于步骤S102已经将边带多个非负权重值的问题松弛为边带单个非负权重值的问题,因此可以直接采用现有的最短路径算法计算出前K条最短路径作为候选路径放入第一结果列表中。
需要注意的是,假设前K条最短路径包含p1,p2,...,pK,则这K条最短路径的计算顺序为:首先找出最短路径p1,然后找出除最短路径p1外的最短路径作为最短路径p2,以此类推,直至找出K条最短路径,可以认为最短路径p1的长度小于最短路径p2,最短路径p2的长度小于最短路径p3,但在最短路径算法中,通常将p1,p2,...,pK均称为最短路径。
S104:对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
在获取了K条候选路径后,步骤S104通过增量筛选算法将边带单个非负权重值的问题还原为边带多个非负权重值的问题,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径,实现了对边带多个非负权重值的问题的解决,并且所述最短路径的生成方法通过增量筛选算法将边带单个非负权重值的最短路径问题还原为边带多个非负权重值的最短路径问题,这个过程中无需引入虚拟节点,避免了引入虚拟节点后图的规模庞大的问题,实现了降低时间复杂度,提高时效性的目的。
下面对本申请实施例提供的最短路径的生成方法的各个步骤的可行具体实施方法进行介绍。
可选的,在本申请的一个实施例中,如图2所示,所述根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径包括:
S1041:令第二结果列表等于第一结果列表,令当前筛选路径j=1。
步骤S1041为初始化的过程。
S1042:计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度。
S1043:判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,计算所有新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值。
在步骤S1043中,假设第j条候选路径由n条有向边首尾相连构成,每条边有ml(l=1,2,...,n)个非负权重值,则第j条候选路径的长度总共有种可能,而当前第j条候选路径的长度为其中最短的路径长度,故需分别计算剩余的个路径的长度相对于最短长度的增量。
S1044:将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中大于所述增量指标上限的新路径抛弃,将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中小于或等于所述增量指标上限的新路径,以升序的方式插入所述第二结果列表中,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
在本申请的另一个实施例中,步骤S1042和S1043还可以有其他的实施方式,所述根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径包括:
S1045:令第二结果列表等于第一结果列表,令当前筛选路径j=1;
S1046:计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
S1047:判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,将所有所述新路径放入待筛选集合中;
S1048:计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
S1049:判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限,如果否,则将第i条新路径抛弃,在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径;在当第i条新路径不是所述待筛选集合中的最后一条新路径时,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;
如果是,则将第i条新路径以升序插入所述第二结果列表中,在当第i条新路径不是所述待筛选集合中的最后一条新路径时,更新所述增量指标上限,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
在本实施例中,每找到一个增量小于所述增量指标上限的新路径,则将该新路径以升序插入到第二结果列表中,并更新所述增量指标上限,然后再对第j条候选路径的其他组合出的新路径进行筛选,这样可以进一步的降低所述最短路径的生成方法所消耗的时间。
更新所述增量指标上限的具体实施方式可以是,在当所述第二结果列表中插入了新路径后,重新计算所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度,以获取更新后的增量指标上限。
在上述实施例的基础上,在本申请的一个可选实施例中,所述计算所述有向图中从起点到终点的前K条最短路径包括:
使用Dijkstra算法计算所述有向图中前M条最短路径,M小于K,并将前M条最短路径放入所述第一路径集合中;
取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点,以预设条件为约束,计算每个所述偏离节点到所述终点的最短路径,将每个所述偏离节点到所述终点的最短路径与起点到所述偏离节点的路径拼接为备选路径放入待选集合中;
从所述待选集合中选取路径最短的一条备选路径放入所述第一路径集合中,判断M+1是否大于或等于K,如果否,则令M=M+1,并返回取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点的步骤,如果是,则将所述第一路径集合中的前K条备选路径作为所述有向图中从起点到终点的前K条最短路径;
所述预设条件包括:所述偏离节点到所述终点的最短路径不通过第M条最短路径上从起点到偏离节点之间的任何节点;从偏离节点分出的边不与所述第一路径集合中的任何最短路径中从偏离节点分出的边相同。
在上述实施例的基础上,在本申请的另一个可选实施例中,如图3所示,所述对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径之后还包括:
S1045:将K条最短路径以预设格式输出。
所述预设格式是指应用场景指定的可用格式。
下面对本申请实施例提供的最短路径的生成系统进行描述,下文描述的最短路径的生成系统可与上文描述的最短路径的生成方法相互对应参照。
相应的,本申请实施例提供了一种最短路径的生成系统,所述最短路径的生成系统包括:
输入模块,用于获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个;
图形构建模块,用于根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值;
路径计算模块,用于计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中;
增量筛选模块,用于对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
可选的,所述增量筛选模块,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径具体用于,
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,计算所有新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中大于所述增量指标上限的新路径抛弃,将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中小于或等于所述增量指标上限的新路径,以升序的方式插入所述第二结果列表中,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
可选的,所述增量筛选模块,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径具体用于,
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,将所有所述新路径放入待筛选集合中;
计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限,如果否,则将第i条新路径抛弃,在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径;在当第i条新路径不是所述待筛选集合中的最后一条新路径时,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;
如果是,则将第i条新路径以升序插入所述第二结果列表中,在当第i条新路径不是所述待筛选集合中的最后一条新路径时,更新所述增量指标上限,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
可选的,所述路径计算模块计算所述有向图中从起点到终点的前K条最短路径具体用于,
使用Dijkstra算法计算所述有向图中前M条最短路径,M小于K,并将前M条最短路径放入所述第一路径集合中;
取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点,以预设条件为约束,计算每个所述偏离节点到所述终点的最短路径,将每个所述偏离节点到所述终点的最短路径与起点到所述偏离节点的路径拼接为备选路径放入待选集合中;
从所述待选集合中选取路径最短的一条备选路径放入所述第一路径集合中,判断M+1是否大于或等于K,如果否,则令M=M+1,并返回取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点的步骤,如果是,则将所述第一路径集合中的前K条备选路径作为所述有向图中从起点到终点的前K条最短路径;
所述预设条件包括:所述偏离节点到所述终点的最短路径不通过第M条最短路径上从起点到偏离节点之间的任何节点;从偏离节点分出的边不与所述第一路径集合中的任何最短路径中从偏离节点分出的边相同。
可选的,所述最短路径的生成系统还包括:
输出模块,用于将K条最短路径以预设格式输出。
相应的,本申请实施例还提供了一种存储介质,所述存储介质上存储有适于处理器执行的程序代码,所述程序代码用于:
获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个;
根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值;
计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中;
对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
所述程序代码的细化功能和扩展功能可参照上文描述。
相应的,本申请实施例还提供了一种最短路径的生成系统,包括存储器和处理器;
所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,所述程序代码用于执行上述任一实施例所述的最短路径的生成方法的各个步骤。
综上所述,本申请实施例提供了一种最短路径的生成方法及相关装置,其中,所述最短路径的生成方法在获取了原始数据后,首先选取每条边的最小非负权重值构建有向图,将原边带多个非负权重值的问题松弛为边带单个非负权重值的问题,然后计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中,最后根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径,实现了对边带多个非负权重值的问题的解决,并且所述最短路径的生成方法通过增量筛选算法将边带单个非负权重值的最短路径问题还原为边带多个非负权重值的最短路径问题,这个过程中无需引入虚拟节点,避免了引入虚拟节点后图的规模庞大的问题,实现了降低时间复杂度,提高时效性的目的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种最短路径的生成方法,其特征在于,所述最短路径的生成方法包括:
获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个;
根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值;
计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中;
对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
2.根据权利要求1所述的最短路径的生成方法,其特征在于,所述根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径包括:
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,计算所有新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中大于所述增量指标上限的新路径抛弃,将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中小于或等于所述增量指标上限的新路径,以升序的方式插入所述第二结果列表中,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
3.根据权利要求1所述的最短路径的生成方法,其特征在于,所述根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径包括:
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,将所有所述新路径放入待筛选集合中;
计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限,如果否,则将第i条新路径抛弃,在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径;在当第i条新路径不是所述待筛选集合中的最后一条新路径时,令i=i+1,并返回判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限的步骤;
如果是,则将第i条新路径以升序插入所述第二结果列表中,在当第i条新路径不是所述待筛选集合中的最后一条新路径时,更新所述增量指标上限,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
4.根据权利要求1所述的最短路径的生成方法,其特征在于,所述计算所述有向图中从起点到终点的前K条最短路径包括:
使用Dijkstra算法计算所述有向图中前M条最短路径,M小于K,并将前M条最短路径放入所述第一路径集合中;
取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点,以预设条件为约束,计算每个所述偏离节点到所述终点的最短路径,将每个所述偏离节点到所述终点的最短路径与起点到所述偏离节点的路径拼接为备选路径放入待选集合中;
从所述待选集合中选取路径最短的一条备选路径放入所述第一路径集合中,判断M+1是否大于或等于K,如果否,则令M=M+1,并返回取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点的步骤,如果是,则将所述第一路径集合中的前K条备选路径作为所述有向图中从起点到终点的前K条最短路径;
所述预设条件包括:所述偏离节点到所述终点的最短路径不通过第M条最短路径上从起点到偏离节点之间的任何节点;从偏离节点分出的边不与所述第一路径集合中的任何最短路径中从偏离节点分出的边相同。
5.根据权利要求1所述的最短路径的生成方法,其特征在于,所述对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径之后还包括:
将K条最短路径以预设格式输出。
6.一种最短路径的生成系统,其特征在于,所述最短路径的生成系统包括:
输入模块,用于获取原始数据,所述原始数据包括多个有向边起点、多个有向边终点和所述有向边起点到所述有向边终点的非负权重值,其中,至少一个所述有向边起点到所述有向边终点的非负权重值为多个;
图形构建模块,用于根据所述原始数据构建有向图,所述有向图中每两个节点构成的边的权重值为这两个节点的非负权重值中最小的非负权重值;
路径计算模块,用于计算所述有向图中从起点到终点的前K条最短路径,并将计算获得的前K条最短路径作为候选路径放入第一结果列表中;
增量筛选模块,用于对于所述有向图中具有多个非负权重值的边,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径。
7.根据权利要求6所述的系统,其特征在于,所述增量筛选模块,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径具体用于,
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,计算所有新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中大于所述增量指标上限的新路径抛弃,将所有所述新路径相对于所述第一结果列表中的第j条候选路径的增量中小于或等于所述增量指标上限的新路径,以升序的方式插入所述第二结果列表中,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
8.根据权利要求6所述的系统,其特征在于,所述增量筛选模块,根据增量筛选算法,利用所述有向图中每两个节点构成的边的其他非负权重值对第一结果列表中的K条候选路径依次进行筛选,以获取K条最终路径具体用于,
令第二结果列表等于第一结果列表,令当前筛选路径j=1;
计算增量指标上限,所述增量指标上限等于所述第二结果列表中第K条路径的长度减去所述第一结果列表中第j条候选路径的长度;
判断所述增量指标上限是否小于或等于0,如果是,则将所述第二结果列表中的前K条路径作为K条所述最终路径输出;
如果否,则将所述第一结果列表中的第j条候选路径包含的边的其他非负权重值以组合的方式构成新路径,将所有所述新路径放入待筛选集合中;
计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量,所述增量等于所述新路径的长度与所述第一结果列表中的第j条候选路径的长度的差值;
判断第i条新路径相对于所述第一结果列表中的第j条候选路径的增量是否小于所述增量指标上限,如果否,则将第i条新路径抛弃,在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径;在当第i条新路径不是所述待筛选集合中的最后一条新路径时,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;
如果是,则将第i条新路径以升序插入所述第二结果列表中,在当第i条新路径不是所述待筛选集合中的最后一条新路径时,更新所述增量指标上限,令i=i+1并返回计算所述待筛选集合中,第i条新路径相对于所述第一结果列表中的第j条候选路径的增量;在当第i条新路径为所述待筛选集合中的最后一条新路径时,令j=j+1并在j小于或等于K时返回计算增量指标上限的步骤,在j大于K时,将所述第二结果列表中的前K条路径作为K条所述最终路径。
9.根据权利要求6所述的系统,其特征在于,所述路径计算模块计算所述有向图中从起点到终点的前K条最短路径具体用于,
使用Dijkstra算法计算所述有向图中前M条最短路径,M小于K,并将前M条最短路径放入所述第一路径集合中;
取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点,以预设条件为约束,计算每个所述偏离节点到所述终点的最短路径,将每个所述偏离节点到所述终点的最短路径与起点到所述偏离节点的路径拼接为备选路径放入待选集合中;
从所述待选集合中选取路径最短的一条备选路径放入所述第一路径结合中,判断M+1是否大于或等于K,如果否,则令M=M+1,并返回取所述第一路径集合中第M条最短路径中除终点外的每个节点作为偏离节点的步骤,如果是,则将所述第一路径集合中的前K条备选路径作为所述有向图中从起点到终点的前K条最短路径;
所述预设条件包括:所述偏离节点到所述终点的最短路径不通过第M条最短路径上从偏离节点到终点之间的任何节点;从偏离节点分出的边不与所述第一路径集合中的任何最短路径中从偏离节点分出的边相同。
10.根据权利要求6所述的系统,其特征在于,还包括:
输出模块,用于将K条最短路径以预设格式输出。
11.一种最短路径的生成系统,其特征在于,包括存储器和处理器;
所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,所述程序代码用于执行权利要求1-5任一项所述的最短路径的生成方法的各个步骤。
12.一种存储介质,其特征在于,所述存储介质上存储有程序代码,所述程序代码被执行时实现权利要求1-5任一项所述的最短路径的生成方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010921354.5A CN112116136B (zh) | 2020-09-04 | 2020-09-04 | 一种最短路径的生成方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010921354.5A CN112116136B (zh) | 2020-09-04 | 2020-09-04 | 一种最短路径的生成方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112116136A true CN112116136A (zh) | 2020-12-22 |
CN112116136B CN112116136B (zh) | 2024-06-18 |
Family
ID=73801783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010921354.5A Active CN112116136B (zh) | 2020-09-04 | 2020-09-04 | 一种最短路径的生成方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112116136B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114529088A (zh) * | 2022-02-21 | 2022-05-24 | 山东大学 | 基于事故风险成本的驾驶路径规划方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098107A (en) * | 1997-10-31 | 2000-08-01 | Lucent Technologies Inc. | Dynamic algorithms for shortest path tree computation |
CA2337589A1 (en) * | 2000-03-29 | 2001-09-29 | At&T Corp. | Pnni-based multi-link shortest path class-of service routing |
US20050259648A1 (en) * | 2004-05-21 | 2005-11-24 | Kodialam Muralidharan S | Routing for networks with content filtering |
CN102062608A (zh) * | 2009-11-12 | 2011-05-18 | 高德软件有限公司 | 备选路径规划方法及导航终端 |
WO2014124447A1 (en) * | 2013-02-11 | 2014-08-14 | Angiometrix Corporation | Systems for detecting and tracking of objects and co-registration |
CN106100892A (zh) * | 2016-07-04 | 2016-11-09 | 广东工业大学 | 一种构建稳定的动态网络最短路径树的算法 |
WO2019061169A1 (zh) * | 2017-09-28 | 2019-04-04 | 深圳前海达闼云端智能科技有限公司 | 一种基于混合资源的路由选路方法、装置和服务器 |
CN109918455A (zh) * | 2019-03-13 | 2019-06-21 | 南京航空航天大学 | 一种基于偏好的有向图最短路径搜索方法 |
CN111210065A (zh) * | 2020-01-03 | 2020-05-29 | 武汉大学 | 一种基于重优化技术的物流网络高效k最短路径算法 |
-
2020
- 2020-09-04 CN CN202010921354.5A patent/CN112116136B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098107A (en) * | 1997-10-31 | 2000-08-01 | Lucent Technologies Inc. | Dynamic algorithms for shortest path tree computation |
CA2337589A1 (en) * | 2000-03-29 | 2001-09-29 | At&T Corp. | Pnni-based multi-link shortest path class-of service routing |
US20050259648A1 (en) * | 2004-05-21 | 2005-11-24 | Kodialam Muralidharan S | Routing for networks with content filtering |
CN102062608A (zh) * | 2009-11-12 | 2011-05-18 | 高德软件有限公司 | 备选路径规划方法及导航终端 |
WO2014124447A1 (en) * | 2013-02-11 | 2014-08-14 | Angiometrix Corporation | Systems for detecting and tracking of objects and co-registration |
CN106100892A (zh) * | 2016-07-04 | 2016-11-09 | 广东工业大学 | 一种构建稳定的动态网络最短路径树的算法 |
WO2019061169A1 (zh) * | 2017-09-28 | 2019-04-04 | 深圳前海达闼云端智能科技有限公司 | 一种基于混合资源的路由选路方法、装置和服务器 |
CN109918455A (zh) * | 2019-03-13 | 2019-06-21 | 南京航空航天大学 | 一种基于偏好的有向图最短路径搜索方法 |
CN111210065A (zh) * | 2020-01-03 | 2020-05-29 | 武汉大学 | 一种基于重优化技术的物流网络高效k最短路径算法 |
Non-Patent Citations (4)
Title |
---|
刘晓玲: "弹性光网络中路由选择和频谱分配算法及其优化方案研究", 《中国优秀硕士论文电子期刊网》, no. 02, pages 5 - 15 * |
徐涛等: "K最短路径算法综述", 《计算机工程与设计》, vol. 34, no. 11, pages 3900 - 3906 * |
景皓: "配网线路互联互供系统建设应用", 《计算机仿真》, vol. 14, no. 06, pages 6 - 9 * |
耿海军等: "基于增量最短路径优先的域内高效路由保护算法", 《计算机科学》, vol. 46, no. 08, pages 116 - 120 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114529088A (zh) * | 2022-02-21 | 2022-05-24 | 山东大学 | 基于事故风险成本的驾驶路径规划方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112116136B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Girardeau et al. | On the convergence of decomposition methods for multistage stochastic convex programs | |
Herings et al. | The average tree solution for cycle-free graph games | |
Park et al. | An integer programming approach to the bandwidth packing problem | |
EP2426872A1 (en) | Method and apparatus for implementing k-shortest paths algorithm in the case of existing multiple edges between adjacent nodes | |
JPH0693681B2 (ja) | 通信ネツトワークにおいて最小重みのルートを選択する方法 | |
CN111541582B (zh) | 卫星网络容量计算方法、装置和电子设备 | |
Xu et al. | Approximation results for a min–max location-routing problem | |
CN112116136A (zh) | 一种最短路径的生成方法及相关装置 | |
Chardaire et al. | Simplex and interior point specialized algorithms for solving nonoriented multicommodity flow problems | |
Baldacci et al. | Pricing strategies for capacitated ring-star problems based on dynamic programming algorithms | |
Luedtke | An integer programming and decomposition approach to general chance-constrained mathematical programs | |
Ralphs et al. | Decomposition and dynamic cut generation in integer linear programming | |
CN110020788B (zh) | 目标实体资源分布的确定方法和装置 | |
CN110826761B (zh) | 一种基于会面点的最优组次序路径查询方法 | |
Lee et al. | An algorithm for constructing minimal c‐broadcast networks | |
Migov et al. | Methods of speeding up of diameter constrained network reliability calculation | |
CN110932973B (zh) | 一种光缆网点到点的最佳路由计算方法及装置 | |
US6772102B1 (en) | Optimal placement of wavelength converters in trees and trees of rings | |
CN113177212B (zh) | 联合预测方法和装置 | |
Raciti et al. | Improved noniterative algorithm for solving the traffic equilibrium problem | |
Hartmann et al. | Dynamic Gomory-Hu Tree Construction--fast and simple | |
Morsy et al. | Approximating capacitated tree-routings in networks | |
CN112699143B (zh) | 查询方法、装置、电子设备及存储介质 | |
Dulmage-Mendelsohn | Nanao Kita (*) Tokyo University of Science, 2641 Yamazaki, Noda, Chiba 278-8510, Japan kita@ rs. tus. ac. jp | |
Parnell | Lot Sizing on a Cycle, with Start-Up Costs |
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 |