人工鱼群算法(AFSA)及其简单应用举例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+ 2.2 AFSA基本概念 + 假设在一个n维的目标搜索空间中,有N条组成一 + 个群体的人工鱼,每个人工鱼个体的状态可表示为 + 向量X=(x1,x2,……xn),其中xi(i=1,……n)为欲寻 + 优的变量:人工鱼当前所在位置的食物浓度表示为 + Y=f(X),其中Y为目标函数;人工鱼个体间距离表示 + 为 d=||Xi-Xj ||; visual表示人工鱼的感知范围,step + 为人工鱼移动步长,δ为拥挤度因子;trynumber + 表示人工鱼每次觅食最大试探次数。
6
8 10
x1
AFSA 迭 代 20次 8
+ 1.2 人工生命
+ 具有某些生命基本特征的人工系统。包括两方面 的内容:
+ 1、研究如何利用计算技术研究生物现象;
+ 2、研究如何利用生物技术研究计算问题。
+
+ 我们关注的是第二点。
+
如何利用生物技术研究计算问题是人工生命
研究的重要方向,现已有了很多源于生物现象的计
算技巧, 例如人工神经网络是简化的大脑模型,遗
+ 2.4 具体算法步骤 + 鉴于以上描述的人工鱼群行为,每条人工鱼探索 + 它当前所处的环境状况和伙伴的状况,从而选择一 + 种行为来实际执行,最终人工鱼集结在几个局部极 + 值周围。一般情况下,在讨论求极大问题时,拥有 + 较大的适应值的人工鱼一般处于值较大的极值域周 + 围,这有助于获取全局极值域,而值较大的极值区 + 域周围一般能集结较多的人工鱼,这有助于判断并 + 获取全局极值。具体的人工鱼群算法步骤如下:
+ 2.1 AFSA基本思想
+ 在一片水域中,鱼存在的数目最多的地方 就是本水域中富含营养物质最多的地方, 依据这一特点来模仿鱼群的觅食,聚群, 追尾等行为,从而实现全局最优,这就是 鱼群算法的基本思想。鱼类的活动中,觅 食行为,聚群行为,追尾行为和随机行为 与寻优命题的解决有较密切的关系,如何 利用简单有效的方式来构造实现这些行为 将是算法实现的主要问题。
+ 2.3 AFSA行为描述 + (1)随机行为(AF-Random):指人工鱼在视
野内随机移动的行为。 + (2)觅食行为(AF-prey):指鱼循着食物多的
方向游动的一种行为,人工鱼Xi在其视野内随 机选择一个状态Xj,分别计算它们的目标函数 值进行比较,如果发现Yj比Yi优,则Xi向Xj的方 向移动一步;否则,Xi继续在其视野内选择状 态Xj,判断是否满足前进条件,反复尝试 trynumber次后,仍没有满足前进条件,则随 机移动一步使Xi到达一个新的状态。表达式如 下:
+ (4)追尾行为(AF-follow)指鱼向其可视区 域内的最优方向移动的一种行为。人工鱼Xi 搜索其视野内所有伙伴中的函数最优伙伴Xj, 如果 Yj/ nf > δYi,表明最优伙伴的周围不太 拥挤,则Xi朝此伙伴移动一步,否则执行觅 食行为。
+ (5)公告板:是记录最优人工鱼个体状态 的地方。每条人工鱼在执行完一次迭代后 将自身当前状态与公告板中记录的状态进 行比较,如果优于公告板中的状态则用自 身状态更新公告板中的状态,否则公告板 的状态不变。当整个算法的迭代结束后, 输出公告板的值,就是我们所求的最优值。
传算法是模拟基因进化过程的。
+ 2003年李晓磊、邵之江等提出的人工鱼群 算法(Atificial Fish-Swarm Algorithm,AFSA), 它利用自上而下的寻优模式模仿自然界鱼 群觅食行为,主要利用鱼的觅食、聚群和 追尾行为,构造个体底层行为;通过鱼群 中各个体的局部寻优,达到全局最优值在 群体中凸现出来的目的。在基本运算中引 入鱼群的生存机制、竞争机制以及鱼群的 协调机制,提高算法的有效效率。
+ (3)聚群行为(AF-swarm):鱼在游动过 程中为了保证自身的生存和躲避危害会自
然地聚集成群 。鱼聚群时所遵守的规则有 三条:分隔规则、对准规则和内聚规则。 人 工鱼Xi搜索其视野内的伙伴数目nf及中心位 置Xc,若Yc/ nf > δYi,表明伙伴中心位置状 态较优且不太拥挤,则Xi朝伙伴的中心位置 移动一步,否则执行觅食行为。
+ Step1:确定种群规模N,在变量可行域内随机 生成Nቤተ መጻሕፍቲ ባይዱ个体,设定人工鱼的可视域Visual,步 长step,拥挤度因子δ,尝试次数trynumber。
+ Step2:计算初始鱼群各个体适应值,取最优 人工鱼状态及其值赋给公告板。
+ Step3:个体通过觅食,聚群,追尾行为更新 自己,生成新鱼群。
且全局极值Y为1。
+ 利用人工鱼群算法求此函数的最大值的 matlab仿真图如图所示:
AFSA 初 始 位 置 10
8
6
4
2
x2
0
-2
-4
-6
-8
-10
-10 -8 -6 -4 -2
0
2
4
6
8 10
x1
AFSA 迭 代 5次 10
8
6
4
2
x2
0
-2
-4
-6
-8
-10 -8 -6 -4 -2
0
2
4
+ Step4:评价所有个体。若某个体优于公告板, 则将公告板更新为该个体。
+ Step5:当公告板上最优解达到满意误差界内, 算法结束,否则转step3。
+ 人工鱼群算法一个最典型的应用是求多变 量非线性函数的极值问题,例如如下的2自 变量目标函数:
+ Y=(sinX(1)/X(1))*(sinX(2)/X(2)) + 已知此函数的全局极值点位于(0,0)点,
+ 1. AFSA背景 + 2. AFSA概述 + 3. AFSA实例
+ 1.1群智能(SI) + Swarm Intelligence (SI)的概念最早由
Beni、Hackwood在分子自动机系统中提出。分 子自动机中的主体在一维或二维网格空间中与 相邻个体相互作用,从而实现自组织。1999年, Bonabeau、Dorigo和Theraulaz 在他们的著作 《Swarm Intelligence: From Natural to Artificial Systems》 中对群智能进行了详 细的论述和分析,给出了群智能的一种不严格 定义:任何一种由昆虫群体或其它动物社会行 为机制而激发设计出的算法或分布式解决问题 的策略均属于群智能。