群体智能优化算法-细菌觅食算法
一种改进的细菌觅食优化算法

一种改进的细菌觅食优化算法刘珍;孙京诰【摘要】针对细菌觅食优化算法存在收敛速度慢、寻优精度低、易陷入局部最优等缺点,提出了一种改进的细菌觅食优化算法.改进原有固定步长的游动方式,引入自适应步长调整策略,提出了基于非线性递减的余弦自适应步长;改进细菌位置的更新方式,借鉴人工蜂群的方法,采用混合的更新方式;改进优胜劣汰的选择标准,保留最优个体,对复制后的父代个体引入杂交算子;改进迁徙方式,提出种群进化因子,防止进化停滞不前.将本文算法用于经典函数以及PID参数整定测试,仿真实验结果验证了该算法的有效性.【期刊名称】《华东理工大学学报(自然科学版)》【年(卷),期】2016(042)002【总页数】8页(P225-232)【关键词】细菌觅食优化算法;自适应步长;位置更新方式;杂交算子;种群进化因子【作者】刘珍;孙京诰【作者单位】华东理工大学信息科学与工程学院,上海200237;华东理工大学信息科学与工程学院,上海200237【正文语种】中文【中图分类】TP27320世纪40年代以来,实际工程问题呈现出越来越多的复杂性,包括多极值、强非线性、多约束性和高维度等。
传统的优化方法已经不能解决诸多实际生产、生活中所面临的复杂问题,智能优化算法应运而生。
细菌觅食优化算法[1]作为一种新型的智能优化算法具有良好的全局优化能力、鲁棒性强以及算法简单等优点,受到了不同领域的关注[2-4]。
针对步长固定的问题,Chen等[5]提出了自适应搜索的细菌觅食优化算法;刘小龙等[6]提出了灵敏度的概念,对细菌的游动步长加以调节;Niu等[7-8]在验证了步长大小的选取对全局收敛的快速性和全局最优解的获得具有重要影响的基础上,提出了线性递减与指数非线性递减的自适应步长;Mishra[9]提出了基于TS模糊机制来选取最优步长。
算法融合方面,Biswas等[10]提出了一种基于差分算法和BFO(Bacterial Foraging Optimization)算法的混合全局优化算法,除此之外,与BFO算法相结合的算法还有粒子群算法[11]、遗传算法[12]等。
细菌觅食机制粒子群优化算法

