ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【TWVRP】基于matlab人工鱼群算法求解带时间窗的车辆路径规划问题【含Matlab源码 161期】

【TWVRP】基于matlab人工鱼群算法求解带时间窗的车辆路径规划问题【含Matlab源码 161期】 欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab路径规划仿真内容点击①Matlab路径规划进阶版②付费专栏Matlab路径规划初级版⛳️关注CSDN海神之光更多资源等你来⛄一、VRP简介1 VRP基本原理车辆路径规划问题(Vehicle Routing ProblemVRP)是运筹学里重要的研究问题之一。VRP关注有一个供货商与K个销售点的路径规划的情况可以简述为对一系列发货点和收货点组织调用一定的车辆安排适当的行车路线使车辆有序地通过它们在满足指定的约束条件下例如货物的需求量与发货量交发货时间车辆容量限制行驶里程限制行驶时间限制等力争实现一定的目标如车辆空驶总里程最短运输总费用最低车辆按一定时间到达使用的车辆数最小等。VRP的图例如下所示2 问题属性与常见问题车辆路径问题的特性比较复杂总的来说包含四个方面的属性1地址特性包括车场数目、需求类型、作业要求。2车辆特性包括车辆数量、载重量约束、可运载品种约束、运行路线约束、工作时间约束。3问题的其他特性。4目标函数可能是总成本极小化或者极小化最大作业成本或者最大化准时作业。3 常见问题有以下几类1旅行商问题2带容量约束的车辆路线问题(CVRP)该模型很难拓展到VRP的其他场景,并且不知道具体车辆的执行路径因此对其模型继续改进。3带时间窗的车辆路线问题由于VRP问题的持续发展考虑需求点对于车辆到达的时间有所要求之下在车辆途程问题之中加入时窗的限制便成为带时间窗车辆路径问题VRP with Time Windows, VRPTW。带时间窗车辆路径问题VRPTW是在VRP上加上了客户的被访问的时间窗约束。在VRPTW问题中除了行驶成本之外, 成本函数还要包括由于早到某个客户而引起的等待时间和客户需要的服务时间。在VRPTW中车辆除了要满足VRP问题的限制之外还必须要满足需求点的时窗限制而需求点的时窗限制可以分为两种一种是硬时窗Hard Time Window硬时窗要求车辆必须要在时窗内到达早到必须等待而迟到则拒收另一种是软时窗Soft Time Window不一定要在时窗内到达但是在时窗之外到达必须要处罚以处罚替代等待与拒收是软时窗与硬时窗最大的不同。模型2(参考2017 A generalized formulation for vehicle routing problems)该模型为2维决策变量4收集和分发问题5多车场车辆路线问题参考(2005 lim多车场车辆路径问题的遗传算法_邹彤, 1996 renaud)由于车辆是同质的这里的建模在变量中没有加入车辆的维度。6优先约束车辆路线问题7相容性约束车辆路线问题8随机需求车辆路线问题4 解决方案1数学解析法2人机交互法3先分组再排路线法4先排路线再分组法5节省或插入法6改善或交换法7数学规划近似法8启发式算法5 VRP与VRPTW对比⛄二、人工鱼群算法简介1 觅食行为指鱼循着食物多的方向游动的一种行为人工鱼X i X_iXi​在其视野内随机选择一个状态X j X_jXj​分别计算它们的目标函数值进行比较如果发现Y j Y_jYj​比Y i Y_iYi​优Y j Y_jYj​和Y i Y_iYi​分别为X j X_jXj​和X i X_iXi​的适应度值则Xi向Xj的方向移动一步否则X i X_iXi​继续在其视野内选择状态X j X_jXj​判断是否满足前进条件反复尝试t r y n u m b e r trynumbertrynumber次后仍没有满足前进条件则随机移动一步使X i X_iXi​到达一个新的状态。表达式如下X j X i r a n d ( ) ∗ v i s u a l (1) X_jX_irand()*visual \tag{1}Xj​Xi​rand()∗visual(1)X n e x t X i r a n d ( ) ∗ s t e p ∗ X j − X i ∣ ∣ X j − X i ∣ ∣ (2) X_{next}X_irand()step\frac{X_j-X_i}{\left | \left | X_j-X_i \right | \right |}\tag{2}Xnext​Xi​rand()∗step∗∣∣Xj​−Xi​∣∣Xj​−Xi​​(2)X n e x t X i r a n d ( ) ∗ s t e p (3) X_{next}X_irand()*step \tag{3}Xnext​Xi​rand()∗step(3)其中rand()是介于0和1之间的随机数。人 工 鱼 的 视 觉 描 述 人工鱼的视觉描述人工鱼的视觉描述框架图如下所示伪代码段如下fori1:Nforj1:Try_number Xjx(i)Visual.*rand();%人工鱼Xi按式1在其视野内随机选择一个状态Xjiff(Xj)f(x(i))%比较Xj和Xi的适应度 X_nextx(i)rand()*step*(Xj-x(i))/norm(Xj-x(i));%人工鱼Xi按式2朝着Xj方向移动一步norm()函数表示二范数break;elseX_nextx(i)step*rand();end end end2 聚群行为鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群 。人工鱼X i X_iXi​搜索其视野内d i j v i s u a l d_{ij}visualdij​visual的伙伴数目n f n_fnf​及中心位置X c X_cXc​若Y c / n f δ Y i Y_c/n_f δY_iYc​/nf​δYi​(求极小值时使用小于号在求极大值时则相反Y c Y_cYc​和Y i Y_iYi​分别为X c X_cXc​和X i X_iXi​的适应度值)表明伙伴中心位置状态较优且不太拥挤则X i X_iXi​朝伙伴的中心位置移动一步否则执行觅食行为框架图如下所示伪代码段如下nf0;X_inside0;fori1:Nforj1:Nifnorm(x(j)-x(i))Visual%求人工鱼Xi与其他人工鱼之间的距离 nfnf1;%统计在视野范围内的鱼数量 X_insideX_insidex(j);%将视野范围内的鱼进行累加 end X_insideX_inside-x(i);%需要去除Xi本身因为在 一开始计算时ij把中心的鱼也进行了一次计算 nfnf-1;XcX_inside/nf;%此时Xc表示Xi感知范围其他伙伴的中心位置iff(Xc)/nfδ*f(x(i))x_nextx(i)rand*Step*(Xc-x(i))/norm(Xc-x(i));else进行觅食行动 end end end3 追尾行为指鱼向其视野区域内的最优方向移动的一种行为。人工鱼X i X_iXi​搜索其视野内d i j v i s u a l d_{ij}visualdij​visual适应度最高的个体X j X_jXj​其适应度值为Y j Y_jYj​并探索人工鱼X j X_jXj​视野内的伙伴数目n f n_fnf​若Y j / n f δ Y i Y_j/n_f δY_iYj​/nf​δYi​表明X j X_jXj​状态较优且不太拥挤则X i X_iXi​朝X j X_jXj​位置移动一步否则执行觅食行为框架图如下所示伪代码段如下Y_maxinf;nf0;fori1:N%搜索人工鱼Xi视野范围内的最高适应度个体Xjforj1:Nifnorm(x(j)-x(i))Visualf(x(j))Y_max%求人工鱼Xi与其他人工鱼之间的距离 X_maxx(j);Y_maxf(x(j));end end%搜索人工鱼Xj视野范围内的伙伴数量forj1:Nif(norm(x(j)-X_max)Visual)nfnf1;end end nfnf-1;%去掉他本身ifY_max/nfdelta*f(x(i))x_nextx(i,:)rand*Step.*(temp_maxX-x(i,:))./norm(temp_maxX-x(i,:));else进行觅食行为;end end4 算法总述综上所述算法在运算过程中会同时进行聚群和追尾行为。而觅食行为属于这两种行为中发现聚群对象或者追尾对象附近拥挤度过大时人工鱼选择的行为方式若在觅食过程中未发现比自身适应度高的人工鱼则按步长step随机移动。最后对聚群行为和追尾行为得到的适应度值进行比较选择优秀的人工鱼作为下一代的个体。其总框架图如下2 分析拥挤度因子δ δδ2.1 拥挤度因子的取值在求极小值问题中δ α n m a x , α ∈ ( 0 , 1 ] δαn_{max}, α∈(0,1]δαnmax​,α∈(0,1]在求极大值问题中δ 1 α n m a x , α ∈ ( 0 , 1 ] δ\frac{1}{αn_{max}},α∈(0,1]δαnmax​1​,α∈(0,1]其中α αα为极值接近水平n m a x n_{max}nmax​为期望在该邻域内聚集的最大人工鱼数目。2.2 拥挤度因子的作用机理对追尾行为的描述图中af0为人工鱼af1-5在各自视野内的最优人工鱼其实物浓度为Y j Y_jYj​,C1为以af0为圆心以视野范围为半径的圆即能探知af0的最远距离人工鱼越靠近af0状态越优。求极大值情况下当δ n f ≤ 1 δn_f\leq 1δnf​≤1时所有人工鱼af1-5都执行追尾行为向af0游动δ 1 α n m a x δ\frac{1}{αn_{max}}δαnmax​1​δ n f n f α n m a x ≤ 1 δn_f \frac{n_f}{αn_{max}}\leq 1δnf​αnmax​nf​​≤1当α αα1的时候可以明显看出来n f ≤ n m a x n_f \leq n_{max}nf​≤nmax​即说明人工鱼视野范围内不拥挤。当δ n f 1 δn_f 1δnf​1时若C2的食物浓度为Y j δ n f \frac{Y_j}{δn_f }δnf​Yj​​的等浓度食物圈则C2与C1间的人工鱼af1、af2、af3执行追尾行动向af0游动人工鱼af4、af5执行觅食行为。此时δnf 越大执行追尾行动的人工鱼越少反之越多。2.3 拥挤度因子的影响以极大值为例(极小值的情况正好和极大值相反) δ δδ越大表明允许的拥挤程度越小人工鱼摆脱局部最优的能力越强;但是收敛的速度会有所减缓这主要因为人工鱼在逼近极值的同时会因避免过分拥挤而随机走开或者受其它人工鱼的排斥作用不能精确逼近极值点。可见δ δδ的引入避免了人工鱼过度拥挤而陷入局部极值另一方面该参数会使得位于极值点附近的人工鱼之间存在相互排斥的影响而难以向极值点精确逼近所以对于某些局部极值不是很严重的具体问题可以忽略拥挤的因素从而在简化算法的同时也加快了算法的收敛速度和提高结果的精确程度。⛄三、部分源代码clearclctic %开始计时c101importdata(‘c101.txt’); %用importdata这个函数来读取文件demandc101(2:end,4); %需求量vertexsc101(:,2:3); %所有点的坐标x和ycustomervertexs(2:end,:); %顾客坐标cap200; %车辆载重量Lsize(customer,1); %顾客数K25; %车辆数目hpdist(vertexs); %计算顾客之间的距离Dsquareform(h); %计算顾客之间的距离%% 初始化参数FishNum9; %生成10只人工鱼Max_gen200; %最多迭代次数trynumber500; %最多试探次数Visual16; %感知距离deta0.8; %拥挤度因子%% 预处理确定能使用的车辆最少数目[minK,chrom_minK,vc_minK,r_minK]Pre_Deal(L,K,demand,cap);%% 鱼群初始化,每一行表示一条鱼initFishAF_init(FishNum,minK,L);BestYzeros(Max_gen,1); %记录每次迭代过程中最优路径的距离bestyinf; %最优总距离初始化为无穷大gen1;currXinitFish;currYAF_foodconsistence(currX,D,L,minK,demand,cap);while genMax_genfor i1:FishNum[Xinext,flag] AF_movestrategy(currX,i,D,Visual,deta,trynumber,L,minK,demand,cap);currX(i,:)Xinext;endcurrYAF_foodconsistence(currX,D,L,minK,demand,cap);[Ymin,index]min(currY);if YminbestybestyYmin;bestxcurrX(index,:);BestY(gen)besty;elseBestY(gen)BestY(gen-1);enddisp([‘第’,num2str(gen),‘次迭代,得出的最优值’,num2str(BestY(gen))]);gengen1;endfigureplot(1:Max_gen,BestY)xlabel(‘迭代次数’)ylabel(‘优化值’)title(‘鱼群算法迭代过程’)[fvc,reasonable]Decode(L,minK,bestx,demand,cap);TDtravel_distance(fvc,D);toc %结束计时⛄四、运行结果⛄五、matlab版本及参考文献1 matlab版本2014a2 参考文献[1]黄务兰,张涛.基于改进全局人工鱼群算法的VRPSPDTW研究[J].计算机工程与应用. 2016,52(21)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 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合
返回列表