您现在的位置:首页 >> ★免费资源 >> 源码下载 >> 内容

MATLAB代做-python代做-FPGA代做-人工鱼群算法

时间:2019-5-10 17:32:55 点击:

  核心提示:人工鱼群算法...
clear
tic
varNum=2;                   %变量数
afNum=50;                   %人工鱼个数
iterativeTime=50;           %迭代次数          
lchrom=16;                  %染色体基因串的长度
visual=2.5;                 %感知距离             
step=0.3;                   %移动步长
crowd=0.618;                %拥挤度因子
try_number=50;              %随机选择次数
friend_number=50;
sim_model=4;
Xl=-5.12;
Xh=5.12;
X=af_init(afNum,varNum,Xl,Xh,lchrom);    %初始化
for i=1:afNum
    temp=[X(i,1),X(i,2)];
    tempconsistence(i)=functionconsistence(temp,sim_model);
end
foodconsistence=tempconsistence';%求食物浓度
[a,b]=max(foodconsistence);
Xmax=[X(b,1),X(b,2)];
Ymax=a;                   %初始公告板记录
k=0;
visualweak=0;
while(k<iterativeTime)
    for i=1:afNum    
    Xi=[X(i,1),X(i,2)];       %人工鱼当前状态
    nf1=0;
    Xc=0;
    for j=1:friend_number              %聚群行为开始
       Xj=[X(j,1),X(j,2)];
       if(norm(Xj-Xi)<visual)
       nf1=nf1+1;
       Xc=Xc+Xj;
       end
    end
    if(nf1>1)
     Xc=Xc/nf1;
     if((functionconsistence(Xc,sim_model)/nf1)>(crowd*functionconsistence(Xi,sim_model)))
        Xinext1=Xi+rand*step*(Xc-Xi)/norm(Xc-Xi);
        if (Xinext1(1)<Xl)
            Xinext1(1)=Xl;
        end
        if (Xinext1(1)>Xh)
            Xinext1(1)=Xh;
        end
        if (Xinext1(2)<Xl)
            Xinext1(2)=Xl;
        end
        if (Xinext1(2)>Xh)
            Xinext1(2)=Xh;
        end 
     else
       Xinext1=af_prey(Xi,try_number,sim_model,visualweak,visual,step);
        if (Xinext1(1)<Xl)
            Xinext1(1)=Xl;
        end
        if (Xinext1(1)>Xh)
            Xinext1(1)=Xh;
        end
        if (Xinext1(2)<Xl)
            Xinext1(2)=Xl;
        end
        if (Xinext1(2)>Xh)
            Xinext1(2)=Xh;
        end 
     end   
    end                             %聚群行为结束
   for j=1:friend_number              %追尾行为开始
     Xj=[X(j,1),X(j,2)];
     if((norm(Xj-Xi)<visual) & (functionconsistence(Xj,sim_model)>Ymax))
         Xmax=Xj;
         Ymax=functionconsistence(Xj,sim_model);
     end
   end
   if(Ymax>(functionconsistence(Xi,sim_model)))
        Xinext2=Xi+rand*step*(Xmax-Xi)/norm(Xmax-Xi);
        if (Xinext2(1)<Xl)
            Xinext2(1)=Xl;
        end
        if (Xinext2(1)>Xh)
            Xinext2(1)=Xh;
        end
        if (Xinext2(2)<Xl)
            Xinext2(2)=Xl;
        end
        if (Xinext2(2)>Xh)
            Xinext2(2)=Xh;
        end   
     else
       Xinext2=af_prey(Xi,try_number,sim_model,visualweak,visual,step);
         if (Xinext2(1)<Xl)
            Xinext2(1)=Xl;
        end
        if (Xinext2(1)>Xh)
            Xinext2(1)=Xh;
        end
        if (Xinext2(2)<Xl)
            Xinext2(2)=Xl;
        end
        if (Xinext2(2)>Xh)
            Xinext2(2)=Xh;
        end 
   end                                %追尾行为结束
   if((functionconsistence(Xinext1,sim_model))>(functionconsistence(Xinext2,sim_model)))
     X(i,1)=Xinext1(1);
     X(i,2)=Xinext1(2);
   else
     X(i,1)=Xinext2(1);
     X(i,2)=Xinext2(2);
   end
   end                                 %一次迭代结束  
   k=k+1;                             %进入下一次迭代
   visualweak=k/visual;
end   
Xmax
Ymax
toc

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:人工鱼群算法 来源:人工鱼群算法
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment