人工魚群演算法
㈠ 有哪位大神知道人工魚群演算法魚群的位置怎樣初始化有范圍限制嗎
af.c=100*(rand(1,2));
af.c是坐標。。0到100是范圍。。
rand產生兩個0到1之間的數。。乘以100就得到了0到100的隨機數。。作為魚的(x,y)。。
㈡ 人工魚群演算法有哪些
具體演算法如下:
1、起源人工魚群演算法是李曉磊等人於2002年在動物群體智能行為研究的基礎上提出的一種新型方盛優化演算法,該演算法根據水域中魚生存數目最多的地方就是本水域中富含營養物質最多的地方這一特點來模擬魚群的覓食行為而實現尋優。
2、演算法主要利用魚的三大基本行為:覓食、聚群和追尾行為,採用自上而下的尋優模式從構造個體的底層行為開始,通過魚群中各個體的局部尋優,達到全局最優值在群體中凸顯出來的目的。
3該方法採用自下而上的尋優思路,首先設計單個個體的感知、行為機制,然後將一個或一群實體放置在環境中,讓他們在環境的交互作用中解決問題。
4、生態學基礎在一片水域中,魚存在的數目最多的地方就是本水域富含營養物質最多的地方,依據這一特點來模仿魚群的覓食、聚群、追尾等行為,從而實現全局最優,這就是魚群演算法的基本思想。魚類活動中,覓食行為、群聚行為、追尾行為和隨機行為與尋優命題的解決有較為密切的關系,如何利用簡單有效的方式來構造和實現這些行為將是演算法實現的主要為題。
5、人工魚的結構模型人工魚是真實魚抽象化、虛擬化的一個實體,其中封裝了自身數據和一系列行為,可以接受環境的刺激信息,做出相應的活動。其所在的環境由問題的解空間和其他人工魚的狀態,它在下一時刻的行為取決於自身的狀態和環境的狀態,並且它還通過自身的活動來影響環境,進而影響其他人工魚的活動。
㈢ 求人工魚群演算法的matlab源代碼,該怎麼解決
你可以參看這篇《基於人工魚群演算法的連續函數優化通用MATLAB源代碼》,網路文庫http://wenku..com/view/bbbdd0280066f5335a812169.html
㈣ 用人工魚群演算法求函數最小值
人工魚群演算法:
在一片水域中,魚往往能自行或尾隨其他魚找到營養物質多的地方,因而魚生存數目最多的地方一般就是本水域中營養物質最多的地方,人工魚群演算法就是根據這一特點,通過構造人工魚來模仿魚群的覓食、聚群及追尾行為,從而實現尋優,以下是魚的幾種典型行為:
(1)覓食行為:一般情況下魚在水中隨機地自由游動,當發現食物時,則會向食物逐漸增多的方向快速游去。
(2)聚群行為:魚在游動過程中為了保證自身的生存和躲避危害會自然地聚集成群,魚聚群時所遵守的規則有三條:分隔規則:盡量避免與臨近夥伴過於擁擠;對准規則:盡量與臨近夥伴的平均方向一致;內聚規則:盡量朝臨近夥伴的中心移動。
(3)追尾行為:當魚群中的一條或幾條魚發現食物時,其臨近的夥伴會尾隨其快速到達食物點。
(4)隨機行為:單獨的魚在水中通常都是隨機游動的,這是為了更大范圍地尋找食物點或身邊的夥伴。
㈤ 什麼是魚群演算法
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
㈥ 人工魚群演算法與0-1背包問題
把 0 1兩種數值組成的向量作為狀態 也可以轉化為實數
㈦ 哪位大神,有沒有人工魚群演算法的模擬程序,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
㈧ 人工魚群演算法優化bp神經網路的濃度函數怎麼確定
我有人工魚群路徑尋優的代碼,但是沒有優化bp神經網路的!
㈨ 人工魚群演算法matlab代碼中的AF_init是什麼意思啊,運行出錯求大神幫助啊
buming
㈩ 蟻群演算法的優缺點是什麼人工魚群演算法的優缺點是什麼
針對不同的研究方向,它所體現出來的優缺點是不一樣的,不能一概而論的。