基于免疫算法的细菌觅食优化算法

合集下载

一种改进的细菌觅食优化算法

一种改进的细菌觅食优化算法

一种改进的细菌觅食优化算法刘珍;孙京诰【摘要】针对细菌觅食优化算法存在收敛速度慢、寻优精度低、易陷入局部最优等缺点,提出了一种改进的细菌觅食优化算法.改进原有固定步长的游动方式,引入自适应步长调整策略,提出了基于非线性递减的余弦自适应步长;改进细菌位置的更新方式,借鉴人工蜂群的方法,采用混合的更新方式;改进优胜劣汰的选择标准,保留最优个体,对复制后的父代个体引入杂交算子;改进迁徙方式,提出种群进化因子,防止进化停滞不前.将本文算法用于经典函数以及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.。

第7章 免疫算法

第7章 免疫算法

7.1.2 免疫系统的生物学原理
从人的角度:免疫的主要作用是帮助人体自身的 免疫系统抵制由病毒和细菌引起的疾病。 从生物学角度:免疫或免疫接种是强化个体抵御 外部个体的能力的过程。
7.1.2 免疫系统的生物学原理
相关名词
抗原:被免疫系统看作异体,引起免疫反应的分 子。即能刺激人体免疫的细胞,使人体产生免疫 反应的物质。可以是人体本身固有的,如血液, 也可以是人体内根本不存在的,如某些细菌,病 毒,药物等。 抗体:免疫系统用来鉴别和移植外援物质的一种 蛋白质复合体。每种抗体只识别特定的目标抗原。 当某种抗原刺激人体后,人体对这种抗原会产生 一种能识别它,并抵抗或消灭它的物质。当这种 抗原再次入侵时,人体会产生抵抗(免疫)能力, 从而避免疾病的发生。
7.3.1 负选择算法
监视保护数据S
初始串集合S随机变异若 干部分
检测器R
两集合的串存在匹配 否 探测到非自体

没有探测到
7.3.2 克隆选择算法
克隆选择原理图
抗原 抗原决定基 抗体决定簇 10011001 11101001 01100110
成熟
2
12
47
128
死亡
骨髓
克隆选择
2
2
2
2
128
128
7.1.2 免疫算法的生物模型
病原体
皮肤 生理学环境
先天性 免疫应答
巨噬细胞
后天性 免疫应答
受体
B淋巴细胞
图 免疫系统层次示意图
7.1.3 二进制模型
轻链 抗体决定簇 Paratope
图 B细胞抗体结构图
抗体j 重链 抗原决定基 Epitope
抗体k B 淋巴细胞

基于免疫算法的多目标优化技术研究及应用

基于免疫算法的多目标优化技术研究及应用

基于免疫算法的多目标优化技术研究及应用多目标优化(Multi-Objective Optimization,简称MOO)技术在现代计算领域中应用越来越广泛,其最主要的目的是在几个冲突的目标之间找到最佳平衡点。

在实际生产应用中,如何在多个目标间取得平衡是一道非常难的题目,而优化问题的粒子群算法、遗传算法等传统优化算法则难以解决。

因此,基于免疫算法的多目标优化技术受到了越来越多的关注和研究。

一、免疫算法的基本原理免疫算法(Artificial Immune System,简称AIS)的研究始于上世纪末,它是通过模拟生命免疫机制,并应用于问题求解和优化领域的一种新型计算智能技术。

它将免疫学的生物特性转化为数学模型,并以计算机模拟免疫系统的内部功能进行模拟优化。

AIS主要研究从生命免疫学中得到的信息和原理,规划出解决复杂问题的高效、生物安全的计算方法,它是仿生理学思想的一个重要应用领域。

在免疫系统的模拟上,免疫算法将必要的免疫学机制和模型引入到算法设计中,然后根据问题的需求,选择合适的模拟免疫模型,来建立一个充分表达问题的模型。

二、多目标优化问题的免疫算法求解MOO问题的要求是要在真正意义上实现对多目标的优化,既要保证局部最优解,又要满足全局最优解。

为了解决MOO问题,免疫算法在设计中考虑多个要素,例如:针对多个目标,设计出带多个适应性的结构;针对反类化,采用自适应聚类或者模糊分类;针对多目标的遍历,采用多起点的搜索技术,构建优化过程的拓扑结构,等等。

在多目标优化问题的求解中,免疫算法的主要思路是构建一组解的群体,通过群体的竞争、选择、适应性调整,逐渐优化出全局最优解。

