资源简介
Untitled.zip

代码片段和文件信息
clc
clear
close all
tic
data = xlsread(‘数据.xlsx‘‘C3:I12‘);
JW = data(:1:2);
dem = data(:3); % 各网点的需求量
demand = rem(dem6); % 各网点除去整车运输的量(整车运输是指网点需求量多于汽车装载量时,需要在该网点多次运输)
ntimes = (dem - demand)/6; % 各网点整车运输的次数
%% 经纬度转大地坐标,单位km
e2=0.0066943799;
N=6386942;
H=44.4; % 海拔
W=JW(:2)/180*pi; % 维度
J=JW(:1)/180*pi; % 经度
X=-(N+H)*cos(W).*cos(J)/1000;
Y=(N+H)*cos(W).*sin(J)/1000;
position=[X Y];
%%
CityNum=9; % 需求节点数
CarDistance=300000;% 车最大行驶距离
CarLoad=6; % 车容量
speed=30; % 车辆行驶速度
c0=0; % 发车成本
c1=3; % 车辆行驶单位距离成本
CarNum=18; % 配送车辆总数,实际车辆可以少于该值
fitmax=10000000;% 最大惩罚
%%
NP=80; % 种群个体数量
maxgen=200;
Pc=0.9; % 交叉概率
Pm=0.1; % 变异概率
Gap=0.9; % 代沟(Generation gap)
%%
ET=data(:6); % 最早服务时间窗
LT=data(:7); % 最晚服务时间窗
ST=zeros(size(ET));% 服务时间
CE=[0 ones(1CityNum)]*1000; % 早到惩罚系数
CL=[0 ones(1CityNum)]*1000; % 晚到惩罚系数
%% 计算各城市之间的距离
distance=zeros(CityNum+1);
for i=1:CityNum+1
for j=i+1:CityNum+1
distance(ij)=((position(i1)-position(j1))^2+(position(i2)-position(j2))^2)^0.5;
distance(ji)=distance(ij);
end
end
%% 整车运输费用
for j = 2:length(dem)
mT = distance(1j)/speed;
if mT < ET(j)
dpunish = (ET(j)-mT)*CE(j);
elseif mT > LT(j)
dpunish = (mT-LT(j))*CL(j);
else
dpunish = 0;
end
mCost(j) = ntimes(j)*(distance(1j)*c1*2);
end
dCost = sum(mCost);
%% 路径初始化
X=initpop(NPCityNumCarNum);
Xa=X(1:);
%% 迭代
gen=1;
while gen<=maxgen
gen
% 计算适应值矩阵
[allcostfit]=fitness(distancedemandXETLTCECLSTCarDistanceCarLoadspeedfitmaxc0c1);
%找出最优个体适应值
allcost=allcost+dCost;
[leastcostbestindex]=min(allcost);
bestindex=bestindex(1);
fpbest(gen)=leastcost; % 最小适应值fit的集
pbest(gen:)=X(bestindex:);% 最优个体集
% 选择
XSel=Select(XfitGap);
% 交叉操作
XSel=Cross(XSelPc);
% 变异
XSel=Mutate(XSelPm);
% 逆转操作
%XSel=Reverse(distancedemandXSelETLTCECLSTCarDistanceCarLoadspeedfitmaxc0c1);
% 重插入子代的新种群
X=Reins(XXSelfit);
gen=gen+1;
end
% 找出最优的适应值、个体
[minfpbestminindex]=min(fpbest);% 取最优适应值的位置、最优适应值
minindex=minindex(1);
bestRoute=pbest(minindex:); % 取最优个体
Path=bestRoute;
for i=1:length(Path)-1
if Path(i)-Path(i+1)==0
Path(i)=0;
end
end
ii=find(Path==0);
Path(ii)=[];
for j=1:length(Path) % 编码各减1,与文中的编码一致
Path(j)= Path(j)-1;
end
fpbest; %查看适应值的变化情况
%% 迭代图
figure
plot(fpbest)
title(‘遗传算法优化过程‘)
xlabel(‘迭代次数‘)
ylabel(‘最优值‘)
%% 计算结果数据输出
clc
toc
disp([‘最优成本为:‘num2str(minfpbest)]);
OutputResult(distancedemandPathETLTCECLSTCarDistanceCarLoadspeedf
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4049 2019-04-26 16:24 Unti
- 上一篇:深信服 虚拟化初级_A.zip
- 下一篇:wps2019教育版
相关资源
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
评论
共有 条评论