细菌觅食机制粒子群优化算法程军;吴燕子【摘要】针对基本粒子群优化算法易陷入局部极值的缺陷,提出了一种细菌觅食机制粒子群优化算法。
其基本思想是在粒子群优化算法中引入细菌觅食行为机制,提高PSO算法跳出局部极值的能力,借以改善PSO算法的寻优性能。
采用标准测试函数的实验结果表明,该算法在收敛速度和求解精度方面均有显著改进。
%A novel particle swarm optimization algorithm based on bacterial foraging mechanism ( PSOBF ) is proposed for conventional particle swarm optimization algorithms ( PSO) often trapped in local optima.The basic idea is to introduce the bacterial foraging mechanism into particle swarm optimization algorithm to improve the ability of PSO algorithm.The experimental results of six benchmark functions demonstrate the efficacy of the present algorithm.【期刊名称】《广州航海高等专科学校学报》【年(卷),期】2015(000)002【总页数】4页(P36-39)【关键词】粒子群优化算法;细菌觅食;机制【作者】程军;吴燕子【作者单位】广州航海学院港口与航运管理系,广东广州510725; 华南理工大学工商管理学院,广东广州510640;广州航海学院港口与航运管理系,广东广州510725【正文语种】中文【中图分类】TP18由Kennedy和Eberhart[1]在1995年提出的粒子群优化算法(Particle Swarm Optimization, PSO),对参数搜索空间没有如连续、可导及单峰等苛刻的要求,因此在众多经济管理、工程技术等实际问题中获得了成功的应用[2].针对PSO容易陷入早熟或不熟的缺陷,改进的途径主要表现在粒子群初始化、拓扑结构设计、参数选择、与其他智能算法混合等方面[3].近年来,将生物觅食机制融入PSO算法为改进PSO算法的性能提供了新途径.王联国等[4]将人工鱼群算法中的改进觅食算子引入基本PSO算法,提出了一种具有觅食算子的PSO算法,改善算法的全局优化能力及提高算法的收敛速度和计算精度;刘伟等[5]提出基于细菌觅食机制改进粒子群算法,采用PSO 算法完成整个空间的全局搜索,通过细菌觅食算法(BFOA) 中的趋向性运动算子完成局部搜索的功能.本文在现有研究的基础上根据细菌觅食行为规律,提出一种基于细菌觅食机制的粒子群优化算法PSOBF(particle swarm optimization based on bacterial foraging mechanism),我们将细菌觅食机制嵌入PSO,构造PSOBF算法模型,其主要思想是在粒子群优化算法中引入细菌觅食行为,提高PSO算法跳出局部极值的能力,借以改善PSO算法的寻优性能.标准测试函数的实验结果表明该算法收敛速度快,求解精度高.微生物领域针对大肠杆菌(E. Coli)的研究发现,细胞膜、细胞壁、细胞质和细胞核是大肠杆菌的基本组成部分,在大肠杆菌的周围分布着纤毛和鞭毛,纤毛是一种突起状的细胞,能通过运动为细菌传递信息,鞭毛是菌体上细长而且弯曲的丝状物,作为细菌的运动器官,其功能是帮助细胞进行移动[6].大肠杆菌在适宜的环境中生存和进化,其繁殖过程是在自身长到一定长度后,在身体的中部进行裂变一分为二,形成两段构成新的个体.大肠杆菌在觅食的过程中表现出一定的记忆能力,实现对所经过的环境状态的记忆,帮助其在觅食过程中往食物源方向靠近,并且避开有毒物质.在大肠杆菌趋向食物方向移动的过程中,会对每次经过的状态进行评价,提供相应的信息帮助其采取有效的措施进而改变下一步的状态[7].大肠杆菌的生存环境会因为各种因素的影响而改变,这些因素包括来自细菌自身的活动,如大肠杆菌消化食物导致其周围环境的改变,也包括来自外界环境的变化,如细菌生存环境温度的急剧上升可以导致该环境下细菌的死亡,水的冲刷作用将细菌从一个环境迁移到另外一个新的环境.进一步的研究发现,在细菌群落中存在一种能进行信息交流的群体感应机制,细菌通过自身产生的小信号分子进行群体通信,我们将这种物质称为“自我诱导物”.细菌根据自我诱导物数量的多少来判断细菌邻域的群体密度,采取相应的措施来调整其生理行为[8].细菌通过群体感应机制来判断邻域内的其他细菌数量,当细菌所处的环境中自我诱导物浓度较低时,细菌无法感应到其他细菌的存在;当一定数量的细菌聚集在某个区域,会导致自我诱导物浓度增加并达到一定的阈值,细菌会被该区域所吸引,这时的自我诱导物就成为一种吸引剂;当细菌数量在该区域继续增加时,自我诱导物质的浓度会进一步增强,当自我诱导物浓度增加到超过了某个阈值时,细菌会释放出另外一种用来阻止细菌过度聚集的自我诱导物,我们称之为排斥剂.细菌在觅食过程中,通过翻转(tumble)和游动(run)向营养丰富的区域靠近,而群体内存在细菌相互影响和作用的机制,借助趋化(chemotaxis)、繁殖(reproduction)和迁移(elimination-dispersal)等功能,实现最优化的觅食[9].在细菌的生命周期中,按照优胜劣汰、适者生存的自然法则进行繁殖,细菌作为低等生物,具有很强的环境适应能力和繁殖能力.Passino采用非常规的觅食策略构造了细菌觅食算法,将细菌能量定义为趋化过程中细菌适应度值的累加和,在生命周期内根据细菌能量的优劣来更新种群,具体做法是将能量较好的一半细菌进行繁殖一分为二,新的细菌继承了原始细菌的位置、移动步长和能量等生物特性,而将能量较差的一半细菌淘汰[10].PSO在拥有原理简单、容易操作等优点的同时,还存在一些无法克服的缺陷,比如进化过程中群体多样性的减少、缺乏有效的机制跳出局部极值导致算法“早熟”.鉴于细菌觅食过程中表现出的优良特性,我们将细菌觅食机制嵌入PSO,构造PSOBF算法模型,其主要思想是在粒子群优化算法中引入细菌觅食行为,提高PSO算法跳出局部极值的能力,借以改善PSO算法的寻优性能.PSOBF算法的主要步骤如下:步骤1:在初始化范围内对粒子群的位置和速度进行非对称初始化.步骤2:计算所有粒子的适应度值,将粒子的当前位置设置为个体历史最好位置,将所有粒子适应度值最优的位置作为全局最优.步骤3:判断迭代次数是否小于设定值,是则进入下一步,否则转入步骤8.步骤4:采用更新公式更新粒子的速度和位置.步骤5:重新计算粒子的适应度值,将结果与个体的历史最优值比较,如果更优,则将该粒子现在的位置作为新的个体最优值点.步骤6:将粒子的个体历史最优与群体最优值进行比较,若更优,则将其作为当前全局最优位置.步骤7:计算能量值,当其满足条件时发生繁殖,能量值较好的个体繁殖出个体,取代能量值较差的个体,转入步骤4.步骤8:输出结果.3.1 测试函数本文选取智能优化中6个常用的测试函数进行分析,详细描述见表1.其中,f1,f2是单峰函数,f3-f6属于多峰函数. 在表1中给出每个函数的表达式、搜索范围以及初始化范围.3.2 实验参数设置依然选择前述的f1~f6共6个标准测试函数进行仿真实验,每个标准测试函数的初始化参数设置见表1.将测试函数的维数设置为D=30,种群的粒子数量设置为n=80,采用非对称初始化将初始化的范围确定在搜索空间的一部分,对SPSO,PSOPB,PSOBF的速度上下限设置为Vmax=Ud,Vmin=Ld,参数设置依据文献[11]选取,ω=0.729,c1=c2=2.05,仿真实验的测试平台采用Windows 7系统,仿真软件matlab 7.0,实验设置的最大迭代次数为6 000次,每个实验独立运行50次.3.3 实验结果与分析将3种粒子群算法对6个测试函数分别独立运行50次,最大迭代次数为6 000,得到的实验结果如表2所示.表2中给出了各函数对每种算法独立测试50次结果的最佳值、最差值、平均值、标准差、计算所耗费时间5个指标衡量.从表2和计算过程可以看出:对于单峰函数f1,PSOBF比SPSO和PSOPB具有更快的收敛速度和更高的搜索精度,计算时间也比较节省;对于单峰函数f2,PSOBF和PSOPB在搜索后期的收敛速度要优于SPSO,PSOBF和PSOPB在寻优性能方面各有优劣,但总体相差不大;对于多峰函数f3,在搜索过程的早期PSOBF的收敛速度优于PSOPB,但在搜索后期PSOBF的收敛速度有所减缓;对于多峰函数f4,PSOBF的整体寻优性能略优于PSOPB;对于多峰函数f5,PSOBF的收敛速度优于SPSO,但比PSOPB的寻优性能略微逊色;对于多峰函数f6,PSOBF的收敛速度要明显优于PSOPB和SPSO.本文构建了一种基于细菌觅食机制的改进粒子群算法(PSOBF).该算法将细菌觅食机制嵌入PSO进而构造PSOBF算法模型,在粒子群优化算法中引入细菌觅食行为,利用细菌觅食过程中表现出的优良特性来提高PSO算法跳出局部极值的能力,以实现改善PSO算法的寻优性能.实验结果表明该方法在收敛性方面有显著改进.【相关文献】[1] KENNEDY J, EBERHART R C. Particle Swarm Optimization[C]//Proceedings of the IEEE International Conference on Neural Networks IV. Piscataway:IEEE, 1995: 1942-1948.[2] 谢晓锋, 张文俊, 杨之廉. 微粒群算法综述[J]. 控制与决策, 2003, 18(2): 129-133.[3] ANGELINE P J. Using selection to improve particle swarm optimization[C]//Proc of IEEE World Congress on Computational Intelligence. Anchorage:IEEE, 1998: 84-89.[4] 王联国, 洪毅, 赵付青. 基于觅食算子的粒子群优化算法[J]. 计算机应用与软件, 2009, 26(11): 112-115.[5] 刘伟, 陈舒, 王圣慧, 等. 基于细菌觅食机制改进粒子群算法的研究[J]. 系统仿真技术, 2012, 8(1): 23-26.[6] ALBERTS B, BRAY D, LEWIS J, et al. Watson. Molecular Biology of the Cell [M]. New York:Garland Publishing, 1989: 902-903.[7] BERG H. Motile behavior of bacteria [J]. Phys. Today,Jan, 2000(1): 24-29.[8] 李任峰,何启盖,周锐,等. 细菌鞭毛研究概况及进展[J]. 微生物学通报,2005,32(6):124-127.[9] 刘小龙,李荣钧,杨萍. 基于高斯分布估计的细菌觅食优化算法[J]. 控制与决策,2011,26(8):1233-1238.[10] PASSINO K M. Biomimicry of Bacterial Foraging for Distributed Optimization and Control [J]. IEEE Control Systems, 2002, 22(3): 52-67.[11] 常先英. 粒子群优化算法的改进及应用[D]. 广州:华南理工大学,2009.。
细菌群智能算法在数值优化中的应用

