主题:[讨论]急急急-懂语言的朋友帮个忙
global dimension
global popsize
dimension=30;
popsize=100;
run_times=20;
max_length=1500;
sample_point=75;
w=1.0; %参数赋值
c1=2.0;
c2=2.0;
vmax=500.0;
xmin=-500.0;
xmax=500.0;
disp=100.0;
current_position=zeros(dimension,popsize);
current_v=zeros(dimension,popsize);
pbest=zeros(dimension,popsize);
gbest=zeros(dimension,1);
gbest_fitness=zeros(1,popsize);
current_fitness=zeros(1,popsize);
gbest1=zeros(dimension,popsize);
gfitness_sampoint=zeros(run_times,fix(max_length/sample_point));
total_best=zeros(1,run_times);
gfitness_ave=zeros(1,fix(max_length/sample_point));
for i=1:run_times
i
current_position=(xmax-xmin)*rand(dimension,popsize)+xmin;
current_v=vmax*rand(dimension,popsize);
pbest=current_position;
pbest_fitness=F1_FITNESS(current_position-disp);
gbest_fitness=min(pbest_fitness);
locate=minfitness_locate(pbest_fitness,gbest_fitness);
gbest=pbest(:,locate);
gbest1=repmat(gbest,1,popsize);
w=0.9;
for j=1:max_length
w=0.9-(j-1)*0.5/(max_length-1);
current_v=w*current_v+c1*rand(dimension,popsize).*(pbest-current_position)+c2*rand
(dimension,popsize).*(gbest1-current_position);
current_v=modify1_v(current_v,vmax);
current_position=current_v+current_position;
current_position=modify_position(current_position,xmax,xmin);
current_fitness=F1_FITNESS(current_position-disp);
[pbest_fitness,pbest]=modify_fitness
(pbest_fitness,current_fitness,pbest,current_position);
gbest_fitness=min(pbest_fitness);
locate=minfitness_locate(pbest_fitness,gbest_fitness);
gbest=pbest(:,locate);
gbest1=repmat(gbest,1,popsize);
if mod(j,sample_point)==0
a=j/sample_point;
gfitness_sampoint(i,a)=gbest_fitness;
end
end
total_best(1,i)=gbest_fitness;
gbest_fitness
end
best_fitness=min(total_best);
worst_fitness=max(total_best);
mean_fitness=mean(total_best);
std_fitness=std(total_best);
gfitness_ave=sum(gfitness_sampoint)/run_times;
format long e
mean_fitness
std_fitness
best_fitness
worst_fitness
gfitness_ave
total_best
懂语言的朋友帮个忙 看看这个程序是做什么的
最好能解释下 先谢谢了
global popsize
dimension=30;
popsize=100;
run_times=20;
max_length=1500;
sample_point=75;
w=1.0; %参数赋值
c1=2.0;
c2=2.0;
vmax=500.0;
xmin=-500.0;
xmax=500.0;
disp=100.0;
current_position=zeros(dimension,popsize);
current_v=zeros(dimension,popsize);
pbest=zeros(dimension,popsize);
gbest=zeros(dimension,1);
gbest_fitness=zeros(1,popsize);
current_fitness=zeros(1,popsize);
gbest1=zeros(dimension,popsize);
gfitness_sampoint=zeros(run_times,fix(max_length/sample_point));
total_best=zeros(1,run_times);
gfitness_ave=zeros(1,fix(max_length/sample_point));
for i=1:run_times
i
current_position=(xmax-xmin)*rand(dimension,popsize)+xmin;
current_v=vmax*rand(dimension,popsize);
pbest=current_position;
pbest_fitness=F1_FITNESS(current_position-disp);
gbest_fitness=min(pbest_fitness);
locate=minfitness_locate(pbest_fitness,gbest_fitness);
gbest=pbest(:,locate);
gbest1=repmat(gbest,1,popsize);
w=0.9;
for j=1:max_length
w=0.9-(j-1)*0.5/(max_length-1);
current_v=w*current_v+c1*rand(dimension,popsize).*(pbest-current_position)+c2*rand
(dimension,popsize).*(gbest1-current_position);
current_v=modify1_v(current_v,vmax);
current_position=current_v+current_position;
current_position=modify_position(current_position,xmax,xmin);
current_fitness=F1_FITNESS(current_position-disp);
[pbest_fitness,pbest]=modify_fitness
(pbest_fitness,current_fitness,pbest,current_position);
gbest_fitness=min(pbest_fitness);
locate=minfitness_locate(pbest_fitness,gbest_fitness);
gbest=pbest(:,locate);
gbest1=repmat(gbest,1,popsize);
if mod(j,sample_point)==0
a=j/sample_point;
gfitness_sampoint(i,a)=gbest_fitness;
end
end
total_best(1,i)=gbest_fitness;
gbest_fitness
end
best_fitness=min(total_best);
worst_fitness=max(total_best);
mean_fitness=mean(total_best);
std_fitness=std(total_best);
gfitness_ave=sum(gfitness_sampoint)/run_times;
format long e
mean_fitness
std_fitness
best_fitness
worst_fitness
gfitness_ave
total_best
懂语言的朋友帮个忙 看看这个程序是做什么的
最好能解释下 先谢谢了