一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2021-12-14 20:55:00 来源:中国专利 TAG:


1.本公开的实施例涉及计算机技术领域,具体涉及一种路径规划方法和装置。


背景技术:

2.目前物流的多级调度应用较多。在多级调度过程中指定中间调度目的地时,一般采用随机选择或者人为指定的方式来确定,而人为设定中间调度目的地或者随机选择中间调度目的地,会使整条调度路径不一定最短,无法达到物流调度最优的目的。


技术实现要素:

3.本公开的实施例提出了路径规划方法和装置。
4.第一方面,本公开的实施例提供了一种路径规划方法,该方法包括:获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表,路径表包括车辆即将途经的节点以及各节点的属性;基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,其中,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,禁忌表用于存储各个车辆已途经的节点;将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规划路径。
5.在一些实施例中,上述各节点的属性包括:各节点的层级类型;上述根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,包括:根据转移概率公式,选择路径表中的下一节点;根据路径表中各节点的属性,确定所选择的下一节点的层级类型;确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中;从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
6.在一些实施例中,上述各节点的属性包括:各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定;上述根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,包括:根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值;将所有节点的当前路径规划参数分值从高到低进行排序;根据所有节点的当前路径规划参数分值的排序结果,选择下一节点;将所选择的下一节点记录在禁忌表中;从路径表中删除所选择的下一节点。
7.在一些实施例中,上述各节点的属性包括:各节点的层级类型;各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定;上述根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,包括:根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值;将所有节点的当前路
径规划参数分值从高到低进行排序;根据所有节点的当前路径规划参数分值的排序结果,选择下一节点;获取所选择的下一节点的层级类型;确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中;从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
8.在一些实施例中,上述不同路径规划参数包括:调度作业量、路径拥堵度以及调度时间值。
9.在一些实施例中,上述根据所有节点的当前路径规划参数分值的排序结果,选择下一节点包括:将所有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点。
10.第二方面,本公开的实施例提供了一种路径规划装置,该装置包括:获取单元,被配置成获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表,路径表包括车辆即将途经的节点以及各节点的属性;确定单元,被配置成基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,其中,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,禁忌表用于存储各个车辆已途经的节点;规划单元,被配置成将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规划路径。
11.在一些实施例中,上述各节点的属性包括:各节点的层级类型;上述确定单元包括:概率选择模块,被配置成根据转移概率公式,选择路径表中的下一节点;层级确定模块,被配置成根据路径表中各节点的属性,确定所选择的下一节点的层级类型;层级记录模块,被配置成确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中;层级删除模块,被配置成从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
12.在一些实施例中,上述各节点的属性包括:各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定;上述确定单元包括:分值计算模块,被配置成根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值;分值排序模块,被配置成将所有节点的当前路径规划参数分值从高到低进行排序;分值选择模块,被配置成根据所有节点的当前路径规划参数分值的排序结果,选择下一节点;分值记录模块,被配置成将所选择的下一节点记录在禁忌表中;分值删除模块,被配置成从路径表中删除所选择的下一节点。
13.在一些实施例中,上述各节点的属性包括:各节点的层级类型;各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定;上述确定单元包括:分值计算模块,被配置成根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值;分值排序模块,被配置成将所有节点的当前路径规划参数分值从高到低进行排序;分值选择模块,被配置成根据所有节点的当前路径规划参数分值的排序结果,选择下一节点;层级获取模块,被配置成获取所选择的下一节点的层级类型;层级记录模块,被配置成确定路径表
中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中;层级删除模块,被配置成从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
14.在一些实施例中,上述不同路径规划参数包括:调度作业量、路径拥堵度以及调度时间值。
15.在一些实施例中,上述分值选择模块被配置成:将所有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点。
16.第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
17.第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
18.本公开的实施例提供的路径规划方法和装置,首先获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表。而后,基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括路径表和禁忌表。最后,将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规划路径。本技术将各节点的属性加入路径表,并在蚁群算法中基于节点的属性,确定最优的规划路径,提升了选择有效路径的效率,节省了成本,提高了产能。
附图说明
19.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
20.图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
21.图2是根据本公开的路径规划方法的一个实施例的流程图;
22.图3是根据本公开的实施例的路径规划方法的一个应用场景的示意图;
23.图4a是蚁群的运动状态一种示意图;
24.图4b是蚁群的运动过程中出现障碍物后的一种示意图;
25.图4c是蚁群在出现障碍物后的运动状态的一种示意图;
26.图5是根据本公开的实施例中更新规划表的方法的流程图;
27.图6是根据本公开的实施例中选择路径表中的下一节点的方法的流程图;
28.图7是根据本公开的实施例中选择路径表中的下一节点并更新规划表的方法的流程图;
29.图8是根据本公开的路径规划装置的一个实施例的结构示意图;
30.图9是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
31.下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了
便于描述,附图中仅示出了与有关发明相关的部分。
32.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
33.图1示出了可以应用本公开的路径规划方法或路径规划装置的示例性架构100。
34.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,通常可以包括无线通信链路等等。
35.终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如即时通信工具、邮箱客户端等。
36.终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有通信和控制功能的车载设备,也可以是安装有上述车载设备的自动导引运输车。上述车载设备可以与自动导引运输车的自动驾驶系统进行通信。可选地,上述车载设备的功能也可以整合至自动导引运输车的自动驾驶系统中。当终端设备101、102、103为软件时,可以安装在上述自动导引运输车中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
37.服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103上自动驾驶系统提供支持的车联网服务器。车联网服务器可以对网络中各自动导引运输车的相关信息进行分析处理,并将处理结果(如路径规划策略)反馈给终端设备。
38.需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
39.需要说明的是,本公开的实施例所提供的路径规划方法一般由服务器105执行,相应地,路径规划装置一般设置于服务器105中。
40.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
41.继续参考图2,示出了根据本公开的路径规划方法的一个实施例的流程200。该路径规划方法包括以下步骤:
42.步骤201,获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表。
43.其中,路径表包括车辆即将途经的节点以及各节点的属性。
44.本实施例中,节点是组成路径的最小单位,初始节点为车辆途经路径的首个节点;节点的属性是节点本身固有的不可缺少的性质,针对不同的车辆场景,可以为节点设置不同属性,例如,节点的属性可以包括节点的层级类型、节点的业务属性类型、节点的优先级类型等等。
45.其中,节点的层级类型是指各节点在路径表的所有节点中被车辆途经的先后顺序的属性,例如针对如图3所示的园区车辆多级调度场景,车辆从园区入口依次经过检测称重台、园内停车区域最终到指定月台,多个检测称重台就是一级调度位置,所有检测称重台1,
2,3具有同一层级类型;多个园内停车区域就是二级调度位置,所有园内停车区域1,2,3具有同一层级类型;本技术的路径规划方法可以实现车辆从园区入口到某一个检测称重台之后到某一个园内停车区域再到指定月台的整个路径最短。
46.其中,节点的业务属性类型是指各节点的以下业务属性的类型:业务内容的类型和/或业务用途的类型,比如,上述园区车辆多级调度场景下园内停车区域的业务属性类型是停车;而检测称重台的业务属性类型是称重。
47.其中,节点的优先级类型可以是预先设置的优先等级,比如,可以预先设置上述园区车辆多级调度场景下园内停车区域的优先等级是1级。
48.本实施例中,路径规划方法的执行主体(如图1所示的服务器105)可以预先存储或获取有所有车辆即将途经节点以及各节点的属性,该执行主体通常还可以通过v2x(vehicle to everything,车用无线通信技术)接收各个车辆所发送的行车信息,根据接收到的行车信息确定车辆位置,从而确定车辆所在初始节点或根据接收到的行车信息为车辆分配初始节点,本技术中的车辆可以是agv(automated guidedvehicle的缩写,自动导引运输车),agv是装备有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输车。
49.为了实现最优路径的调度,可以采用蚁群算法进行计算。在蚁群算法中车辆相当于蚂蚁,路径表与蚁群算法中的城市表allowed表征的意义相同,在蚁群算法中城市表allowed用于存储蚂蚁可以访问的城市,本实施例中,路径表用于存储车辆即将途经的节点。
50.下面详细叙述一下蚁群算法:
51.蚁群算法(ant clony optimization,aco)是一种群智能算法,它是由一群无智能或有轻微智能的个体(agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性。
52.蚁群算法是一种仿生学算法,是由自然界中蚂蚁觅食的行为而启发的。在自然界中,蚂蚁觅食过程中,蚁群总能够按照寻找到一条从蚁巢和食物源的最优路径。
53.在图4a中,有一群蚂蚁,假如a点是蚁巢,e点是食物源(反之亦然)。这群蚂蚁将沿着蚁巢a和食物源e之间的直线路径行驶。假如在a和e之间突然出现了一个障碍物1(图4b),那么,在b点(或d点)的蚂蚁将要做出决策,到底是向左行驶还是向右行驶,由于一开始路上没有前面蚂蚁留下的信息素(pheromone),蚂蚁朝着两个方向行进的概率是相等的。但是当有蚂蚁走过时,它将会在它行进的路上释放出信息素,并且这种信息素会以一定的速率散发掉。信息素是蚂蚁之间交流的工具之一。它后面的蚂蚁通过路上信息素的浓度,做出决策,往左还是往右。很明显,沿着障碍物1短边c的路径上信息素将会越来越浓(图4c),从而吸引了越来越多的蚂蚁沿着这条路径行驶。
54.蚁群算法的原理如下:
55.假如蚁群中所有蚂蚁的数量为m,所有城市之间的信息素用矩阵pheromone表示,最短路径为bestlength,最佳路径为besttour。每只蚂蚁都有自己的内存,内存中用一个禁忌表tabu来存储该蚂蚁已经访问过的城市,表示其在以后的搜索中将不能访问这些城市;还有用另外一个允许访问的城市表allowed来存储它还可以访问的城市;另外还用一个矩阵delta来存储它在一个循环(或者迭代)中给所经过的路径释放的信息素;还有另外一些
数据,例如一些控制参数α,β,ρ,q,ρ表示信息素的保留率,也称为信息素挥发系数;α是信息启发因子,其值的大小表明留在每个节点上的信息量受重视的程度;β是期望启发因子,其值的大小表明启发式信息受重视的程度;q是信息素强度值,其值为常量;该蚂蚁行走完全程的总成本或距离(tourlength),等等。假定算法总共运行max_gen次,运行时间为t。
56.蚁群算法计算过程如下:
57.s1、初始化
58.设t=0,初始化bestlength为一个非常大的数(正无穷),besttour为空。初始化所有的蚂蚁的delt矩阵所有元素初始化为0,tabu表清空,allowed表中加入所有的城市节点。随机选择它们的起始位置(也可以人工指定)。在tabu中加入起始节点,allowed中去掉该起始节点。
59.s2、为每只蚂蚁选择下一个节点。
60.为每只蚂蚁选择下一个节点,该节点从allowed中通过转移概率公式(1)搜索到,每搜到一个,就将该节点加入到tabu中,并且从allowed中删除该节点。该过程重复n-1次,直到所有的城市都遍历过一次。遍历完所有节点后,将起始节点加入到tabu中。此时tabu表元素数量为n 1(n为城市数量),allowed元素数量为0。接下来按照公式(2)计算每个蚂蚁的delta矩阵值。最后计算最佳路径,比较每个蚂蚁的路径成本,然后和bestlength比较,若它的路径成本比bestlength小,则将该值赋予bestlength,并且将其tabu赋予besttour。
[0061][0062][0063]
其中表示选择城市j的概率,k表示第k个蚂蚁,τ
ij
(t)表示城市i,j在第t时刻的信息素浓度,η
ij
表示从城市i到城市j的可见度,
[0064]
η
ij
=1/d
ij
,d
ij
表示城市i,j之间的成本(或距离)。由此可见d
ij
越小,η
ij
越大,也就是从城市i到j的可见性就越大。表示蚂蚁k在城市i与j之间留下的信息素。
[0065]
l
k
表示蚂蚁k经过一个循环(或迭代)所经过路径的总成本(或距离),即tourlength.α,β,q均为控制参数。
[0066]
s3、更新信息素矩阵
[0067]
令t=t n,按照公式(3)更新信息素矩阵phermone。
[0068]
τ
ij
(t n)=ρ
·
τ
ij
(t) δτ
ij
(3)
[0069]
τ
ij
(t n)为t n时刻城市i与j之间的信息素浓度。ρ为控制参数,δτ
ij
为城市i与j之间信息素经过一个迭代后的增量。并且有:
[0070][0071]
s4、检查终止条件
[0072]
如果达到最大代数max_gen,算法终止,转到s5步;否则,重新初始化所有的蚂蚁的delt矩阵中所有元素为0,tabu表清空,allowed表中加入所有的城市节点。随机选择它们的起始位置(也可以人工指定)。在tabu中加入起始节点,allowed中去掉该起始节点,重复执行s2,s3,s4步。
[0073]
s5、输出最优值。
[0074]
步骤202,基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,其中,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表。
[0075]
其中,规划表包括:禁忌表与路径表,禁忌表用于存储各个车辆已途经的节点。
[0076]
本实施例中,可以将车辆类比为蚁群算法中的蚂蚁,规划表中的禁忌表与上述蚁群算法中的禁忌表tabu表征的意义相同,在上述蚁群算法中禁忌表tabu用来存储该蚂蚁已经访问过的城市,本实施例中,禁忌表用于存储各个车辆已途经的节点。
[0077]
本实施例可以采用上述蚁群算法的公式(2)-(4)计算得到各个车辆的规划路径和规划路径对应的信息素。进而,针对在上述蚁群算法中根据各节点的属性选择下一节点或者通过公式(1)选择下一节点之后更新规划表,本实施例提供了改进方案,即根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表。
[0078]
具体地,根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表包括以下三种方案:
[0079]
1)根据路径表中各节点的属性,选择路径表中的下一节点。
[0080]
针对不同的车辆场景,可为节点设置不同属性。例如,当节点属性包括节点的优先级类型时,路径表中所有节点被划分为不同的优先级,方案1)包括:根据各节点的优先级类型,在上述蚁群算法每次迭代时,选择路径表中优先级最高的节点,作为下一节点。后续执行上述蚁群算法中更新路径表和禁忌表的操作。
[0081]
2)根据路径表中各节点的属性,更新规划表。
[0082]
针对不同的车辆场景,可为节点设置多个不同属性,例如,当节点属性包括节点的业务属性类型时,方案2)包括:使用公式(1)选择下一节点,确定路径表中与所选择的下一节点的业务属性类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的业务属性类型相同的节点记录在禁忌表中;从路径表中删除所选择的下一节点以及与所选择的下一节点的业务属性类型相同的节点。通过该方案2)可以在每次迭代中选择的节点的业务属性类型不会重复。
[0083]
3)根据路径表中各节点的属性,选择路径表中的下一节点并更新规划表。
[0084]
针对不同的车辆场景,可为节点设置不同属性。例如,当节点属性包括节点的优先级类型以及节点的业务属性类型时,方案3)包括:根据各节点的优先级类型,在上述蚁群算法每次迭代时,选择路径表中优先级最高的节点,作为下一节点,确定路径表中与所选择的下一节点的业务属性类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的业务属性类型相同的节点记录在禁忌表中;从路径表中删除所选择的下一节点以及与所选择的下一节点的业务属性类型相同的节点。通过该方案3)可以优先选择优先级别较高的节点,且在每次迭代中选择的节点的业务属性类型不会重复。
[0085]
步骤203,将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规
划路径。
[0086]
具体地,蚁群算法主要通过多次迭代得到所有车辆的规划路径中信息素浓度最高的规划路径,根据图4a-图4c所示的蚁群算法的原理可知,在路径上没有信息素时,蚂蚁按等概率在所有路径行进,当路径上有信息素之后,蚂蚁通过路上信息素的浓度做出行进决策,最短的路径由于同样时间内行进次数最多,因此信息素的浓度最高,即本实施例中,得到的信息素浓度最高的规划路径也是路径最短的规划路径,因此采用该信息素浓度最高的规划路径可以使车辆途经的路径最短,节省了成本,提高了产能。
[0087]
本公开的实施例提供的路径规划方法,首先获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表。而后,基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括路径表和禁忌表。最后,将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规划路径。本技术将各节点的属性加入路径表,并在蚁群算法中基于节点的属性,确定最优的规划路径,提升了选择有效路径的效率,节省了成本,提高了产能。
[0088]
在路径表中各节点的属性包括各节点的层级类型时,可以根据层级类型,更新规划表,进一步参考图5,其示出了本公开的实施例中更新规划表的方法的流程500。上述根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,包括以下步骤:
[0089]
步骤501,根据转移概率公式,选择路径表中的下一节点。
[0090]
本实施例中,转移概率公式即为上述公式(1),通过采用上述公式(1)选择下一节点,容易实现。
[0091]
步骤502,根据路径表中各节点的属性,确定所选择的下一节点的层级类型。
[0092]
本实施例中,路径表中存储有车辆即将途经的节点以及各节点的属性,在确定所选择的下一节点之后,可以从路径表中查找与所选择的下一节点相对应的节点的属性,由于路径表中各节点的属性包括各节点的层级类型,则在确定下一节点相对应的节点的属性之后,可以从该属性中确定所选择的下一节点的层级类型。
[0093]
步骤503,确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中。
[0094]
具体地,蚁群算法在选择下一节点时,需要保证经过路径表中的所有层级类型的节点。针对多级调度场景下相同层级类型的多个节点,只要经过其中任意一个节点即可。因此,采用上述蚁群算法选择下一节点时,可以进行同层级类型节点去异改造,即在经过某一层级的一节点时要对路径表中除该节点之外的、相同层级类型的所有节点做已途经处理,车辆就不会再经过除该节点之外的、相同层级类型的所有节点。
[0095]
步骤504,从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
[0096]
路径表与禁忌表是两个对立的表格,路径表包括车辆即将途经的节点,禁忌表包括车辆已途经的节点,在每次迭代中,一旦禁忌表记录了某个节点,则路径表中需要删除该禁忌表记录的节点。
[0097]
本实施例提供的更新规划表的方法,路径表中各节点的属性包括各节点的层级类型,在根据转移概率公式选了路径表中的下一节点后,获取所选择的下一节点的层级类型,
确定与所选择的下一节点的层级类型相同的节点,并将与所选择的下一节点记录在禁忌表中,从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点,即同层级类型节点去异改造,路径表中去除与下一节点层级类型相同的节点,表示该层级已经有一个位置经过,该层级的其他位置都不需要再经过,实现了车辆只会通过相同层级中的其中一个节点回到初始节点,从而节省了蚁群算法计算时间,节省了路径规划成本。
[0098]
随着规划路径的使用场景更为复杂,仅通过一些预设的节点的属性可能无法达到路径表中各节点业务量均衡的目的,而在路径表中动态调整各节点与路径规划参数相关联的属性,可使确定的最优的规划路径随着调度业务的不同而不同。具体地,各节点的属性可以包括:各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定。本实施例中,不同路径规划参数即为与路径规划相关的参数,不同路径规划参数可以包括:调度作业量、路径拥堵度以及调度时间值。其中,调度作业量为路径表中各节点作业量,比如,园区内车辆要到月台1,2,3时,全部要途经园内停车区域2,这时园内停车区域2的车流量较大,即作业量较大,其预设权重值较小。路径拥堵度为通过路径表中各节点时的顺畅程度,还以上述园内停车区域2为例,由于所有车辆均要通过园内停车区域2,其路径拥堵度较高,其预设权重值较小。调度时间值为通过路径表中各节点时的用时长短,其与路径拥堵值呈正比。本实施例中,不同路径规划参数包括调度作业量、路径拥堵度以及调度时间值,可以充分考虑各节点的路径业务量,为路径业务量均衡打下了基础。
[0099]
进一步参考图6,其示出了本公开的实施例中选择路径表中的下一节点的方法的流程600。该选择路径表中的下一节点的方法的流程600,包括以下步骤:
[0100]
步骤601,根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值。
[0101]
本实施例中,各节点与不同路径规划参数相关联的预设权重值,是综合考虑后预先设置的各个路径规划参数在所有路径规划参数中的相对重要程度的定量分配。通过各节点与不同路径规划参数相关联的预设权重值,可以对各个路径规划参数在所有路径规划参数中进行区别对待。
[0102]
在采用蚁群算法规划各个车辆的规划路径时,各节点与不同路径规划参数相关联的分值分别具有初始值,随着路径规划参数的变化,各节点与不同路径规划参数相关联的分值不断更新,直至各节点与不同路径规划参数相关联的分值达到预设分值。其中,各节点与不同路径规划参数相关联的分值在更新时,分值的变化量与路径规划参数的变化量呈正比。例如,园内停车区域的调度作业量的初始分值为20分,在调度过程中,园内停车区域的调度作业量的增加了20个调度作业量,则相应地,园内停车区域的调度作业的调度作业量的分值增加10分,节点与调度业务量相关联的分值变为30分(调度作业量每增加20个,与调度作业量相关联的分值增加10分);当然,为了更好地管理各节点与不同路径规划参数相关联的分值,可以规定在园内停车区域的调度作业的调度作业量增加到预设值(例如500个)时,调度作业量的分值为固定分值(比如100分),即使调度作业的调度作业量再增加,调度作业量的分值也不再变化。
[0103]
进一步地,为了更好地确定各个节点的属性,统计各个节点的所有路径规划参数的分值,也即统计当前路径规划参数分值,需要计算各个节点的不同路径规划参数的加权值,各个节点的不同路径规划参数的加权值是计算每个节点与不同路径规划参数相关联的
预设权重值和分值的乘积之后再相加,从而得到各个节点的当前路径规划参数分值。
[0104]
步骤602,将所有节点的当前路径规划参数分值从高到低进行排序。
[0105]
本实施例中,在得到各个节点的当前路径规划参数分值之后,根据各个节点的当前路径规划参数分值的大小,将所有节点的当前路径规划参数分值从高到低进行排序。
[0106]
步骤603,根据所有节点的当前路径规划参数分值的排序结果,选择下一节点。
[0107]
本实施例中,根据不同路径规划参数相关联的分值的定义不同,可以将所有节点的当前路径规划参数分值的排序结果中排序在第设定位的节点,选择为下一节点。
[0108]
可选地,上述根据所有节点的当前路径规划参数分值的排序结果,选择下一节点,包括:根据所有节点的当前路径规划参数分值排序的从高到低,取当前路径规划参数分值排序前设定位的节点,求该设定位的节点的当前路径规划参数分值的平均值,得到平均分值,以当前路径规划参数分值与该平均分值最接近的节点作为下一节点。
[0109]
本实施例的一些可选实现方式中,上述根据所有节点的当前路径规划参数分值排序,选择下一节点,包括:
[0110]
将所有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点。本可选实现方式,通过将所有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点,操作简单,容易实现,可以快速的定位下一节点。
[0111]
步骤604,将所选择的下一节点记录在禁忌表中。
[0112]
具体地,蚁群算法在选择下一节点时是要保证经过路径表中的所有节点,将所选择的下一节点记录在禁忌表中,可以确认当前蚁群算法计算流程已经经过所选择的下一节点。
[0113]
步骤605,从路径表中删除所选择的下一节点。
[0114]
由于路径表与禁忌表是两个对立的表格,路径表包括车辆即将途经的节点,禁忌表包括车辆已途经的节点,在每次迭代中,一旦禁忌表记录了某个节点,则路径表中需要删除该禁忌表记录的节点。
[0115]
本实施例提供的选择路径表中的下一节点的方法,根据各节点与不同路径规划参数相关联的预设权重值以及分数,分值由各个路径规划参数的变化量确定,计算当前路径规划参数分值,将所有节点的当前路径规划参数分值从高到低进行排序,根据所有节点的当前路径规划参数分值的排序结果,选择下一节点。由此,随着路径规划参数的变化量不同,各节点的当前路径规划参数分值不同,实现了下一节点的动态调整,提高了最优路径选择的可调性;进一步,将节点的属于设置为与路径规划参数相关联,实现了规划路径的业务量均衡。
[0116]
相对于图5和图6所示的实施例,本公开的另一个实施例中,各节点的属性还可以包括:各节点的层级类型;各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定。
[0117]
进一步参考图7,其示出了本公开的实施例中选择路径表中的下一节点并更新规划表的方法的流程700。该选择路径表中的下一节点并更新规划表的方法的流程700,包括以下步骤:
[0118]
步骤701,根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值。
[0119]
步骤702,将所有节点的当前路径规划参数分值从高到低进行排序。
[0120]
步骤703,根据所有节点的当前路径规划参数分值的排序结果,选择下一节点。
[0121]
本实施例的一些可选实现方式中,上述根据所有节点的当前路径规划参数分值的排序结果,选择下一节点,包括:
[0122]
将所有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点。本可选实现方式,通过将所有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点,操作简单,容易实现,可以快速的定位下一节点。
[0123]
步骤704,获取所选择的下一节点的层级类型。
[0124]
本实施例中,路径表中存储有车辆即将途经的节点以及各节点的属性,在确定所选择的下一节点之后,可以从路径表中查找与所选择的下一节点相对应的节点的属性,由于路径表中各节点的属性包括各节点的层级类型,则在确定下一节点相对应的节点的属性之后,可以从该属性中获取所选择的下一节点的层级类型。
[0125]
步骤705,确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中。
[0126]
步骤706,从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
[0127]
具体地,一般车辆的调度任务平均执行时长是190秒,采用本实施例的路径规划方法对车辆进行调度的调度任务平均执行时长是165秒,相当于每个车辆会缩短25秒的执行时间,当平均每天有2800个车辆执行调度任务时,按照车辆1秒运行1米的运行规则统计,采用本实施例的路径规划方法每天可以减少车辆运行距离7000米。
[0128]
本实施例提供的选择路径表中的下一节点并更新规划表的方法,根据各节点与不同路径规划参数相关联的预设权重值以及分数,分值由各个路径规划参数的变化量确定,计算当前路径规划参数分值,将所有节点的当前路径规划参数分值从高到低进行排序,根据所有节点的当前路径规划参数分值的排序结果,选择下一节点。获取所选择的下一节点的层级类型,确定与所选择的下一节点的层级类型相同的节点,并将与所选择的下一节点记录在禁忌表中,从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。由此,在下一节点可进行动态调整的同时,车辆只会通过相同层级中的其中一个节点回到初始节点,从而实现了规划路径的业务量均衡,节省了蚁群算法计算时间,节省了路径规划成本。
[0129]
进一步参考图8,作为对上述各图所示方法的实现,本公开提供了路径规划装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0130]
如图8所示,本实施例提供的路径规划装置800包括获取单元801、确定单元802和规划单元803。其中,上述获取单元801,被配置成获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表,路径表包括车辆即将途经的节点以及各节点的属性。上述确定单元802,被配置成基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,其中,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,禁忌表用于存储各个车辆已途经的节点。上述规划单元803,被配置成将所有车辆的规划路径中信息素浓度最高的
规划路径,确定为最优的规划路径。
[0131]
在本实施例中,路径规划装置800中:获取单元801、确定单元802和规划单元803的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202和步骤203的相关说明,在此不再赘述。
[0132]
在本实施例的一些可选的实现方式中,上述各节点的属性包括:各节点的层级类型。上述确定单元802可以包括概率选择模块(图中未示出),层级确定模块(图中未示出),层级记录模块(图中未示出),层级删除模块(图中未示出)。其中,上述概率选择模块,可以被配置成根据转移概率公式,选择路径表中的下一节点。上述层级确定模块,可以被配置成根据路径表中各节点的属性,确定所选择的下一节点的层级类型。上述层级记录模块,可以被配置成确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中。上述层级删除模块,可以被配置成从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
[0133]
在本实施例的一些可选的实现方式中,上述各节点的属性包括:各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定。上述确定单元802可以包括还可以包括:分值计算模块(图中未示出),分值排序模块(图中未示出),分值选择模块(图中未示出),分值记录模块(图中未示出),分值删除模块(图中未示出)。其中,上述分值计算模块,可以被配置成根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值。上述分值排序模块,可以被配置成将所有节点的当前路径规划参数分值从高到低进行排序。上述分值选择模块,可以被配置成根据所有节点的当前路径规划参数分值的排序结果,选择下一节点。上述分值记录模块,可以被配置成将所选择的下一节点记录在禁忌表中。上述分值删除模块,可以被配置成从路径表中删除所选择的下一节点。
[0134]
在本实施例的一些可选的实现方式中,上述各节点的属性包括:各节点的层级类型;各节点与不同路径规划参数相关联的预设权重值以及分值,分值由各个路径规划参数的变化量确定。上述确定单元802可以包括:分值计算模块(图中未示出),分值排序模块(图中未示出),分值选择模块(图中未示出),层级获取模块(图中未示出),层级记录模块(图中未示出),层级删除模块(图中未示出)。上述分值计算模块,可以被配置成根据各节点与不同路径规划参数相关联的预设权重值以及分值,计算各个节点的不同路径规划参数的加权值,得到当前路径规划参数分值。上述分值排序模块,可以被配置成将所有节点的当前路径规划参数分值从高到低进行排序。上述分值选择模块,可以被配置成根据所有节点的当前路径规划参数分值的排序结果,选择下一节点。上述层级获取模块,可以被配置成获取所选择的下一节点的层级类型。上述层级记录模块,可以被配置成确定路径表中与所选择的下一节点的层级类型相同的节点,并将所选择的下一节点以及路径表中与所选择的下一节点的层级类型相同的节点记录在禁忌表中。上述层级删除模块,可以被配置成从路径表中删除所选择的下一节点以及与所选择的下一节点的层级类型相同的节点。
[0135]
在本实施例的一些可选的实现方式中,上述不同路径规划参数包括:调度作业量、路径拥堵度以及调度时间值。
[0136]
在本实施例的一些可选的实现方式中,上述分值选择模块还可以被配置成:将所
有节点的当前路径规划参数分值的排序结果中排序在首位的节点作为下一节点。
[0137]
本公开的实施例提供的路径规划装置,首先获取单元801获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表。而后,确定单元802基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括路径表和禁忌表。最后,规划单元803将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规划路径。本技术将各节点的属性加入路径表,并在蚁群算法中基于节点的属性,确定最优的规划路径,提升了选择有效路径的效率,节省了成本,提高了产能。
[0138]
下面参考图9,下面参考图9,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器)900的结构示意图。图9示出的服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
[0139]
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储装置908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、rom 902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
[0140]
通常,以下装置可以连接至i/o接口905:包括例如触摸屏、触摸板、键盘、鼠标、等的输入装置906;包括例如液晶显示器(lcd,liquid crystal display)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图9中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
[0141]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从rom 902被安装。在该计算机程序被处理装置901执行时,执行本公开的实施例的方法中限定的上述功能。
[0142]
需要说明的是,本公开的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多
种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(radio frequency,射频)等等,或者上述的任意合适的组合。
[0143]
上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表,路径表包括车辆即将途经的节点以及各节点的属性;基于各个车辆的初始数据,采用蚁群算法确定各个车辆的规划路径和规划路径对应的信息素,其中,蚁群算法根据路径表中各节点的属性,选择路径表中的下一节点和/或更新规划表,规划表包括:禁忌表与路径表,禁忌表用于存储各个车辆已途经的节点;将所有车辆的规划路径中信息素浓度最高的规划路径,确定为最优的规划路径。
[0144]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0145]
附图中的流程图和框图,图示了按照本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0146]
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器,包括获取单元、确定单元、规划单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“被配置成获取各个车辆的初始数据,初始数据包括:初始节点和基于初始节点确定的路径表,路径表包括车辆即将途经的节点以及各节点的属性的单元”。
[0147]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同
特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献