细菌群智能算法在数值优化中的应用细菌群智能算法是一种群体智能算法,通过模拟细菌在群体协作中实现问题求解。
与其他群体智能算法(如粒子群算法和蚁群算法)相比,细菌群智能算法更加适合非连续优化问题和多峰优化问题。
细菌群智能算法的基本原理是,模拟细菌在生物群体中的行为。
细菌有寻找营养物质的本能,同时受自身生理需求和菌群中其他细菌的影响。
在算法中,每个细菌都有一个代表解的参数向量,称为菌群向量。
每个细菌还有一个代表营养的值,称为菌体质量。
细菌之间通过释放化学物质来感知彼此的位置和优劣。
根据其周围菌体质量的多少,每个细菌根据一定的概率选择移动或者留在原处。
细菌群智能算法的基本流程如下:1. 初始化种群:随机生成菌群向量和菌体质量。
2. 评价菌体:将菌群向量代入优化问题得到菌体质量评价值。
3. 释放信息素:根据评价结果修改化学物质分布。
4. 菌群移动:根据化学物质的浓度选择移动或停留。
5. 收获营养:更新菌体质量。
6. 更新最佳解:记录种群中最优菌群向量。
7. 终止条件达到:返回最优解。
细菌群智能算法的优点是:1. 鲁棒性好,适应性强。
算法可以在多峰函数中找到全局最优解。
2. 易于实现和调整参数。
算法具有较少的参数,并且没有严格的要求。
3. 可以处理非线性、非凸、非连续优化问题。
细菌群智能算法的应用范围广泛,包括图像处理、机器学习、控制科学、流体力学等领域。
其中,在数值优化中得到了广泛的应用。
数值优化中的问题将一个多元函数的最大值或最小值作为目标,通过求导等方法求得最优解。
然而,当目标函数形式复杂或者数据取值范围大时,传统的数值优化方法常常会遇到困难。
此时,细菌群智能算法提供了一种新的可能性。
细菌群智能算法在函数优化中的具体应用,可以参考以下几个例子:1. 经典函数优化:初步设计合适的算法,解决常见的函数优化问题,如Rosenbrock函数、Goldstein-Price函数等。
2. 具有约束的函数优化:优化的结果必须满足某些限制条件,例如可行性陈述(feasibility statement)。
基于细菌觅食算法的排班智能优化