其中,群体数量、群体适应度、进化算法的设置,都会影响到优化算法的性能。

因此,运用免疫算法来求解多目标优化问题时,需要充分考虑问题的特点和求解目标,良好的群体设置是提高算法求解效率的重要手段。

三、应用案例及分析基于免疫算法的多目标优化技术在多个领域都取得了成功的应用,下面我们就以某些物流企业的例子来进行案例分析。

基于细菌趋药性优化的QoS组播路由算法

基于细菌趋药性优化的QoS组播路由算法

基于细菌趋药性优化的QoS组播路由算法黄勇【摘要】引进细菌趋药性算法(BCO),用于QoS组播路由问题.BCO是一种新型的对细菌觅食行为进行模拟的优化算法.对不同节点的网络结构图进行仿真,表明在同等条件下,BCO收敛时间低于流行的和谐搜索(HS),人工免疫遗传算法(AIGA)等算法.节点规模越大,优势越明显.当节点规模高达60时,BCO消耗时间仅有HS的35%,AIGA的42.5%.【期刊名称】《计算机应用与软件》【年(卷),期】2012(000)011【总页数】3页(P269-271)【关键词】QoS组播路由;细菌趋药性优化;和谐搜索;人工免疫遗传算法【作者】黄勇【作者单位】新余学院数学与计算机科学学院江西新余338004【正文语种】中文【中图分类】TN911.730 引言Internet网络的兴起之后,各式网络服务争相出现,包括各种先进的多媒体业务蓬勃发展。

传统的以文字和图片为主的服务已不能满足用户的需要,具有视频和音频的多媒体服务正成为主流。

然而,目前的传输网络面临下列两个难题:首先,网络业务对传输时延、时延抖动等参数较为敏感;其次,多媒体业务消耗大量带宽,给现有的网络传输提出新的课题[1,2]。

因此,QoS组播路由算法成了当前研究的热门。

学者们近期提出QoS路由的概念,其目的是:在当前网络传输中,寻找满足用户对时间、成、延迟、抖动、故障率等要求的最佳路线[3]。

考虑到QoS路由问题是一个NP-C问题,较好的方法是采用进化算法求解。

国外文献如Yen[4]提出用遗传算法(GA)求解,Forsati[5]提出用和谐搜索方法,Vijayalakshmi[6]提出采用人工免疫结合GA的方法。

Rehab F[7]提出采用离散粒子群(Discrete PSO)与GA相结合的方法求解。

遗憾的是,上述的算法虽然可以较好地解决QoS问题,其本身也存在缺陷[8]。

GA运行一定步数后,其向全局最小解的收敛速度过慢;人工免疫模仿人类的免疫系统,但数据存取操作频繁[9];ACA前期收敛较慢[10]。

【国家自然科学基金】_细菌觅食_基金支持热词逐年推荐_【万方软件创新助手】_20140802

【国家自然科学基金】_细菌觅食_基金支持热词逐年推荐_【万方软件创新助手】_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

人工智能-仿生学算法

人工智能-仿生学算法

细菌觅食算法一、基本概念细菌觅食算法是基于大肠杆菌在觅食过程中体现出来的智能行为的一种仿生优化算法,其具有群体智能性、并行性等特点.细菌觅食算法包括趋化操作、复制操作和迁徙操作.这3种操作方式是模仿细菌觅食的趋向行为、复制行为和迁移行为的抽象(1)趋化操作大肠杆菌在寻找食物源的过程中,其运动是通过表层的鞭毛实现的.当鞭毛全部逆时针摆动时,大肠杆菌将会向前行;当鞭毛全部顺时针摆动时,它会减速至停止.鞭毛的摆动对应着细菌个体对当前适应值的判断,并决定是否对其位置进行调整和确定调整的方向和力度.设p^i(j,k,l)表示细菌个体i的当前位置,j表示第J次趋化行为,K表示第次复制行为,l表示第次迁徙行为.则p^i(j+1,k,l)=p^i(j,k,l)+c(i)φ(j),其中,φ(j)表示游动的方向;c(i)表示前进步长.(2)复制操作设群体规模为S,在完成设定次数的趋向操作之后,将群体中的个体按照其适应度值进行排序,将排在后面S/2的个体删除,剩下的个体进行自我复制,保证群体规模的稳定性。

(3)迁徙操作迁徙操作按照预先设定的一个概率发生,若某一个个体满足迁徙操作发生的条件,那么即将此个体删除,并生成一个新的个体代替.相当于将原来个体重新分配到一个新的位置。

