4、1-pop(i,1))^2;???ifpop(i,7)>pop(i,8)???%若當(dāng)前適應(yīng)值優(yōu)于個(gè)體最優(yōu)值,則進(jìn)行個(gè)體最優(yōu)信息的更新???????pop(i,7)=pop(i,8);?????????%適值更新???????pop(i,5:6)=pop(i,1:2);?????%位置坐標(biāo)更新???endend%計(jì)算完適應(yīng)值后尋找當(dāng)前全局最優(yōu)位置并記錄其坐標(biāo)ifbest_fitness>min(pop(:,7))???best_fitness=min(pop(:,7));????%全局最優(yōu)值???gbest_x=pop(find(pop(:,7)==min(pop(
5、:,7))),1);???%全局最優(yōu)粒子的位置?????gbest_y=pop(find(pop(:,7)==min(pop(:,7))),2);endbest_in_history(exetime)=best_fitness;%記錄當(dāng)前全局最優(yōu)%程序初始化gen=100;????%設(shè)置進(jìn)化代數(shù)popsize=30;????%設(shè)置種群規(guī)模大小best_in_history(gen)=inf;??%初始化全局歷史最優(yōu)解best_in_history(:)=inf;??%初始化全局歷史最優(yōu)解max_velocity=0.3;??????%最大速度限制best_fitn
6、ess=inf;%popnum=1;??????%設(shè)置種群數(shù)量pop(popsize,8)=0;??%初始化種群,創(chuàng)建popsize行8列的0矩陣%種群數(shù)組第1列為x軸坐標(biāo),第2列為y軸坐標(biāo),第3列為x軸速度分量,第4列為y軸速度分量%第5列為個(gè)體最優(yōu)位置的x軸坐標(biāo),第6列為個(gè)體最優(yōu)位置的y軸坐標(biāo)%第7列為個(gè)體最優(yōu)適值,第8列為當(dāng)前個(gè)體適應(yīng)值fori=1:popsize???pop(i,1)=4*rand()-2;????%初始化種群中的粒子位置,值為-2—2,步長(zhǎng)為其速度???pop(i,2)=4*rand()-2;????%初始化種群中的粒子位置,值為-2—2
7、,步長(zhǎng)為其速度???pop(i,5)=pop(i,1);%初始狀態(tài)下個(gè)體最優(yōu)值等于初始位置???pop(i,6)=pop(i,2);%初始狀態(tài)下個(gè)體最優(yōu)值等于初始位置???pop(i,3)=rand()*0.02-0.01;???%初始化種群微粒速度,值為-0.01—0.01,間隔為0.0001???pop(i,4)=rand()*0.02-0.01;???%初始化種群微粒速度,值為-0.01—0.01,間隔為0.0001???pop(i,7)=inf;???pop(i,8)=inf;endc1=2;c2=2;x_min=-2;y_min=-2;x_max=2;y
8、_max=