資源簡介
車輛路徑問題代碼!主要包括了初始種群的生成,種群的選擇,迭代,繪圖等。
代碼片段和文件信息
clear
clc
tic
%加載配送網(wǎng)絡(luò)相關(guān)數(shù)據(jù)
load?A32_data
%計(jì)算距離矩陣
D=Distanse(Clist);
%%?初始化
%初始化遺傳算法各參數(shù)
ind_N=200;??????????%種群中個(gè)體數(shù)
Max_gen=400;???????%最大迭代次數(shù)
%記錄最好解、平均解
global_best=inf*ones(1Max_gen+1);%記錄全局最好解的值
local_best=inf*ones(1Max_gen+1);%記錄局部最好解的值
%初始化種群(產(chǎn)生初始解)
Chrom=zeros(ind_NN);
for?i=1:ind_N
????Chrom(i:)=randperm(N);?????%隨機(jī)初始化路徑
end
%計(jì)算初始種群中各個(gè)體的適應(yīng)度
Ind_V=zeros(ind_N1);
for?i=1:ind_N
????Ind_V(i)=fit(Chrom(i:)DemandDQN);
end
%選擇操作
[~idx]=sort(Ind_V‘descend‘);??????????????%對種群中個(gè)體按適應(yīng)度從高到低排序
for?a=1:ind_N/4
????Chrom(a:)=Chrom(idx(1):);
end
Chrom(ind_N/4+1:ind_N/2:)=Chrom(idx(1:ind_N/4):);
Chrom(ind_N/2+1:3*ind_N/4:)=Chrom(idx(1:ind_N/4):);
Chrom(3*ind_N/4+1:end:)=Chrom(idx(1:ind_N/4):);
local_best(1)=1/Ind_V(idx(1));??????????????????%記錄局部最好解的值
global_best(1)=local_best(1);???????????????????%記錄全局最好解的值
global_ind=Chrom(idx(1));???????????????????????%記錄全局最好解
local_ind=Chrom(idx(1));????????????????????????%記錄局部最好解
%%?開始迭代
wb=waitbar(0‘正在搜索......請等待‘);
for?gen=1:Max_gen
????
????%交叉/變異(由于交叉變異的目的是獲得新個(gè)體,此處簡單化處理)
????tmp_Chrom=zeros(ind_NN);
????for?i=1:ind_N
????????tmp_ind=Chrom(i:);
????????M=randi(N[12]);I=min(M);J=max(M);
????????tmp_ind(I:J)=fliplr(tmp_ind(I:J));
????????tmp_Chrom(
- 上一篇:背景差分提取,波門跟蹤
- 下一篇:Semi-NMF源代碼
評論
共有 條評論