**

问题描述

**
有关多配送中心的选址-路径优化问题,一般是通过基于区域内的客户需要求,对配送中心进行合理的选址以及配送中心的车辆调度以及路径优化。在给出的配送中心候选点位置已知,需要在给出的这些位置中,通过与顾客需求,车辆类型及容量,配送时间窗等约束,将路径长度,配送成本等目标条件中,建立模型,找到最优的配送方式。
本文目标函数为:
配送中心成本–所以需要确定配送中心位置,即为选址
运输成本–所以需要确定配送路径,配送车辆类型
时间惩罚成本–配送时间窗
约束:
(懒得插入公式凑合着看)

主函数代码:
c101的数据来自http://web.cba.neu.edu/~msolomon/problems.htm 大家可以在这个网站找自己需要的数据,然后对数据进行修改。

clear
clc
close all
load('c101');
shuju=c101
cap=[50 60 70];                                                        %车辆最大装载量
E=shuju(1,5);                                                    %配送中心时间窗开始时间
L=shuju(1,6);                                                    %配送中心时间窗结束时间
zuobiao=shuju(:,2:3);                                       %所有点的坐标x和y
pszx=zuobiao(1:4,:);
customer=zuobiao(5:end,:);                                       %顾客坐标
cusnum=size(customer,1);                                         %顾客数
v_num=10;                                                        %车辆最多使用数目
demands=shuju(5:end,4);                                          %需求量
a=shuju(5:end,5);                                                %顾客时间窗开始时间[a[i],b[i]]
b=shuju(5:end,6);                                                %顾客时间窗结束时间[a[i],b[i]]
s=shuju(5:end,7);                                                %客户点的服务时间
h=pdist(zuobiao);
dist=squareform(h);    %% 遗传算法参数设置
alpha=10;                                                       %违反的容量约束的惩罚函数系数
belta=1;%违反时间窗约束的惩罚函数系数
belta2=1;
NIND=200;                                                       %种群大小
MAXGEN=200;                                                     %迭代次数
Pc=0.9;                                                         %交叉概率
Pm=0.05;                                                        %变异概率
GGAP=0.9;                                                       %代沟(Generation gap)
N=cusnum+v_num-1;                                %染色体长度=顾客数目+车辆最多使用数目-1
% N=cusnum;
%% 初始化种群
pppp=rand(NIND,1);
fpfa=clsjfp(pppp,v_num);%随机分配车辆
dpszx = struct('ps',[], 'Chrom',[]);
dpszx.Chrom=InitPopCW(NIND,N,cusnum,a,demands,cap,fpfa);     %构造初始解
ps=pszxxz(dpszx.Chrom,cusnum);
fp=clfprl(dpszx.Chrom,cusnum,v_num,fpfa);
disp('初始种群中的一个随机值:')[VC,NV,TD,violate_num,violate_cus]=decode(dpszx.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(dpszx.Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,ps,fp);             %计算种群目标函数值
preObjV=min(ObjV);
%%
while gen<=MAXGEN%% 计算适应度ObjV=calObj(dpszx.Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,ps,fp);             %计算种群目标函数值line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001)%画图 最优函数preObjV=min(ObjV);FitnV=Fitness(ObjV);
%     FitnV%% 选择[SelCh,psc,fpc]=Select(dpszx.Chrom,FitnV,GGAP,ps,fp);%% OX交叉操作[SelCh,psc,fpc]=Recombin(SelCh,Pc,psc,fpc,cusnum,a,demands,cap,v_num,fpfa);%% 变异[SelCh,psc,fpc,]=Mutate(SelCh,Pm,psc,fpc,cusnum,a,demands,cap,v_num,fpfa);%% 重插入子代的新种群[dpszx.Chrom,ps,fp]=Reins(dpszx.Chrom,SelCh,ObjV,psc,ps,fpc,fp);   %% 打印当前最优解ObjV=calObj(dpszx.Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,ps,fp);             %计算种群目标函数值[minObjV,minInd]=min(ObjV);disp(['第',num2str(gen),'代最优解:']);[bestVC,bestNV,bestTD,best_vionum,best_viocus]=decode(dpszx.Chrom(minInd(1),:),cusnum,cap,demands,a,b,L,s,dist,chesu,bl);disp(['车辆使用数目:',num2str(bestNV),',车辆行驶总距离:',num2str(bestTD)]);fprintf('\n')%% 更新迭代次数gen=gen+1 ;
end
%% 画出最优解的路线图
ObjV=calObj(dpszx.Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,ps,fp);             %计算种群目标函数值
[minObjV,minInd]=min(ObjV);
%% 输出最优解的路线和总距离
disp('最优解:')
bestChrom=dpszx.Chrom(minInd(1),:);
bestps=ps(minInd(1),:);
[bestVC,bestNV,bestTD,best_vionum,best_viocus]=decode(bestChrom,cusnum,cap,demands,a,b,L,s,dist,chesu,bl);
disp(['车辆使用数目:',num2str(bestNV),',车辆行驶总距离:',num2str(bestTD)]);
disp('-------------------------------------------------------------')
% [cost]=costFuction(bestVC,a,b,s,L,dist,demands,cap,alpha,belta,belta2,chesu,bl,);
%% 画出最终路线图
draw_Best(bestVC,zuobiao,bestps);
%-------------如需帮忙V:18332607515

