案例18:基于鱼群算法的函数寻优算法
基于差分进化的鱼群算法及其函数优化应用
Vb 1 - 3 9
NO . 5
计
算
机
工
程
2 0 1 3年 5月
Ma y 2 01 3
Co mp u t e r En g i n e e r i n g
・
专栏 ・
文章编号: 1 0 0 0 —3 4 2 8 ( 2 0 1 3 ) 0 5 —0 0 1 8 —0 5 文献标识码l A
ZHANG Da . bi n。 ’ , YANG Ti an - r ou ’ , W EN Me i ’ , SUN Yi n g ’ “ HO U Qi a n “ , Z
( a . S c h o o l o f I n f o r ma t i o n Ma n a g e me n t ; b . F o r e c a s t i n g R e s e a r c h C e n t e r o f C h i n e s e A c a d e my o f S c i e n c e , C e n t r a l C h i n a N o r ma l U n i v e r s i t y , Wu h a n 4 3 0 0 7 9 , C h i n a )
中圈 分类号l T P 3 1 1
基 于差 分 进化 的鱼群 算 法及 其 函数优 化 应 用
张大斌 ,杨添柔 “ , 温 梅 ,孙 莹 ,周 茜
( 华中师范大学 a . 信息管理学院 ;b .中科预测科学研究 中心 ,武汉 4 3 0 0 7 9 ) 摘 要 :人工鱼群算法存在 收敛速 度慢 、精度差等不足 ,借鉴全局的鱼群 聚群 、追尾行为策 略,提 出一种基于差分策略的
一种模拟渔夫捕鱼的寻优算法
第 8期
王 勇 ,等 : 一种模拟渔夫捕鱼的寻优算法
・2 8 89・
是连续函数 。渔夫的目标就是在 D 中搜寻鱼的密度最大点处 和最优区域 (即寻找 f ( X ) 的最大值点和最优区域 ) 。 设初始时 , D 中随机地分布有 k 个渔夫 , 并设 i渔夫的初 始位置和初次撒下鱼网位置为 P0
(- ) j
≥0, l
( - ) j ( +) j
( +) j
≥0, x
- l
( - ) j
∈D j , x
+l
( +) j ( i) 0j
∈
=
( i) Ωm X ( i) ∈
f (X
) >f(P
( i) m +1
) , 则 i渔夫找到水中鱼的 , 并从当前位置 Pm 移动
( i)
D j。并且当 x bj 时 , 取 l
X 0 ≠P0 , t = 1, 2, …, k (即在点 X 0 处鱼的密度比点 P0 处鱼
的密度高 ) , 则 i渔夫从当前位置 P0 移到新位置 P1
( ( i) (
( i)
( i) (
= X0 ,
其中 : l′ j
( )
( i)
′i) ′+ { xm i) , xm i) } , j = 1, 2, …, n} j - lj j , xm j + lj
ing, SFOA ) 。
移到何处去撒网 ; c) 避免在同一地点重复撒网的现象发生 ,也 就是说 ,如果已有渔夫在此处撒网 , 别的渔夫就不会在相同的 地点下网 ; d )如果发现当前自己所处的位置鱼的密度比较大 , 则采用收缩撒网范围的办法 ,希望能“ 一网打尽 ” 。 本文正是基于渔夫这一捕鱼行为习惯而提出了一种模仿 渔夫捕鱼行为特征的搜索方法 。该方法首先在搜索空间 D (即 捕鱼作业区 ) 中随机先取若干个点 (即这若干个渔夫各自在作 业区中随机选取一点并撒下鱼网 ) 。其次 , 以每一个选中点为 中心各构造一个方体 (即各个渔夫又在自己当前位置的前后 左右再各撒下一次网 ) 。第三 , 各个方体依自己所处的环境条 件独立实施移动搜索或收缩搜索 (即各个渔夫依据自己所处 的环境条件独立选择移动搜索或收缩搜索 ) , 最终完成全局最 优解的搜寻过程 (即渔夫们最终找到鱼密度最大的位置 ) 。综 上所述 , 本文提出的搜索算法主要采用移动搜索和收缩搜索两 个基本策略 。 假设 D 中鱼的密度不因渔夫在 D 上打鱼而发生改变 。 所谓 n 维空间中的方体即为空间中的立方体 (二维时为 矩形 , 一维时为闭区间 ) 。所谓方体的移动即方体在空间中从 某一处移到另一处 。所谓方体的收缩即方体的边长收缩变短 。 设 D = D1 × D2 × …× D n 为有限闭区域 (即鱼夫打鱼作业 区 ) , X = ( x1 , x2 , …, xn ) ∈D 为状态 。其中 x j ∈D j = [ a j , bj ]; j =
基于鱼群算法优化LSSVM的有杆泵抽油井油液含水率软测量建模
nf i=1
(7)
1 LSSVM 算法
{(x1, y1),(x 2 , y 2),⋯,(x i , y i)} , 给定的含有 N 个样本的训练集, i= 1,2, ,N。 x i 和 y i 分别为输入和输出变量。LS-SVM 采用如下 函数: f (x) = ωT Φ(x) + b (1) 其中, Φ为高维特征空间, w 为高维空间的向量, bɪR。根据 结构风险最小化原则, 有如下优化问题: γ l min J (ω, b, e) = 1 ωT∙ω + ðe i2 (2) 2 2 i=1 其中,γ 为正则化参数, e 为松弛因子。建立拉格朗日等 式, 上述约束优化问题转化为:
参考文献:
(5)
[1]Joseph B, Brosilow C. Inferentail control of processes(I): steady state analysis and design[J]. AIChE Journal, 1978, 24(3): 485-492. [2]Suykens J A K, Vandewalle J. Least squares support vector machine classifiers[J]. Neural Processing Letters, 1999, 9(3): 293300. [3]李翔宇, 高宪文, 李琨, 等.鱼群算法优化组合核函数 GPR 的油井动液面预测 [J]. 东北大学学报: 自然科学版, 2017, 38(1): 11-15.
其中, rand1 和 rand2 为[0,1]内的随机数, S 为移动步长。 (2) 聚群行为 假 设 人 工 鱼 当 前 状 态 为 x i, 同 伴 数 目 nf, 其中间位置定 义为: 如果有 Y c /n f > δY i , 则向中间位置前进一步, 步长为 S; 否则 返回觅食行为。 (3) 追尾行为 假设人工鱼当前状态为 xi, 考查邻域内人工鱼同伴的 Yj, 设 xmax 是最大的人工鱼同伴以及最大的 Ymax, 如果有 Y max /n f > δY i , 则向中间位置前进一步, 步长为 S; 否则返回觅食行为。 (4) 公告板 记录最优人工鱼的个体状态, 如果当前状态为最佳, 则更 新公告板种状态; 否则, 状态不变。寻优结束后, 公告板状态即 为最优解。
人工鱼群算法及其应用模板
广西民族大学硕士学位论文人工鱼群算法及其应用姓名:聂黎明申请学位级别:硕士专业:计算机应用技术指导教师:周永权200904012人工鱼群算法及改进方法2.1引言人工鱼群算法(ArtificialFishSwarmAlgorithm,AFSA)‘22。
251是李晓磊等人于2002年在对动物群体智能行为研究的基础上提出的一种新型仿生优化算法,该算法根据“水域中鱼生存数目最多的地方一般就是本水域中富含营养物质最多的地方"这一特点来模仿鱼群的觅食行为而实现寻优。
人工鱼群算法主要利用鱼的三大基本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中各个体的局部寻优,达到全局最优值在群体中突现出来的目的。
2.2人工鱼群算法2.2.1算法起源经过漫长的自然界的优胜劣汰,动物在进化过程中,形成了形形色色的觅食和生存方式,这些方式为人类解决问题带来了不少鼓舞和启发。
动物个体的智能一般不具备人类所具有的综合判断能力和复杂逻辑推理能力,是通过个体或群体的简单行为而突现出来的。
动物行为具有以下几个特点嘶1:(1)盲目性:不像传统的基于知识的智能系统,有着明确的目标,人工鱼群算法中单个个体的行为是独立的,与总目标之间往往没有直接的关系;(2)自治性:动物有其特有的某些行为,在不同的时刻和不同的环境中能够自主的选取某种行为,而无需外界的控制或指导;(3)突现性:总目标的完成是在个体行为的运动过程中突现出来的;(4)并行性:各个体的行为是实时的、并行进行的;(5)适应性:动物通过感觉器官来感知外界环境,并应激性的做出各种反应,从而影响环境,表现出与环境交互的能力。
2.2.2算法原理人工鱼群算法就是一种基于动物行为的自治体寻优模式,它是基于鱼类的活动特点构建起来的新型智能仿生算法。
通常人们可以观察到如下的鱼类行为:a)觅食行为:这是鱼趋向食物的一种活动,一般认为它是通过视觉或味觉来感知水中的食物量或食物浓度来选择行动方向的。
鱼群算法的介绍
谢谢! Thanks!
鱼群算法的局限性: 算法一般在优化初期具有较快的收敛性,后期却往往收敛较慢。不同的参数设置对算 法的收敛速度和结果精度有很大的影响。基本人工鱼群算法仅仅获取的是系统的满意 解所在邻域,不能得到精确最优解。 为解决人工鱼群算法精确度低的缺点,对算法进行了改进。改进的目的是降低参数设 置对算法的收敛速度和结果精度的影响。 先提一下鱼群算法里面的各种参数: 1、visual 表示人工鱼的感知距离(即视野范围)。 2、step 表示人工鱼移动的最大步长。 3、 δ 表示拥挤因子 4、try—number是人工鱼在觅食行为中的移动次数。 5、friend—number表示人工鱼数量。 这里着重讨论降低拥挤因子δ 的影响,也就是提高δ 的调节范围。拥挤因子 δ 主要为了 限制鱼群集中在某个区域的数量,防止鱼群过于集中在次级大值而搜索不到全局极大 值。 拥挤因子对算法的影响是很明显的,只有一个定义适当的拥挤因子才能达到预期的最 优解。
公告板用来记录状态最优的人工鱼。
在构建人工鱼模型 之前,先介绍一下相关的一些定义: 向量X表示人工鱼个体的状态,Xv表示感知的下一个状态。L为食物量,visual 表示人工鱼的感知距 离;Y=f(x)表示实物浓度;step 表示人工鱼移动的最大步长。 表示拥挤度因子 。其中L为目标函 数值;Dv1v2= || Xv1-Xv2 || 表示人工鱼个体之间的距离 。 2.1 觅食行为 觅食行为:设人工鱼的当前状态为Xv1,在其感知范围内随机选择一个状态Xv2,如果Yv2>Yv1 ,则向 Xv2方向前进一步;反之,再重新随机选择状态Xv2,判断是否满足前进条件;反复几次后,如果仍 不满足前进条件,则随机移动一步。(这是传统的觅食行为,只是在感知范围内随机选择一次,即 审视一次周围的环境。我是针对这一点进行改进的。) 2.2 聚群行为 聚群行为:人工鱼的当前状态为Xv1,探索当前邻域内(Dv1v2<visual)的伙伴数目n f及中心位置 Yc, 如果 且 ,表明伙伴中心有较多的食物并且不太拥挤,则朝伙伴的中心位置方向前进一步;否 则执行觅食行为。如果 也执行觅食行为。 2.3 追尾行为 追尾行为:人工鱼的当前状态为Xv1,探索当前邻域内 (即Dv1v2<visual )中适应度值最大的伙伴Xv2, 如果 且Yv1<Yv2,表明伙伴Xv2的状态具有较高的食物浓度并且其周围不太拥挤,朝伙伴Xv2的方向 前进一步;否则执行觅食行为。如果 也执行觅食行为。 2.4 随机行为 随机行为:随机行为的实现比较简单,就是在视野中随机选择一个状态,然后向该方向移动,其实 它是觅食行为的一个缺省行为。根据所要解决的问题性质, 对人工鱼当前所处的环境进行评价,从 而选一种行为。较常用的评估方法是:选择各行为中使得向最优方向前进最大的方向,也就是各行 为中使得人工鱼的下一个状态最优的行为,如果没有能使下一个状态优于当前状态的行为,则采用 随机行为。
利用人工鱼群算法求解一类函数的极值
收稿日期:2009-10-16基金项目:四川省教育厅青年项目(07ZB043)作者简介:陈宣(1968-),女,四川泸县人,内江师范学院数学与信息科学学院馆员,主要从事人工鱼群算法的研究.韶关学院学报·自然科学Journal of Shaoguan University ·Natural Science 2009年12月第30卷第12期Dec.2009Vol.30No.12利用人工鱼群算法求解一类函数的极值陈宣,杨礼,杨智杰,陈姝,刘高峰(内江师范学院数学与信息科学学院,四川内江641112)摘要:人工鱼群算法是一种基于动物行为的群体智能寻优算法,具有并行性、全局性、简单性、快速性、跟踪性等优点,可以处理一些非凸、非线性等方面的问题.针对一类不可用经典方法求解极值的函数,提出了一种基于人工鱼群算法求解这一类函数极值的方法,并通过仿真实验的研究,验证了该算法求解函数极值是有效可行的.关键词:人工鱼群算法;函数极值;集群智能中图分类号:TP18文献标识码:A 文章编号:1007-5348(2009)12-0007-04人工鱼群算法是李晓磊等[1,2]人于2002年提出的一类基于动物行为的群体智能优化算法.该算法是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优,是集群体智能思想的一个具体应用.人工鱼群算法具有以下特点:具有克服局部极值、取得全局极值的较优秀的能力[3];算法中仅使用目标问题的函数值,对搜索空间有一定自适应能力[4];具有对初值与参数选择不敏感、鲁棒性强、简单易实现、收敛速度快和使用灵活等特点[5].对于带有绝对值且不可导二元函数,采用经典方法是不能求解极值的.针对这一类不能用经典方法求解极值的函数,结合人工鱼群算法上述优点,将其引入到求解函数极值问题中,提出了基于人工鱼群算法求解的极值方法.1人工鱼群算法描述1.1相关定义人工鱼个体的状态可表示为x =(x 1,x 2,…,x n ).其中x i (i =1,2,…,n )为欲寻优的变量;人工鱼当前所在位置的食物浓度可表示为Y=f (x ),其中Y 为目标函数值;人工鱼个体之间的距离表示为d ij =‖x i -x j ‖,visual 表示人工鱼的感知距离;step 表示人工鱼移动的步长;δ表示拥挤度因子[6].1.2行为描述(1)觅食行为.设人工鱼当前状态为x i ,在其视野范围内随机选择一个状态x j ,如果y i ≤y j ,则向该方向前进一步;反之,再重新随机选择状态x j ,判断是否满足前进条件;试探number 次后,如果仍不满足前进条件,则执行其他行为(如随机移动行为).(2)聚群行为.人工鱼当前状态为x i ,设其可见区域内的同伴的个数n f ,形成集合K :K ={x j |x j -x i 燮visual}.如果K 不是空集的话,表明在视野范围内有同伴存在,即n f 叟1,那么按探索中心位子X c :X c =n fj Σx j /n f (其中:X c 表示中心位子的状态).如果n f /n <δ,(0<δ<1),则表明伙伴中心较多食物并且不太拥挤,如果此时y i <y c ,则人工鱼向中心位置x c 前进一步;否则执行其他行为(如觅食行为)[7].(3)追尾行为.追尾行状态为:探索其领域内状态最优的邻居x max ,如果y i <y max ,并且x max 的领域内伙伴的数目n f /n <δ,(0<δ<1),表明x max 的附近有较多的食物并且不太拥挤,则向x max 的位置前进一步;否则执行觅食行为[8].韶关学院学报·自然科学2009年(4)公告板.算法中设立一个公告板,记录最优人工鱼个体状态及该人工鱼位置的食物浓度值.每条人工鱼在行动一次后就将自身当前状态与公告板进行比较,若优于公告板则利用自身状态取代公告板状态.2人工鱼群算法求解函数极值的步骤Step1在定义域范围内随机地产生N条人工鱼群,并且对visual、step、number赋予初值;Step2分别计算各人工鱼状态的食物浓度,选择最大食物浓度的人工鱼个体状态记录到公告板;Step3各个人工鱼个体模拟执行觅食、聚群、追尾行为,然后选择行动后食物浓度值较大的动作来执行,缺省行为方式为觅食行为;Step4判断是否满足终止条件,若满足,则输出公告板记录,算法终止;若不满足,则执行Step2.3算例求非线性函数:f(x,y)=|arctan(arctan(tan(x)+tan(y)))|+|arctan(arctan(tan(x)-tan(y)))|,在定义域E={(x,y)|-4燮x燮4,-4燮y燮4}上的极值如图1所示.在定义域E内有9个极小值点.采用人工鱼群算法求解函数f(x,y)在定义域E的极值,首先在E内随机产生100条人工鱼,如图2所示.取感知范围visual=1,每次移动步长step=visual/2,最大试探次数number=30.让人工鱼执行人工鱼群算法求解函数极值的步骤.人工鱼群分别迭代50,100,150,200,250次的鱼群分布分别见图3~7的状态图.图1函数的三维图图2初始状态的鱼群分布图3迭代50次的鱼群分布第12期图4迭代100次的鱼群分布图5迭代150次的鱼群分布图6迭代200次的鱼群分布图7迭代250次的鱼群分布计算出定义域内的9个极小值,见表1.表1人工鱼群算法计算出的9个极小值由图1可知,函数在E 内有9个极值点,这与人工鱼群算法计算结果是一致的.本例中只需要迭代250次就得到了极值点,迭代次数较少,并且所求的极小值点比较小,所以它的计算精度高.将参数visual 取值变小,迭代次数增加,计算的极值将更加接近于真实值.综上,人工鱼群算法可以很好地用于处理连续函数的问题.4结束语人工鱼群算法算法作为一种新型基于集群智能的随机搜索优化算法.它通过并行运算寻优,可以用解决一些非凸、非线性及离散的优化问题.针对求解函数极值本质上是一个优化问题,将人工鱼群优化算法引入到求解函数极值中.算例仿真试验结果表明人工鱼群算法鲁棒性强、搜索效率较高、全局收敛性好,用于求解函数极值是有效可行的.陈宣等:利用人工鱼群算法求解一类函数的极值·9··10·韶关学院学报·自然科学2009年参考文献:[1]李晓磊,邵之江.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,22(2):32-38.[2]李晓磊,钱积新.基于分解协调的人工鱼群优化算法研究[J].电路与系统学报,2003,8(1):1-6.[3]王联国,洪毅,赵付青,等.基于邻域正交交叉算子的人工鱼群算法[J].农业机械学报,2008,39(8):140-141.[4]王联国,洪毅,赵付青.一种改进的人工鱼群算法[J].计算机工程,2008,34(19):192-194.[5]马建伟,张国立,谢宏,等.利用人工鱼群算法优化前向神经网络[J].计算机应用,2004,24(10):22-23.[6]曲良东,何登旭.基于单纯形法的双群人工鱼群算法[J].计算机应用,2008,28(8):2103-2104.[7]Jeffrey Dean.Animates and what they can tell us[J].Trends in Cognitive Sciences,1998:260-67.[8]王锡淮,郑晓鸣,肖健梅.求解约束优化问题的人工鱼群算法[J].计算机工程与应用,2007,43(3):41-45.An artificial fish swarm algorithm solving extrema of a kind of functions CHEN Xuan,YANG Li,YANG Zhi-jie,CHEN Shu,LIU Gao-feng (College of Mathematic and Information,Neijiang Normal College,Neijiang641112,Sichuan,China)Abstract:The artificial fish swarm algorithm is a swarm intelligence optimization algorithm based on the animal behavior.The algorithm has some advantages in terms of parallelism.global ehavior,simplicity,speediness,trace-ability and so on.And it is able to solve some nonconvex and nonlinear problems.In order to solve extrema of a kind of functions that can not be solved with the classical method.an artificial fish swarm algorithm is made to solve this problem.And the emulated numerical experiment confirmed it is feasible and efficient.Key words:artificial fish swarm algorithm;extrema of function;swarm intelligence(E D.:X,J)。
群体智能优化算法-鱼群优化算法
AF_Follow的伪代码如下:
functionAF_Follow()
{
fmax=-∞;
for (j=0;j<friend_num;j++)
{
if (di,j<Visual andf(Xj)>fmax)
{
fmax=f(Xj);Xmax=Xj;
}
}
nf=0;
for (j=0;j<friend_num;j++)
对Xi(t)执行觅食行为,计算Xi,prey。
ifmin(f(Xi,swarm),f(Xi,follow),f(Xi,prey))<f(Xi)then
Xi(t+1)=argmin(f(Xi,swarm),f(Xi,follow),f(Xi,prey));
end if
endfor
End
参考文献
1.Yazdani, D., A. Nadjaran Toosi, and M.R. Meybodi.Fuzzy Adaptive Artificial Fish Swarm Algorithm. inAI 2010: Advances in Artificial Intelligence. 2011. Berlin, Heidelberg: Springer Berlin Heidelberg.
(4)
AF_Swarm的伪代码如下:
function AF_Swarm()
{
nf=0;Xc=0;
for (j=0;j<fried_num;j++)
{
if (di,j<Visual)
{
nf++;Xc+=Xj;
数学建模案例——最佳捕鱼方案
最佳捕鱼方案摘要:本文解决的是一个最佳捕鱼方案设计的单目标线性规划问题,目的是制定每天的捕鱼策略,使得总收益最大。
根据题设条件,结合实际情况,我们设计了成本与损失率随天数的增加成反比变化的函数曲线(见图三所示),并导出总收益的表达式: 212121111i i i i i i i i W w p s q m =====⨯-⨯∑∑∑。
由于价格是关于供应量的分段函数(见图一所示),我们引入“0-1”变量法编写程序(程序见附录一),并用数学软件LINGO 求解,得到最大收益(W)为441291.4元,分21天捕捞完毕。
其中第1~16天,日捕捞量在1030~1070公斤之间,第17~21天的日捕捞量为1610~1670公斤之间(具体数值见正文)。
由结果分析,我们对模型提出了优化方向,例如人工放水来降低成本。
关键词:“0-1”整数规划,单目标线性规划,离散型分布。
一. 问题重述一个水库,由个人承包,为了提高经济效益,保证优质鱼类有良好的生活环境,必须对水库里的杂鱼做一次彻底清理,因此放水清库。
水库现有水位平均为15米,自然放水每天水位降低0.5米,经与当地协商水库水位最低降至5米,这样预计需要二十天时间,水位可达到目标。
据估计水库内尚有草鱼二万五千余公斤,鲜活草鱼在当地市场上,若日供应量在500公斤以下,其价格为30元/公斤;日供应量在500—1000公斤,其价格降至25元/公斤,日供应量超过1000公斤时,价格降至20元/公斤以下,日供应量到1500公斤处于饱和。
捕捞草鱼的成本水位于15米时,每公斤6元;当水位降至5米时,为3元/公斤。
同时随着水位的下降草鱼死亡和捕捞造成损失增加,至最低水位5米时损失率为10%。
承包人提出了这样一个问题:如何捕捞鲜活草鱼投放市场,效益最佳?二. 模型假设1.池塘中草鱼的生长处于稳定状态,不考虑种群繁殖以及其体重增减,即在捕捞过程中草鱼总量保持在25,000公斤不变。
2.第一天捕捞时水位为15m ,每天都在当天的初始水位捕捞草鱼,水库水位每天按自然放水0.5m 逐渐降低,20天后刚好达到最低要求水位5m 。
MATLAB智能算法30个案例分析
MATLAB 智能算法30个案例分析第1 章1、案例背景遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。
遗传算法的做法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息,最终生成符合优化目标的染色体。
在遗传算法中,染色体对应的是数据或数组,通常是由一维的串结构数据来表示,串上各个位置对应基因的取值。
基因组成的串就是染色体,或者叫基因型个体( Individuals) 。
一定数量的个体组成了群体(Population)。
群体中个体的数目称为群体大小(Population Size),也叫群体规模。
而各个个体对环境的适应程度叫做适应度( Fitness) 。
2、案例目录:1.1 理论基础1.1.1 遗传算法概述1. 编码2. 初始群体的生成3. 适应度评估4. 选择5. 交叉6. 变异1.1.2 设菲尔德遗传算法工具箱1. 工具箱简介2. 工具箱添加1.2 案例背景1.2.1 问题描述1. 简单一元函数优化2. 多元函数优化1.2.2 解决思路及步骤1.3 MATLAB程序实现1.3.1 工具箱结构1.3.2 遗传算法中常用函数1. 创建种群函数—crtbp2. 适应度计算函数—ranking3. 选择函数—select4. 交叉算子函数—recombin5. 变异算子函数—mut6. 选择函数—reins7. 实用函数—bs2rv8. 实用函数—rep1.3.3 遗传算法工具箱应用举例1. 简单一元函数优化2. 多元函数优化1.4 延伸阅读1.5 参考文献3、主程序:1. 简单一元函数优化:clcclear allclose all%% 画出函数图figure(1);hold on;lb=1;ub=2; %函数自变量范围【1,2】ezplot('sin(10*pi*X)/X',[lb,ub]); %画出函数曲线xlabel('自变量/X')ylabel('函数值/Y')%% 定义遗传算法参数NIND=40; %个体数目MAXGEN=20; %最大遗传代数PRECI=20; %变量的二进制位数GGAP=0.95; %代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(2,MAXGEN); %寻优结果的初始值FieldD=[PRECI;lb;ub;1;0;1;1]; %区域描述器Chrom=crtbp(NIND,PRECI); %初始种群%% 优化gen=0; %代计数器X=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换ObjV=sin(10*pi*X)./X; %计算目标函数值while gen<MAXGENFitnV=ranking(ObjV); %分配适应度值SelCh=select('sus',Chrom,FitnV,GGAP); %选择SelCh=recombin('xovsp',SelCh,px); %重组SelCh=mut(SelCh,pm); %变异X=bs2rv(SelCh,FieldD); %子代个体的十进制转换ObjVSel=sin(10*pi*X)./X; %计算子代的目标函数值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群X=bs2rv(Chrom,FieldD);gen=gen+1; %代计数器增加%获取每代的最优解及其序号,Y为最优解,I为个体的序号[Y,I]=min(ObjV);trace(1,gen)=X(I); %记下每代的最优值trace(2,gen)=Y; %记下每代的最优值endplot(trace(1,:),trace(2,:),'bo'); %画出每代的最优点grid on;plot(X,ObjV,'b*'); %画出最后一代的种群hold off%% 画进化图figure(2);plot(1:MAXGEN,trace(2,:));grid onxlabel('遗传代数')ylabel('解的变化')title('进化过程')bestY=trace(2,end);bestX=trace(1,end);fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\n'])2. 多元函数优化clcclear allclose all%% 画出函数图figure(1);lbx=-2;ubx=2; %函数自变量x范围【-2,2】lby=-2;uby=2; %函数自变量y范围【-2,2】ezmesh('y*sin(2*pi*x)+x*cos(2*pi*y)',[lbx,ubx,lby,uby],50); %画出函数曲线hold on;%% 定义遗传算法参数NIND=40; %个体数目MAXGEN=50; %最大遗传代数PRECI=20; %变量的二进制位数GGAP=0.95; %代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(3,MAXGEN); %寻优结果的初始值FieldD=[PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; %区域描述器Chrom=crtbp(NIND,PRECI*2); %初始种群%% 优化gen=0; %代计数器XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换X=XY(:,1);Y=XY(:,2);ObjV=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算目标函数值while gen<MAXGENFitnV=ranking(-ObjV); %分配适应度值SelCh=select('sus',Chrom,FitnV,GGAP); %选择SelCh=recombin('xovsp',SelCh,px); %重组SelCh=mut(SelCh,pm); %变异XY=bs2rv(SelCh,FieldD); %子代个体的十进制转换X=XY(:,1);Y=XY(:,2);ObjVSel=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算子代的目标函数值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群XY=bs2rv(Chrom,FieldD);gen=gen+1; %代计数器增加%获取每代的最优解及其序号,Y为最优解,I为个体的序号[Y,I]=max(ObjV);trace(1:2,gen)=XY(I,:); %记下每代的最优值trace(3,gen)=Y; %记下每代的最优值endplot3(trace(1,:),trace(2,:),trace(3,:),'bo'); %画出每代的最优点grid on;plot3(XY(:,1),XY(:,2),ObjV,'bo'); %画出最后一代的种群hold off%% 画进化图figure(2);plot(1:MAXGEN,trace(3,:));grid onxlabel('遗传代数')ylabel('解的变化')title('进化过程')bestZ=trace(3,end);bestX=trace(1,end);bestY=trace(2,end);fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\nZ=',num2str(bestZ), '\n']) 第2 章基于遗传算法和非线性规划的函数寻优算法1.1案例背景1.1.1 非线性规划方法非线性规划是20世纪50年代才开始形成的一门新兴学科。
第30章 基于鱼群算法的函数优化分析
第三十章 相应的待优化函数即适应度函数如下: function [Y]=AF_foodconsistence(X) fishnum=size(X,2); for i=1:fishnum x = X(1,i); y = X(2,i); Y(1,i) = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2); end
号并传递至其他鱼,于是,群体中的所有鱼便能捕食猎物;
(4)使水中的猎物失去方向性即迷失方向。 与单独个体鱼相比,鱼群对不利环境变化有较强的抵抗能力。集群行为 在鱼类洄游过程中也有一定适应意义,集群性鱼类能更快地找到洄游路线 ,并且能够较易发现某些定向标记。
第三十章 3.繁殖行为
MATLAB优化算法案例分析与应用
状态变得不可行,这时就需要加入相应的约束来对其进行规整化,使它们由无效 状态或不可行状态转变成可行的。
第三十章
MATLAB优化算法案例分析与应用
30.4.6 公告板
公告板用来记录最优人工鱼个体的状态。各人工鱼个体在寻优过程中,每次行动
完毕就检验自身状态与公告板的状态,如果自身状态优于公告板状态,就将公告板 的状态改写为自身状态,这样就使公告板记录下历史最优的状态。
第三十章
MATLAB优化算法案例分析与应用
5.洄游行为 鱼在游泳时不断地摆动尾部以获得前进的动力,虽然鱼群在水中运动 所消耗的能量极少,但为了克服游泳的阻力,洄游的鱼群也和迁移雁群 一样排成一定的队形,这种队形使参加洄游的每一条鱼前进过程中的能 量消耗降低到最小。 6.追逐行为 鱼类为了获得更多的食物,不断觅食,食物随水波漂浮或流动,当鱼 群遇到猎物时,鱼群不断地追逐这些食物目标。另外当鱼出现求偶意图 时,不断追逐求偶对象。为了捕获更多的食物或防止被捕,鱼不断追逐 鱼群中最优位置的个体。当某条鱼发现该处食物丰富时,其他鱼会快速 尾随而至。 7.随机游动和离开行为 当鱼休闲时,鱼也选择单独出没,轻松的自由游动。 除了以上鱼类行为外,还有发声、放电、发光、变色等行为。
改进人工鱼群算法及在函数优化问题中的应用
1 问题 描述
仅考虑如下形式的非线性复杂函数优化问题 :
mn () [ 】=,3. i X , a , 1… . f ∈ i i 2 ,
第1卷 第3 0 期
2 1 年 9月 01
石 家庄铁路 职业技 术 学院学报
J R ALOFS II Z OU N H JA HUA G I TT T FR L YT C OL N NS I U EO AIWA E HN OGY
VOL.0No 3 1 .
S p2 1 e .01
改进人工鱼群算法及在 函数优化问题 中的应用
工鱼通过觅食 、聚群 、追尾及随机等行为来更新 自己。 21 .2人工鱼的行为描述 .
() 1 觅食行为 ( Fpe ) 人工鱼当前位置为 墨, A - y: r 在其视野范 围内随机选择一个位置 x,如果 J 在求极小问题中 < ( 值越小 , y 表示食物浓度越高 ) 则 向该方向前进一步, , 否则重新随机选择位 置 x, i 判断是否满足前进条件 , 反复 Tyn m e 次后仍不满足前进条件 , r_u br 则随机移动一步。数学表
达式如下 :
r … , x+。dm 1 , 。 ‘ 。 x p 1
I
X Ⅲ = X, r n o se , ≥ + a d m( tp)y,
’ y y J
L( ) 群 2 聚 行为 (Fwr : A - a 设人工 前 s m) 鱼当 位置为 X, 索当 域内, iV u 的 伴 i探 前邻 即d ia 伙 a sl <
MATLAB-智能算法30个案例分析-终极版(带目录)
MATLAB 智能算法30个案例分析(终极版)1 基于遗传算法的TSP算法(王辉)2 基于遗传算法和非线性规划的函数寻优算法(史峰)3 基于遗传算法的BP神经网络优化算法(王辉)4 设菲尔德大学的MATLAB遗传算法工具箱(王辉)5 基于遗传算法的LQR控制优化算法(胡斐)6 遗传算法工具箱详解及应用(胡斐)7 多种群遗传算法的函数优化算法(王辉)8 基于量子遗传算法的函数寻优算法(王辉)9 多目标Pareto最优解搜索算法(胡斐)10 基于多目标Pareto的二维背包搜索算法(史峰)11 基于免疫算法的柔性车间调度算法(史峰)12 基于免疫算法的运输中心规划算法(史峰)13 基于粒子群算法的函数寻优算法(史峰)14 基于粒子群算法的PID控制优化算法(史峰)15 基于混合粒子群算法的TSP寻优算法(史峰)16 基于动态粒子群算法的动态环境寻优算法(史峰)17 粒子群算法工具箱(史峰)18 基于鱼群算法的函数寻优算法(王辉)19 基于模拟退火算法的TSP算法(王辉)20 基于遗传模拟退火算法的聚类算法(王辉)21 基于模拟退火算法的HEV能量管理策略参数优化(胡斐)22 蚁群算法的优化计算——旅行商问题(TSP)优化(郁磊)23 基于蚁群算法的二维路径规划算法(史峰)24 基于蚁群算法的三维路径规划算法(史峰)25 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测(郁磊)26 有导师学习神经网络的分类——鸢尾花种类识别(郁磊)27 无导师学习神经网络的分类——矿井突水水源判别(郁磊)28 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断(郁磊)29 支持向量机的回归拟合——混凝土抗压强度预测(郁磊)30 极限学习机的回归拟合及分类——对比实验研究(郁磊)智能算法是我们在学习中经常遇到的算法,主要包括遗传算法,免疫算法,粒子群算法,神经网络等,智能算法对于很多人来说,既爱又恨,爱是因为熟练的掌握几种智能算法,能够很方便的解决我们的论坛问题,恨是因为智能算法感觉比较“玄乎”,很难理解,更难用它来解决问题。
人工鱼群算法
算法实现
▪ 鱼群中的每条人工鱼均为一组实数,是在给定范围内产生随机数组。例
如,鱼群大小为N,有两个待优化的参数 x,y,范围分别为[x1,x2]和
[y1,y2],则要产生一个2行N列的初始鱼群,每列表示一条人工鱼的两个参
数
Xi|n =0
Xj = Xi + rand()*Visual
n=n+1
NO
Yj/ nf > δYi,表明最优伙伴
的周围不太拥挤,则Xi朝此
伙伴移动一步:
否则,执行觅食行为
▪ 目标函数(即食物浓度函数)是用来求人工鱼当前位置的食物浓度,其实就是求给定变
量的函数值,例如计算以下函数的最大值:
▪
f(x)=xsin(10π)+2.0 ,-1≤x ≤1
▪ 此时的食物浓度函数如下:
Xi
确定di,j < Visual 的伙伴数目nf 及其中Yj 最大
的伙食Xj
Y
n
j
> δYi
NO
f
YES
Xi|next =Xi + rand * Step *
X
|| X
j
j
X
X
i
i
||
Xi 进行觅食行为
人工鱼Xi搜索当前邻域
内( dij <Visual )的伙伴中
的函数Yj最优伙伴Xj,如果
0.618
觅食最大试探次数
100
移动步长
0.3
算法分析
在求极大值问题中: δ=1/(αnmax), α∈(0,1]
其中α为极值接近水平,nmax为期望在该邻域内聚集的最大人工鱼数目。
在求极小值问题中: δ=αnmax , α∈(0,1]
人工鱼群算法
3.人工鱼的个体数目:人工鱼的数目越多,跳出局 部极值的能力越强,同时,收敛的速度也越快, 当然,付出的代价就是算法每次迭代的计算量也 越大了,因此,在使用过程中,满足稳定收敛的 前提下,应尽可能的减少个体的数目。
4.尝试次数:尝试次数越多,人工鱼的觅食行为能 力越强,收敛的效率也越高。在局部极值突出的 情况下,应该适当的减少以增加人工鱼随机游动 的概率,克服局部极值。
否则执行觅食行为。
3追尾行为Follow():指鱼向其可视区域内的 最优方向移动的一种行为。 人工鱼Xi搜索当前邻域内( dij <Vaisual ) 的伙伴中的函数Yj最优伙伴Xj,如果 Yj/ nf > δYi,表明最优伙伴的周围不太拥挤,则Xi 朝此伙伴移动一步:
否则执行觅食行为。
4 随机行为Move():指人工鱼在视野内随 机移动,它是觅食行为的一个缺省行为。 当发现食物时,会向食物逐渐增多的方向 快速的移动。
图2 人工鱼视觉的概念
其中Rand()函数为产生0到1之间的随机 数;Step为步长
➢人工鱼封装成变量部分和函数部分
变量部分:人工鱼的总数N、人工鱼个体的状态 X=(x1,x2,…xn)[其中xi(i=1,2…n)为欲寻优的变 量]、人工鱼移动的最大步长Step、人工鱼的视野 Visual、尝试次数Try-number、拥挤度因子δ、人 工鱼个体i,j之间的距离
函数部分:人工鱼当前所在位置的食物浓度表示 为Y=f(X)(Y为目标函数值)、人工鱼各种行为函 数[觅食行为Prey()、聚群行为Swarm()、追尾行 为Follow()、随机行为Move()以及行为评价函数 Evaluate()]
3 人工鱼的四种基本行为算法描述
1觅食行为Prey():指鱼循着食物多的方向游动的一种行 为,人工鱼Xi在其视野内随机选择一个状态Xj,
《鱼群算法的介绍》课件
鱼群算法在实际问题中的应用案例
交通优化
机器人协作
鱼群算法应用于交通流优化, 提高道路交通效率和减少交 通拥堵。
鱼群算法的集体行为概念应 用于多机器人协作,实现任 务协同和资源分配。
水下勘探
鱼群算法在水下机器人的路 径规划和探测任务中得到了 广泛应用。
鱼群算法的算法流程和步骤
1
初始化种群
随机生成一定数量的个体,并为每
《鱼群算法的介绍》PPT 课件
鱼群算法是一种仿生学算法,模拟了鱼群中个体之间的交互行为。本课件将 介绍鱼群算法的原理、应用、优势和局限性,并通过实际问题中的案例展示 其应用。
什么是鱼群算法
鱼群算法是一种启发式优化算法,通过模拟鱼群中的交互行为,寻找问题的最优解。个体间通过 观察、沟通和合作来提高整体效能。
更新个体位置
2
个个体分配初始位置和速度。
根据个体间的交互行为,更新每个
个体的位置和速度。
3
评估个体适应度
使用适应度函数评估每个个体的适
选择新一代个体
4
应度,衡量其对问题的解的优劣。
通过选择机制选取适应度高的个体 作为新一代个体,滤掉适应度低的
个体。
鱼群算法的改进和发展方向
混合优化策略
将鱼群算法与其他算法结合,提高优化效果和收敛速ቤተ መጻሕፍቲ ባይዱ。
多目标优化
扩展鱼群算法用于多目标优化问题,实现多个优化目标的协调。
并行化与分布式计算
利用并行计算和分布式计算技术,提高鱼群算法的运算效率和处理大规模问题的能力。
总结和展望
鱼群算法作为一种启发式优化算法,具有广阔的应用前景。未来,鱼群算法 还将在更多领域得到发展和应用。
鱼群算法的原理和应用
案例18:基于鱼群算法的函数寻优算法
【注】原帖网址:/thread-9222-1-1.html My Email:hehaiwanghui@案例18:基于鱼群算法的函数寻优算法***********************************************************************************论坛申明:1 案例为原创案例,论坛拥有帖子的版权,转载请注明出处(MATLABSKY论坛,《MATLAB智能算法30个案例分析》2 案例内容为书籍原创内容,内容为案例的提纲和主要内容。
3 作者长期驻扎在板块,对读者和会员问题有问必答。
4 案例配套有教学视频和完整的MATLAB程序,MATLAB程序在购买书籍后可以自由下载,教学视频需要另外购买。
MATLAB书籍预定方法和优惠服务:/thread-9258-1-1.html点击这里,预览该案例程序:/znsf/view/s18/example1.html/znsf/view/s18/example2.html已经预定的朋友点此下载程序源代码:/thread-9395-1-1.html***********************************************************************************1、人工鱼群算法原理人工鱼群算法是李晓磊等人于2002年提出的一类基于动物行为的群体智能优化算法.该算法是通过模拟鱼类的觅食、聚群、追尾、随机等行为在搜索域中进行寻优,是集群体智能思想的一个具体应用.生物的视觉是极其复杂的,它能快速感知大量的空间事物,这对于任何仪器和程序都是难以与之相比的,为了实施的简便和有效,在鱼群模式中应用了如下的方法来实现虚拟人工鱼的视觉:如图5.1所示,一虚拟人工鱼实体的当前位置为,它的视野范围为,位置为其在某时刻的视点所在的位置,如果该位置的食物浓度高于当前位置,则考虑向该位置方向前进一步,即到达位置;如果位置不比当前位置食物浓度更高,则继续巡视视野内的其他位置。
改进型人工鱼群算法及复杂函数全局优化方法
第26卷 第1期2008年3月 广西师范大学学报:自然科学版Journal of G uang xi No rmal U niv ersity:Natural Science Editio n V ol.26 N o.1M ar.2008收稿日期:2008-01-15基金项目:国家自然科学基金资助项目(60461001);国家民委科研基金资助项目(08G X01);广西自然科学基金资助项目(0542048);广西民族大学重大科研资助项目通讯联系人:周永权(1962—),男,陕西旬邑人,广西民族大学教授,博士。
E -mail :yo ng quanzhou @改进型人工鱼群算法及复杂函数全局优化方法黄华娟,周永权(广西民族大学数学与计算机科学学院,广西南宁530006)摘 要:在分析人工鱼群算法存在不足的基础上,对人工鱼群算法加以改进,提出了一种改进型人工鱼群算法。
该算法提高了全局搜索能力和收敛速度,并用于求解具有变量边界约束的非线性复杂函数最优化问题。
仿真结果表明,改进后的人工鱼群算法具有精度高、搜索速度快等特点,是一种求解复杂函数全局最优化的智能算法。
关键词:改进型人工鱼群算法;复杂函数;全局优化;智能算法中图分类号:T P 183 文献标识码:A 文章编号:1001-6600(2008)01-0194-04在电子工程技术等领域常常涉及到很多复杂函数的全局优化问题,其复杂性通常表现为多变量、非线性、强振荡、多极值,甚至存在平坦区。
这类问题的求解一直是优化问题研究热点和难点之一,所以受到了人们极大地关注,并因此构造出许多求解算法,如DFP 变尺度算法、黄金分割法、共轭方向法、共轭梯度法以及Powell 方向加速法等[1,2]。
这些传统算法具有简单易行、收敛速度快等优点,在很多实际问题的求解中得到了广泛应用。
然而,这些方法都只能求出问题的局部最优解,对于全局最优解往往束手无策,而且对函数初值和函数性态要求较高。
基于人工鱼群算法的SVM参数优化
步骤 2 构造人工鱼群ꎮ 每条人工鱼是待优化
SVM 参数组合( Cꎬg) ꎻ按照输入 C 和 g 的取值随机
初始化人工鱼ꎬ构成 size_pop∗2 矩阵的鱼群ꎮ
步骤 3 计算初始鱼群的食物浓度值ꎮ 以训练
集的分类准确率最大化为优化原则ꎬ计算每条人工 鱼的食物浓度值并比较大小ꎬ将最大值作为当前鱼 群的最优值ꎬ并保存( Cꎬg) ꎮ
山西电子技术 2019 年第 1 期
应用实践
文章编号:1674  ̄ 4578 ( 2019 ) 01  ̄ 0030  ̄ 04
基于人工鱼群算法的 SVM 参数优化∗
徐 苗
( 山西农业大学 信息科学与工程学院ꎬ山西 晋中 030800)
摘 要:本文提出了基于人工鱼群算法( Artificial Fish - Swarm Algorithmꎬ AFSA) 的 SVM 参数 优化ꎮ 该算法以 SVM 分类准确率最大化为优化原则ꎬ实现食物浓度值最大化并得到 SVM 最优参 数组合( Cꎬg) ꎮ 通过 UCI 的八个数据集仿真ꎬ对比结果表明:与 CV、GA、PSO 相比ꎬAFSA 在 SVM 参数优化中的收敛速度更快ꎬ其分类准确率也更高ꎮ 证实了基于人工鱼群算法的 SVM 参数优化选 取的性能较好ꎮ
第 1 期 徐苗:基于人工鱼群算法的 SVM 参数优化
31
挤度因子 δꎬ感知距离 visualꎬ移动步长 stepꎻSVM 中 惩罚参数 C 和核函数参数 g 的取值范围ꎮ
输出:SVM 参数( Cꎬ g) 及对应的分类准确率ꎮ 步骤 1 确定 SVM 数据集ꎮ 随机选定 SVM 相
SVM 参数优化对于分类准确率具有重要影响ꎮ 本文提出了一种基于 AFSA 的 SVM 参数优化算法 ( 记为 AFSA - SVM) ꎬ其流程如图 1 所示ꎮ 具体步 骤如下:
基于鱼群算法和Hopfield网络的PID参数寻优
基于鱼群算法和Hopfield网络的PID参数寻优
汪蓓蕾
【期刊名称】《南京信息工程大学学报》
【年(卷),期】2009(001)002
【摘要】提出1种融合了人工鱼群算法与Hopfield神经网络的PID参数优化算法.该算法前期利用鱼群算法快速随机的群体性全局搜索能力生成问题较优的可行解域,后期利用Hopfield神经网络硬件易实现简单快速的优点得到最优解,有效弥补了Hopfield网络对初始值过于依赖容易陷入局部极值的缺陷.将该算法用于某发动机PID控制中的参数寻优,结果表明新混合算法的整定效果好于Hopfield神经网络,且该算法简单易实现.
【总页数】4页(P179-182)
【作者】汪蓓蕾
【作者单位】南京信息工程大学信息与控制学院,南京,210044
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于NSGA-Ⅱ算法的ECPT系统PID参数寻优及输出稳压控制 [J], 苏玉刚;陈苓芷;唐春森;马浚豪;呼爱国
2.基于粒子群和细菌觅食优化算法的直流电动机控制系统的PID参数寻优 [J], 杨洋;王秀芹
3.基于教与学优化算法的PID控制器参数寻优 [J], 何学明;苗燕楠;罗再磊
4.基于改进的萤火虫算法的PID控制器参数寻优 [J], 李恒;郭星;李炜
5.基于多种群遗传算法的液压系统PID参数寻优 [J], 马浩兴;王东红;罗文龙
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【注】原帖网址:/thread-9222-1-1.html My Email:hehaiwanghui@案例18:基于鱼群算法的函数寻优算法***********************************************************************************论坛申明:1 案例为原创案例,论坛拥有帖子的版权,转载请注明出处(MATLABSKY论坛,《MATLAB智能算法30个案例分析》2 案例内容为书籍原创内容,内容为案例的提纲和主要内容。
3 作者长期驻扎在板块,对读者和会员问题有问必答。
4 案例配套有教学视频和完整的MATLAB程序,MATLAB程序在购买书籍后可以自由下载,教学视频需要另外购买。
MATLAB书籍预定方法和优惠服务:/thread-9258-1-1.html点击这里,预览该案例程序:/znsf/view/s18/example1.html/znsf/view/s18/example2.html已经预定的朋友点此下载程序源代码:/thread-9395-1-1.html***********************************************************************************1、人工鱼群算法原理人工鱼群算法是李晓磊等人于2002年提出的一类基于动物行为的群体智能优化算法.该算法是通过模拟鱼类的觅食、聚群、追尾、随机等行为在搜索域中进行寻优,是集群体智能思想的一个具体应用.生物的视觉是极其复杂的,它能快速感知大量的空间事物,这对于任何仪器和程序都是难以与之相比的,为了实施的简便和有效,在鱼群模式中应用了如下的方法来实现虚拟人工鱼的视觉:如图5.1所示,一虚拟人工鱼实体的当前位置为,它的视野范围为,位置为其在某时刻的视点所在的位置,如果该位置的食物浓度高于当前位置,则考虑向该位置方向前进一步,即到达位置;如果位置不比当前位置食物浓度更高,则继续巡视视野内的其他位置。
巡视的次数越多,则对视野内的状态了解更全面,从而对周围的环境有一个全方面立体的认知,这有助于做出相应的判断和决策,当然,对于状态多或无限状态的环境也不必全部遍历,允许一定的不确定性对于摆脱局部最优,从而寻找全局最优是有帮助的。
【注:帖子中的公式字符没显示】图5.1 人工鱼的视野和移动步长其中,位置,位置,则该过程可以表示如下:式中,函数为产生范围(-1,1)之间的随机数, 为移动步长。
由于环境中同伴的数目是有限的,因此在视野中感知同伴的位置,并相应的调整自身位置的方法与上式类似。
2、案例目录:第五章人工鱼群算法 1—ARTIFICIAL FISH SCHOOL ALGORITHM(AFSA) 15.1 案例背景 15.1.1人工鱼群算法原理 15.1.2人工鱼群算法的主要行为 25.1.3 问题的解决 25.1.4 案例分析 25.2 模型建立 45.2.1 变量及函数定义 45.2.2 算法流程 55.2.3 人工鱼群算法实现 75.2.3.1 鱼群初始化 75.2.3.2 觅食行为 75.2.3.4 聚群行为 75.2.3.5 追**为 85.2.3.6 随机行为 95.3 编程实现 95.3.1 鱼群初始化函数 95.3.2 觅食行为 105.3.3 聚群行为 115.3.4 追**为 125.3.5 食物浓度函数 135.3.6 案例1 135.3.7 案例2 165.4 总结 195.4.1 人工鱼群算法优点 195.4.2算法改进的几个方向 195.5 参考文献 203、案例实例及结果:案例1:一元函数的优化实例:,该函数的图形如图5.2所示:图 5.2 一元函数图像结果:鱼群算法的运行结果如下:图5.8 50次鱼群算法迭代结果图5.9 最优解的变化Command Window上的运行结果:最优解X:1.85060最优解Y:3.85027Elapsed time is 1.640857 seconds.案例2二元函数的优化实例:该函数的图形如图5.3所示:图 5.3 二元函数图像结果:鱼群算法的运行结果如下:图5.10 50次鱼群算法迭代结果图5.11 最优解的变化Command Window上的运行结果:最优解X:-0.002690.00018最优解Y:1.00000Elapsed time is 3.094503 seconds.4、主程序案例1:1.clc2.clear all3.close all4.tic5.figure(1);hold on6.ezplot('x*sin(10*pi*x)+2',[-1,2]);7.%% 参数设置8.fishnum=50; %生成50只人工鱼9.MAXGEN=50; %最多迭代次数10.try_number=100;%最多试探次数11.visual=1; %感知距离12.delta=0.618; %拥挤度因子13.step=0.1; %步长14.%% 初始化鱼群15.lb_ub=[-1,2,1];16.X=AF_init(fishnum,lb_ub);17.LBUB=[];18.for i=1:size(lb_ub,1)19.LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)];20.end21.gen=1;22.BestY=-1*ones(1,MAXGEN); %每步中最优的函数值23.BestX=-1*ones(1,MAXGEN); %每步中最优的自变量24.besty=-100; %最优函数值25.Y=AF_foodconsistence(X);26.while gen<=MAXGEN27.fprintf(1,'%d\n',gen)28.for i=1:fishnum29.[Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y); %聚群行为30.[Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y); %追**为31.if Yi1>Yi232.X(:,i)=Xi1;33.Y(1,i)=Yi1;34.else35.X(:,i)=Xi2;36.Y(1,i)=Yi2;37.end38.end39.[Ymax,index]=max(Y);40.figure(1);41.plot(X(1,index),Ymax,'.','color',[gen/MAXGEN,0,0])42.if Ymax>besty43.besty=Ymax;44.bestx=X(:,index);45.BestY(gen)=Ymax;46.[BestX(:,gen)]=X(:,index);47.else48.BestY(gen)=BestY(gen-1);49.[BestX(:,gen)]=BestX(:,gen-1);50.end51.gen=gen+1;52.end53.plot(bestx(1),besty,'ro','MarkerSize',100)54.xlabel('x')55.ylabel('y')56.title('鱼群算法迭代过程中最优坐标移动')57.figure58.plot(1:MAXGEN,BestY)59.xlabel('迭代次数')60.ylabel('优化值')61.title('鱼群算法迭代过程')62.disp(['最优解X:',num2str(bestx,'%1.5f')])63.disp(['最优解Y:',num2str(besty,'%1.5f')])64.toc复制代码案例2:1.clc2.clear all3.close all4.tic5.figure(1);hold on6.%% 参数设置7.fishnum=100; %生成50只人工鱼8.MAXGEN=50; %最多迭代次数9.try_number=100;%最多试探次数10.visual=1; %感知距离11.delta=0.618; %拥挤度因子12.step=0.1; %步长13.%% 初始化鱼群14.lb_ub=[-10,10,2;];15.X=AF_init(fishnum,lb_ub);16.LBUB=[];17.for i=1:size(lb_ub,1)18.LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)];19.end20.gen=1;21.BestY=-1*ones(1,MAXGEN); %每步中最优的函数值22.BestX=-1*ones(2,MAXGEN); %每步中最优的自变量23.besty=-100; %最优函数值24.Y=AF_foodconsistence(X);25.while gen<=MAXGEN26.fprintf(1,'%d\n',gen)27.for i=1:fishnum28.[Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y); %聚群行为29.[Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y); %追**为30.if Yi1>Yi231.X(:,i)=Xi1;32.Y(1,i)=Yi1;33.else34.X(:,i)=Xi2;35.Y(1,i)=Yi2;36.end37.end38.[Ymax,index]=max(Y);39.figure(1);40.plot(X(1,index),X(2,index),'.','color',[gen/MAXGEN,0,0])41.if Ymax>besty42.besty=Ymax;43.bestx=X(:,index);44.BestY(gen)=Ymax;45.[BestX(:,gen)]=X(:,index);46.else47.BestY(gen)=BestY(gen-1);48.[BestX(:,gen)]=BestX(:,gen-1);49.end50.gen=gen+1;51.end52.plot(bestx(1),bestx(2),'ro','MarkerSize',100)53.xlabel('x')54.ylabel('y')55.title('鱼群算法迭代过程中最优坐标移动')56.figure57.plot(1:MAXGEN,BestY)58.xlabel('迭代次数')59.ylabel('优化值')60.title('鱼群算法迭代过程')61.disp(['最优解X:',num2str(bestx','%1.5f')])62.disp(['最优解Y:',num2str(besty,'%1.5f')])63.toc。