【ETWVRP】基于matlab遗传算法求解带时间窗多电动车充电路径规划问题【含Matlab源码 1966期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、城市配送系统简介

城市配送系统(city delivery system,CDS)的发展是一个城市提高其公共运输能力的关键。目前国内外许多学者对CDS系统进行了深入研究。其中,车辆路径优化问题是城市配送系统中的重要环节,通过对车辆行驶路径的优化管理可以有效地降低城市配送成本,同时可以提高城市交通效率,节省公共资源,无论对企业还是对社会,都具有重要的意义。本文针CDS的车辆路径规划问题,采用遗传算法(genetic algorithm,GA)作为优化方法,提出一种配送车辆路径规划的设计方案,以实现车辆路径选取的最优决策。

1 配送车辆路径规划
1.1 城市配送系统

城市配送系统的功能构架如图1所示。城市配送系统是联系供应商、信息中心、仓库和消费者之间的重要纽带。

城市配送系统的主要构成如图2所示,其中城市配送网络子系统负责监管城市交通信息,城市配送运营调度系统负责对配送车辆进行调度,城市配送监管系统负责对配送车辆的任务执行情况进行监督管理和实时纠错,城市配送信息处理系统负责对相关信息进行实时分析和处理。GDS系统中较为关键的问题是在上述职能范围内,如何构建一个最优运行框架来实现最优化的配送效益。
在这里插入图片描述
图1 配送系统功能构架
在这里插入图片描述
图2 城市配送系统的组成

1.2 车辆路径优化的意义
车辆路径规划(vehicle routing problem,VRP)自从1959年被Dantzig和Ramse提出的之后,迅速引起各领域工程师和管理学者的极大重视,成为工程管理领域的重点和热点问题。

VRP问题是城市配送系统的主要优化问题之一,在城市配送系统中具有重要的意义。从企业运作和社会环保、节能的角度而言,VRP研究的研究意义具体可以概括为以下方面:

  1. 通过对配送路线的合理优化,可以有效提高配送效率,从而缩短配送时间,提高服务质量和客户满意度;
  2. 通过对配送路线的合理优化,可以有效地降低运输成本,节省资金;
  3. 有通过对配送路线的合理优化,可以有效降低车辆占用公路的时间,从而可以缓解交通,减少噪声、尾气排放等运输污染。

2 VRP问题的数学描述
为了便于研究VRP问题的优化策略,首先对VRP问题进行数学描述。假设配送中心和仓库的地理位置均为固定且已知,则仓库与配送中心以及仓库间的位置信息可以由路径距离矩阵描述为
在这里插入图片描述
VRP可行解可以描述为一系列行驶路径的决策的集合,即
在这里插入图片描述
其中,ki表示第i条路段决策结果。
VRP优化目标由成本最小化来描述,即运输过程中所产生的固定成本和运输费用,如式(3)所示。
在这里插入图片描述
其中:TV为配送车辆在运输过程中的总成本;Ns为运输途中的固定费用;ξ(ki)为在第ki路段上的花费,正比于ki路段的行驶里程,计算式为
在这里插入图片描述
其中: d(·)为距离运算符;Ks为单位里程所需的费用;AK为仓库节点标号。
考虑到在实际配送过程中有许多的条件限制,因此在目标函数上施加一定的约束条件,主要包括:车辆配送过程中所携带的货物量存在上限,且车辆完成配送任务之后须返回出发点以备下次配送任务。
在这里插入图片描述
其中 :Qmax为配送车辆承重上限;q(·) 为载运重量计算符;u为平均车速;T 为配送任务所要求的最大时间限度。

3 VRP问题的遗传算法优化
结合上述模型,基于遗传算法来解决所提出的VRP问题,基本参数设定为:种群M为20,最大代数G为100,交叉概率Pc为0.8,变异概率Pm为 0.1,首先对VRP问题的可行解进行编码并生产初始种群,整个算法实施步骤如图3所示。根据目标函数设计适配度,终止条件设计为:

  1. 当最优解连续5代不发生变化;
  2. 当迭代步数超过300步。
    对于初始种群根据数学模型的输入条件,进行适配度计算并根据适配度计算结果进行种群选择操作。