二、算法改进1、初始化操作改进在细菌觅食算法中,细菌种群的大小直接影响细菌寻求最优解的能力.种群数量越大,其初始覆盖区域越大,靠近最优解的概率就越大,能避免算法陷入局部极值,但同时增加了算法的计算量.确定群体规模S之后,将群体搜索的空间分成S个区域,每个细菌个体的初始位置为S个区域的中心点,随即细菌将在各自区域内搜索2、趋化操作改进基本细菌觅食算法在进行趋化操作时,细菌个体是根据历史信息按固定步长朝着食物源方向游动.在解决连续函数优化问题,尤其是多峰函数优化问题时,传统的操作方式易使得细菌个体错过最优解,本文对趋化搜索方式进行了改进.将细菌个体所在区域切分为n×n块,每个细菌在进行翻转操作时,仅在细菌周围的8个方向中随机选取,游动过程中每游动一次前进步长缩短为原来步长的0.8倍,C(i)=0.8c(i)当细菌个体游动次数并未达到设定游动次数时,细菌将再进行一次翻转操作.趋化操作步骤:(1)确定细菌个体i,确定游动方向φ(j)(2)细菌游动p^i(j+1,k,l)=p^i(j,k,l)+c(i)φ(j)c.(3)判断当前位置是否更优,是则个体i被新个体取代,继续步骤(2),步长C(i)=0.8c(i).(4)判断是否达到设定游动次数,未达到转步骤(1)达到游动次数细菌个体i趋化操作结束.3、复制操作改进细菌觅食过程中,一段时间后,细菌会根据个体位置的适应度值进行优劣排序。

基于改进细菌觅食算法的测试用例生成方法

基于改进细菌觅食算法的测试用例生成方法

基于改进细菌觅食算法的测试用例生成方法王曙燕;王瑞;孙家泽【摘要】针对测试用例自动化生成技术中效率较低的问题,尝试引入新的细菌觅食算法,并结合测试用例生成问题提出了一种基于细菌觅食算法的改进算法(IM-BFOA).IM-BFOA首先采用Kent映射来增加细菌的初始种群和全局搜索的多样性,其次针对算法中趋化阶段的步长进行自适应设计,使其在细菌趋化过程中更加合理化,并通过实验仿真验证其合理性,最后根据被测程序构造适应度函数来加速测试数据的优化.实验结果表明,与遗传算法(GA)、粒子群优化(PSO)算法和标准细菌觅食优化算法(BFOA)相比,该算法在保证覆盖率的前提下,在迭代次数和运行时间方面都是较优的,可有效提高生成测试用例的效率.【期刊名称】《计算机应用》【年(卷),期】2019(039)003【总页数】6页(P845-850)【关键词】测试用例生成;细菌觅食算法;Kent映射;自适应步长;适应度函数【作者】王曙燕;王瑞;孙家泽【作者单位】西安邮电大学计算机学院,西安710121;西安邮电大学计算机学院,西安710121;西安邮电大学计算机学院,西安710121【正文语种】中文【中图分类】TP311.50 引言软件设计上的缺陷和代码错误严重影响了软件的可靠性和可用性,软件测试作为发现软件问题的一种方法受到了广泛关注[1]。

软件测试是软件开发整个流程中必不可少的一环,也是保障软件可靠性的重要手段。

软件测试可以检测软件中的bug,但软件测试耗时费力,它消耗了几乎50%的软件系统开发资源[2]。

其中,测试用例生成是关键性步骤,其生成的效率决定了软件测试的整体效率,对整个软件测试工程的发展具有重要的影响。

在测试用例生成的发展过程中,根据不同的测试准则和粒度,产生了很多研究方法,主要有:数据流准则法[3]、需求分析法[4]、基于搜索的优化方法等。

其中基于搜索的优化方法因其寻优能力较强而受到很多研究者的青睐,它的核心是启发式搜索算法,通过将寻找最优的测试用例问题转换为函数的最优化问题,结合生成测试用例的具体方法设计适应度函数,来实现测试用例的自动生成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于免疫算法的细菌觅食优化算法作者:刘小龙赵奎领来源:《计算机应用》2012年第03期摘要:针对细菌觅食优化算法经常出现的速度较慢、步长一致的缺陷,赋予细菌灵敏度的概念,对细菌游动的步长进行调节以提高收敛速度。

采用免疫算法中的克隆选择思想,对精英细菌群体进行克隆、高频变异和随机交叉,引导算法提高搜索精度。

