matlab人工鱼群捕食,Matlab从入门到精通(3)——多目标人工鱼群算法

多目标优化问题是优化问题重要分支之一,同样是是相当大一部分科研问题中的主要问题之一,常用的方法包括穷举法(理论可以找到最优解集合,就是太慢了,一般没人用这种)

解析式推导最优解(大部分情况下推不出来或者解析式很复杂无法应用)

智能优化算法(可以适用于各类优化问题,包括凸和非凸的,良好设计的情况下可以取得较好的效果)

这一章首先介绍智能优化算法中的多目标优化算法–多目标人工鱼群算法。

一、 人工鱼群算法的寻优原理

人工鱼群算法在寻优的过程中,每个都有觅食、聚群,追尾、随机移动四种行为,通过这四种行为可以使人工鱼跳出局部最优解:聚群行为能够促使少出陷于局部最优解的人工鱼趋向全局最优解的人工鱼方向聚集,从而逃出局部最优解;

觅食行为中重复次数较少时,为人工鱼提供了随机移动的机会,从而可能跳出局部最优解;

随机步长使得人工鱼在前往局部最优解的途中,有可能转向全局最优解;

拥挤度因子限制了聚群的规模,使得人工鱼能够更广泛的寻优;

追尾行为加快了人工鱼向更优状态游动。

通过以上几种行为,鱼群会逐渐向最优解靠近,对于各种复杂的情况都能得到极好的优化效果。

f0a888ee9e178fff332e712facfa5040.png

二、多目标 人工鱼群算法实现的步骤

多目标人工鱼群算法相比单目标鱼群算法主要多了一个非支配排序的过程。初始化设置,包括种群规模N、每条人工鱼的初始位置、人工鱼的视野Visual、步长step、拥挤度因子δ、重复次数Trynumber;

计算初始鱼群各个体的多目标函数和适应度函数,取最优人工鱼状态及其值赋予给公告牌;

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

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

计算鱼群中各个鱼群得的多目标函数,执行非支配排序并更新外部集(存储所有的 Pareto解)

若某个体适应度函数优于公告牌,则将公告牌更新为该个体;

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

多目标下的四种行为描述:

64ca726b23d22c24e4d2409802a5bb6f.png

聚群Swarm行为:人工鱼探索当前邻居内的伙伴数量,并计算伙伴的中心位置,若中心位置的目标函数支配当前位置的目标函数,并且不是很拥挤,则当前位置向中心位置移动一步,否则执行觅食行为。此时需遵守两条规则:一是尽量向邻近伙伴的中心移动,二是避免过分拥挤。

追尾Follow行为: 人工鱼探索周围邻居鱼的最优位置,当最优位置的目标函数值支配当前位置的目标函数值,并且不是很拥挤,则当前位置向最优邻居鱼移动一步,否则执行觅食行为。

觅食Pray行为:人工鱼在当前解基础上随机进行选定一个方向单位移动,计算移动后解的多目标函数,并判断是该解支配当前解,则往该方向移动随机距离,否则重新选择方向进行尝试。多次尝试觅食失败后进行随机移动。

随机移动行为:人工鱼在当前解基础上随机进行选定一个方向随机移动。

三、结果演示

接下来我们用各种多目标测试测试函数来测试我们的多目标人工鱼群算法

首先是双目标测试函数,以下优化中为了体现性能优越,优化向量都是30维,大部分多目标优化算法维度低的时候还行,维度一高复杂度几何倍上涨就彻底歇菜,从下面结果来看人工鱼群还可以。ZDT1

ff8e14b488d236c5d1f71fe906437e8e.pngZDT2

d1ba0f03692c652bf9dbe2a798678786.pngZDT3

b8710fa1c043e9cc7c97318a5c0a2080.pngZDT4

df79a70dc37f3a9386a67526152f4ded.pngZDT6

85628ef9fa752190a0736273f3a6e5fb.png

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值