欢迎来到天天文库
浏览记录
ID:40529544
大小:26.50 KB
页数:4页
时间:2019-08-04
《A very easy partical》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、%标准粒群优化算法程序%测试函数:f(x,y)=100(x^2-y)^2+(1-x)^2,-2.0482、s; %最优解globalbest_in_history;%最优解变化轨迹globalx_min; %x的下限globalx_max; %x的上限globaly_min; %y的下限globaly_max; %y的上限globalgen; %迭代次数globalexetime; %当前迭代次数globalmax_velocity; %最大速度initial; %初始化forexetime=1:gen outputdata; %实3、时输出结果 adapting; %计算适应值 errorcompute();%计算当前种群适值标准差 updatepop; %更新粒子位置 pause(0.01);endcleari;clearexetime;clearx_max;clearx_min;cleary_min;cleary_max;%适值计算%测试函数为f(x,y)=100(x^2-y)^2+(1-x)^2,-2.0484、1-pop(i,1))^2; ifpop(i,7)>pop(i,8) %若当前适应值优于个体最优值,则进行个体最优信息的更新 pop(i,7)=pop(i,8); %适值更新 pop(i,5:6)=pop(i,1:2); %位置坐标更新 endend%计算完适应值后寻找当前全局最优位置并记录其坐标ifbest_fitness>min(pop(:,7)) best_fitness=min(pop(:,7)); %全局最优值 gbest_x=pop(find(pop(:,7)==min(pop(5、:,7))),1); %全局最优粒子的位置 gbest_y=pop(find(pop(:,7)==min(pop(:,7))),2);endbest_in_history(exetime)=best_fitness;%记录当前全局最优%程序初始化gen=100; %设置进化代数popsize=30; %设置种群规模大小best_in_history(gen)=inf; %初始化全局历史最优解best_in_history(:)=inf; %初始化全局历史最优解max_velocity=0.3; %最大速度限制best_fitn6、ess=inf;%popnum=1; %设置种群数量pop(popsize,8)=0; %初始化种群,创建popsize行8列的0矩阵%种群数组第1列为x轴坐标,第2列为y轴坐标,第3列为x轴速度分量,第4列为y轴速度分量%第5列为个体最优位置的x轴坐标,第6列为个体最优位置的y轴坐标%第7列为个体最优适值,第8列为当前个体适应值fori=1:popsize pop(i,1)=4*rand()-2; %初始化种群中的粒子位置,值为-2—2,步长为其速度 pop(i,2)=4*rand()-2; %初始化种群中的粒子位置,值为-2—27、,步长为其速度 pop(i,5)=pop(i,1);%初始状态下个体最优值等于初始位置 pop(i,6)=pop(i,2);%初始状态下个体最优值等于初始位置 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;y8、_max=
2、s; %最优解globalbest_in_history;%最优解变化轨迹globalx_min; %x的下限globalx_max; %x的上限globaly_min; %y的下限globaly_max; %y的上限globalgen; %迭代次数globalexetime; %当前迭代次数globalmax_velocity; %最大速度initial; %初始化forexetime=1:gen outputdata; %实
3、时输出结果 adapting; %计算适应值 errorcompute();%计算当前种群适值标准差 updatepop; %更新粒子位置 pause(0.01);endcleari;clearexetime;clearx_max;clearx_min;cleary_min;cleary_max;%适值计算%测试函数为f(x,y)=100(x^2-y)^2+(1-x)^2,-2.0484、1-pop(i,1))^2; ifpop(i,7)>pop(i,8) %若当前适应值优于个体最优值,则进行个体最优信息的更新 pop(i,7)=pop(i,8); %适值更新 pop(i,5:6)=pop(i,1:2); %位置坐标更新 endend%计算完适应值后寻找当前全局最优位置并记录其坐标ifbest_fitness>min(pop(:,7)) best_fitness=min(pop(:,7)); %全局最优值 gbest_x=pop(find(pop(:,7)==min(pop(5、:,7))),1); %全局最优粒子的位置 gbest_y=pop(find(pop(:,7)==min(pop(:,7))),2);endbest_in_history(exetime)=best_fitness;%记录当前全局最优%程序初始化gen=100; %设置进化代数popsize=30; %设置种群规模大小best_in_history(gen)=inf; %初始化全局历史最优解best_in_history(:)=inf; %初始化全局历史最优解max_velocity=0.3; %最大速度限制best_fitn6、ess=inf;%popnum=1; %设置种群数量pop(popsize,8)=0; %初始化种群,创建popsize行8列的0矩阵%种群数组第1列为x轴坐标,第2列为y轴坐标,第3列为x轴速度分量,第4列为y轴速度分量%第5列为个体最优位置的x轴坐标,第6列为个体最优位置的y轴坐标%第7列为个体最优适值,第8列为当前个体适应值fori=1:popsize pop(i,1)=4*rand()-2; %初始化种群中的粒子位置,值为-2—2,步长为其速度 pop(i,2)=4*rand()-2; %初始化种群中的粒子位置,值为-2—27、,步长为其速度 pop(i,5)=pop(i,1);%初始状态下个体最优值等于初始位置 pop(i,6)=pop(i,2);%初始状态下个体最优值等于初始位置 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;y8、_max=
4、1-pop(i,1))^2; ifpop(i,7)>pop(i,8) %若当前适应值优于个体最优值,则进行个体最优信息的更新 pop(i,7)=pop(i,8); %适值更新 pop(i,5:6)=pop(i,1:2); %位置坐标更新 endend%计算完适应值后寻找当前全局最优位置并记录其坐标ifbest_fitness>min(pop(:,7)) best_fitness=min(pop(:,7)); %全局最优值 gbest_x=pop(find(pop(:,7)==min(pop(
5、:,7))),1); %全局最优粒子的位置 gbest_y=pop(find(pop(:,7)==min(pop(:,7))),2);endbest_in_history(exetime)=best_fitness;%记录当前全局最优%程序初始化gen=100; %设置进化代数popsize=30; %设置种群规模大小best_in_history(gen)=inf; %初始化全局历史最优解best_in_history(:)=inf; %初始化全局历史最优解max_velocity=0.3; %最大速度限制best_fitn
6、ess=inf;%popnum=1; %设置种群数量pop(popsize,8)=0; %初始化种群,创建popsize行8列的0矩阵%种群数组第1列为x轴坐标,第2列为y轴坐标,第3列为x轴速度分量,第4列为y轴速度分量%第5列为个体最优位置的x轴坐标,第6列为个体最优位置的y轴坐标%第7列为个体最优适值,第8列为当前个体适应值fori=1:popsize pop(i,1)=4*rand()-2; %初始化种群中的粒子位置,值为-2—2,步长为其速度 pop(i,2)=4*rand()-2; %初始化种群中的粒子位置,值为-2—2
7、,步长为其速度 pop(i,5)=pop(i,1);%初始状态下个体最优值等于初始位置 pop(i,6)=pop(i,2);%初始状态下个体最优值等于初始位置 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=
此文档下载收益归作者所有