典型高维函数测试表明,改进算法的搜索速度和精度得到极大提升,算法改造后可适用于多维、约束等实际工程问题中的优化。

关键词:灵敏度;免疫算法;细菌觅食;全局优化中图分类号: TP183;TP301.6文献标志码:ABacteria foraging optimization algorithm based on immune algorithm英文作者名LIU Xiao-long*, ZHAO Kui-ling英文地址(School of Business Administration, South China University of Technology, Guangzhou Guangdong 510640, China)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, high-frequency variation and random crossover of the elite group, and to guide the search algorithm to improve accuracy. A number of typical high-dimensional 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 optimization0引言自20世纪40年代开始,越来越多的工程实际问题呈现出多峰值、高维度和非线性且不可微分的特征,为解决这些问题,许多学者致力于从生物系统来寻找灵感,并设计和构造了大批的仿生优化算法。

进入21世纪后,仿生优化算法又有了新的发展,比较有代表性的如Miiller等[1]提出的细菌趋药性(Bacterial Chemotaxis, BC)算法和Passino[2]提出的标准细菌觅食优化(Bacterial Foraging Optimization, BFO)算法。

上述两种算法的灵感都源于微生物的行为特性,其中BC是源于单个细菌的趋药性行为,而BFO则来源于细菌的群体行为特性。

BFO作为一种基于群体的搜索技术,通过群体细菌之间的竞争和协作,实现搜索的优化。

此外,有关文献表明,BFO具有避免局部最优的可能,并逐渐成为仿生优化的一个研究热点。

在BFO的研究中,相关学者主要从算法的参数调整和算法融合上进行研究,以提高其性能。

在参数调整方面,Liu等[3]改进了大肠杆菌间的相互作用机制,并对BFO算法的收敛性进行了初步分析;Mishra[4]提出了基于TS的模糊规则系统改进的MBFO算法;Majhi等[5]将设计出的自动趋化步长BFO模型应用到了神经网络训练当中;Datta等[6]设计出了一种根据自适应的增量调制原理实现自适应趋化步长的BFO算法;Chen等[7]提出了基于生物的自适应搜索策略的自适应协同型的菌群觅食优化算法。

在现行有关细菌觅食优化算法的研究中,Majhi、Datta和Chen等从趋化步长的角度,根据细菌在觅食生命周期内的获取能量大小,使细菌能够自适应地调节趋化步长,在不增加算法复杂性的情况下,提高细菌寻优效率。

在算法的融合设计方面,Biswas等[8]将粒子群算法与BFO算法相结合,提出了一种应用于多峰函数优化的混合优化算法(以下简称PSOBFO算法);Bakwad等[9]、Tang等[10]和Chu等[11]将粒子群优化(Particle Swarm Optimization, PSO)算法的基本思想引入到BFO算法中,分别提出了细菌群和快速细菌群算法等。

Biswas、Dasgupta等[12]将差分进化算法中的交叉与变异操作引入BFO算法,提出了一种混合型全局优化算法;Kim等[13]将遗传算法中的交叉、变异算子引入到BFO算法中,构造出GABFO算法;Luh等[14]则从细菌进化的视角,设计出了细菌进化算法(Bacterial Evolutionary Algorithm, BEA)。

Biswas等在细菌的趋化算子当中嵌入了粒子群的方法,同时使细菌具有感知全局极值的能力,通过粒子群算法的迭代公式对细菌的位置进行更新,在这个过程中,趋化算子并未发挥作用,且该方法嵌入粒子群位置更新公式增加了时间复杂性。

Dasgupta等在细菌进化中引入了交叉、变异算子,虽然使种群的多样性得到增加,但这样也极易导致优秀个体缺失情况的发生。

鉴于以上情况,本文通过对细菌赋予灵敏度的概念,使细菌在趋化的过程中能够依据能量自适应地改变步长,从而实现对环境的适应。

继而在趋化周期完成后,采用免疫算法中的克隆选择算法思想,对挑选的精英细菌进行克隆繁殖,并经过克隆群体的高频变异和随机交叉,取代细菌群体中较差的低能量或者高适应度的个体。

相关实验表明,免疫算法有效地提高了细菌群体的搜索精度和适应度。

1基于免疫算法的改进细菌觅食优化算法1.1细菌觅食优化算法细菌觅食优化算法通过模拟大肠杆菌的趋药性行为,即根据趋化、繁殖和迁移这3个算子的迭代进行优化,该算法的本身并不涉及到群体细菌相互之间的影响和相互作用的机制,主要用于解决局部优化问题。

