System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及路径规划和计算智能,尤其涉及一种融合充电约束和容量约束的多电动物流车调度方法。
技术介绍
1、电动汽车因其环保性而在日常生活中变得越来越普遍,众多物流公司开始采用电动汽车来进行物流运输服务。由于电动汽车的容量和电量约束,多电动物流车调度问题相当具有挑战性。为了有效地处理电动物流车调度问题,研究人员设计了许多新颖的优化方法,这些方法可以概括为两大类,即确定性方法和启发式算法。第一种方法主要将该问题转换为混合整数规划问题,然后采用混合整数规划方法来解决转换后的问题。然而,这种方法非常耗时,因此只适合解决小规模的物流车调度。第二类方法是使用迭代局部搜索、遗传算法和蚁群优化算法等启发式算法来求解该问题。此类方法通常维护一组可行解来迭代遍历搜索空间以找到问题的全局最优解。因此,与第一类方法相比,启发式方法陷入局部最优的概率很小。然而,现有的电动物流车调度方法在优化电动汽车服务路线时都不考虑对充电次数的限制,这就导致了电动汽车充电时长与客户群体服务需求之间的矛盾,极大地影响了客户的服务体验。因此,现有电动物流车调度方法不能很好地客户群体的服务需求。
2、蚁群优化算法最早是被提出用于解决旅行商问题,其在路径规划和资源调度方面有着不俗的表现,具有收敛速度快,解的质量稳定等优点,对多电动车物流调度优化问题有良好的优越性。然而,融合充电约束和容量约束的多电动车物流调度优化本质上是一个三重优化问题,解空间复杂且崎岖,传统的蚁群优化算法难以构建有效的可行解。
技术实现思路
1、专
2、技术方案:本专利技术的多电动物流车调度方法,包括步骤如下:
3、s1,获取客户群体、仓库、充电站以及电动物流车的信息;
4、s2,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建二维距离矩阵,根据所述二维距离矩阵计算出距每个客户节点最近的充电站;同时构建客户的实体对象和电动物流车的实体对象;
5、s3,采用贪婪解的路径总长度初始化信息素矩阵和蚁群算法参数;
6、s4,蚂蚁 k派遣一辆电动物流车从仓库起点出发,根据客户节点之间的信息素浓度和启发式信息选择客户节点,开始构建路径;
7、s5,检查是否还有未被服务的客户节点,若有,则转到步骤s6;若无,路径构建结束;
8、s6,根据状态转移方程选择下一个待服务的客户节点;
9、s7,根据电动物流车现有的容量、电量、充电约束和待服务客户的容量需求判断该电动物流车是否能继续服务,若能,则转到步骤s8服务该客户;若不能,则返回仓库,并转到步骤s4;
10、s8,将该客户添加到电动物流车的服务序列当中,并修改电动物流车的状态信息,并转到流程s5;
11、s9,重复步骤s4~s8,直至所有的蚂蚁构建完多电动物流车调度方案;评估蚁群的调度方案,更新全局最优调度方案;
12、s10,基于精英策略的蚁群算法中的信息素更新策略,更新信息素矩阵;
13、s11,如果不满足迭代终止条件,则转到步骤s4;如满足迭代终止条件,输出全局最优多电动物流车调度方案。
14、进一步,步骤s1中,客户群体信息包括客户的编号、位置坐标、运输服务的容量需求;电动物流车信息包括车辆的容量、电量和充电次数限制;仓库信息包括车仓库的编号和位置坐标,充电站信息包括充电站的编号和位置坐标。
15、进一步,步骤s2中,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建一个 n× n二维距离矩阵, n为节点个数,基于该距离矩阵计算出距离每个客户节点的最近的充电站;构建客户的实体对象 customer{ id, demand, charge_station},存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象 electric_ vehicle{ capacity, energy, charge_times, tour},存储电动物流车的容量、电量状态、充电次数及服务的节点序列。
16、进一步,步骤s3中,通过最近邻算法求得一条完整的客户服务序列,用该客户服务序列路径长度的倒数来初始化信息素矩阵 pheromonematrix;初始化的蚁群算法参数包括种群大小 np、信息素浓度权重 、启发式信息权重、信息素蒸发速率和算法迭代次数 max_iteration。
17、进一步,步骤s4中,每只蚂蚁为客户群体维护一个禁忌表 tabu,所述禁忌表 tabu用来记录已服务过的客户节点;同时,蚂蚁也维护一个候选节点集 candidates。
18、进一步,步骤s6中,蚂蚁根据状态转移方程为当前电动物流车选择下一个待服务的客户节点的详细步骤如下:
19、s601,蚂蚁 k计算候选节点集 candidates[ k],表达式如下:
20、其中, v表示有物流服务需求的客户节点集,1≤ k ≤ np ;
21、s602,蚂蚁 k在当前位置通过状态转移方程来确定下一个服务的客户节点 j,表达式如下:
22、其中,为当前所在节点 i与下一个节点 l之间的信息素浓度,为当前所在节点 i与下一个节点 l之间的启发式信息; α、 β分别是控制信息素浓度和启发式信息的权重; q是均匀分布在区间[0,1]中的一个随机变量; q 本文档来自技高网...
【技术保护点】
1.一种融合充电约束和容量约束的多电动物流车调度方法,其特征在于,包括步骤如下:
2.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S1中,客户群体信息包括客户的编号、位置坐标、运输服务的容量需求;电动物流车信息包括车辆的容量、电量和充电次数限制;仓库信息包括车仓库的编号和位置坐标,充电站信息包括充电站的编号和位置坐标。
3.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S2中,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建一个n×n二维距离矩阵,n为节点个数,基于该距离矩阵计算出距离每个客户节点的最近的充电站;构建客户的实体对象customer{id,demand,charge_station},存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象electric_vehicle{capacity,energy,charge_times,tour},存储电动物流车的容量、电量状态、充电次数及服务的节点序列。
4.根据权利要求1所述融合充电约
5.根据权利要求4所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S4中,每只蚂蚁为客户群体维护一个禁忌表tabu,所述禁忌表tabu用来记录已服务过的客户节点;同时,蚂蚁也维护一个候选节点集candidates。
6.根据权利要求5所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S6中,蚂蚁根据状态转移方程为当前电动物流车选择下一个待服务的客户节点的详细步骤如下:
7.根据权利要求6所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S7中,判断蚂蚁k所派遣的当前电动物流车能否服务客户j的实现步骤如下:
8.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S8中,根据电动物流车当前所处位置到客户的路程距离和耗电功率计算出电量损耗consumption,再根据电量损耗和客户的容量需求更新电动物流车的状态信息electric_vehicle{capacity,energy,charge_times,tour},更新公式如下:
9.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S9中,评估蚁群的多电动物流车调度方案,更新全局最优调度方案的实现步骤如下:
10.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤S10中,基于精英策略的蚁群优化算法的更新公式如下:
...【技术特征摘要】
1.一种融合充电约束和容量约束的多电动物流车调度方法,其特征在于,包括步骤如下:
2.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤s1中,客户群体信息包括客户的编号、位置坐标、运输服务的容量需求;电动物流车信息包括车辆的容量、电量和充电次数限制;仓库信息包括车仓库的编号和位置坐标,充电站信息包括充电站的编号和位置坐标。
3.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤s2中,以客户群体、仓库和充电站的位置为节点,根据所有节点坐标构建一个n×n二维距离矩阵,n为节点个数,基于该距离矩阵计算出距离每个客户节点的最近的充电站;构建客户的实体对象customer{id,demand,charge_station},存储客户的编号、运输的容量需求以及距离最近的充电站;构建电动物流车的实体对象electric_vehicle{capacity,energy,charge_times,tour},存储电动物流车的容量、电量状态、充电次数及服务的节点序列。
4.根据权利要求1所述融合充电约束和容量约束的多电动物流车调度方法,其特征在于,步骤s3中,通过最近邻算法求得一条完整的客户服务序列,用该客户服务序列路径长度的倒数来初始化信息素矩阵pheromonematrix;初始化的蚁群算法参数包括种群大小np、信息素浓度权重 、启发式信息权重、信息素蒸发速率和算法迭代次数max_iterati...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。