A. 什么是鱼群算法
artifical fish-warm algorithm
xp(v1,v2……vn)个体的当前位置,d(p,q)=(1/n)*{[v(p,1)-v(q,1)]^2+……[v
(p,n)-v(q,n)]^2},两个体的距离,(不知道为什么用1/n而不是开平方);visual
一只鱼的感知距离。@拥挤度因子。
第一步:觅食人工鱼当前位置为Xi,在可见域内随机选择一个位置Xj(d(ij)
<=visual),如xj优于xi向xj前进一步,否则随机移动一步。如出现不满足约束则
剪去。X(j+1,k)={if x(i,k)=x(j,k) 不变,else x(j+1,k)=随机(0,1)}。
第二步:聚群:
xi可见域内共有nf1条鱼。形成集合KJi,KJi={Xj|Dij<=visual},if KJi不为空,
then
X(center)=(xj1+xj2+.....xjn)/nf1(xjk属于kji)
X(center,k)=0,X(center,k)<0.5 1,X(center,k)>=0.5
若:FCc/nf1>@FCi(FCc为中心食物浓度,FCi为Xi点食物浓度)
则:向中心移动:X(i+1,k)=不变,当Xik=X(center,k)时;Xik=随机(0,1),当
Xik!=X(center,k)时;
若:FCc/nf1<@FCi
则:进行觅食
第三步:追尾
在visual范围内,某一个体食物浓度最大则称为Xmax,若:FCmax>@FCi,则向它移动
:X(i+1,k)=当X(i,k)=X(max,k)时,X(i,k)不变,当X(i,k)!=X(max,k)时,X(i,k)=
随机(0,1)
第四步:公告板
在运算过程中,用公告板始终记录下最优FCi
B. 人工鱼群算法与0-1背包问题
把 0 1两种数值组成的向量作为状态 也可以转化为实数
C. 蚁群算法的优缺点是什么人工鱼群算法的优缺点是什么
针对不同的研究方向,它所体现出来的优缺点是不一样的,不能一概而论的。
D. 有哪位大神知道人工鱼群算法鱼群的位置怎样初始化有范围限制吗
af.c=100*(rand(1,2));
af.c是坐标。。0到100是范围。。
rand产生两个0到1之间的数。。乘以100就得到了0到100的随机数。。作为鱼的(x,y)。。
E. 用人工鱼群算法求函数最小值
人工鱼群算法:
在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优,以下是鱼的几种典型行为:
(1)觅食行为:一般情况下鱼在水中随机地自由游动,当发现食物时,则会向食物逐渐增多的方向快速游去。
(2)聚群行为:鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群,鱼聚群时所遵守的规则有三条:分隔规则:尽量避免与临近伙伴过于拥挤;对准规则:尽量与临近伙伴的平均方向一致;内聚规则:尽量朝临近伙伴的中心移动。
(3)追尾行为:当鱼群中的一条或几条鱼发现食物时,其临近的伙伴会尾随其快速到达食物点。
(4)随机行为:单独的鱼在水中通常都是随机游动的,这是为了更大范围地寻找食物点或身边的伙伴。
F. 人工鱼群算法有哪些
具体算法如下:
1、起源人工鱼群算法是李晓磊等人于2002年在动物群体智能行为研究的基础上提出的一种新型方盛优化算法,该算法根据水域中鱼生存数目最多的地方就是本水域中富含营养物质最多的地方这一特点来模拟鱼群的觅食行为而实现寻优。
2、算法主要利用鱼的三大基本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中各个体的局部寻优,达到全局最优值在群体中凸显出来的目的。
3该方法采用自下而上的寻优思路,首先设计单个个体的感知、行为机制,然后将一个或一群实体放置在环境中,让他们在环境的交互作用中解决问题。
4、生态学基础在一片水域中,鱼存在的数目最多的地方就是本水域富含营养物质最多的地方,依据这一特点来模仿鱼群的觅食、聚群、追尾等行为,从而实现全局最优,这就是鱼群算法的基本思想。鱼类活动中,觅食行为、群聚行为、追尾行为和随机行为与寻优命题的解决有较为密切的关系,如何利用简单有效的方式来构造和实现这些行为将是算法实现的主要为题。
5、人工鱼的结构模型人工鱼是真实鱼抽象化、虚拟化的一个实体,其中封装了自身数据和一系列行为,可以接受环境的刺激信息,做出相应的活动。其所在的环境由问题的解空间和其他人工鱼的状态,它在下一时刻的行为取决于自身的状态和环境的状态,并且它还通过自身的活动来影响环境,进而影响其他人工鱼的活动。
G. 求人工鱼群算法的matlab源代码,该怎么解决
你可以参看这篇《基于人工鱼群算法的连续函数优化通用MATLAB源代码》,网络文库http://wenku..com/view/bbbdd0280066f5335a812169.html
H. 哪位大神,有没有人工鱼群算法的仿真程序,matlab的,不胜感激!!!!
tic
figure(1);hold on
ezplot('x*sin(10*pi*x)+2',[-1,2]);
%% 参数设置
fishnum=50; %生成50只人工鱼
MAXGEN=50; %最多迭代次数
try_number=100;%最多试探次数
visual=1; %感知距离
delta=0.618; %拥挤度因子
step=0.1; %步长
%% 初始化鱼群
lb_ub=[-1,2,1];
X=AF_init(fishnum,lb_ub);
LBUB=[];
for i=1:size(lb_ub,1)
LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)];
end
gen=1;
BestY=-1*ones(1,MAXGEN); %每步中最优的函数值
BestX=-1*ones(1,MAXGEN); %每步中最优的自变量
besty=-100; %最优函数值
Y=AF_foodconsistence(X);
while gen<=MAXGEN
fprintf(1,'%d\n',gen)
for i=1:fishnum
%% 聚群行为
[Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y);
%% 追尾行为
[Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y);
if Yi1>Yi2
X(:,i)=Xi1;
Y(1,i)=Yi1;
else
X(:,i)=Xi2;
Y(1,i)=Yi2;
end
end
[Ymax,index]=max(Y);
figure(1);
plot(X(1,index),Ymax,'.','color',[gen/MAXGEN,0,0])
if Ymax>besty
besty=Ymax;
bestx=X(:,index);
BestY(gen)=Ymax;
[BestX(:,gen)]=X(:,index);
else
BestY(gen)=BestY(gen-1);
[BestX(:,gen)]=BestX(:,gen-1);
end
gen=gen+1;
end
plot(bestx(1),besty,'ro','MarkerSize',100)
xlabel('x')
ylabel('y')
title('鱼群算法迭代过程中最优坐标移动')
%% 优化过程图
figure
plot(1:MAXGEN,BestY)
xlabel('迭代次数')
ylabel('优化值')
title('鱼群算法迭代过程')
disp(['最优解X:',num2str(bestx,'%1.5f')])
disp(['最优解Y:',num2str(besty,'%1.5f')])
toc
I. 人工鱼群算法优化bp神经网络的浓度函数怎么确定
我有人工鱼群路径寻优的代码,但是没有优化bp神经网络的!