模型限制条件

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. 基于遗传算法有时间窗、载重约束外卖配送路径优化

    1.外卖配送中与普通路径优化的区别 (1)外卖配送中必须先取订单在进行配送,所以染色体是有序排列的 (2)两点间的距离并不代表十几的距离 (3)在进行交叉与变异时也只能运用特殊的方法 (4)如有载货限 ...

  2. matlab遗传算法外卖配送优化(新的约束条件)【matlab优化算法十六】

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

  3. matlab物流配送最优路径,基于Matlab物流配送路径优化问题遗传算法的实现

    第 29 卷总第 131 期 ·物流商坛· 收稿日期: 2005-12-22 作者简介: 弓晋丽(1983- ), 女, 山西文水人, 长安大学汽车学院硕士研究生, 研究方向: 物流系统, 道路运输与 ...

  4. matlab遗传算法配送路径,基于Matlab物流配送路径优化问题遗传算法的实现

    维普资讯 http://doc.docsou.com 第2 9卷总第 1 1 3期 物流商坛 物流配送路径优化问题遗传算法的实现 The Re lz to f Ge tc Al o ih o a ia ...

  5. 生鲜农产品冷链物流配送路径优化模型构建及算法实现

    摘要:本案例讲述的案例为生鲜农产品冷链物流配送路径优化,涉及的目标函数成本包括碳排放成本.固定成本.运输成本.货损变质成本.时间惩罚成本. 目标种类:单目标模型. 求解方法:基础版蚁群算法+改进版蚁群 ...

  6. java面试宝典 之 物流配送路径优化问题分析与算法解读

    物流配送路径优化问题分析与算法解读(一)         去年五一跳蚤以后,一直在一家公司参与物流配送软件开发的相关工作,负责的工作内容包括物流配送路径优化这一块.关于物流配送这一专业领域,自己以前也 ...

  7. matlab生鲜或农产品(河马等)配送路径优化研究【matlab优化算法十八】

    生鲜农产品的定义 生鲜农产品是指可以直接在货架上出售而无需再进行进一步制作的现场加工的鲜果等初级产品.目前,生鲜农产品主要具体包括新鲜上市的蔬菜.水果.花卉.蛋.奶.生禽和水产品以及鲜肉产品,这些种类 ...

  8. 遗传算法配送路径优化java_基于遗传算法的配送中心路径优化问题分析

    1. 引言 VRP问题指车辆路线优化问题,一般而言,有一个或多个供应点,多个需求点有不同的货物需求,分析如何组织货车在这些需求点中进行配送从而达到总里程最小.配送时间最短.总成本最低等目标.VRP问题 ...

  9. matlab遗传算法配送路径,基于遗传算法的生鲜配送的路径优化问题

    樊倩 熊雷鸣 邵晓根 孔亮 摘要:为了响应国家低碳经济的号召,为了降低物流行业的成本,提高商品配送的质量和效率,该文提出了基于遗传算法的生鲜配送的路径优化模型,并针对具体案例进行了仿真,初始的行驶距离 ...

最新文章

  1. Java的Exception和Error面试题10问10答
  2. python画正方形-用Python Turtle画一个正方形
  3. 伽卡他卡电子教室 百度百科_创建百度百科的好处
  4. linux 安装mysql make_Linux安装mysql——源码安装
  5. javascript --- 数组实用小技巧
  6. python读取mysql数据库_Python操作MySQL数据库9个实用实例
  7. CSS相对定位,固定定位,绝对定位实例方法和实例
  8. 提高效率--录制视频教程
  9. centos的ftp和smb被防火墙挡住了
  10. 数据挖掘方面的论文指导(转)
  11. java myqq ui_GitHub - 744184755/myqq: Java版SWing“高”仿QQ即时通聊天系统
  12. ART模式下dex2oat出错导致系统无法正常启动
  13. 使用Linux训练LoRA模型
  14. 时间戳(Unix timestamp)转换工具 - 在线工具-和-在线解析JSON
  15. Win10安装不上VC++2008错误1935解决方法
  16. 国家计算机二级office要准备多久,全国计算机二级考试office一周复习计划
  17. 360手机驱动 360手机高通驱动 360手机驱动报错 360手机USB驱动
  18. python动画精灵_如何使用Adafruit的CircuitPython创建动画精灵
  19. 物联网操作系统Zephyr(入门篇)之1.1 Zephyr源码架构
  20. PAT乙级1080:MOOC期终成绩(25)

热门文章

  1. 小程序之onHide()和onUnload()
  2. mac系统卸载亚信安全助手
  3. 《电路分析基础》第1章 电路模型和电路元件 读书笔记
  4. ps切图:Cutterman插件的安装和使用
  5. 2018年度总结,展望2019
  6. Mondrian利用在Schema中的设置角色来实现行级权限控制数据
  7. 商品信息页面放大镜功能
  8. 华为 HMS Core:以技术撬动生态的顽强生命力
  9. C++编译器符号表有哪些内容?
  10. python 视频抽帧_python通过ffmgep从视频中抽帧的方法