1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202410016724.9(22)申请日 2024.01.05(71)申请人 南京信息工程大学地址 210032 江苏省南京市江北新区宁六路219号(72)发明人 杨强薄子杨高旭东(74)专利代理机构 南京经纬专利商标代理有限公司 32200专利代理师 王慧(51)Int.Cl.G06Q 10/0631(2023.01)G06N 3/006(2023.01)G06Q 10/083(2024.01)(54)发明名称一种融合充电约束和容量约束的多电动物流车调度方法(57)摘要本发明公开了一种融合充电
2、约束和容量约束的多电动物流车调度方法,在电动汽车路径问题基础上引入充电约束,限制电动汽车充电的次数,使物流车团队更快速地响应客户群体的服务请求;该约束的加入增加了电动物流车调度优化的问题,将该问题建模为融合充电约束的多电动物流车调度优化问题,根据充电站位置、电池容量、运输任务和充电需求多个因素,设计了一种基于精英策略的蚁群优化算法以构建多电动物流车服务客户群体的可行路径方案,提出了路径构建策略,并在蚂蚁之间共享信息,不断迭代优化以找到最优的调度方案。本发明通过合理规划充电站的使用和有效分配任务,能够提高多电动物流车的调度效率,降低运营成本,增加客户群体的运输服务体验。权利要求书3页 说明书12
3、页 附图4页CN 117522088 A2024.02.06CN 117522088 A1.一种融合充电约束和容量约束的多电动物流车调度方法,其特征在于,包括步骤如下:S1,获取客户群体、仓库、充电站以及电动物流车的信息;S2,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建二维距离矩阵,根据所述二维距离矩阵计算出距每个客户节点最近的充电站;同时构建客户的实体对象和电动物流车的实体对象;S3,采用贪婪解的路径总长度初始化信息素矩阵和蚁群算法参数;S4,蚂蚁k派遣一辆电动物流车从仓库起点出发,根据客户节点之间的信息素浓度和启发式信息选择客户节点,开始构建路径;S5,检查是否还有未被服务
4、的客户节点,若有,则转到步骤S6;若无,路径构建结束;S6,根据状态转移方程选择下一个待服务的客户节点;S7,根据电动物流车现有的容量、电量、充电约束和待服务客户的容量需求判断该电动物流车是否能继续服务,若能,则转到步骤S8服务该客户;若不能,则返回仓库,并转到步骤S4;S8,将该客户添加到电动物流车的服务序列当中,并修改电动物流车的状态信息,并转到流程S5;S9,重复步骤S4S8,直至所有的蚂蚁构建完多电动物流车调度方案;评估蚁群的调度方案,更新全局最优调度方案;S10,基于精英策略的蚁群算法中的信息素更新策略,更新信息素矩阵;S11,如果不满足迭代终止条件,则转到步骤S4;如满足迭代终止条
5、件,输出全局最优多电动物流车调度方案。2.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S1中,客户群体信息包括客户的编号、位置坐标、运输服务的容量需求;电动物流车信息包括车辆的容量、电量和充电次数限制;仓库信息包括车仓库的编号和位置坐标,充电站信息包括充电站的编号和位置坐标。3.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S2中,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建一个nn二维距离矩阵,n为节点个数,基于该距离矩阵计算出距离每个客户节点的最近的充电站;构建客户的实体对象customerid,deman
6、d,charge_station,存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象electric_vehiclecapacity,energy,charge_times,tour,存储电动物流车的容量、电量状态、充电次数及服务的节点序列。4.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S3中,通过最近邻算法求得一条完整的客户服务序列,用该客户服务序列路径长度的倒数来初始化信息素矩阵PheromoneMatrix;初始化的蚁群算法参数包括种群大小NP、信息素浓度权重、启发式信息权重、信息素蒸发速率和算法迭代次数Max_Iterat
7、ion。5.根据权利要求4所述融合充电约束和容量约束的多电动物流车调度方法,其特征在权利要求书1/3 页2CN 117522088 A2于,步骤S4中,每只蚂蚁为客户群体维护一个禁忌表tabu,所述禁忌表tabu用来记录已服务过的客户节点;同时,蚂蚁也维护一个候选节点集candidates。6.根据权利要求5所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S6中,蚂蚁根据状态转移方程为当前电动物流车选择下一个待服务的客户节点的详细步骤如下:S601,蚂蚁k计算候选节点集candidatesk,表达式如下:其中,V表示有物流服务需求的客户节点集,1 k NP ;S602,蚂蚁k
8、在当前位置通过状态转移方程来确定下一个服务的客户节点j,表达式如下:其中,为当前所在节点i与下一个节点l之间的信息素浓度,为当前所在节点i与下一个节点l之间的启发式信息;、分别是控制信息素浓度和启发式信息的权重;q是均匀分布在区间0,1中的一个随机变量;q0是一个预先定义的参数,用以控制蚂蚁探索和开发的概率:蚂蚁以q0的概率移动到信息素浓度和启发式信息最强的客户节点,以(1q0)的概率有偏向性地探索各条边,0q01;J为一个按如下概率分布产生的随机客户节点序号表达式如下:其中,表示蚂蚁从当前客户节点i移动到下一个客户节点j的概率,分别表示当前所在节点i与下一个节点j之间的信息素浓度和启发式信息
9、,;r为落在区间0,1)内的一个随机数,按照轮盘赌的方式选择出客户J;表示依次从客户节点1至节点j的概率和。7.根据权利要求6所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S7中,判断蚂蚁k所派遣的当前电动物流车能否服务客户j的实现步骤如下:S701,首先检查电动物流车的剩余电量是否足以为客户j服务,并且能够前往距离客户j最近的充电站;如果电量充足,流程转入S702检查电动物流车的剩余容量是否满足客户的容量需求;如果电量不充足,流程转入S705检查电动物流车的充电次数是否超过CT设;S702,检查电动物流车的剩余容量是否满足客户的容量需求;如果满足容量约束,流程转入步骤S8
10、服务该客户并修改电动物流车的状态信息;如果不满足容量约束,流程转入S703检查剩余电量是否足够返回仓库;S703,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入S708;如果剩余电量不足,流程转入S704检查电动物流车的充电次数是否超过CT设;S704,检查电动物流车的充电次数是否超过CT设;如充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入S708;如果充电次数超过CT设,流程转入S707;S705,检查电动物流车的充电次数是否超过CT设;如充电次数没超过CT设,电动物流车首权利要求书2/3 页3CN 117522088 A3先前往最近的充电站充
11、满电,然后流程转入步骤S701继续;如果充电次数超过CT设,流程转入S706检查剩余电量是否足以让电动物流车返回仓库;S706,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入S708;如果剩余电量不足,流程转入S707;S707,移除最后服务的客户节点,修改电动物流车的状态信息,流程转入S706;S708,电动物流车返回仓库,完成该电动物流车的路径构建,流程转入S4,蚂蚁派遣一辆空的电动物流车从仓库起点出发。8.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S8中,根据电动物流车当前所处位置到客户的路程距离和耗电功率计算出电量损耗cons
12、umption,再根据电量损耗和客户的容量需求更新电动物流车的状态信息electric_vehiclecapacity,energy,charge_times,tour,更新公式如下:最后将该客户节点的编号添加到电动物流车的服务路线tour和禁忌表tabu中。9.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S9中,评估蚁群的多电动物流车调度方案,更新全局最优调度方案的实现步骤如下:S901,通过目标函数计算每只蚂蚁构建的电动物流车调度方案的服务成本,目标函数的表达式如下:其中,solutionk表示蚂蚁k构建的调度方案,mk表示蚂蚁k派遣的电动物流车数量,v
13、是电动物流车的序号,tourv是第v辆电动物流车的服务路线;d表示两节点之间的距离;S902,将当前服务成本最小的路径解标记为当前最优解best,表达式如下:当f(gbest)f(best),则将当前最优解best的调度方案放到全局最优解gbest中;当f(gbest)f(best),全局最优解gbest保持不变。10.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S10中,基于精英策略的蚁群优化算法的更新公式如下:其中,是边(i,j)上的信息素,为信息素蒸发速率,为第k只蚂蚁在边(i,j)上释放的信息素,solutionk表示蚂蚁k构建的调度方案,构建出历史
14、最优方案gbest的蚂蚁被称为精英蚂蚁,是精英蚂蚁在边(i,j)上释放的信息素,e为给予调度方案gbest所释放信息素的权值。权利要求书3/3 页4CN 117522088 A4一种融合充电约束和容量约束的多电动物流车调度方法技术领域0001本发明涉及路径规划和计算智能技术领域,尤其涉及一种融合充电约束和容量约束的多电动物流车调度方法。背景技术0002电动汽车因其环保性而在日常生活中变得越来越普遍,众多物流公司开始采用电动汽车来进行物流运输服务。由于电动汽车的容量和电量约束,多电动物流车调度问题相当具有挑战性。为了有效地处理电动物流车调度问题,研究人员设计了许多新颖的优化方法,这些方法可以概括
15、为两大类,即确定性方法和启发式算法。第一种方法主要将该问题转换为混合整数规划问题,然后采用混合整数规划方法来解决转换后的问题。然而,这种方法非常耗时,因此只适合解决小规模的物流车调度。第二类方法是使用迭代局部搜索、遗传算法和蚁群优化算法等启发式算法来求解该问题。此类方法通常维护一组可行解来迭代遍历搜索空间以找到问题的全局最优解。因此,与第一类方法相比,启发式方法陷入局部最优的概率很小。然而,现有的电动物流车调度方法在优化电动汽车服务路线时都不考虑对充电次数的限制,这就导致了电动汽车充电时长与客户群体服务需求之间的矛盾,极大地影响了客户的服务体验。因此,现有电动物流车调度方法不能很好地客户群体的
16、服务需求。0003蚁群优化算法最早是被提出用于解决旅行商问题,其在路径规划和资源调度方面有着不俗的表现,具有收敛速度快,解的质量稳定等优点,对多电动车物流调度优化问题有良好的优越性。然而,融合充电约束和容量约束的多电动车物流调度优化本质上是一个三重优化问题,解空间复杂且崎岖,传统的蚁群优化算法难以构建有效的可行解。发明内容0004发明目的:本发明的目的是提供一种能迅速找到可行的多电动物流车的调度方案,达到最小化物流车团队的服务成本和客户群体等待时间目标的融合充电约束和容量约束的多电动物流车调度方法。0005技术方案:本发明的多电动物流车调度方法,包括步骤如下:S1,获取客户群体、仓库、充电站以
17、及电动物流车的信息;S2,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建二维距离矩阵,根据所述二维距离矩阵计算出距每个客户节点最近的充电站;同时构建客户的实体对象和电动物流车的实体对象;S3,采用贪婪解的路径总长度初始化信息素矩阵和蚁群算法参数;S4,蚂蚁k派遣一辆电动物流车从仓库起点出发,根据客户节点之间的信息素浓度和启发式信息选择客户节点,开始构建路径;S5,检查是否还有未被服务的客户节点,若有,则转到步骤S6;若无,路径构建结束;S6,根据状态转移方程选择下一个待服务的客户节点;说明书1/12 页5CN 117522088 A5S7,根据电动物流车现有的容量、电量、充电约束和
18、待服务客户的容量需求判断该电动物流车是否能继续服务,若能,则转到步骤S8服务该客户;若不能,则返回仓库,并转到步骤S4;S8,将该客户添加到电动物流车的服务序列当中,并修改电动物流车的状态信息,并转到流程S5;S9,重复步骤S4S8,直至所有的蚂蚁构建完多电动物流车调度方案;评估蚁群的调度方案,更新全局最优调度方案;S10,基于精英策略的蚁群算法中的信息素更新策略,更新信息素矩阵;S11,如果不满足迭代终止条件,则转到步骤S4;如满足迭代终止条件,输出全局最优多电动物流车调度方案。0006进一步,步骤S1中,客户群体信息包括客户的编号、位置坐标、运输服务的容量需求;电动物流车信息包括车辆的容量
19、、电量和充电次数限制;仓库信息包括车仓库的编号和位置坐标,充电站信息包括充电站的编号和位置坐标。0007进一步,步骤S2中,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建一个nn二维距离矩阵,n为节点个数,基于该距离矩阵计算出距离每个客户节点的最近的充电站;构建客户的实体对象customerid,demand,charge_station,存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象electric_vehiclecapacity,energy,charge_times,tour,存储电动物流车的容量、电量状态、充电次数及服务的节点序列。0008进一
20、步,步骤S3中,通过最近邻算法求得一条完整的客户服务序列,用该客户服务序列路径长度的倒数来初始化信息素矩阵PheromoneMatrix;初始化的蚁群算法参数包括种群大小NP、信息素浓度权重、启发式信息权重、信息素蒸发速率和算法迭代次数Max_Iteration。0009进一步,步骤S4中,每只蚂蚁为客户群体维护一个禁忌表tabu,所述禁忌表tabu用来记录已服务过的客户节点;同时,蚂蚁也维护一个候选节点集candidates。0010进一步,步骤S6中,蚂蚁根据状态转移方程为当前电动物流车选择下一个待服务的客户节点的详细步骤如下:S601,蚂蚁k计算候选节点集candidatesk,表达式如
21、下:其中,V表示有物流服务需求的客户节点集,1k NP;S602,蚂蚁k在当前位置通过状态转移方程来确定下一个服务的客户节点j,表达式如下:其中,为当前所在节点i与下一个节点l之间的信息素浓度,为当前所在节点i与下一个节点l之间的启发式信息;、分别是控制信息素浓度和启发式信息的权重;q是均匀分布在区间0,1中的一个随机变量;q0是说明书2/12 页6CN 117522088 A6一个预先定义的参数,用以控制蚂蚁探索和开发的概率:蚂蚁以q0的概率移动到信息素浓度和启发式信息最强的客户节点,以(1q0)的概率有偏向性地探索各条边,0q01;J为一个按如下概率分布产生的随机客户节点序号表达式如下:其
22、中,表示蚂蚁从当前客户节点i移动到下一个客户节点j的概率,、分别表示当前所在节点i与下一个节点j之间的信息素浓度和启发式信息,;r为落在区间0,1)内的一个随机数,按照轮盘赌的方式选择出客户J。0011进一步,步骤S7中,判断蚂蚁k所派遣的当前电动物流车能否服务客户j的实现步骤如下:S701,首先检查电动物流车的剩余电量是否足以为客户j服务,并且能够前往距离客户j最近的充电站;如果电量充足,流程转入S702检查电动物流车的剩余容量是否满足客户的容量需求;如果电量不充足,流程转入S705检查电动物流车的充电次数是否超过CT设;S702,检查电动物流车的剩余容量是否满足客户的容量需求;如果满足容量
23、约束,流程转入步骤S8服务该客户并修改电动物流车的状态信息;如果不满足容量约束,流程转入S703检查剩余电量是否足够返回仓库;S703,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入S708;如果剩余电量不足,流程转入S704检查电动物流车的充电次数是否超过CT设;S704,检查电动物流车的充电次数是否超过CT设;如充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入S708;如果充电次数超过CT设,流程转入S707;S705,检查电动物流车的充电次数是否超过CT设;如充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入步骤S701
24、继续;如果充电次数超过CT设,流程转入S706检查剩余电量是否足以让电动物流车返回仓库;S706,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入S708;如果剩余电量不足,流程转入S707;S707,移除最后服务的客户节点,修改电动物流车的状态信息,流程转入S706;S708,电动物流车返回仓库,完成该电动物流车的路径构建,流程转入S4,蚂蚁派遣一辆空的电动物流车从仓库起点出发。0012进一步,步骤S8中,根据电动物流车当前所处位置到客户的路程距离和耗电功率计算出电量损耗consumption,再根据电量损耗和客户的容量需求更新电动物流车的状态信息electric_veh
25、iclecapacity,energy,charge_times,tour,更新公式如下:说明书3/12 页7CN 117522088 A7最后将该客户节点的编号添加到电动物流车的服务路线tour和禁忌表tabu中。0013进一步,步骤S9中,评估蚁群的多电动物流车调度方案,更新全局最优调度方案的实现步骤如下:S901,通过目标函数计算每只蚂蚁构建的电动物流车调度方案的服务成本,目标函数的表达式如下:其中,solutionk表示蚂蚁k构建的调度方案,mk表示蚂蚁k派遣的电动物流车数量,v是电动物流车的序号,tourv是第v辆电动物流车的服务路线;d表示两节点之间的距离;S902,将当前服务成本
26、最小的路径解标记为当前最优解best,表达式如下:当f(gbest)f(best),则将当前最优解best的调度方案放到全局最优解gbest中;当f(gbest)f(best),全局最优解gbest保持不变。0014进一步,步骤S10中,基于精英策略的蚁群优化算法的更新公式如下:其中,是边(i,j)上的信息素,为信息素蒸发速率,为第k只蚂蚁在边(i,j)上释放的信息素,solutionk表示蚂蚁k构建的调度方案,构建出历史最优方案gbest的蚂蚁被称为精英蚂蚁,是精英蚂蚁在边(i,j)上释放的信息素,e为给予调度方案gbest所释放信息素的权值。0015本发明与现有技术相比,其显著效果如下:1
27、、本发明考虑了实际应用场景中电动物流车的充电时长与客户群体服务需求之间的矛盾,在传统电动物流车调度问题中引入充电约束,通过限制电动物流车的充电次数来减少客户群体的等待时间,以达到提升客户服务满意度的目的;2、本发明建模了融合充电约束和容量约束的多电动物流车调度问题,采用基于精英策略的蚁群优化算法来求解最优调度方案,基于电量、容量和充电三方面约束提出了新的路径构建方法,通过不断迭代优化最终构建出合理高效的多电动物流车调度方案,这不仅能极大减少客户群体等待时间,还能有效地提高物流运输效率,节约物流运输成本。说明书4/12 页8CN 117522088 A8附图说明0016图1为本发明蚁群优化算法求
28、解多电动物流车调度方案的流程图;图2为初始信息素矩阵PheromoneMatrix示意图,其中,行列索引表示节点序号,矩阵中元素值代表对应两个节点之间的信息素浓度;图3为初始化阶段根据所有节点位置信息构建的坐标示意图;图4为蚁群优化算法第一次迭代中蚂蚁k构建的多电动物流车调度方案示意图;图5为蚁群优化算法第一次迭代中蚁群构建的最优调度方案(best)示意图;图6为蚁群优化算法结束后得到的全局最优调度方案(gbest)示意图;其中,五角星代表物流车仓库,矩形代表充电站,黑色圆点代表客户,箭头代表物流车行驶的方向。实施方式0017下面结合说明书附图和具体实施方式对本发明做进一步详细描述。该实施样例
29、以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施样例。0018本实施例的融合充电约束和容量约束多电动物流车调度优化方法,如图1所示,包括以下步骤:步骤1,获取客户群体信息(编号、坐标、需求容量),仓库信息(编号、坐标)、充电站信息(编号、坐标)和物流车信息(容量、电量、耗电率、充电次数),具体数据如表1和表2所示。0019表 1 所有节点的位置坐标及客户群体的需求容量表说明书5/12 页9CN 117522088 A90020表 2 电动物流车的初始状态表0021图3图6为实施样例(21个客户8个充电站)通过蚁群优化算法在各个阶段构建的说
30、明书6/12 页10CN 117522088 A10多电动物流车调度方案不同阶段示意图。0022如图3所示,本实施例中共有21个客户、8个充电站以及一个仓库,使用同质物流车,即所有电动物流车的参数都一致。为了方便起见,本实施例将CT设设置为1,即电动物流车在服务客户需求的过程中仅能充电一次。0023步骤2,建模多电动物流车调度问题,将带有充电约束的电动汽车路径规划问题建模为融合充电约束和容量约束的多电动物流车调度问题;以客户群体、仓库和充电站的位置为节点,根据所有节点坐标(客户群体、仓库、充电站)构建一个大小为nn二维距离矩阵(n为节点个数),基于该矩阵计算出距离每个客户节点的最近的充电站;构
31、建客户的实体对象customerid,demand,charge_station,存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象electric_vehiclecapacity,energy,charge_times,tour,存储电动物流车的容量、电量状态、充电次数及服务的节点序列,出仓库之前,电动物流车的容量和电量都是最佳状态,服务序列为空。0024本实施例中,根据步骤1获得的节点位置坐标构建一个大小为3030的二维距离矩阵,根据这个距离矩阵计算出距每个客户节点最近的充电站,如表3所示;为21个客户构建实体对象customerid,demand,charge_
32、station,如表4所示;表 3 距离客户最近的充电站表0025表 4 客户群体的实体对象customer表说明书7/12 页11CN 117522088 A110026构建电动物流车的实体对象electric_vehiclecapacity=6000,energy=94,charge_times=0,tour=1,本实施例中假设电动物流车的电量和容量都为最佳状态,且都位于仓库节点,因此,服务路线tour中只有仓库节点。0027步骤3,构建贪婪解,不考虑客户节点的分配问题、电动物流车的容量、电量和充电约束,只用一辆电动物流车遍历所有的客户节点,通过最近邻算法求得一条完整的客户服务序列,用该客
33、户服务序列路径长度的倒数0来初始化信息素矩阵PheromoneMatrix;初始化的蚁群算法参数包括种群大小NP、信息素浓度权重、启发式信息权重、信息素蒸发速率和算法迭代次数Max_Iteration。0028采用贪婪解的路径总长度初始化信息素矩阵PheromoneMatrix,初始化蚁群算法参数如表5所示,其中,每只蚂蚁负责构建一个多电动物流车调度方案。0029表 5 蚁群算法参数设置表0030首先采用最近邻算法求解出一条遍历客户群体的路径greedy_tour:1,13,16,10,8,6,3,2,4,5,12,7,9,11,14,17,20,22,18,21,19,15,1,然后根据距离
34、矩阵计算出该路径的长度tour_length=314.92,得信息素初始值0=1/tour_length=0.0032,最后用初始化信息素矩阵 PheromoneMatrix,如图2所示。0031步骤4,每只蚂蚁在构建多电动物流车调度方案的过程中,为客户群体维护一个禁忌表tabu用来记录已服务过的客户节点,开始构建之前tabu为;同时,蚂蚁也维护一个候选节点集candidates用来存储待服务的客户节点;此时,蚂蚁k(1k NP)派遣第一辆电动物流车从仓库出发服务客户。0032步骤5,检查是否还有未被服务的客户节点,若有,则转到步骤6;若无,路径构建结束。0033此时电动物流车刚从仓库出发,还
35、未开始构建路径,因此转到步骤6。0034步骤6,电动物流车位于仓库节点,蚂蚁根据状态转移方程为当前电动物流车选择下一个待服务的客户节点,详细步骤如下:步骤601,蚂蚁k计算候选节点集candidatesk,公式如下:其中,V表示有物流服务需求的客户节点集:2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22;此时,tabu=,因此candidates=2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22。0035步骤602,蚂蚁k在当前位置通过状态转移方程来确定下一个服务的客户节点j
36、,公式如下:说明书8/12 页12CN 117522088 A12其中,为当前所在节点i与下一个节点l之间的信息素浓度,为当前所在节点i与下一个节点l之间的启发式信息;、是控制信息素浓度和启发式信息的权重;q是均匀分布在区间0,1中的一个随机变量;q0是一个预先定义的参数,用以控制蚂蚁探索和开发的概率:蚂蚁以q0的概率移动到信息素浓度和启发式信息最强的客户节点,以(1q0)的概率有偏向性地探索各条边,0q01;J为一个按如下概率分布产生的随机客户节点序号,表达式如下:其中,表示蚂蚁从当前客户节点i移动到下一个客户节点j的概率,、分别表示当前所在节点i与下一个节点j之间的信息素浓度和启发式信息,
37、;r为落在区间0,1)内的一个随机数,即按照轮盘赌的方式选择出城市客户J。由公式(3)、(4)可知,首先计算出蚂蚁从当前客户节点i到其他每一个客户节点的概率,采用归一化的操作,将信息素浓度和启发式信息转化为概率值;然后,生成一个随机数r落在区间0,1)内,表示依次从客户节点1至节点j的概率和。0036在本实施例中,q0=0.9,随机生成q=0.97,电动物流车当前处于仓库节点,i=1,代入状态转移方程,计算出每个候选节点的概率probabilities=(2,0.0014),(3,0.0015),(4,0.0024)(5,0.0025),(6,0.00354264),(7,0.0058),(8
38、,0.0056),(9,0.0123),(10,0.0082),(11,0.0340),(12,0.0137),(13,0.1254),(14,0.0425),(15,0.4959),(16,0.0211),(17,0.1835),(18,0.0162),(19,0.0071),(20,0.0061),(21,0.0055),(22,0.0046),该数组的每个元素是一个二元组,第一个值代表客户的编号,第二个值代表客户被选中的概率,然后采用轮盘赌策略按照随机比例规则选择客户得到j=15;因此,蚂蚁k的下一个期望节点是客户15。0037步骤7,根据电动物流车当前的状态和客户的需求容量来判断是否能
39、够进行服务,判断过程如下:步骤701,首先检查电动物流车的剩余电量是否足以为客户j服务,并且能够前往距离客户j最近的充电站;如果电量充足,流程转入步骤702检查电动物流车的剩余容量是否满足客户的容量需求;如果电量不充足,流程转入步骤705检查电动物流车的充电次数是否超过CT设;步骤702,检查电动物流车的剩余容量是否满足客户的容量需求;如果满足容量约束,流程转入步骤8服务该客户并修改电动物流车的状态信息;如果不满足容量约束,流程说明书9/12 页13CN 117522088 A13转入步骤703检查剩余电量是否足够返回仓库;步骤703,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够
40、,流程转入步骤708;如果剩余电量不足,流程转入步骤704检查电动物流车的充电次数是否超过CT设;步骤704,检查电动物流车的充电次数是否超过CT设;如果充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入步骤708;如果充电次数超过CT设,流程转入步骤707;步骤705,检查电动物流车的充电次数是否超过CT设;如果充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入步骤701继续;如果充电次数超过CT设,流程转入步骤706检查剩余电量是否足以让电动物流车返回仓库;步骤706,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入步骤708
41、;如果剩余电量不足,流程转入步骤707;步骤707,移除最后服务的客户节点,修改电动物流车的状态信息,流程转入步骤706;步骤708,电动物流车返回仓库,完成该电动物流车的路径构建,流程转入步骤4,蚂蚁派遣一辆空的电动物流车从仓库起点出发。0038在本实施样例中,当前电动物流车的状态为capacity=6000,energy=94,charge_times=0,tour=1,期望客户15的的信息为id=15,demand=300,charge_station=24,通过查询距离矩阵可得两点之间的距离distance1=distance_matrix115=7.07,客户15到充电站的距离dis
42、tance2=distance_matrix1524=10.29;已知耗电率为1.2,所以从仓库节点1到客户15的耗电量consumption1=distance1 1.2 =8.484,从客户15到充电站24的耗电量consumption2=distance2 1.2 =12.348。在步骤S701中,电动物流车的剩余电量为94,足够电动物流车服务完客户15还能前往最近的充电站;转到步骤702,电动物流车剩余容量为6000,客户15的需求容量为300,满足容量约束,转到步骤8,因此判断结果是电动物流车前往服务客户15。0039步骤8,电动物流车服务客户会消耗一定的电量和容量,根据电动物流车当
43、前所处位置到客户的路程距离和耗电功率计算出电量损耗consumption,再根据电量损耗和客户的容量需求更新电动物流车的状态信息electric_vehiclecapacity,energy,charge_times,tour,最后将该客户节点的编号添加到电动物流车的服务路线tour和禁忌表tabu中。0040本实施例中,电动物流车服务完客户15后,需要更改电动物流车的状态信息,已知客户15的需求容量demand=300,耗电量consumption=consumption1=8.484,因此按照公式(5)、(6)进行更新:其中,capacity=6000 300 =5700,energy=9
44、4 8.484 =85.516,因此该电动物流车的状态为capacity=5700,energy=85.516,charge_times=0,tour=1,15,同时还要将客户15放入到禁忌表tabu中,避免被重复服务,此时tabu=15;服务完客户后,说明书10/12 页14CN 117522088 A14流程转到步骤5继续选择客户。0041不断重复步骤5步骤8直至服务完所有客户,蚂蚁k构建出完整的调度方案,1,15,4,5,26,12,14,1,1,17,22,21,19,27,1,1,13,16,6,30,3,1,1,9,11,8,10,29,7,1,1,20,18,27,1,1,2,3
45、0,1,如图4所示。该调度方案表明该蚂蚁共派遣了6辆电动物流车来服务客户群体。0042步骤9,重复步骤4步骤8,直至所有的蚂蚁构建完多电动物流车调度方案;评估蚁群的多电动物流车调度方案,更新全局最优调度方案的实现步骤如下:步骤901,通过目标函数计算每只蚂蚁构建的电动物流车调度方案的服务成本,即多电动物流车的服务路线的总距离,目标函数的表达式如下:其中,solutionk表示蚂蚁k构建的调度方案,mk表示蚂蚁k派遣的电动物流车数量,v是电动物流车的序号,tourv是第v辆电动物流车的服务路线,因此solutionk是由mk辆电动物流车的服务路线组合而成;d表示两节点之间的距离;在本实施例中,蚂
46、蚁种群NP=20,因此当前存在20个调度方案,按照目标函数依次对这20个调度方案进行评估,得到每个调度方案的路径长度,如表6所示:表 6 NP=20个调度方案的路径长度表0043步骤902,将当前服务成本最小的路径解标记为当前最优解best,表达式如下:当f(gbest)f(best),则将当前最优解best的调度方案放到全局最优解gbest中;当f(gbest)f(best),全局最优解gbest保持不变。0044如表6所示,按照公式(8)可得当前服务成本最小的调度方案为蚂蚁3所构建,因此将蚂蚁3的调度方案标记为best;与全局最优调度方案进行比较,由于当前种群处于第一次迭代,不存在全局最优
47、调度方案,因此直接将当前最优best标记为全局最优调度方案。当前gbest=1,15,17,16,19,18,27,1,1,9,11,13,28,12,14,1,1,21,22,20,23,1,1,7,3,6,30,8,10,1,1,4,5,26,2,1,如图5所示。0045步骤10,更新信息素矩阵是为了强化已有路径的吸引力,引导蚂蚁朝着更优解的方向进行探索。全局信息素更新包含信息素蒸发和释放,更新公式如下:说明书11/12 页15CN 117522088 A15其中,是边(i,j)上的信息素,为信息素蒸发速率,为第k只蚂蚁在边(i,j)上释放的信息素,solutionk表示蚂蚁k构建的调度方
48、案;构建出历史最优方案gbest的蚂蚁被称为精英蚂蚁,是精英蚂蚁在边(i,j)上释放的信息素,e定义了给予调度方案gbest的权值大小。该更新规则表明,整个信息素矩阵都会蒸发一定比例的信息素,蚂蚁只会在遍历过的路径上释放信息素,精英蚂蚁会在最优路径上释放额外的信息素。0046在本实施例中,信息素蒸发速率,先蒸发信息素矩阵PhromoneMatrix每条边上10%的信息素,然后计算蚁群在每条边上释放信息素的累计值,由于每只蚂蚁的调度方案各不相同,因此每条边上的累积的信息素也不尽相同;最后计算精英蚂蚁在历史最优路径上释放信息素的值。最终可以得到20只蚂蚁以及精英蚂蚁在每条边上释放的信息素。0047
49、步骤11,如果不满足迭代终止条件,则转到步骤4;如满足迭代终止条件,输出全局最优多电动物流车调度方案。0048迭代终止条件是指当算法的迭代次数达到Max_Iteration则停止优化,输出全局最优的多电动物流车调度方案gbest;gbest 是由构建该调度方案的蚂蚁所派遣的多辆电动物流车的服务路线组合而成,它们都从仓库起点出发,服务完各自的客户后返回仓库。0049在本实施例中,最大迭代次数Max_Iteration=100,当迭代次数小于100,算法进入下一轮迭代,继续让20只蚂蚁构建新的调度方案;当迭代次数达到100,算法结束优化,输出全局最优调度方案gbest=1,13,16,19,21,18,27,1,1,11,9,7,5,4,26,12,14,1,1,10,8,6,3,2,30,1,1,15,17,20,22,23,1,如图6所示,该调度方案共派遣了4辆电动物流车从仓库出发,按照给定的路线服务客户群体,且每辆电动物流车都仅充电一次,最终返回仓库。说明书12/12 页16CN 117522088 A16图 1说明书附图1/4 页17CN 117522088 A17图 2图 3说明书附图2/4 页18CN 117522088 A18图 4图 5说明书附图3/4 页19CN 117522088 A19图 6说明书附图4/4 页20CN 117522088 A20