资源简介
自己写的一个用遗传算法解决公交车路线规划问题,有兴趣的朋友可以私信我;
自己写的一个用遗传算法解决公交车路线规划问题,有兴趣的朋友可以私信我
自己写的一个用遗传算法解决公交车路线规划问题,有兴趣的朋友可以私信我
自己写的一个用遗传算法解决公交车路线规划问题,有兴趣的朋友可以私信我
代码片段和文件信息
clc
clear all
close all
%% 参数设置
GenMax=100;
P1=0.5;
P2=0.5;
V=12;
Q=[0 84 72 80 69 54 70 64 57 73 80];
%% 初始种群
% Chrom.A=[3 5 6 1 11];
% Chrom.B=[2 4 10 7 1 8 9];
load Chrom.mat
% Popnum=size(Chrom1)
load D.mat
%% 交叉变异产生子代
Gen=0;
t1=0;
t2=0;
while Gen ChromTemp=[];
ChromNew1.A=[];
ChromNew1.B=[];
ChromNew2.A=[];
ChromNew2.B=[];
ChromNew3.A=[];
ChromNew3.B=[];
Popnum=size(Chrom2)
Gen=Gen+1;
%% 交叉变异
for i=1:Popnum
rate1=rand;
rate2=rand;
%交叉
if rate1 t1=t1+1;
ChromTemp=Chrom(i);
L1=find(ChromTemp.A==1);
L2=find(ChromTemp.B==1);
L11=min(L1+1length(ChromTemp.A));
L22=min(L2+1length(ChromTemp.B));
ChromNew1.A=[ChromTemp.A(1:L1) ChromTemp.B(L22:end)];
ChromNew1.B=[ChromTemp.B(1:L2) ChromTemp.A(L11:end)];
ChromNew1=TestChrom(ChromNew1ga);
ChromNew2.A=[ChromTemp.A(1:L1) ChromTemp.B(L2-1:-1:1)];
ChromNew2.B=[ChromTemp.A(end:-1:L11) 1 ChromTemp.B(end:-1:L22)];
ChromNew2=TestChrom(ChromNew2ga);
Save(t1).Cross1=ChromNew1;
Save(t1).Cross2=ChromNew2;
end
% 变异
if rate2 t2=t2+1;
ChromTemp=Chrom(i);
L1=find(ChromTemp.A==1);
L2=find(ChromTemp.B==1);
flag=1;
while flag>0
N_change1=randperm(length(ChromTemp.A));
N_change2=randperm(length(ChromTemp.B));
if (N_change1(1)~=L1)&(N_change2(1)~=L2)
flag=0;
end
temp1=ChromTemp.A(N_change1(1));
temp2=ChromTemp.B(N_change2(1));
ChromTemp.A(N_change1(1))=temp2;
ChromTemp.B(N_change2(1))=temp1;
ChromNew3=TestChrom(ChromTempga);
Save(t2).Cross3=ChromNew3;
end
end
end
Mark=[ones(1Popnum) length(ChromNew1.A) length(ChromNew2.A) length(ChromNew3.A) ];
Chrom=[Chrom ChromNew1 ChromNew2 ChromNew3];
Chrom=Chrom(find(Mark));
[Best(Gen).TBest(Gen).Chrom]=getbest(ChromgaQV);
end
plot([Best.T])
xlabel(‘迭代次数‘)
ylabel(‘乘客出行总时间‘)
fprintf(‘A路线是%s\n‘num2str([Best(end).Chrom.A]))
fprintf(‘B路线是%s\n‘num2str([Best(end).Chrom.B]))
% Lnum=randi([2 10]21);
% temp=Chrom(iLnum(1));
% ChromNew2=Chrom(i:);
% ChromNew2(Lnum(1))=Chrom(iLnum(2));
% ChromNew2(Lnum(2))=floor(cos(0.5*temp*pi));
% Save(t2).Change=ChromNew2;
% end
% Chrom=[Chrom;ChromNew1;ChromNew2];
% Chrom= unique(Chrom‘rows‘);
% end
%
%
%
%
%
% end
% % % 变异
% % if rate2 % % Lnum=randi([2 10]21);
% % temp=Chromnew(iLnum(1));
% % Chromnew(iLnum(1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3161 2020-05-02 00:36 bus\BUS.m
文件 265 2020-05-01 22:59 bus\Chrom.mat
文件 257 2020-04-29 23:39 bus\D.mat
文件 10083 2020-04-29 23:36 bus\ga.xlsx
文件 971 2020-05-02 00:31 bus\getbest.m
文件 667 2020-05-02 00:21 bus\getP.m
文件 285 2020-05-01 22:58 bus\TestChrom.m
- 上一篇:DCT_CS 稀疏矩阵
- 下一篇:qpsk matlab代码
相关资源
- qpsk matlab代码
- MATLAB题库很好用
- 六自由度机械臂三维仿真程序完整版
- MATLAB 工程案例.
- DE差分进化算法MATLAB源码,中文详细注
- MARLAB 入门MATLAB 数学工具软件 简明教
- 最新MATLAB激活许可证,解决2017-11-12后
- GRD格式的DEM文件读取写入Matlab程序.
- 眼底图像形态学操作MATLAB代码
- 在一幅图中寻找圆的matlab算法
- 串并转换,并串转换
- 运动模糊图像倒谱程序
- 单相短路的matlab仿真
- 稀疏保持投影matlab代码
- JPEG基本系统的matlab实现
- 机械优化设计及其MATLAB实现
- MATLAB实现最速下降法,牛顿法和共轭
- matlab椭圆积分程序
- 基于MATLAB三比值法的电力变压器故障
- SIFT特征提取
- MATLAB曲线拟合
- 基于标记的分水岭分割实现
- Matlab中UDP通讯
- 信道编码的Matlab和FPGA的实现 光盘资料
- 随机网络编码matlab程序
- 简单的Matlab帧间分差算法
- matlab 编写的MUSIC,MVDR算法仿真
- BP神经网络解决字母识别问题matlab源代
- 遗传算法解决job_shop作业调度问题——
- 蚁群算法最短路径matlab程序
评论
共有 条评论