matlab求解外卖配送路径优化(代码片段)

张叔zhangshu 张叔zhangshu     2022-11-30     366

关键词:

模型限制条件

1.先取后送
2.多骑手
3.载重限制

如需帮助请私聊


tic
clear
clc
%% 用importdata这个函数来读取文件 
data=importdata('data3.mat');
cap=4;
%% 提取数据信息
vertexs=data(:,2:3);                %所有点的坐标x和y
customer=vertexs(2:end,:);          %顾客坐标
cusnum=size(customer,1);            %顾客数
v_num=6;                           %初始车辆使用数目
demands=data(2:end,4);              %需求量
a=data(2:end,5); 
b=data(2:end,6); 
s=data(2:end,7); 
chesu=50;
h=pdist(vertexs);
dist=squareform(h);                 %距离矩阵
%% 遗传算法参数设置
alpha=10000;                                                       %违反的容量约束的惩罚函数系数
NIND=200;                                                        %种群大小
MAXGEN=200;                                                     %迭代次数
Pc=0.9;                                                         %交叉概率
Pm=0.05;                                                        %变异概率
GGAP=0.9;                                                       %代沟(Generation gap)
N=cusnum+v_num-1;                                               %染色体长度=顾客数目+车辆最多使用数目-1
%% 种群初始化
Chrom=InitPop(NIND,N,cusnum,v_num);
%% 输出随机解的路线和总距离
disp('初始种群中的一个随机值:')
[currVC,NV,TD]=decode(Chrom(1,:),cusnum,dist);       %对初始解解码
%%
currCost=costFuction(currVC,dist,demands,cap,alpha,a,b,chesu,s);        %求初始配送方案的成本=车辆行驶总成本+alpha*违反的容量约束之和
disp(['车辆使用数目:',num2str(NV),',车辆行驶总距离:',num2str(TD)]);
disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
%% 优化
BestCost=zeros(MAXGEN,1);       %记录每一代全局最优解的总成本
gen=1;
while gen<=MAXGEN
    %% 计算适应度
    ObjV=calObj(Chrom,cusnum,cap,demands,dist,alpha,a,b,chesu,s);                           %计算种群目标函数值
    FitnV=Fitness(ObjV);
    %% 选择
    SelCh=Select(Chrom,FitnV,GGAP);
    %% OX交叉操作
    SelCh=Recombin(SelCh,Pc,cusnum,dist);
    %% 变异
    SelCh=Mutate(SelCh,Pm);

    %% 重插入子代的新种群
    Chrom=Reins(Chrom,SelCh,ObjV);
    %% 删除种群中重复个体,并补齐删除的个体
%     Chrom=deal_Repeat(Chrom);
    %% 打印当前最优解
    ObjV=calObj(Chrom,cusnum,cap,demands,dist,alpha,a,b,chesu,s);                           %计算种群目标函数值
    [minObjV,minInd]=min(ObjV);
    BestCost(gen)=minObjV;
    disp(['第',num2str(gen),'代最优解:'])
    [bestVC,bestNV,bestTD]=decode(Chrom(minInd(1),:),cusnum,dist);
    disp(['车辆使用数目:',num2str(bestNV),',车辆行驶总距离:',num2str(bestTD)]);
    fprintf('\\n')
    %% 更新迭代次数
    gen=gen+1 ;
end
%% 打印外层循环每次迭代的全局最优解的总成本变化趋势图
figure;
plot(BestCost,'LineWidth',1);
title('全局最优解的总成本变化趋势图')
xlabel('迭代次数');
ylabel('总成本');
  disp(['最低成本为:',num2str(BestCost(end))])
%% 打印全局最优解路线图
draw_Best(bestVC,vertexs);
% toc

配送结果


配送路线1:0->2->3->1->4->12->14->11->13->
配送路线2:0->6->16->
配送路线3:0->8->18->
配送路线4:0->7->17->10->20->
配送路线5:0->9->19->
配送路线6:0->5->15->

其中1-10为商家 11-20为顾客,1与11相对应


matlab求解外卖配送路径优化(代码片段)

模型限制条件1.先取后送2.多骑手3.载重限制如需帮助请私聊ticclearclc%%用importdata这个函数来读取文件data=importdata('data3.mat');cap=4;%%提取数据信息vertexs=data(:,2:3);%所有点的坐标x和ycustomer=vertexs(2:end,:);%顾客坐标cusnum&... 查看详情

matlab遗传算法外卖配送优化(新的约束条件)(代码片段)

模型问题假设在外卖配送过程中,会出现很多种不确定情况导致配送时间的浪费,如配送过程中物品损伤,如果配送车辆装载过多,会导致物品挤压破损;当天天气情况的不稳定导致配送不及时;某交通路... 查看详情

配送路径规划基于matlab遗传算法求解静态外卖骑手路径规划问题含matlab源码2248期

⛄一、遗传算法求解静态外卖骑手路径规划问题1模型假设外卖配送的实际运行是一个复杂的过程,受诸多因素影响,为了建立调度模型,本文做如下假设。(1)外卖配送更多的是服务特殊群体,所以本文认为外卖配送是一种预约型配送,... 查看详情

matlab遗传算法求解选址结合路径优化问题(代码片段)

问题描述:客户到自提点取货,配送中心配送货物到取货点。客户到自提点取货为选址,配送中心到取货点为路径优化。目标–1、客户满意度总体最高2、总成本最小3、实例clc;clear;%%如需帮助zhangshu2274tic;%%初始化PopSiz... 查看详情

