为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

萤火虫算法

2014-03-26 3页 doc 19KB 26阅读

用户头像

is_640707

暂无简介

举报
萤火虫算法%% 算法说明:荧火虫算法(GSO:Glowworm swarm optimisation:a new method for optimising mutlti-modal functions) %% 算法说明:荧火虫算法(GSO:Glowworm swarm optimisation:a new method for optimising mutlti-modal functions) %% 算法特征:只适用于求极大值(极小值可转化为求极大值) %%======================================...
萤火虫算法
%% 算法说明:荧火虫算法(GSO:Glowworm swarm optimisation:a new method for optimising mutlti-modal functions) %% 算法说明:荧火虫算法(GSO:Glowworm swarm optimisation:a new method for optimising mutlti-modal functions) %% 算法特征:只适用于求极大值(极小值可转化为求极大值) %%=============================================================== clc;%清屏 clear all;%清除变量 format long;%确定精度 % ================================ 初 始 化 开 始 %domx=[-3,3;-3,3];%定义域 domx=[-2.048,2.048;-2.048,2.048]; rho=0.4;%荧光素挥发因子 gamma=0.6;%适应度提取比例 beta=0.08;%邻域变化率 nt=5;%邻域阀值(邻域荧火虫数) s=0.03;%步长 iot0=5;%荧光素浓度 rs=2.048;%3;%感知半径 r0=2.048;%3;%决策半径 % ================================ 初 始 化 结 束 %===============================分配空间开始 m=size(domx,1);%函数空间维数 n=50;%群规模 gaddress=zeros(n,m);%分配荧火虫地址空间 gvalue=zeros(n,1);%分配适应度存放空间 ioti=zeros(n,1);%分配荧光素存放空间 rdi=zeros(n,1);%分配荧火虫决策半径存放空间 % ============================== 分 配 空 间 结 束 % =========================== 荧火虫常量初始化开始 %1.初始化地址 for i=1:m gaddress(:,i)=domx(i,1)+(domx(i,2)-domx(i,1))*rand(n,1); end %2.初始化荧光素 ioti(:,1)=iot0; %3.初始化决策半径 rdi(:,1)=r0; iter_max=500;%最大迭代次数 t=1;%迭代累计 %============================== 荧 火 虫 常 量 初 始 化 结 束 %迭代开始 while(t<=iter_max) %1.更新荧光素 ioti=(1-rho)*ioti+gamma*maxfun(gaddress); %2.各荧火虫移动过程开始 for i=1:n %2.1 决策半径内找更优点 Nit=[];%存放荧火虫序号 for j=1:n if (norm(gaddress(j,:)-gaddress(i,:))0 %先判断 Nit 个数不为 0 Nitioti=ioti(Nit,1);%选出 Nit 荧光素 SumNitioti=sum(Nitioti);%Nit 荧光素和 Molecular=Nitioti-ioti(i,1);%分子 Denominator=SumNitioti-ioti(i,1);%分母 Pij=Molecular./Denominator;%计算 Nit 各元素被选择概率 Pij=cumsum(Pij);%累计 Pij=Pij./Pij(end);%归一化 Pos=find(randrs rdi(i,1)=rs; end end %2.2 找下一步移动的点结束 end %2.各荧火虫移动过程结束 t=t+1; end % =============================iter_max迭代结束 % =============================输出最优结果开始 gvalue=maxfun(gaddress);%求各个荧火虫的值 disp('最大值为:') num=find(gvalue==max(gvalue));%最大值序号 MaxValue=-max(gvalue) disp('最优解为:') BestAddress=gaddress(num,:) % ============================= 输 出 最 优 结 果 结 束 function y=maxfun(x) %P104 函数 J1 % j1=3*(1-x(:,1)).^2.*exp(-(x(:,1).^2+(x(:,2)+1).^2)); % j2=10*(x(:,1)./5-x(:,1).^3-x(:,2).^5).*exp(-(x(:,1).^2+x(:,2).^2)); % j3=(1/3)*exp(-((x(:,1)+1).^2+x(:,2))); % y=j1-j2-j3; %================= dom=[-2.048,2.048;-2.048,2.048];%定义域范围 z=100.*(x(:,1).^2-x(:,2)).^2+(1-x(:,1)).^2;%目标函数 y=-z; f unction X=range(X,dom)%输入向量 X,定义域 dom n=size(X,2);%求列数即 dom 的行数 n=size(dom,1) for i=1:n t=X(:,i); t(tdom(i,2))=dom(i,2);%限定右边范围 X(:,i)=t; end
/
本文档为【萤火虫算法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索