一种路径规划方法和装置与流程

文档序号:12655107阅读:240来源:国知局
一种路径规划方法和装置与流程

本发明涉及交通技术领域,特别涉及一种路径规划方法和装置。



背景技术:

迪杰斯特拉算法(Dijkstra's Algorithm)是由荷兰计算机科学家艾兹赫尔〃迪杰斯特拉发明的。算法是从一个顶点到其余各顶点的最短路径算法,题解决的是有向图中单个源点到其他顶点的最短路径问题。如果图中的顶点表示城市,而边上的权重表示城市间的距离,该算法可以用来找到两个城市之间的最短路径。

目前,根据迪杰斯特拉算法做路径规划的过程中,采用从路径规划的起点向终点进行发散的规划原则,从起点发散到终点即告结束,从而确定出两个城市之间的最短路径。

由于从路径规划的起点向终点进行发散,需要对每一个节点(实际中为路口)进行计算,并且对于从终点到起点返回时,需要以终点为起点、以起点为终点,再次进行发散。因此路径规划需要花费大量的时间,从而路径规划的效率较低。



技术实现要素:

本发明实施例提供了一种路径规划方法和装置,能够有效地提高路径规划的效率。

第一方面,本发明实施例提供了一种路径规划方法,该方法包括:

A1:确定待规划路径的起点和终点;

A2:从所述起点到所述终点及从所述终点到所述起点同时进行发散;

A3:当检测到存在满足终止条件的终止节点时,终止发散并执行A4;

A4:确定所述起点到所述终止节点的第一最短路径以及所述终点到所述终止节点的第二最短路径;

A5:将所述第一最短路径和所述第二最短路径组合,获得所述待规划路径。

优选地,所述从所述起点到所述终点及从所述终点到所述起点同时进行发散,包括:

从所述起点到所述终点及从所述终点到所述起点分别执行:

S0:将待处理节点作为当前中间节点;

其中,从所述起点到所述终点的发散过程中,所述待处理节点为所述起点,从所述终点到所述起点的发散过程中,所述待处理节点为所述终点;

S1:确定与所述当前中间节点可达的目标节点;

S2:确定从出发点到每个所述目标节点的最短路径;

其中,从所述起点到所述终点的发散过程中,所述出发点为所述起点,从所述终点到所述起点的发散过程中,所述出发点为所述终点;

S3:确定每个所述目标节点的最短路径的距离,将距离最小的最短路径对应的最短目标节点作为所述当前中间节点,执行S1。

优选地,所述当检测到存在满足终止条件的终止节点时,终止发散并执行A4,包括:

实时判断是否存在从所述起点到所述终点进行发散的过程中以及从所述终点到所述起点进行发散的过程中均经过的节点,若是,则停止发散并执行A4。

优选地,在所述从所述起点到所述终点及从所述终点到所述起点同时进行发散之前,进一步包括:

确定所述待规划路径的所述起点和所述终点之间的至少一个节点;

对于从所述起点到所述终点,将所述起点添加到第一集合中,将所述终点和所述至少一个节点添加到第二集合中;

对于从所述终点到所述起点,将所述终点添加到第三集合中,将所述起点和所述至少一个节点添加到第四集合中;

所述S1,包括:

从第一待处理集合中,确定所述当前中间节点可达的目标节点;

其中,从所述起点到所述终点的发散过程中,所述第一待处理集合为所述第二集合,从所述终点到所述起点的发散过程中,所述第一待处理集合为所述第四集合;

在所述将距离最小的最短路径对应的最短目标节点作为所述当前中间节点之后,在所述执行S1之前,进一步包括:

将所述最短目标节点从所述第一待处理集合中删除,将所述最短目标节点加入到第二待处理集合中;

其中,从所述起点到所述终点的发散过程中,所述第二待处理集合为所述第一集合,从所述终点到所述起点的发散过程中,所述第二待处理集合为所述第三集合。

优选地,所述检测到存在满足终止条件的终止节点,包括:

实时判断所述第一集合和所述第三集合中是否存在相同的共同节点,如果是,则将所述共同节点作为所述终止节点。

第二方面,本发明实施例提供了一种路径规划装置,该装置包括:地点确定单元、发散单元、判断单元、路径确定单元和组合单元,其中,

所述地点确定单元,用于确定待规划路径的起点和终点;

所述发散单元,用于从所述起点到所述终点及从所述终点到所述起点同时进行发散;

所述判断单元,用于当检测到存在满足终止条件的终止节点时,终止发散并触发所述路径确定单元;

所述路径确定单元,用于确定所述起点到所述终止节点的第一最短路径以及所述终点到所述目标节点的第二最短路径;

所述组合单元,用于将所述路径确定单元确定的所述第一最短路径和所述第二最短路径组合,获得所述待规划路径。

优选地,所述发散单元,包括:转换子单元、筛选子单元、计算子单元和循环子单元,其中,

所述转换子单元,用于将待处理节点作为当前中间节点,其中,从所述起点到所述终点的发散过程中,所述待处理节点为所述起点,从所述终点到所述起点的发散过程中,所述待处理节点为所述终点;

所述筛选子单元,用于确定与所述当前中间节点可达的目标节点;

所述计算子单元,用于确定从出发点到每个所述目标节点的最短路径,其中,从所述起点到所述终点的发散过程中,所述出发点为所述起点,从所述终点到所述起点的发散过程中,所述出发点为所述终点;

所述循环子单元,用于确定每个所述目标节点的最短路径的距离,将距离最小的最短路径对应的最短目标节点作为所述当前中间节点,并触发所述筛选子单元。

优选地,所述判断单元,用于实时判断是否存在从所述起点到所述终点进行发散的过程中以及从所述终点到所述起点进行发散的过程中均经过的节点,若是,则停止发散并触发所述路径确定单元。

优选地,该装置进一步包括:节点确定单元,用于确定所述待规划路径的所述起点和所述终点之间的至少一个节点,其中,

对于从所述起点到所述终点,将所述起点添加到第一集合中,将所述终点和所述至少一个节点添加到第二集合中;

对于从所述终点到所述起点,将所述终点添加到第三集合中,将所述起点和所述至少一个节点添加到第四集合中;

所述筛选子单元,用于从第一待处理集合中,确定所述当前中间节点可达的目标节点,其中,

从所述起点到所述终点的发散过程中,所述第一待处理集合为所述第二集合,从所述终点到所述起点的发散过程中,所述第一待处理集合为所述第四集合;

所述发散单元,进一步包括:删移子单元,用于将所述最短目标节点从所述第一待处理集合中删除,将所述最短目标节点加入到第二待处理集合中,其中,

从所述起点到所述终点的发散过程中,所述第二待处理集合为所述第一集合,从所述终点到所述起点的发散过程中,所述第二待处理集合为所述第三集合。

优选地,所述判断单元,用于实时判断所述第一集合和所述第三集合中是否存在相同的共同节点,如果是,则将所述共同节点作为所述终止节点。

本发明实施例提供了一种路径规划方法和装置,通过从待规划路径的起点到终点以及从待规划路径的终点到起点同时进行发散,当存在满足终止条件的终止节点时,停止发散,相对于现有技术需要从起点发散到终点、终点发散到起点的方法,能够节省大量的时间,在存在终止节点后只需要确定出待规划路径起点到终止节点的第一最短路径以及待规划路径终点到终止节点的第二最短路径,最后将第一最短路径和第二最短路径组合,可以获得待规划路径,不需要从待规划路径的起点确定到终点最终确定待规划路径,因此能够节省大量的时间,从而能够有效地提高路径规划的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种路径规划方法的流程图;

图2是本发明一个实施例提供的一种路径中起点、终点和每个节点的位置关系图;

图3是本发明一个实施例提供的另一种路径规划方法的流程图;

图4是本发明一个实施例提供的一种路径规划装置的结构示意图;

图5是本发明一个实施例提供的另一种路径规划装置的结构示意图;

图6是本发明一个实施例提供的又一种路径规划装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种路径规划方法,该方法可以包括以下步骤:

步骤101:确定待规划路径的起点和终点。

步骤102:从所述起点到所述终点及从所述终点到所述起点同时进行发散。

步骤103:当检测到存在满足终止条件的终止节点时,终止发散并执行步骤104。

步骤104:确定所述起点到所述终止节点的第一最短路径以及所述终点到所述终止节点的第二最短路径。

步骤105:将所述第一最短路径和所述第二最短路径组合,获得所述待规划路径。

在上述实施例中,通过从待规划路径的起点到终点以及从待规划路径的终点到起点同时进行发散,当存在满足终止条件的终止节点时,便停止发散,相对于现有技术需要从起点发散到终点、终点发散到起点的方法,能够节省大量的时间,在存在终止节点后只需要确定出待规划路径起点到终止节点的第一最短路径以及待规划路径终点到终止节点的第二最短路径,最后将第一最短路径和第二最短路径组合,可以获得待规划路径,不需要从待规划路径的起点确定到终点最终确定待规划路径,因此能够节省大量的时间,从而能够有效地提高路径规划的效率。

为了能够获得最短路径,在本发明一个实施例中,所述从所述起点到所述终点及从所述终点到所述起点同时进行发散,包括:

从所述起点到所述终点及从所述终点到所述起点分别执行:

S0:将待处理节点作为当前中间节点;

其中,从所述起点到所述终点的发散过程中,所述待处理节点为所述起点,从所述终点到所述起点的发散过程中,所述待处理节点为所述终点;

S1:确定与所述当前中间节点可达的目标节点;

S2:确定从出发点到每个所述目标节点的最短路径;

其中,从所述起点到所述终点的发散过程中,所述出发点为所述起点,从所述终点到所述起点的发散过程中,所述出发点为所述终点;

S3:确定每个所述目标节点的最短路径的距离,将距离最小的最短路径对应的最短目标节点作为所述当前中间节点,执行S1。

在该实施例中,由于路径规划是从待规划路径的起点到终点和终点到起点两个方向同时开始的,所以在不同的方向上待处理节点也就不同。在发散过程中,一个节点只可能发散到一部分其他节点,而不能发散到全部节点。请参考图2,在图2中,若以A节点为起点向终点F点发散,则A节点可以发散到B节点和C节点,C点可以发散到B节点、D节点和E节点,在此不一一列举;若以F节点为起点向终点A点发散,则F节点可以发散到D节点和E节点,C节点可以发散到A节点、B节点和D节点,在此不一一列举;

为了能进一步提高路径规划的效率,在本发明一个实施例中,所述当检测到存在满足终止条件的终止节点时,终止发散并执行A4,包括:

实时判断是否存在从所述起点到所述终点进行发散的过程中以及从所述终点到所述起点进行发散的过程中均经过的节点,若是,则停止发散并执行A4。

在该实施例中,在从起点到终点和从终点到起点的发散过程中,均经过了一个节点,也就是终止节点,就停止发散。请参考图2,以A节点为起点向终点F点发散,起点A距离B节点的长度为6、距离C节点的长度为3,则首先发散到C节点,以C为当前中间节点继续发散,C节点距离B节点的长度为2、距离D节点的长度为3、距离E节点的长度为4,则C节点发散到B节点,并且以B节点为当前中间节点继续发散,与此同时,以F节点为起点向终点A点发散,起点F距离D节点的长度为3、距离E节点的长度为5,则首先发散到D节点,以D为当前中间节点继续发散,D节点距离B节点的长度为5、距离C节点的长度为3、距离E节点的长度为2,则D节点发散到E节点,并且以E节点为当前中间节点继续发散,此时并没有终止节点,于是继续进行发散,以A节点为起点向终点F点发散,此时B节点只能发散到D节点,然而以F节点为起点向终点A点发散的过程中,已经发散到了D节点,此时两个方向均经过了D节点,于是满足终止条件。但是,由于B节点到D节点的距离为5,而从起点A经过C节点经过B节点再到达D节点的总距离的长度为10,而从起点A经过C节点达到D节点的总距离的长度为6,于是从起点A到达D节点的最短路径为A—C—D,并不是A—C—B—D。

为了方便获得发散过程中经过节点的情况,在所述从所述起点到所述终点及从所述终点到所述起点同时进行发散之前,进一步包括:

确定所述待规划路径的所述起点和所述终点之间的至少一个节点;

对于从所述起点到所述终点,将所述起点添加到第一集合中,将所述终点和所述至少一个节点添加到第二集合中;

对于从所述终点到所述起点,将所述终点添加到第三集合中,将所述起点和所述至少一个节点添加到第四集合中;

所述S1,包括:

从第一待处理集合中,确定所述当前中间节点可达的目标节点;

其中,从所述起点到所述终点的发散过程中,所述第一待处理集合为所述第二集合,从所述终点到所述起点的发散过程中,所述第一待处理集合为所述第四集合;

在所述将距离最小的最短路径对应的最短目标节点作为所述当前中间节点之后,进一步包括:

将所述最短目标节点从所述第一待处理集合中删除,将所述最短目标节点加入到第二待处理集合中;

其中,从所述起点到所述终点的发散过程中,所述第二待处理集合为所述第一集合,从所述终点到所述起点的发散过程中,所述第二待处理集合为所述第三集合。

在该实施例中,对于从起点到终点,将起点、终点和至少一个节点分为两组集合,其中,第一集合为已求出最短路径的节点集合,初始时只有起点;第二集合为未确定最短路径的节点集合,初始时除了起点其他节点均在第二集合中;对于从终点到起点,将起点、终点和至少一个节点同样分为两组集合,其中,第三集合为已求出最短路径的节点集合,初始时只有终点;第四集合为未确定最短路径的节点集合,初始时除了终点其他节点均在第二集合中。

为了能够快速判断出是否满足终止条件,在本发明一个实施例中,所述检测到存在满足终止条件的终止节点,包括:

实时判断所述第一集合和所述第三集合中是否存在相同的共同节点,如果是,则将所述共同节点作为所述终止节点。

如图3所示,本发明实施例提供了一种路径规划方法,该方法可以包括以下步骤:

步骤301:确定待规划路径的起点和终点。

步骤302:确定待规划路径起点和终点之间的至少一个节点。

在该步骤中,从起点到终点必定会经过多个节点,就如在现实生活中,从M地到N地会经过多个路口和街道一样。

步骤303:将起点、终点和至少一个节点添加到不同的集合中。

在该步骤中,对于从起点到终点,将起点添加到第一集合中,将终点和至少一个节点添加到第二集合中;对于从终点到起点,将终点添加到第三集合中,将起点和至少一个节点添加到第四集合中。

步骤304:将待处理节点作为当前中间节点。

在该步骤中,从起点到终点的发散过程中,待处理节点为起点,从终点到起点的发散过程中,待处理节点为终点。

步骤305:从第一待处理集合中,确定当前中间节点可达的目标节点。

在该步骤中,从起点到终点的发散过程中,第一待处理集合为第二集合,从终点到起点的发散过程中,第一待处理集合为第四集合。

步骤306:确定从出发点到每个目标节点的最短路径。

在该步骤中,从起点到终点的发散过程中,出发点为起点,从终点到起点的发散过程中,出发点为终点。

步骤307:确定每个目标节点的最短路径的距离,将距离最小的最短路径对应的最短目标节点作为当前中间节点,并将最短目标节点从第一待处理集合中删除同时加入到第二待处理集合中。

在该步骤中,从起点到终点的发散过程中,第二待处理集合为第一集合,从终点到起点的发散过程中,第二待处理集合为第三集合。

步骤308:实时判断是否存在满足终止条件的终止节点,如果是,则终止发散,并执行309;否则,执行步骤305。

在该步骤中,实时判断第一集合和所述第三集合中是否存在相同的共同节点,如果是,则将共同节点作为所述终止节点。

步骤309:确定起点到终止节点的第一最短路径以及终点到终止节点的第二最短路径。

步骤310:将第一最短路径和第二最短路径组合,获得待规划路径。

如图4所示,本发明实施例提供了一种路径规划装置,该装置包括:地点确定单元401、发散单元402、判断单元403、路径确定单元404和组合单元405,其中,

所述地点确定单元401,用于确定待规划路径的起点和终点;

所述发散单元402,用于从所述起点到所述终点及从所述终点到所述起点同时进行发散;

所述判断单元403,当检测到存在满足终止条件的终止节点时,则终止发散,并触发所述路径确定单元404;

所述路径确定单元404,用于确定所述起点到所述终止节点的第一最短路径以及所述终点到所述终止节点的第二最短路径;

所述组合单元405,用于将所述路径确定单元404确定的所述第一最短路径和所述第二最短路径组合,获得所述待规划路径。

如图5所示,在本发明一个实施例中,所述发散单元402,包括:转换子单元4021、筛选子单元4022、计算子单元4023和循环子单元4024,其中,

所述转换子单元4021,用于将待处理节点作为当前中间节点,其中,从所述起点到所述终点的发散过程中,所述待处理节点为所述起点,从所述终点到所述起点的发散过程中,所述待处理节点为所述终点;

所述筛选子单元4022,用于确定与所述当前中间节点可达的目标节点;

所述计算子单元4023,用于确定从出发点到每个所述目标节点的最短路径,其中,从所述起点到所述终点的发散过程中,所述出发点为所述起点,从所述终点到所述起点的发散过程中,所述出发点为所述终点;

所述循环子单元4024,用于确定每个所述目标节点的最短路径的距离,将距离最小的最短路径对应的最短目标节点作为所述当前中间节点,并触发所述筛选子单元4022。

在本发明一个实施例中,所述判断单元403,用于实时判断是否存在从所述起点到所述终点进行发散的过程中以及从所述终点到所述起点进行发散的过程中均经过的节点,若是,则停止发散并触发所述路径确定单元404。

如图6所示,在本发明一个实施例中,该路径规划装置可以进一步包括:节点确定单元601,用于确定所述待规划路径的所述起点和所述终点之间的至少一个节点,其中,

对于从所述起点到所述终点,将所述起点添加到第一集合中,将所述终点和所述至少一个节点添加到第二集合中;

对于从所述终点到所述起点,将所述终点添加到第三集合中,将所述起点和所述至少一个节点添加到第四集合中;

所述筛选子单元4022,用于从第一待处理集合中,确定所述当前中间节点可达的目标节点,其中,

从所述起点到所述终点的发散过程中,所述第一待处理集合为所述第二集合,从所述终点到所述起点的发散过程中,所述第一待处理集合为所述第四集合;

所示发散单元402,进一步包括:删移子单元4025,用于将所述最短目标节点从所述第一待处理集合中删除,将所述最短目标节点加入到第二待处理集合中,其中,

从所述起点到所述终点的发散过程中,所述第二待处理集合为所述第一集合,从所述终点到所述起点的发散过程中,所述第二待处理集合为所述第三集合。

在本发明一个实施例中,所述判断单元403,用于实时判断所述第一集合和所述第三集合中是否存在相同的共同节点,如果是,则将所述共同节点作为所述终止节点。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上,本发明的各实施例,至少具有如下有益效果:

1、在本发明的实施例中,通过从待规划路径的起点到终点以及从待规划路径的终点到起点同时进行发散,当存在满足终止条件的终止节点时,确定出待规划路径起点到终止节点的第一最短路径以及待规划路径终点到终止节点的第二最短路径,最后将第一最短路径和第二最短路径组合,可以获得待规划路径。由于在往返路径的过程中,不需要从待规划路径的起点发散到终点,再从终点发散到起点。因此能够节省大量的时间,从而能够有效地提高路径规划的效率。

2、在本发明的实施例中,从起点到终点及从终点到起点同时进行发散,两个方向的同时发散,在满足终止条件时停止发散,缩小了单个向节点的搜索空间,降低了发散的时间复杂度。

3、在本发明的实施例中,通过将起点、终点和每一个节点按照在发散过程中是否经过分配在不同的集合中,能够快速获得起点到某一节点的最短路径或者终点到某一节点的最短路径,并且能够快速判断是否满足终止条件。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1