信 息 技 术31科技资讯 SCIENCE & TECHNOLOGY INFORMATIONDOI:10.16661/ki.1672-3791.2018.02.031基于细菌觅食算法的排班智能优化张永棠(广东东软学院 广东佛山 528225)摘 要:智能排班问题是极为复杂的组合优化问题。
它包含了劳动法约束、员工层级、不同层级的工资策略、不同班次的工资策略、资源需求等复杂因素。
我们以南昌某医院护士排班智能优化为例,选取了基于细菌觅食优化的算法来为此类问题进行优化求解。
为了提高算法的搜索能力,将信息交流机制加入到细菌在趋化过程中的翻转方向选择上,研究了基于四种静态拓扑结构和一种动态拓扑结构的邻域结构下的细菌觅食优化算法。
关键词:智能优化 群体智能 调度 细菌觅食算法中图分类号:TP18 文献标识码:A 文章编号:1672-3791(2018)01(b)-0031-02随着人们对于健康保健意识的日益增强,患者及家属对护理服务的需求不断提高。
如何有效分配护理资源管理、为病人提供高品质的服务并有效控制预算是当今当前医院护理管理所面临的重大课题。
但是在实际中,劳动法规约束、个人能力的差别、应急性、工作时间不稳定等因素导致实现较好的护理管理困难重重。
智能排班问题(Intelligent Rostering Problem,简称I R P)是指在给定的排班时间段内为特定的一组员工安排班次,并使该排班方案满足各种硬性约束条件,同时尽量满足各种软性约束条件,并在此基础上优化相关性能指标。
因此,智能排班问题是一个极为复杂的组合优化问题,也是现代人力资源管理亟待解决的一大难题。
1 排班问题本文研究以南昌某医院的护士排班问题为例。
在给定的一个排班周期内对于一定数量的包括不同等级的护士进行排班安排。
需要考虑的条件有:满足国家劳动法规定、医院一系列约束条件,满足医院工作需求,护士合理要求。
本文研究的护士排班问题主要有以下特点:(1)护士每天的工作分为三种班次,分别为早班(0点~8点)、白班(8点~16点)、晚班(16点~24点)。
多态蚁群-细菌觅食算法实现部分遮蔽下光伏系统最大功率跟踪

