• 诺亚方舟01
    了解作者
  • matlab
    开发工具
  • 10KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 8
    下载次数
  • 2018-01-12 01:31
    上传日期
该程序是最新的FA-BP算法,利用该程序可以进行极值的寻优。
FA-BP.rar
  • FA-BP
  • ffa_mincon.m
    3.5KB
  • data.mat
    6.1KB
  • bpffa.m
    3.1KB
  • fun.m
    1.4KB
内容介绍
%% Cost or Objective function function [nbest,fbest,NumEval]=ffa_mincon(u0,Lb,Ub,para,inputnum,hiddennum,outputnum,net,inputn,outputn) % para=[20 500 0.5 0.2 1]; % Check input parameters (otherwise set as default values) if nargin<5, para=[20 50 0.25 0.20 1]; end if nargin<4, Ub=[]; end if nargin<3, Lb=[]; end if nargin<2, disp('Usuage: FA_mincon(@cost,u0,Lb,Ub,para)'); end % n=number of fireflies % MaxGeneration=number of pseudo time steps % ------------------------------------------------ % alpha=0.25; % Randomness 0--1 (highly random) % betamn=0.20; % minimum value of beta % gamma=1; % Absorption coefficient % ------------------------------------------------ n=para(1); MaxGeneration=para(2); %MaxGeneration alpha=para(3); betamin=para(4); gamma=para(5); NumEval=n*MaxGeneration; % Check if the upper bound & lower bound are the same size if length(Lb) ~=length(Ub), disp('Simple bounds/limits are improper!'); return end % Calcualte dimension d=length(u0); % % Initial values of an array zn=ones(n,1)*10^100; % ------------------------------------------------ % generating the initial locations of n fireflies [ns,Lightn]=init_ffa(n,d,Lb,Ub,u0); % % Iterations or pseudo time marching for k=1:MaxGeneration, %%%%% start iterations % This line of reducing alpha is optional alpha=alpha_new(alpha,MaxGeneration); % Evaluate new solutions (for all n fireflies) for i=1:n, zn(i)=fun(ns(i,:),inputnum,hiddennum,outputnum,net,inputn,outputn); Lightn(i)=zn(i); end % Display the shape of the objective function % Ranking fireflies by their light intensity/objectives [Lightn,Index]=sort(zn); ns_tmp=ns; for i=1:n, ns(i,:)=ns_tmp(Index(i),:); end %% Find the current best nso=ns; Lighto=Lightn; nbest=ns(1,:); Lightbest=Lightn(1); % For output only fbest=Lightbest; % Move all fireflies to the better locations [ns]=ffa_move(n,d,ns,Lightn,nso,Lighto,nbest,Lightbest,alpha,betamin,gamma,Lb,Ub); end %%%%% end of iterations % The initial locations of n fireflies function [ns,Lightn]=init_ffa(n,d,Lb,Ub,u0) % if there are bounds/limits, if length(Lb)>0, for i=1:n, ns(i,:)=Lb+(Ub-Lb).*rand(1,d); end else % generate solutions around the random guess for i=1:n, ns(i,:)=u0+randn(1,d); end end % initial value before function evaluations Lightn=ones(n,1)*10^100; % Move all fireflies toward brighter ones function [ns]=ffa_move(n,d,ns,Lightn,nso,Lighto,nbest,Lightbest,alpha,betamin,gamma,Lb,Ub) % Scaling of the system scale=abs(Ub-Lb); % Updating fireflies for i=1:n % The attractiveness parameter beta=exp(-gamma*r) for j=1:n, r=sqrt(sum((ns(i,:)-ns(j,:)).^2)); % % Update moves if Lightn(i)>Lighto(j), % Brighter and more attractive beta0=1; beta=(beta0-betamin)*exp(-gamma*r.^2)+betamin; tmpf=alpha.*(rand(1,d)-0.5).*scale; ns(i,:)=ns(i,:).*(1-beta)+nso(j,:).*beta+tmpf; [ns]=findlimits(n,ns,Lb,Ub); end end % end for j end % end for i % convergence can occur. So use with care. function alpha=alpha_new(alpha,NGen) % % alpha_n=alpha_0(1-delta)^NGen=0.005 % alpha_0=0.9 delta=1-(10^(-4)/0.9)^(1/NGen); alpha=(1-delta)*alpha; function [ns]=findlimits(n,ns,Lb,Ub) for i=1:n, % Apply the lower bound ns_tmp=ns(i,:); I=ns_tmp<Lb; ns_tmp(I)=Lb(I); % Apply the upper bounds J=ns_tmp>Ub; ns_tmp(J)=Ub(J); % Update this new move ns(i,:)=ns_tmp; end
评论
  • 吃货辶天下 2019-04-02 01:19:47
    笔者您好,该代码标签是FA-BP,为何matalab中上来就解释为基于PSO-BP
相关推荐
  • 29782206FA-BP.rar
    该算法是蝙蝠和BP网络结合的算法,用于优化BP算法
  • BP.rar
    采用BP算法直接实现圆周SAR成像,matlab代码
  • bp2.zip
    这个成像代码可以多点目标的实现sar 成像bp算法,效果明显,可用。
  • BP.zip
    利用BP算法进行SAR成像,BP算法是一种对时域回波数据进行成像的算法
  • BP.rar
    实现合成孔径雷达,多点目标BP算法成像,详细注释
  • BP_PYTHON.zip
    使用python实现的最基本的bp算法,通过矩阵实现。
  • BP_3D.zip
    雷达三维BP点目标成像,机载雷达下视成像。
  • bp2.zip
    用后向投影算法进行合成孔径成像,实现多个点目标成像
  • DirectRandomTargetProjection:基于PyTorch的代码,用于使用反向传播(BP),反馈对齐(FA),
    (b)反馈校准(FA)[Lillicrap等,自然科学通讯,2016年]。 (c)直接反馈调整(DFA)[Nokland,NIPS,2016]。 (d)提议的直接随机目标投影(DRTP)算法。 提供的源文件包含基于PyTorch的代码,用于使
  • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
    guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档