人工鱼群算法全解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究的重要方向,现已有了很多源于生物现象的 计算技巧, 例如人工神经网络是简化的大脑模型, 遗传算法是模拟基因进化过程的。
人工鱼群算法概述
? 2003年李晓磊、邵之江等提出的人工鱼群 算法(Atificial Fish-Swarm Algorithm, AFSA),它利用自上而下的寻优模式模仿自 然界鱼群觅食行为,主要利用鱼的觅食、 聚群和追尾行为,构造个体底层行为;通 过鱼群中各个体的局部寻优,达到全局最 优值在群体中凸现出来的目的。在基本运 算中引入鱼群的生存机制、竞争机制以及 鱼群的协调机制,提高算法的有效效率。
人工鱼群算法(AFSA )及其 在智能组卷中的应用
自动化工程学院
内容纲要
? 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》 中对群智能进行了详细的论述和分析, 给出了群智能的一种不严格定义:任何一种由昆 虫群体或其它动物社会行为机制而激发设计出的 算法或分布式解决问题的策略均属于群智能。
人工鱼群算法概述
伪代码
float Artificial_ fish::AF_ swarm()
{nf=|N(Xi,Visual)|;//Xi为中心,visual距离领域内的伙伴总数
Xc=Center(N(Xi,Visul));//Xi附近所有nf个伙伴的中心位置
if(Yc/ nf > δYi && Yi<Yc)
Biblioteka Baidu
人工鱼群算法概述
伪代码
? float Artificial_ fish::AF_ follow()
? {Ymax=MAX(f(Xmax)),Xmax∈N(Xi,Visual);
? nf=|N(Xmax,Visual)|;
? if(Ymax/ nf > δYi&& Yi<Ymax)
人工鱼群算法的背景
Swarm可被描述为一些相互作用相邻个体 的集合体,蜂群、蚁群、鸟群、鱼群都是 Swarm的典型例子。
人工鱼群算法的背景
? 1.2 人工生命 具有某些生命基本特征的人工系统。包括两方面 的内容:
1、研究如何利用计算技术研究生物现象; 2、研究如何利用生物技术研究计算问题 。
我们关注的是第二点。 如何利用生物技术研究计算问题是人工生命
人工鱼群算法概述
? 2.1 AFSA基本思想 在一片水域中,鱼存在的数目最多的地方 就是本水域中富含营养物质最多的地方, 依据这一特点来模仿鱼群的觅食,聚群, 追尾等行为,从而实现全局最优,这就是 鱼群算法的基本思想。鱼类的活动中,觅 食行为,聚群行为,追尾行为和随机行为 与寻优命题的解决有较密切的关系,如何 利用简单有效的方式来构造实现这些行为 将是算法实现的主要问题。
人工鱼群算法概述
? 2.2 AFSA基本概念
假设在一个 n维的目标搜索空间中,有 N条组成一 个群体的人工鱼,每天人工鱼个体的状态可表示为 向量 X=(x1,x2,……x n),其中 xi(i=1,……n )为欲寻 优的变量:人工鱼当前所在位置的食物浓度表示为 Y=f(X), 其中 Y为目标函数;人工鱼个体间距离表示 为 d=||Xi-Xj ||; visual表示人工鱼的感知范围, step 为人工鱼移动步长, δ为拥挤度因子; trynumber 表示人工鱼每次觅食最大试探次数。
人工鱼群算法概述
? 2.3 AFSA 行为描述 (1)随机行为 (AF-Random) :指人工鱼在视野内 随机移动的行为。 (2)觅食行为 (AF-prey):指鱼循着食物多的方向 游动的一种行为,人工鱼 Xi在其视野内随机选择 一个状态 Xj,分别计算它们的目标函数值进行比 较,如果发现 Yj比Yi优,则Xi向Xj的方向移动一步; 否则,Xi继续在其视野内选择状态 Xj,判断是否 满足前进条件,反复尝试 trynumber 次后,仍没有 满足前进条件,则随机移动一步使 Xi到达一个新 的状态。表达式如下:
Xinext ?
else
Xi ? Random(step)
Xc ? Xi Xc ? Xi
;
AF_prey();
retum AF_foodeonsistenee(Xinext );
}
人工鱼群算法概述
? (4)追尾行为(AF-follow)指鱼向其可视区 域内的最优方向移动的一种行为。人工鱼Xi 搜索其视野内所有伙伴中的函数最优伙伴Xj, 如果 Yj/ nf > δYi,表明最优伙伴的周围不太 拥挤,则Xi朝此伙伴移动一步,否则执行觅 食行为。
人工鱼群算法概述
伪代码
float Artificial_ fish::AF_ prey()
{
for(i=0;i<trynumber;i++)
{Xj= Random(N(Xi,Visual));
if( Yi<Yj )
X inext ? X i ? Random
Xj? Xi ( step )
Xj? Xi
;
else
;
X inext ? X i ? R andom ( step )
}
retum AF_foodeonsistenee(Xinext );
}
Random(N(Xi,Visual))表示在Xi 的Visual一距
离的邻域内随机取一个邻居.
人工鱼群算法概述
? (3)聚群行为(AF-swarm):鱼在游动 过程中为了保证自身的生存和躲避危害会 自然地聚集成群 。鱼聚群时所遵守的规则 有三条:分隔规则:尽量避免与临近伙伴过于 拥挤;对准规则:尽量与临近伙伴的平均方向 一致;内聚规则:尽量朝临近伙伴的中心移动。 人工鱼Xi搜索其视野内的伙伴数目nf及中心 位置Xc,若Yc/ nf > δYi,表明伙伴中心位置 状态较优且不太拥挤,则Xi朝伙伴的中心位 置移动一步,否则执行觅食行为:
人工鱼群算法概述
? 2003年李晓磊、邵之江等提出的人工鱼群 算法(Atificial Fish-Swarm Algorithm, AFSA),它利用自上而下的寻优模式模仿自 然界鱼群觅食行为,主要利用鱼的觅食、 聚群和追尾行为,构造个体底层行为;通 过鱼群中各个体的局部寻优,达到全局最 优值在群体中凸现出来的目的。在基本运 算中引入鱼群的生存机制、竞争机制以及 鱼群的协调机制,提高算法的有效效率。
人工鱼群算法(AFSA )及其 在智能组卷中的应用
自动化工程学院
内容纲要
? 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》 中对群智能进行了详细的论述和分析, 给出了群智能的一种不严格定义:任何一种由昆 虫群体或其它动物社会行为机制而激发设计出的 算法或分布式解决问题的策略均属于群智能。
人工鱼群算法概述
伪代码
float Artificial_ fish::AF_ swarm()
{nf=|N(Xi,Visual)|;//Xi为中心,visual距离领域内的伙伴总数
Xc=Center(N(Xi,Visul));//Xi附近所有nf个伙伴的中心位置
if(Yc/ nf > δYi && Yi<Yc)
Biblioteka Baidu
人工鱼群算法概述
伪代码
? float Artificial_ fish::AF_ follow()
? {Ymax=MAX(f(Xmax)),Xmax∈N(Xi,Visual);
? nf=|N(Xmax,Visual)|;
? if(Ymax/ nf > δYi&& Yi<Ymax)
人工鱼群算法的背景
Swarm可被描述为一些相互作用相邻个体 的集合体,蜂群、蚁群、鸟群、鱼群都是 Swarm的典型例子。
人工鱼群算法的背景
? 1.2 人工生命 具有某些生命基本特征的人工系统。包括两方面 的内容:
1、研究如何利用计算技术研究生物现象; 2、研究如何利用生物技术研究计算问题 。
我们关注的是第二点。 如何利用生物技术研究计算问题是人工生命
人工鱼群算法概述
? 2.1 AFSA基本思想 在一片水域中,鱼存在的数目最多的地方 就是本水域中富含营养物质最多的地方, 依据这一特点来模仿鱼群的觅食,聚群, 追尾等行为,从而实现全局最优,这就是 鱼群算法的基本思想。鱼类的活动中,觅 食行为,聚群行为,追尾行为和随机行为 与寻优命题的解决有较密切的关系,如何 利用简单有效的方式来构造实现这些行为 将是算法实现的主要问题。
人工鱼群算法概述
? 2.2 AFSA基本概念
假设在一个 n维的目标搜索空间中,有 N条组成一 个群体的人工鱼,每天人工鱼个体的状态可表示为 向量 X=(x1,x2,……x n),其中 xi(i=1,……n )为欲寻 优的变量:人工鱼当前所在位置的食物浓度表示为 Y=f(X), 其中 Y为目标函数;人工鱼个体间距离表示 为 d=||Xi-Xj ||; visual表示人工鱼的感知范围, step 为人工鱼移动步长, δ为拥挤度因子; trynumber 表示人工鱼每次觅食最大试探次数。
人工鱼群算法概述
? 2.3 AFSA 行为描述 (1)随机行为 (AF-Random) :指人工鱼在视野内 随机移动的行为。 (2)觅食行为 (AF-prey):指鱼循着食物多的方向 游动的一种行为,人工鱼 Xi在其视野内随机选择 一个状态 Xj,分别计算它们的目标函数值进行比 较,如果发现 Yj比Yi优,则Xi向Xj的方向移动一步; 否则,Xi继续在其视野内选择状态 Xj,判断是否 满足前进条件,反复尝试 trynumber 次后,仍没有 满足前进条件,则随机移动一步使 Xi到达一个新 的状态。表达式如下:
Xinext ?
else
Xi ? Random(step)
Xc ? Xi Xc ? Xi
;
AF_prey();
retum AF_foodeonsistenee(Xinext );
}
人工鱼群算法概述
? (4)追尾行为(AF-follow)指鱼向其可视区 域内的最优方向移动的一种行为。人工鱼Xi 搜索其视野内所有伙伴中的函数最优伙伴Xj, 如果 Yj/ nf > δYi,表明最优伙伴的周围不太 拥挤,则Xi朝此伙伴移动一步,否则执行觅 食行为。
人工鱼群算法概述
伪代码
float Artificial_ fish::AF_ prey()
{
for(i=0;i<trynumber;i++)
{Xj= Random(N(Xi,Visual));
if( Yi<Yj )
X inext ? X i ? Random
Xj? Xi ( step )
Xj? Xi
;
else
;
X inext ? X i ? R andom ( step )
}
retum AF_foodeonsistenee(Xinext );
}
Random(N(Xi,Visual))表示在Xi 的Visual一距
离的邻域内随机取一个邻居.
人工鱼群算法概述
? (3)聚群行为(AF-swarm):鱼在游动 过程中为了保证自身的生存和躲避危害会 自然地聚集成群 。鱼聚群时所遵守的规则 有三条:分隔规则:尽量避免与临近伙伴过于 拥挤;对准规则:尽量与临近伙伴的平均方向 一致;内聚规则:尽量朝临近伙伴的中心移动。 人工鱼Xi搜索其视野内的伙伴数目nf及中心 位置Xc,若Yc/ nf > δYi,表明伙伴中心位置 状态较优且不太拥挤,则Xi朝伙伴的中心位 置移动一步,否则执行觅食行为: