资源简介
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教育版
相关资源
- 佳能万能版清零操作手册.doc
- 腾讯视频-视频批量解析.exe
- 项目管理概论第1-12章答案.docx
- PTHC全系列密碼.txt
- 520489f3fa80b0538a60b4f96ea53b56.zip
- system.7z
- [D011Y5]品牌运动鞋专卖学生设计电子商
- 2fe6721bd557d2b8b674c795fe1c31c9.txt
- sdk.txt
- AutoCad2018入门到精通地址.txt
- zw_selectChat.zip
- zw_OBD故障码.zip
- zw_fuzzy_pid.zip
- zw_C全方位学习》范磊高清pdf书源代码
- zw_STM32F1012864液晶字库.zip
- NiuShop_B2B2C_V1.0.rar
- NoFuserEx.v.1.2-dotNet.v4.6.1.rar
- 传奇H5服务端视频教程后台GM工具.tx
- macosAMD.txt
- macos10.14.txt
- macos10.13.txt
- 破解RS5000保护文件sk.docx
- 时间序列回归(1).pdf
- 123.txt
- 3.txt
- 六、最新尚硅谷MongoDB视频链接.rar
- 设备资产运维管理系统PMS2.0与调度管
- 小象学习机器学习视频不知道哪期.
- 博途V14教学视频.txt
- T先生密码(5).txt
评论
共有 条评论