ELT=[0,72];
%%出发时间
start=0;
%%提前或延期惩罚
ELP=[0,300];
%%碳排放
CO=[0.0556,0.0165,0.0133];
%重量
Q=4;
%出发城市编号
O=13;
%目标城市编号
OD=17;
%% 初始化参数
NIND=20; %种群大小
Max Gen=100; %最大迭代次数
Pc=0.8; %交叉概率
Pm=0.8; %变异概率
GGAP=0.8; %选择概率
Chrom=IntiPop(NIND,N,B,O); %初始种群
%% 初始解
disp('初始种群一个随机解');
for i=1:NIND
[TQ(i),FQ(i),RQ(i)]=Cost(Chrom(i,:),N,D,P,T,C,V,ELT,ELP,CO,OD,FT,ST,Q,start);
end
figure;
plot(TQ,RQ,'.');
figure;
plot(TQ,FQ,'.');
figure;
plot(FQ,RQ,'.');
%% 优化
gen=1;
while gen<=Max
Gen
%计算种群中每个个体的目标值
for i=1:NIND
[TQ(i),FQ(i),RQ(i)]=Cost(Chrom(i,:),N,D,P,T,C,V,ELT,ELP,CO,OD,FT,ST,Q,start);
end
FQM(gen)=min(FQ);
RQM(gen)=min(RQ);
TQM(gen)=min(TQ);
%--------------------------------------
[Fitn V,IND]=Fitness(FQ,RQ,TQ,NIND); %计算适应度,其中Fitn V为适应
INDpareto
Sel Ch=Select(Chrom,Fitn V,GGAP); %选择
Sel Ch=Recombin(Sel Ch,Pc,N); %交叉算子
Sel Ch=Mutate(Sel Ch,Pm,N,O,B); %变异算子
Sel Ch=DSelect(Sel Ch,B,N);
Chrom=Reins(Chrom,Se1Ch,IND); %重插入算子
gen=gen+1;
end
Chrom=DSelect(Chrom,B,N);
%% 最终解
for i=1:size(Chrom,1)
[TQ(i),FQ(i),RQ(i)]=Cost(Chrom(i,:),N,D,P,T,C,V,ELT,ELP,CO,OD,FT,ST,Q,start);
end
figure;
plot(FQ,RQ,'.');
figure;
plot(TQ,RQ,'.');
figure;
plot(TQ,FQ,'.');
figure;
plot(1:Max, Gen,RQM,'-');
figure;
plot(1:Max, Gen,FQM,'-');
figure;
plot(1:Max, Gen,TQM,