在BFO算法中,用趋化算子来模拟细菌随机性地向营养丰富区域集中的过程,具体的行为主要有翻转和游动两种。

在趋化过程中,经过固定周期的搜索,为了缩短搜索时间和提高搜索精度,以趋化周期的细菌能量,即适应值的累加和作为标准,使能量较高的一半细菌繁殖,用分裂出来的细菌对能量较低的另一半细菌进行替代。

在经过了固定周期繁殖之后,细菌会由于一定的原因进行区域的迁移,此时BFO算法设定一个迁移的概率,然后使每个细菌都能够进行随机的迁移,从而提高算法的全局寻优能力。

可以看出,BFO算法中细菌局部搜索能力的实现,主要是通过趋化算子对邻域的随机搜索并根据适应度进行方向调整来获得。

很明显,由于缺乏对群体周边细菌信息的利用机制,造成算法收敛速度较慢,容易陷入局部最优的特征。

在趋化周期结束后,算法根据细菌能量进行繁殖,这对寻优精度的提高有一定作用,但算法如已陷入局部最优,则早熟、不熟等问题也随之而生。

第3期刘小龙等:基于免疫算法的细菌觅食优化算法计算机应用第32卷1.2免疫算法1993年,Mori等[15]最早提出了免疫算法;1994年,Forrest等[16]使用T细胞的自体非自体识别思想,提出了负选择算法,并应用于模式识别等诸多领域;2000年,Castro等[17]提出了克隆选择算法(Clonal Selection Algorithm, CSA),该算法不考虑抗体(群体)之间的亲和度(适应度),只关注抗体和抗原的亲和度,由于算法的高记忆和极强搜索能力,在模式识别和优化领域得到了广泛的应用。

虽然免疫算法的原理较为复杂,但有研究表明,免疫算法具有非常好的融合性[18],和主流的遗传算法、鸟群算法、蚁群算法等都有融合算法,但针对细菌觅食优化与免疫算法的融合鲜有研究。

1.3基于免疫算法的改进细菌觅食算法根据Dasgupta的研究,免疫算法可以分成3种类型,即:基于人工网络的免疫算法、负选择算法和克隆选择算法。

本文借鉴免疫算法中的克隆选择思想,融合入细菌觅食优化中的繁殖算子中,进行克隆选择性繁殖,从而提高问题的求解精度。

针对繁殖算子的流程改进如图1所示。

1.4算法实现的基本流程算法的主要实现步骤描述如下:第1步参数初始化。

Ned为迁移次数、Nre为繁殖次数、Nc为趋化次数;Ped为迁移概率;S 为细菌数;Ns为游动次数。

第2步初始化细菌位置。

采用式(1)产生初始化位置,计算细菌群的初始化适应度J值。

X=xmin+rand*(xmax-xmin)(1)第3步迁移循环ned=1:Ned;繁殖循环K=1:Nre;趋化循环j=1:Nc。

第4步执行细菌趋化循环。

1)翻转。

细菌随机变换单位向量φ(i)的方向,并按照式(2)更新细菌位置,其中C(i)为细菌翻转的步长。

P(i, j+1,k,l)=P(i, j, k,l)+C(i)φ(i)(2)2)游动。

如果翻转的适应值改善,则按照翻转方向前行,直至适应值不再改善或达到设定的最大移动步数Ns为止,称为游动。

游动步长为C*V,其中V为灵敏度, Delta值为6000。

V(i)=(Jmax-Ji)/(Jmax-Ji+Delta)(3)第5步繁殖循环。

趋化周期完成后,对当前细菌群体执行克隆免疫算法繁殖。

1)计算所有细菌的适应度,从当前细菌群体中找出n个精英细菌,形成待克隆群体。

其中,n=ned,随着算法的迭代,精英细菌越来越多,为了保持群体的多样性,在最后的精英细菌数目n 为群体的一半。

2)进行抗体的克隆繁殖,形成克隆群体NC。

①对n个细菌按照适应度进行排序,最好的细菌排在最前面,并将适应度标准化。

其中,精英细菌的克隆繁殖数目按式(4)进行,适应度标准化采用式(5)进行,NC_size公式使得适应度越小的细菌形成的克隆群体越多。

β是对细胞抗体抗原之间亲和度度量的递增函数,在此简称为克隆扩张系数β,本文β取值0.8,意味着总共产生80个克隆群体。

相关文档
最新文档