运行结果:
此程序为遗传算法,并没有太多的优化,后续可以再加上局部搜索进行优化,目前仅为展示

可以看到这是不同的类型的车辆分配方案:

这是每个配送中心的任务量:

matlab解决LRP类型的多配送中心路径优化问题相关推荐

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

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

  2. 【VRP问题】基于遗传算法求解带有时间窗、车载容量限制、多车辆、单配送中心路径优化VRPTW(多约束)matlab源码

    1 数学模型 (1)有关模型的说明和假设 1)模型中的已知量有:各需求点的位置坐标.各需求点的物料需求数量,各需求点的物料的到达时间要求,配送中心到各需求点的最短行驶距离,各需求点互相之间的最短运输距 ...

  3. 【路径规划】基于蚁群算法的多配送中心车辆路径优化方法matlab代码

    1模型介绍 一种基于蚁群算法的多配送中心车辆路径优化方法,首先,针对多配送中心车辆路径优化问题,对各个客户点设计了以最近配送中心为启发式信息的惩罚函数;其次,将具有上述启发式信息的罚函数加入到各配送点 ...

  4. 【路径规划】基于matlab汽车零部件循环取货路径优化(三维装载约束)【含Matlab源码 1100期】

    ⛄一.简介 1 问题描述: 在考虑汽车零部件包装箱长.宽.高等三维尺寸的约束下,以配送中心为原点,分派多辆同一规格的货车到n个供应商处取货,最后回到配送中心.本章所构建的三维装载约束下的汽车零部件循环 ...

  5. matlab获取目录中图像名称及路径的递归实现

    一个matlab获取目录中图像名称及路径的递归实现~ matlab源文件 getImageList.m [c-sharp] view plaincopyprint? function [ imageL ...

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

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

  7. 燃油运输问题matlab,运输问题用matlab解决

    摘要本文主要研究的是货物运输的最短路径问题,利用图论中的 Floyd 算法.Kruskal 算法,以及整数规划的方法建立相关问题的模型,通过 matlab,lingo 编程求解出最终 结果...... ...

  8. matlab改进大规模邻域搜索算法求解路径优化

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

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

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

最新文章

  1. 当客户说“你们的价格太高了”
  2. db2 如何导出insert语句_《MySQL 入门教程》第 23 篇 DML 语句之插入数据
  3. OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
  4. android-2.3.5_r1
  5. C++带参数控制台(实例)
  6. zabbix使用IT services 了解服务器SLA整体情况
  7. 玩转matlab之一维 gauss 数值积分公式及matlab源代码
  8. @MapperScan和@ComponentScan的区别
  9. python函数isdisjoint方法_Python中的isdisjoint()函数
  10. 关于GPS信息在谷歌地图上实时更新位置信息的问题
  11. 论文中定性分析与定量分析的写作手法
  12. 第1章 软件设计师考试分析
  13. 知乎热议20年科研怪状:为何论文创新性越强越难发表,跟风修修补补反而更容易发?
  14. 搜索结果排列html模板,搜索结果页优化-城市模板
  15. 解决Duo13内置博通蓝牙和博通Wifi冲突
  16. 如何基于Arduino开发板使用BH1750环境光传感器
  17. 江苏电信技术研发与it岗
  18. IOS开发者自带弱网测试工具界面说明NETWORK LINK CONDITIONER
  19. 牛客《今日头条》笔试题
  20. Consider defining a bean of type ‘com.zsb.dao.UserDao‘ in your configuration.

热门文章

  1. MDI-jada化工软件导入.txt实验数据
  2. php停车场系统设计,基于PHP的停车场管理系统设计与实现
  3. 分段函数的计算 程序编写
  4. 独行月球:沈腾版云天明起承转合破中庸 | 真北影评
  5. 1.基于深度学习的轴承故障诊断--凯斯西储大学轴承数据集介绍
  6. Cocos Creator(JavaScript)- jsb.fileUtils(本地读写)
  7. 英语口语八十一之每日十句口语
  8. (Aleppo + HAIST + SVU + Private) CPC 2022
  9. 6_iOS干货5_iOS颜色汇总
  10. 【新零售】【产品矩阵】基于微信的私域营销系统SCRM【会员自动加群】【自动打标签】【慢病管理】【微服务架构】