• 即将更新编译原理,机器学习,JavaScript,HTML/CSS等文章,谢谢关注~
  • 由于算法限制,搜索时注意简化关键字,谢谢支持~
  • 网站不兼容IE5.0及以下,请使用主流浏览器访问.
  • 人工鱼群算法MATLAB实现

    人工鱼群算法
    在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优。
    中文名 人工鱼群算法 典型行为觅食行为 特 点 具有较快的收敛速度 停止条件 均方差小于允许的误差。

    算法描述
    在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优,以下是鱼的几种典型行为:
    1)觅食行为:一般情况下鱼在水中随机地自由游动,当发现食物时,则会向食物逐渐增多的方向快速游去。
    2)聚群行为:鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群,鱼聚群时所遵守的规则有三条:分隔规则:尽量避免与临近伙伴过于拥挤;对准规则:尽量与临近伙伴的平均方向一致;内聚规则:尽量朝临近伙伴的中心移动。
    3)追尾行为:当鱼群中的一条或几条鱼发现食物时,其临近的伙伴会尾随其快速到达食物点。
    4)随机行为:单独的鱼在水中通常都是随机游动的,这是为了更大范围地寻找食物点或身边的伙伴。

    特点
    1)具有较快的收敛速度,可以用于解决有实时性要求的问题;
    2)对于一些精度要求不高的场合,可以用它快速的得到一个可行解;
    3)不需要问题的严格机理模型,甚至不需要问题的精确描述,这使得它的应用范围得以延伸。

    停止条件
    1) 判断连续多次所得的均方差小于允许的误差;
    2)判断某个区域的人工鱼群的数目达到某个比率;
    3)连续多次所获取的值均不能超过已找到的极值。
    4)迭代次数达到预设次数

    一维函数寻优MATLAB代码:

    ①main.m

    ②dist.m

    ③AF_swarm.m

    ④AF_prey.m

    ⑤AF_init.m

    ⑥AF_foodconsistence

    ⑦AF_follow.m

    ⑧AF_dist

    效果

    参考文献

    Feng Shi. MATLAB 智能算法-30个案例分析[J]. 2015.

    读者评分
    [评分人数: 0 平均分: 0]

    评论

    OmegaXYZ