2022年二维粒子群算法的matlab源程序 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年二维粒子群算法的matlab源程序 .pdf》由会员分享,可在线阅读,更多相关《2022年二维粒子群算法的matlab源程序 .pdf(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、%function pso F=pso_2D()%FUNCTION PSO -USE Particle Swarm Optimization Algorithm%global present;%close all;clc;clear all;pop_size=10;%pop_size 种群大小/粒子数量part_size=2;%part_size 粒子大小/粒子的维数gbest=zeros(1,part_size+1);%gbest 当前搜索到的最小的值max_gen=200;%max_gen 最大迭代次数%best=zeros(part_size,pop_size*part_size);%x
2、uan region=zeros(part_size,2);%设定搜索空间范围-解空间region=10*-3,3;-3,3;-3,3;-3,3;-3,3;-3,3;-3,3;-3,3;-3,3;-3,3;%每一维设定不同范围(称之为解空间,不是可行域空间)rand(state,sum(100*clock);%重置随机数发生器状态%当前种群的信息矩阵,逐代进化的群体%当前位置,随机初始化%一个 10*3的随机的矩阵(初始化所有粒子的所有维数的位置值),其中最后一列为arr_present=ini_pos(pop_size,part_size);%初始化当前速度%一个 10*2的随机的矩阵(初始
3、化所有粒子的所有维数的速度值)v=ini_v(pop_size,part_size);%不是当前种群,可看作是一个外部的记忆体,存储每个粒子历史最优值(2 维数值):根据适应度更新!名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -%注意:pbest数组 10*3 最后一列保存的是适应度pbest=zeros(pop_size,part_size+1);%pbest:粒子以前搜索到的最优值,最后一列包括这些值的适应度%1*80 保存每代的最优值best_record=zeros(part_size+1,max_gen);%best_record数组:记录每一代的最好的粒
4、子的适应度w_max=0.9;%w_max权系数最大值w_min=0.2;%w_min权系数最小值v_max=2;%最大速度,为粒子的范围宽度c1=2;%学习因子1 c2=2;%学习因子2%计算原始种群的适应度,及初始化%注意:传入的第一个参数是当前的粒子群体,ini_fit函数计算每个粒子的适应度%arr_present(:,end)是最后一列,保存每个粒子的适应值,是这样的!xuan arr_present(:,end)=ini_fit(arr_present,pop_size,part_size);%数组赋值,初始化每个粒子个体的历史最优值,以后会更新的pbest=arr_present
5、;%初始化各个粒子最优值%找到当前群体中适应度最小的(在最后一列中寻找),best_value%改为 max,表示关联度最大best_value best_index=max(arr_present(:,end);%初始化全局最优,即适应度为全局最小的值,根据需要也可以选取为最大值%唯一的全局最优值,是当前代所有粒子中最好的一个gbest=arr_present(best_index,:);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -%因为是多目标,因此这个-%只是示意性的画出3 维的%x=-3:0.01:3;%y=-3:0.01:3;%X,Y=meshgrid(
6、x,y);%Z1=(-10)*exp(-0.2)*sqrt(X2+Y2);%Z2=(abs(X)0.8+abs(Y)0.8+5*sin(X3)+5*sin(Y3);%z1=(x,y)(-10)*exp(-0.2)*sqrt(x2+y2);%z2=(x,y)(abs(x)0.8+abs(y)0.8+5*sin(x3)+5*sin(y3);%ezmeshc(z1);grid on;%ezmeshc(z2);grid on;%开始进化,直到最大代数截至for i=1:max_gen%grid on;%三维图象%多维图象是画不出来的%ezmesh(z),hold on,grid on;%画出粒子群%p
7、lot3(arr_present(:,1),arr_present(:,2),arr_present(:,3),*),hold off;%drawnow%flush%pause(0.01);w=w_max-(w_max-w_min)*i/max_gen;%线形递减权重名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -%当前进化代数:对于每个粒子进行更新和评价-for j=1:pop_size v(j,:)=w.*v(j,:)+c1.*rand.*(pbest(j,1:part_size)-arr_present(j,1:part_size).+c2.*rand.*(gb
8、est(1:part_size)-arr_present(j,1:part_size);%粒子速度更新(a)%判断v的大小,限制v的绝对值小于20 for k=1:part_size if abs(v(j,k)20 rand(state,sum(100*clock);v(j,k)=20*rand();end end%前几列是位置信息 arr_present(j,1:part_size)=arr_present(j,1:part_size)+v(j,1:part_size);%粒子位置更新(b)%最后一列是适应度 arr_present(j,end)=fitness(part_size,arr_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年二维粒子群算法的matlab源程序 2022 二维 粒子 算法 matlab 源程序
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内