1.一种融合充电约束和容量约束的多电动物流车调度方法,其特征在于,包括步骤如下:S1,获取客户群体、仓库、充电站以及电动物流车的信息;
S2,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建二维距离矩阵,根据所述二维距离矩阵计算出距每个客户节点最近的充电站;同时构建客户的实体对象和电动物流车的实体对象;
S3,采用贪婪解的路径总长度初始化信息素矩阵和蚁群算法参数;
S4,蚂蚁k派遣一辆电动物流车从仓库起点出发,根据客户节点之间的信息素浓度和启发式信息选择客户节点,开始构建路径;
S5,检查是否还有未被服务的客户节点,若有,则转到步骤S6;若无,路径构建结束;
S6,根据状态转移方程选择下一个待服务的客户节点;
S7,根据电动物流车现有的容量、电量、充电约束和待服务客户的容量需求判断该电动物流车是否能继续服务,若能,则转到步骤S8服务该客户;若不能,则返回仓库,并转到步骤S4;
其中,判断蚂蚁k所派遣的当前电动物流车能否服务客户j的实现步骤如下:
S701,首先检查电动物流车的剩余电量是否足以为客户j服务,并且能够前往距离客户j最近的充电站;如果电量充足,流程转入S702检查电动物流车的剩余容量是否满足客户的容量需求;如果电量不充足,流程转入S705检查电动物流车的充电次数是否超过CT设;
S702,检查电动物流车的剩余容量是否满足客户的容量需求;如果满足容量约束,流程转入步骤S8服务该客户并修改电动物流车的状态信息;如果不满足容量约束,流程转入S703检查剩余电量是否足够返回仓库;
S703,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入S708;如果剩余电量不足,流程转入S704检查电动物流车的充电次数是否超过CT设;
S704,检查电动物流车的充电次数是否超过CT设;如充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入S708;如果充电次数超过CT设,流程转入S707;
S705,检查电动物流车的充电次数是否超过CT设;如充电次数没超过CT设,电动物流车首先前往最近的充电站充满电,然后流程转入S701继续;如果充电次数超过CT设,流程转入S706检查剩余电量是否足以让电动物流车返回仓库;
S706,检查剩余电量是否足够让电动物流车返回仓库;如果剩余电量足够,流程转入S708;如果剩余电量不足,流程转入S707;
S707,移除最后服务的客户节点,修改电动物流车的状态信息,流程转入S706;
S708,电动物流车返回仓库,完成该电动物流车的路径构建,流程转入步骤S4,蚂蚁派遣一辆空的电动物流车从仓库起点出发;
S8,将该客户添加到电动物流车的服务序列当中,并修改电动物流车的状态信息,并转到流程步骤S5;
S9,重复步骤S4~S8,直至所有的蚂蚁构建完多电动物流车调度方案;评估蚁群的调度方案,更新全局最优调度方案;
S10,基于精英策略的蚁群算法中的信息素更新策略,更新信息素矩阵;
S11,如果不满足迭代终止条件,则转到步骤S4;如满足迭代终止条件,输出全局最优多电动物流车调度方案;
步骤S1中,客户群体信息包括客户的编号、位置坐标、运输服务的容量需求;电动物流车信息包括车辆的容量、电量和充电次数限制;仓库信息包括车仓库的编号和位置坐标,充电站信息包括充电站的编号和位置坐标。
2.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S2中,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建一个n×n二维距离矩阵,n为节点个数,基于该距离矩阵计算出距离每个客户节点的最近的充电站;
构建客户的实体对象customer{id,demand,charge_station},存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象electric_vehicle{capacity,energy,charge_times,tour},存储电动物流车的容量、电量状态、充电次数及服务的节点序列。
3.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S3中,通过最近邻算法求得一条完整的客户服务序列,用该客户服务序列路径长度的倒数τ0来初始化信息素矩阵PheromoneMatrix;初始化的蚁群算法参数包括种群大小NP、信息素浓度权重α、启发式信息权重β、信息素蒸发速率ρ和算法迭代次数Max_Iteration。
4.根据权利要求3所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S4中,每只蚂蚁为客户群体维护一个禁忌表tabu,所述禁忌表tabu用来记录已服务过的客户节点;同时,蚂蚁也维护一个候选节点集candidates。
5.根据权利要求4所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S6中,蚂蚁根据状态转移方程为当前电动物流车选择下一个待服务的客户节点的详细步骤如下:S601,蚂蚁k计算候选节点集candidates[k],表达式如下:
candidates[k]=V‑tabu
其中,V表示有物流服务需求的客户节点集,1≤k≤NP;
S602,蚂蚁k在当前位置通过状态转移方程来确定下一个服务的客户节点j,表达式如下:其中,τil为当前所在节点i与下一个节点l之间的信息素浓度,ηil为当前所在节点i与下一个节点l之间的启发式信息;α、β分别是控制信息素浓度和启发式信息的权重;q是均匀分布在区间[0,1]中的一个随机变量;q0是一个预先定义的参数,用以控制蚂蚁探索和开发的概率:蚂蚁以q0的概率移动到信息素浓度和启发式信息最强的客户节点,以(1‑q0)的概率有偏向性地探索各条边,0≤q0≤1;J为一个按如下概率分布产生的随机客户节点序号,表达式如下:其中,pij表示蚂蚁从当前客户节点i移动到下一个客户节点j的概率,τij、ηij分别表示当前所在节点i与下一个节点j之间的信息素浓度和启发式信息,i∈V;r为落在区间[0,1)内的一个随机数,按照轮盘赌的方式选择出客户J; 表示依次从客户节点1至节点j的概率和。
6.根据权利要求2所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S8中,根据电动物流车当前所处位置到客户的路程距离和耗电功率计算出电量损耗consumption,再根据电量损耗和客户的容量需求更新电动物流车的状态信息electric_vehicle{capacity,energy,charge_times,tour},更新公式如下:capacity←capacity‑demand
energy←energy‑comsumption
最后将该客户节点的编号添加到电动物流车的服务路线tour和禁忌表tabu中。
7.根据权利要求5所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S9中,评估蚁群的多电动物流车调度方案,更新全局最优调度方案的实现步骤如下:S901,通过目标函数计算每只蚂蚁构建的电动物流车调度方案的服务成本,目标函数的表达式如下:其中,solutionk表示蚂蚁k构建的调度方案,mk表示蚂蚁k派遣的电动物流车数量,v是电动物流车的序号,tourv是第v辆电动物流车的服务路线;d表示两节点之间的距离;
S902,将当前服务成本最小的路径解标记为当前最优解best,表达式如下:当f(gbest)>f(best),则将当前最优解best的调度方案放到全局最优解gbest中;
当f(gbest)≤f(best),全局最优解gbest保持不变。
8.根据权利要求7所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S10中,基于精英策略的蚁群优化算法的更新公式如下:其中,τij是边(i,j)上的信息素,ρ为信息素蒸发速率, 为第k只蚂蚁在边(i,j)上释放的信息素,solutionk表示蚂蚁k构建的调度方案,构建出历史最优方案gbest的蚂蚁被称为精英蚂蚁, 是精英蚂蚁在边(i,j)上释放的信息素,e为给予调度方案gbest所释放信息素的权值。