資源簡介
自己寫的一個用遺傳算法解決公交車路線規劃問題,有興趣的朋友可以私信我;
自己寫的一個用遺傳算法解決公交車路線規劃問題,有興趣的朋友可以私信我
自己寫的一個用遺傳算法解決公交車路線規劃問題,有興趣的朋友可以私信我
自己寫的一個用遺傳算法解決公交車路線規劃問題,有興趣的朋友可以私信我

代碼片段和文件信息
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代碼
評論
共有 條評論