function [R,minlen]=geneticVRP(D,dis,demand,volume,n,C,m,Pc,Pm)
[N,NN]=size(D);
farm=zeros(n,N);%用于存储种群
for i=1:n
farm(i,:)=randperm(N);
end
R=farm(1,:);%一个随机解(个体)
len=zeros(n,1);%存储路径长度
counter=1;
while counter<=C
counter
%====================================================================
%=====================交叉操作========================
FARM=farm;
FARM2=FARM;
[aa,bb]=size(FARM);
for i=1:2:aa
if Pc>rand&&i<aa %交叉概率Pc
A=FARM(i,:);
B=FARM(i+1,:);
[A,B]=intercross(A,B);
FARM(i,:)=A;
FARM(i+1,:)=B;
end
end
% 交叉检验 (可省去)
fitness_value_c=zeros(1,1);%子代适应值
for i=1:aa
if fitness(demand,FARM(i,:),volume,dis,fitness_value_c,D)>fitness(demand,FARM2(i,:),volume,dis,fitness_value_c,D)
FARM(i,:)=FARM2(i,:);
end
end
clear aa;
clear bb;
clear A;
clear B;
clear fitness_value_c;
%===================================================================
%========================变异=========================
% FARM2=FARM;
[aa,bb]=size(FARM); %aa=nn2
for i=1:aa
if Pm>=rand
FARM(i,:)=mutate(FARM(i,:));
end
end
% 变异检验(可省略)
% fitness_value_c=zeros(1,1);%子代适应值
% for i=1:aa
% if fitness(demand,FARM(i,:),volume,dis,fitness_value_c,D)>fitness(demand,FARM2(i,:),volume,dis,fitness_value_c,D)
% FARM(i,:)=FARM2(i,:);
% end
% end
clear aa;
clear bb;
%===================================================================
%=====================群体的选择和更新======================
farm=FARM;
[c,d]=size(farm);
fitness_value_c=zeros(c,1);%子代适应值
[fitness_value_c]=fitness(demand,farm,volume,dis,fitness_value_c,D); %求个体的适应度
%淘汰子代
[a,b]=sort(fitness_value_c);
[u,i]=size(fitness_value_c);
for i=1:u
farm(i,:)=FARM(b(i),:);
end
minlen=a(1);
R=farm(1,:) ; %更新最短路径
farm(c-19:c,:)=farm(1:20,:);
% %画图
hold on
plot(counter,minlen,'-b*');
hold off;
counter=counter+1;
% Rlength=myLength(D,R,volume);
% %不会画图!!!
% % subplot(2,1,1)
% % plot(counter,Rlength,'-ro')
% % hold on
% % plot(counter,myLength(D,R),':b*')
% % hold off;
% hold on
% plot(counter,minlen,'-b*');
% hold off;
end
%结果输出
minlen
R
output_fitness(demand,R,volume,dis,fitness_value_c,D);
% subplot(2,1,1)
% plot(R,'-ro')
MATLAB遗传算法VRP
4星 · 超过85%的资源 需积分: 1 110 浏览量
2015-12-27
22:55:22
上传
评论 18
收藏 6KB ZIP 举报
-hantao-
- 粉丝: 69
- 资源: 8
最新资源
- 基于Pytorch复现Point-Transformer,用于ShapeNet数据集点云分割
- 【医学影像分析】2D超声图像的分割检测(Ultrasound Nerve Segmentation - Kaggle数据集)
- 嘎嘎香的五款神仙谷歌插件
- .arch书源导入教程.mp4
- 贪心算法介绍及代码示例讲解
- CR13SP35MSI64 Crystal 水晶报表运行组件最后版本64位
- 图像分类数据集:玉米叶是否感染分类数据集(2分类,包含训练集、验证集)
- 小U商城.zip
- 高光谱图像计算机视觉分类图像预处理工具集,包含去除图片无关背景,数据增强,生成标签文件等功能
- (顶刊复现)基于配电网韧性提升的应急移动电源预配置和动态调度(下)-MPS动态调度
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