3.1 编码规则
根据VRP问题的特点,本文采用浮点数编码方案,首先将各个仓库的节点数转换为相对应的随机浮点数,同时将送货中心(即配送过程的起点)作为第一个浮点数,考虑到编程的方便,将送货中心同时作为终点放入到最后一个浮点数,计算式为
在这里插入图片描述
其中:s0为生产中心所对应的浮点数;s1~sn为n个仓库所对应的浮点数。
越小的浮点数对应有越高的优先级,例如对于染色体
S: {0.01 0.35 0.38 0.65 0.81 0.25 0.99}
A0 A1 A2 A3 A4 A5 A0
其对应的表现型为
K:A0→A5→A2→A3→A4→A5→A0
起点s0至为0.01,终点sn+1置为0.99,起点与终点参与编程,但不参与到选择、交叉与变异。
在这里插入图片描述
图3 基于遗传算法的算法流程

3.2 适配度函数
根据上述编码规则,对每一个可行解都可以计算出整个配送过程中的行驶路线,将行驶总距离作为适配度函数
在这里插入图片描述
其中χs表示第s个可行解的适配度。

3.3 遗传算子设计
在上述基础上对遗传算法进行选择算子、交叉算子和变异算子的设计。

  1. 选择算子
    对种群中的20个可行解根据适配度值来选择排序靠前的10个染色体作为选择结果,放入后代中继续后续操作。
  2. 交叉算子
    对于选定的两个父代个体,随机选择一个交叉位置,将其中一个父代中的前t个基因作为子代个体的前t个基因,同时将第2个父辈染色体X2的后n-t个基因取出作为子代的后n-t个基因,如图4所示。
    在这里插入图片描述
    图4 交叉操作示意图
  3. 变异算子
    首选按照变异概率来决定发生变异的位,然后变异操作采用取逆算子
    在这里插入图片描述

⛄二、部分源代码

clear
clc
close all
tic
%% 用importdata这个函数来读取文件
load(‘c101’);
shuju=c101;
bl=0;
cap=6; %车辆最大装载量
%% 提取数据信息
%% 遗传算法参数设置
alpha=100000; %违反的容量约束的惩罚函数系数
belta=15;%违反时间窗约束的惩罚函数系数
belta2=10;%违反系数
chesu=50;
NIND=300; %种群大小
MAXGEN=500; %迭代次数
Pc=0.9; %交叉概率
Pm=0.05; %变异概率
GGAP=0.9; %代沟(Generation gap)
N=cusnum+v_num-1; %染色体长度=顾客数目+车辆最多使用数目-1
%% 初始化种群
Chrom=InitPopCW(NIND,N,cusnum,a,demands,cap); %构造初始解
%% 输出随机解的路线和总距离
disp(‘初始种群中的一个随机值:’)
[VC,NV,TD,VCC,GS]=decode(Chrom(1,:),cusnum,cap,demands,a,b,L,s,dist,chesu,bl);
disp([‘车辆使用数目:’,num2str(NV),‘,车辆行驶总距离:’,num2str(TD)]);
disp(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~’)
%% 优化
gen=1;
figure;
hold on;box on
xlim([0,MAXGEN])
title(‘优化过程’)
xlabel(‘代数’)
ylabel(‘最优值’)
ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl); %计算种群目标函数值
preObjV=min(ObjV);
while gen<=MAXGEN
%% 计算适应度
ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl); %计算种群目标函数值
line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001)%画图 最优函数
preObjV=min(ObjV);
FitnV=Fitness(ObjV);
%% 选择
SelCh=Select(Chrom,FitnV,GGAP);
%% OX交叉操作
SelCh=Recombin(SelCh,Pc,v_num);
%% 变异
SelCh=Mutate(SelCh,Pm);
%% 重插入子代的新种群
Chrom=Reins(Chrom,SelCh,ObjV);
%% 打印当前最优解
ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl); %计算种群目标函数值
[minObjV,minInd]=min(ObjV);
disp([‘第’,num2str(gen),‘代最优解:’])
[bestVC,bestNV,bestTD,bestVCC,bestGS]=decode(Chrom(minInd(1)😅,cusnum,cap,demands,a,b,L,s,dist,chesu,bl);
disp([‘车辆使用数目:’,num2str(bestNV),‘,车辆行驶总距离:’,num2str(bestTD)]);
fprintf(‘\n’)
%% 更新迭代次数
gen=gen+1 ;
end

%% 适配值函数
%输入:
%个体的长度
%输出:
%个体的适应度值
function FitnV=Fitness(len)
FitnV=1./len;

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]郭秀红.基于遗传算法的配送车辆路径规划[J].四川兵工学报. 2013,34(01)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值