人工鱼群算法python_人工鱼群算法简介及应用

简介

定义

人工鱼群算法为山东大学副教授李晓磊2002年从鱼找寻食物的现象中表现的种种移动寻觅特点中得到启发而阐述的仿生学优化方案。在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优。人工鱼拥有以下几种典型行为: /p>

(1)觅食行为:一般情况下鱼在水中随机地自由游动,当发现食物时,则会向食物逐渐增多的方向快速游去。

(2)聚群行为:鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群,鱼聚群时所遵守的规则有三条:分隔规则:尽量避免与临近伙伴过于拥挤;对准规则:尽量与临近伙伴的平均方向一致;内聚规则:尽量朝临近伙伴的中心移动。

(3)追尾行为:当鱼群中的一条或几条鱼发现食物时,其临近的伙伴会尾随其快速到达食物点。

(4)随机行为:单独的鱼在水中通常都是随机游动的,这是为了更大范围地寻找食物点或身边的伙伴。

步骤

人工鱼群算法实现的步骤:

(1)初始化设置,包括种群规模N、每条人工鱼的初始位置、人工鱼的视野Visual、步长step、拥挤度因子δ、重复次数Trynumber;

(2)计算初始鱼群各个体的适应值,取最优人工鱼状态及其值赋予给公告牌;

(3)对每个个体进行评价,对其要执行的行为进行选择,包括觅食Pray、聚群Swarm、追尾Follow和评价行为bulletin;

(4)执行人工鱼的行为,更新自己,生成新鱼群;

(5)评价所有个体。若某个体优于公告牌,则将公告牌更新为该个体;

(6)当公告牌上最优解达到满意误差界内或者达到迭代次数上限时算法结束,否则转步骤3。

流程图

应用

用AFSA求函数最值,这里使用scikit-opt库。

deffunc(x):

x1, x2=xreturn 1 / x1 ** 2 + x1 ** 2 + 1 / x2 ** 2 + x2 ** 2

from sko.ASFA importASFA

asfa= ASFA(func, n_dim=2, size_pop=50, max_iter=300,

max_try_num=100, step=0.5, visual=0.3,

q=0.98, delta=0.5)

best_x, best_y=asfa.run()print(best_x, best_y)

结果如下:

C:\Users\20928\Desktop\数学建模>python AFSA.py

[0.99993543 1.00064329] 4.064333284516939

参考链接:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工鱼群算法是一种基于模拟鱼群行为的优化算法,其目标是通过模仿鱼群觅食行为来实现全局寻优。在这个算法中,每个虚拟鱼代表了一个解,它们在搜索空间中移动并与其他鱼进行交互,通过觅食行为找到最优解。 关于人工鱼群算法Python实现,可以参考中提供的鱼群算法Python实现示例。这个示例介绍了如何使用Python编程语言来实现鱼群算法,并给出了鱼群算法、差分进化算法、遗传算法、粒子群算法、模拟退火算法、蚁群算法、免疫优化算法算法的集合。 人工鱼群算法的基本思想是模仿自然界中鱼群的觅食行为,通过在一片水域中选择营养物质最丰富的地方来生存。这种算法通过迭代的方式,不断更新和改进每个鱼的位置和行为,以期望找到全局最优解。 人工鱼群算法的优点之一是能够避免陷入局部最优解,而寻求全局最优解。这是因为每个鱼通过与其他鱼的交互来获取信息,并根据信息来调整自己的位置和行为,从而有机会跳出局部最优解并朝着全局最优解前进。 因此,如果你想要使用Python实现人工鱼群算法,可以参考中提供的示例代码,并根据和中对人工鱼群算法的详细介绍来理解算法的原理和实现方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [鱼群算法Python实现.zip](https://download.csdn.net/download/guofei9987/12285537)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [人工鱼群算法python实现](https://blog.csdn.net/abc1234564546/article/details/126236505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [人工鱼群算法及其python实现过程](https://blog.csdn.net/cccddduil/article/details/124903273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值