matlab遗传算法求解选址结合路径优化问题(代码片段)

问题描述:客户到自提点取货,配送中心配送货物到取货点。客户到自提点取货为选址,配送中心到取货点为路径优化。目标–1、客户满意度总体最高2、总成本最小3、实例clc;clear;%%如需帮助zhangshu2274tic;%%初始化PopSiz... 查看详情

matlab遗传算法求解选址结合路径优化问题(代码片段)

问题描述:客户到自提点取货,配送中心配送货物到取货点。客户到自提点取货为选址,配送中心到取货点为路径优化。目标–1、客户满意度总体最高2、总成本最小3、实例clc;clear;%%如需帮助zhangshu2274tic;%%初始化PopSiz... 查看详情

配送路径规划基于matlab遗传算法求解带时间窗的配送车辆路径规划问题含matlab源码604期(代码片段)

一、城市配送系统简介城市配送系统(citydeliverysystem,CDS)的发展是一个城市提高其公共运输能力的关键。目前国内外许多学者对CDS系统进行了深入研究。其中,车辆路径优化问题是城市配送系统中的重要环节,通过对车辆行驶路径的... 查看详情

matlab改进大规模邻域搜索算法求解路径优化(代码片段)

近年来,随着环境问题的日益突出,越来越多物流配送企业开始使用节能环保的电动物流车。但是由于续航里程有限及充电设施布局不完善等问题,电动车并不能完全代替燃油车,所以大多物流企业目前主要采用... 查看详情

matlab改进大规模邻域搜索算法求解路径优化(代码片段)

近年来,随着环境问题的日益突出,越来越多物流配送企业开始使用节能环保的电动物流车。但是由于续航里程有限及充电设施布局不完善等问题,电动车并不能完全代替燃油车,所以大多物流企业目前主要采用... 查看详情

配送路径规划基于matlab遗传算法求解带时间窗+带车辆速度的配送车辆路径规划问题含matlab源码256期(代码片段)

一、城市配送系统简介城市配送系统(citydeliverysystem,CDS)的发展是一个城市提高其公共运输能力的关键。目前国内外许多学者对CDS系统进行了深入研究。其中,车辆路径优化问题是城市配送系统中的重要环节,通过对车辆行驶路径的... 查看详情

配送路径规划基于matlab遗传算法求解带时间窗+带车辆速度的配送车辆路径规划问题含matlab源码256期(代码片段)

一、城市配送系统简介城市配送系统(citydeliverysystem,CDS)的发展是一个城市提高其公共运输能力的关键。目前国内外许多学者对CDS系统进行了深入研究。其中,车辆路径优化问题是城市配送系统中的重要环节,通过对车辆行驶路径的... 查看详情

matlab求解单配送中心多车辆tsp路径优化问题mtspf_ga(代码片段)

代码functionvarargout=mtspf_ga(xy,dmat,salesmen,min_tour,pop_size,num_iter,show_prog,show_res)nargs=8;fork=nargin:nargs-1switchkcase0%xy=10*rand(40,2);xy=[50,50;11,23;21,59;23,21;62, 查看详情

etwvrp基于matlab遗传算法求解带时间窗多电动车充电路径规划问题含matlab源码1966期(代码片段)

一、城市配送系统简介城市配送系统(citydeliverysystem,CDS)的发展是一个城市提高其公共运输能力的关键。目前国内外许多学者对CDS系统进行了深入研究。其中,车辆路径优化问题是城市配送系统中的重要环节,通过对车辆行驶路径的... 查看详情

matlab改进鲸鱼算法求解路径优化(代码片段)

鲸鱼优化算法概述鲸鱼优化算法(WhaleOptimizationAlgorithm,WOA)是Mirjalili等于2016年提出的一种基于座头鲸鱼狩猎方法的元启发式算法。它成功应用于各种复杂的离散优化问题,如资源调度问题、建筑工地的工作流程规划、选址... 查看详情

外卖配送基于matlab蚁群算法求解外卖配送问题含matlab源码2351期

⛄一、蚁群算法求解外卖配送问题1传统蚁群算法1.1蚁群算法的描述利用蚂蚁运动的随机性进而进行权重的初始化方式,得到迭代次数并计算出全部蚁群的多重路径进行搜索循环。根据模型筛选蚁群选择下一个节点,判断是否全部蚂... 查看详情

matlab改进灰狼算法求解路径优化(代码片段)

灰狼优化算法(greywolfoptimizationalgo-rithm,GWO)是模仿灰狼等级划分和灰狼捕食行为而提出的群智能搜索算法。该算法具有控制参数少、收敛速度快和计算简单等优点,已在机器学习、函数寻优、数据挖掘、电力调度、控制器... 查看详情

matlab改进灰狼算法求解路径优化(代码片段)

灰狼优化算法(greywolfoptimizationalgo-rithm,GWO)是模仿灰狼等级划分和灰狼捕食行为而提出的群智能搜索算法。该算法具有控制参数少、收敛速度快和计算简单等优点,已在机器学习、函数寻优、数据挖掘、电力调度、控制器... 查看详情

matlab改进大规模邻域搜索算法求解路径优化(代码片段)

近年来,随着环境问题的日益突出,越来越多物流配送企业开始使用节能环保的电动物流车。但是由于续航里程有限及充电设施布局不完善等问题,电动车并不能完全代替燃油车,所以大多物流企业目前主要采用... 查看详情