文章编号:1007−2322(2022)01−0001−08文献标志码:A中图分类号:TM73多态蚁群–细菌觅食算法实现部分遮蔽下光伏系统最大功率跟踪
李云凤,雷勇,杜佳耘,刘晖(四川大学电气工程学院,四川省成都市 610065)
Maximum Power Tracking of Photovoltaic System Under Partial ShadingBased on PACO-BFOALI Yunfeng,LEI Yong,DU Jiayun,LIU Hui(College of Electrical Engineering, Sichuan University, Chengdu 610065, Sichuan Province, China)
摘要:针对传统最大功率跟踪技术容易陷入局部最大功率点的问题,提出多态蚁群-细菌觅食算法(polymorphic antcolony - bacterial foraging algorithm, PACO-BFOA)来实现部分遮蔽条件下光伏系统的最大功率输出。该算法在传统蚁群算法的基础上引入信息素扩散机制、多态蚁群的概念和细菌的趋化行为,使算法的全局开发和局部探索能力得到了增强。并在太阳辐照恒定、突变和缓慢变化3种环境下进行算法仿真对比验证,结果证明所提出的算法在部分遮蔽及变化光照下均能快速、稳定地在线寻得全局最大功率点。
关键词:光伏发电;部分遮蔽条件;最大功率跟踪;信息素扩散机制;多态蚁群-细菌觅食Abstract:In allusion to the fact that traditional maximumpower point tracking algorithms are easy to fall into local max-imum power point, for this reason, a polymorphic ant colony-bacterial foraging optimization algorithm (PACO-BFOA) wasproposed to realize the maximum power output of the photovol-taic system under partial shading condition (abbr. PSC). On thebasis of traditional ant colony algorithm the proposed al-gorithm led in the pheromone diffusion mechanism, the conceptof polymorphic ant colony and the chemotactic behavior of bac-teria to make both global development and local explorationability of this algorithm enhanced. Under three different envir-onments, i.e., constant irradiance, abruptly varying irradiance,and slowly varying irradiance, the simulation verification on theeffectiveness of the PACO-BFOA was carried out. Verificationresults show that by use of the proposed algorithm the globalmaximum power point can be online fast and steady searchedout under the conditions of partial shading and varying solar ir-radiation.
基于免疫算法的细菌觅食优化算法

Abstract: To correct the defects such as slower speed, step consistence in bacteria foraging optimization algorithm, this paper presented the concept of the sensitivity of bacteria to increase convergence speed by adjusting the step size of bacterial swimming. The clonal selection ideas in immune algorithm were used to achieve bacterial cloning, highfrequency variation and random crossover of the elite group, and to guide the search algorithm to improve accuracy. A number of typical highdimensional function tests show that the improved algorithm has been greatly improved in terms of search speed and accuracy, and is more appropriate to solve practical engineering optimization problems such as high dimensionality, constraints. Key words: sensitivity; immune algorithm; bacterial foraging; global optimization
【国家自然科学基金】_细菌觅食_基金支持热词逐年推荐_【万方软件创新助手】_20140802

科研热词 细菌觅食算法 细菌觅食 优化算法 频谱感知 频谱分配 非线性系统 量子变异 连续优化问题 软测量 趋向 认知无线网络 认知无线电 蚁群算法 菌群优化 自适应趋化步长 群体搜索 细菌觅食聚类算法 细菌觅食优化算法 细菌觅食优化(bfo) 粒子群算法 粒子群优化算法 穷举式搜索 目标识别 特征提取 混沌 淘汰选择 案例库 样本集 标记细菌 柔性作业车间调度 最小二乘支持向量机 最大游动步长 旅行商问题 文化蛙跳算法 收敛速度 择优迁徙 布谷鸟搜索算法 局部优化 小世界 多阈值 复制 基准函数 图论着色 图像分割 参数辨识 交叉变异 云存储 二次分配问题 sbfa pso算法 otsu法 k-prototypes算法
推荐指数 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
2011年 科研热词 细菌觅食 趋化 细菌觅食算法 全局优化算法 全局优化 趋药性 自适应搜索策略 群体感应 细菌趋化 细菌觅食优化 粒子群优化算法 粒子群优化 灵敏度 差分进化 局部搜索 对立学习 多目标优化 图像分割 动态跳跃 分布估计算法 分布估计 公交调度 人工蜂群 人工神经网络 sar图像 abfo算法 推荐指数 4 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2012年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
基于细菌觅食算法的含风电场电网无功优化

基于细菌觅食算法的含风电场电网无功优化徐飞飞;简献忠【摘要】针对风电场并网运行后网络损耗大和收敛性差的问题,提出一种细菌觅食优化算法.在建立含风力发电机组的无功优化数学模型基础上,将细菌觅食优化算法应用到含风电场的无功优化问题中.以IEEE-30节点进行测试算例,分别采用传统算法、粒子群算法和细菌觅食算法优化,得到网损下降率为30.29%、28.70%和36.98%.实验及分析表明,该算法效率高、全局搜索能力强、易跳出局部极值,为含风电场的无功优化提供了一种新方法.【期刊名称】《电子科技》【年(卷),期】2015(028)006【总页数】4页(P5-8)【关键词】风电场;无功优化;风力发电机;细菌觅食算法【作者】徐飞飞;简献忠【作者单位】上海理工大学光电信息与计算机工程学院,上海200093;上海理工大学光电信息与计算机工程学院,上海200093【正文语种】中文【中图分类】TP306.1;TM614近年来,风能作为可再生能源越来越被人们关注。
当风电场并网后,由于风能的随机性和间歇性等特征,会对继电保护、电压稳定性、潮流分布等产生重大影响,针对这一问题,研究风电场并网后的无功规划具有重要的意义。
电力系统含风电场无功优化是一个非线性优化的复杂问题,具有多目标、多约束、多控制变量的特点[1]。
目前主要算法分为传统和智能算法两类,传统算法求解时会出现离散变量的归整、多峰多极值和网损大[2]的问题。
智能算法如粒子群算法虽然网损较低,但易陷入局部最优[3]。
针对目前算法在求解无功优化时网损大和易陷入局部最优的问题,提出了一种细菌觅食优化算法。
细菌觅食优化算法(Bacteria Foraging Optimization Algorithm,BFOA)是一种新型的仿生类算法,该算法具有群体智能算法并行搜索、易跳出局部最优解等优点[4]。
本文充分考虑异步风力发电机的潮流计算模型,以网络损耗最小为目标函数,采用细菌觅食优化算法解决含风电场电力系统的无功优化问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十四章 细菌觅食优化算法14.1 介绍Passino 等人[1]于2002年通过模拟人体内大肠杆菌的觅食行为,提出了一种新型智能优化算法:细菌觅食优化算法(Bacterial Foraging Optimization Algorithm ,BFOA)。
细菌觅食优化算法通过细菌群体之间的竞争与协作实现优化,是一种基于细菌群体的搜索技术。
在群智能算法中,GA 、ACO 、PSO 、AFSA 都是基于高等生物作为启发对象,而BFOA 算法则是模拟微生物的行为而形成的一种较新的优化方法。
14.2 BFOA 的基本原理与流程BFOA 算法是一种全局随机搜索的算法,其具有简单、收敛速度快,并且在优化过程中无需优化对象的梯度信息的特点。
BFOA 模拟细菌群体的过程包括趋向性(Chemotaxis )、复制(Reproduction )、迁徙(Elimination-dispersal )三个步骤。
14.2.1 趋向性操作细菌向有利于自身环境的区域移动称为趋向运动,其中,一次趋向性操作包括翻转运动和游动运动。
细菌向任意方向移动单位步长称为旋转运动;细菌沿着上一步的运动放向移动单位步长称为游动运动。
通常,细菌在环境差的区域(如:有毒区域)会较频繁地旋转,在环境好的区域(如:食物丰富的区域)会较多地游动。
大肠杆菌的整个生命周期就是在游动和旋转这两种基本运动之间进行变换,游动和旋转的目的是寻找食物并避开有毒物质。
设细菌种群大小为S ,细菌所在的位置标示问题的一个候选解,细菌i 的信息用D维向量标示为12,,,i i i iD θθθθ⎡⎤=⎣⎦L ,i =1,2,...,S ,θi (j ,k ,l )表示细菌i 在第j 次趋向性操作、第k 次复制操作和第l 次迁徙操作后的位置。
细菌i 通过式(1)更新其每一步趋向性操作后的位置。
(1,,)(,,)()()i i j k l j k l C i j θθ+=+Φ(1)其中C(i )>0表示向前游动的步长,Φ(j )表示旋转后随机选择的单位方向向量。
如果在θi (j +1,k ,l )处的适应度优于θi (j +1,k ,l )处,则保持Φ不变继续在该方向游动,直至找到适应度最佳的位置或达到设定的趋向性次数;否则产生新的Φ,进行下一次旋转运动。
设N s 是趋向性操作中在一个方向上前进的最大步数(用m 进行索引),初始时该值为0,BFOA 趋向性操作的流程图如图1所示。
开始i =i +1i<S?计算细菌i 的适应度值,存储该值为最优值旋转运动(细菌i 在旋转后随机产生的方向上游动一个步长单位)初始化m =0根据(1)计算新位置上细菌i 的适应度m<N s否i =i +1新位置的适应度更优?设m =Ns是将新位置的适应度存储为细菌i 目前最好的适应度值在该随机方向上继续游动一个步长单位结束否是否是图1 趋向性操作流程图目前的讨论主要是针对不考虑细菌间相互吸引的情况,实际上每个细菌个体除按照自己的方式搜索食物外,还收到种群中其他个体发出的吸引力信号,即个体会游向种群中心。
第i th 个细菌的细菌间吸引力用(),(,,),1,2,,ii cc J j k l i S θθ=⋯表示,d attract =0.1表示细菌释放的吸引量多少(深度),w attract =0.2用于度量吸引信号的宽度(量化化学物质的扩散率)。
同时也会收到附近个体发出的排斥力信号,以保持个体与个体之间的安全距离,因为细菌消耗附近的营养物质,在物理上不可能在同一位置有两个细菌,对此,令h repellant =d attract 表示排斥力的高度(排斥影响程度),w repellant =10度量了排斥力的宽度。
令J cc (θ,P (j ,k ,l ))表示同时考虑了细菌间吸引力和排斥力的综合影响,其计算公式如(2)。
()()()12attact attract 112repelant repellinat 11(,(,,)),(,,)exp exp Si i cc c i pSi m m i m pSi m m i m J P j k l J j k l d w h w εθθθθθθθ======⎡⎤⎛⎫=---⎢⎥ ⎪⎝⎭⎣⎦⎡⎤⎛⎫+--⎢⎥ ⎪⎝⎭⎣⎦∑∑∑∑∑ (2)其中P (j ,k ,l )表示在第j 次趋向性操作、第k 次复制操作和第l 次迁徙操作后,种群S 中每个细菌的位置,θ=[θ1,...,θD ]T 是优化域上的一个点,θi m 是第i 个细菌位置θi 的第m 个元素。
{}(,,)(,,)|1,2,,i P j k l j k l i S θ==⋯(3)因此考虑上述两个因素对细菌行为的影响,执行一次趋向性操作后细菌i 的新适应度函数值为:()(,1,,)(,,,)(1,,),(1,,)i cc J i j k l J i j k l J j k l P j k l θ+=+++(4)这样这些细胞会试图寻找营养物质,避免有毒物质,同时试图向其他细胞移动,但又不会靠得太近。
14.2.2 复制操作生物进化过程的规律是优胜劣汰。
经过一段时间的食物搜索过程后,部分寻找食物能力弱的细菌会被自然淘汰掉,为了维持种群规模,剩余的细菌会进行繁殖。
在细菌觅食优化算法中将这种现象称为复制行为(Reproduction )。
在BFOA 中,经过复制操作后算法的种群大小不变。
设淘汰掉的细菌个数为S r =S /2,首先按照细菌位置的优劣排序,然后把排在后面的S r 个细菌淘汰掉,剩余的S r 个细菌进行自我复制,各自生成一个与自己完全相同的新个体,即生成的新个体与原个体有相同的位置,或者说具有相同的觅食能力。
初始时设i =0,复制操作流程图如图2所示。
图2 复制操作流程图开始i =i +1i<S?计算细菌i 在上次趋向性循环中经历过的所有位置的适应度值之和按照适应度值的优劣将细菌降序排序淘汰适应度差的S r 个细菌,剩余的S r 个细菌各自分裂出一个与自己完全相同的新个体结束否是14.2.3迁徙操作细菌个体生活的局部区域可能会突然发生变化(如:温度的突然升高)或者逐渐变化(如:食物的消耗),这样可能会导致生活在这个局部区域的细菌种群集体死亡,或者集体迁徙到一个新的局部区域。
在细菌觅食优化算法中将这种现象称为迁徙行为(Elimination-dispersal)。
迁徙操作以一定概率发生,给定概率p ed,如果种群中的某个细菌个体满足迁徙发生的概率,则这个细菌个体灭亡,并随机地在解空间的任意位置生成一个新个体,这个新个体与灭亡的个体可能具有不同的位置,即不同的觅食能力。
迁徙操作随机生成的这个新个体可能更靠近全局最优解,这样更有利于趋向性操作跳出局部最优解和寻找全局最优解。
初始时设i=0,rand()是[0,1]区间上均匀分布的随机数,迁徙操作流程如图3所示。
开始i=i+1否i<S?是否Rand()<p ed是细菌i灭亡,随机产生新的细菌i结束图3 迁徙操作流程图14.3BOFA算法初始化:确定参数D,S,Nc,Ns,Nre,Ned,ped和C(i),i=1,2,...,S,如果利用了细菌的群聚性,则还需要选择细菌间吸引函数。
此外还要对θi进行初始化,j、k和l初始时均为0。
注意,对θi进行更新会自动更新P。
1)迁徙操作循环loop:l=l+12)赋值循环loop:k=k+13)趋向循环loop:j=j+1a)for i=1,2,...,S,对细菌i按如下步骤进行趋向性操作。
b)计算J(i,j,k,l)。
令J(i,j,k,l)=J(i,j,k,l)+J cc(θi(j,k,l),P(j,k,l))。
c)令J last=J(i,j,k,l),将该值保存,用于比较适应度值。
d)旋转:生产一个随机向量Δ(i)∈R D,其每个元素Δm(i)(m=1,2,...,D)为[-1,1]上的随机数。
e)移动:执行式(1)从而使得细菌i在旋转方向上移动了C(i)步长。
f)计算J(i,j+1,k,l)。
令J(i,j+1,k,l)=J(i,j+1,k,l)+J cc(θi(j+1,k,l),P(j+1,k,l))。
g)游动。
i)令m=0。
ii)While m<N s•令m=m+1.•if J(i,j+1,k,l)<J last(对于最小化问题),令J last=J(i,j+1,k,l),再执行式(1),使用θi(j+1,k,l)计算新的J(i,j+1,k,l)。
•Else,令m=N s,结束While循环h)如果i≠S转到第(i+1)个细菌,即b)步。
4)if j<N c,跳转至3),继续执行趋向性操作。
5)复制:a)给定k 和l ,对于每个i =1,2,...,S ,令1health 1(,,,)c N ij JJ i j k l +==∑(5)表示细菌i 的健康度(度量其整个生命周期内获得了多少营养以及在避免有毒物质方面有多成功),按J health 的升序对细菌和趋向性参数C (i )进行排序。
b)淘汰S r 个具有最大J health 的细菌,其余的S r 个具有最优值的细菌进行分裂(新的副本具有和父代相同的位置)。
6)if k <N re ,跳转到2)。
7)迁徙:For i =1,2,...,S ,以概率p ed ,对每个细菌进行消除或分散,如果某细菌个体灭亡,并随机地在解空间的任意位置生成一个新个体。
8)if l<N ed ,跳转到1),否则终止。
参考文献1. Passino, K.M., Biomimicry of bacterial foraging for distributed optimization and control.IEEE Control Systems Magazine, 2002. 22(3): p. 52-67.初始化:确定参数D ,S ,Nc ,Ns ,Nre ,Ned ,ped 和C (i),i=1,2,...,S ,如果利用了细菌的群聚性,则还需要选择细菌间吸引函数。
此外还要对θi 进行初始化,j 、k 和l 初始时均为0。
注意,对θi 进行更新会自动更新P 。
1)迁徙操作循环loop :l =l +1 2)赋值循环loop :k =k +1 3)趋向循环loop :j =j +1 a)for i =1,2,...,S ,对细菌i 按如下步骤进行趋向性操作。
b)计算J (i ,j ,k ,l )。
令J (i ,j ,k ,l )=J (i ,j ,k ,l )+J cc (θi (j ,k ,l ),P (j,k,l ))。
c)令J last =J (i ,j ,k ,l ),将该值保存,用于比较适应度值。