智能优化算法简述
2021-01-22马原响
马原响
( 华北水利水电大学 土木与交通学院,河南 郑州450011)
随着科学的发展,人们逐渐提出了许多优化算法并由此形成了系统的优化理论。但由于这些传统的优化算法在解决大型的工程问题上存在一定的局限性,所以自二十世纪80 年代以来,出现了一些比较新颖的优化算法,例如遗传算法、混合蛙跳算法等,这些算法都有一个共同点就是通过模拟或揭示某些自然现象或者过程从而得到高速发展,这些算法都有其独特的优点和机制,引起了国内外学者的广泛重视,也因此掀起了一股研究优化算法的热潮,到目前为止这些算法已经在广泛的工程领域得到了应用。
图1 遗传算法流程图
1 遗传算法
遗传算法(Genetic Algorithm,GA)是美国MIChigen 大学的Holland 教授[1]在受到达尔文进化论启发而创造的一种智能优化算法,这个算法按照类似生物界自然选择(selection)、变异(mutation)和杂交(crossover)等自然进化方式,通过种群之间的“适者生存”原则,提高种群的平均适应度,然后利用适应度函数来引导种群进化的方向,由此可以得到最优个体所代表的问题解并逐渐逼近问题的全局最优解。目前遗传算法以及其改进算法已经广泛应用于函数优化、生产调度、自动控制、图像处理、机器学习、数据挖掘等领域。
1.1 遗传算法基本步骤
(1)对问题进行编码。
(2)定义适应度函数后,生成初始化群体。
(3)对于得到的群体选择复制、交叉、变异操作,生成下一代种群。
(4)判断算法是否满足条件,如果不满足停止条件,则返回继续执行步骤(3)。
(5)算法结束,获得最优解。
具体流程图如图1 所示。
1.2 遗传算法的改进
文献[2-3]武兆慧,田东平等,模拟退火法的思想运用于遗传算法,将两者的优点进行整合合,形成了模拟退火遗传算法,在迷糊控制等方面展现出了其巨大的优点。
文献[4-5]田东平、黄聪明提出了基于小生境的遗传算法,这种改进的遗传算法具有多样性解,收敛速度以及全局寻优的优点,对于求解复杂多峰的函数优化问题有突出的优点。
2 混合蛙跳算法
图2 蛙跳算法流程图
混合蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)是Muzaffar Eusuf 和Kevin Lansey[6]在2003 年提出的一种基于青蛙群体的协同搜索方法。这个算法的思想来源于基因的传承,它显著特点就是可以进行局部搜索与全局信息混合的协同搜索。通过大量的仿真测试可以证明,混合蛙跳算法在解决高维、病态、多局部极值等函数问题方面具有一定的优越性,是一种行之有效的优化算法。
2.1 蛙跳算法的具体步骤
(1)初始化。设置合适的子种群个数和每个子种群的青蛙个数。
(2)生成一个虚拟种群规模为。d 为维变量,表示每一个青蛙的当前位置,对于优化问题则表示解空间的一个候选解。
(3)对青蛙划分等级,按照适应度大小降序排列个体。
(4)将青蛙循环分组生成子种群。
(5)在每个子种群里进行局部进化,以使个体的位置得到改善。
(6)执行混合运算。当子种群循环一定次数之后,将青蛙重新排列,更新位置最佳的青蛙。
(7)检查终止条件,若迭代终止条件满足,停止算法输出结果;否则程序返回Step3 继续执行。
具体流程如图2 所示。
2.2 蛙跳算法的改进
文献[7]代永强等人提出了一种基于改进混合蛙跳算法的高维生物医学数据特征选择方法。该方法将混沌记忆权重因子和平衡分组策略引入基本混合蛙跳算法,在强化算法多样性的同时,维持了算法全局和局部寻优之间的平衡,降低了算法陷入局部最优的可能,进一步提高了混合蛙跳算法特征选择方法在特征空间的探索能力。
3 其他智能算法
类似于以上几种智能优化算法,新兴的智能算法还有很多,在这里不再具体叙述其基本原理以及优缺点只列举出各个算法的名称。
(1)进化算法,(2)禁忌算法,(3)粒子群算法,(4)人工鱼群算法,(5)量子遗传算法,(6)人工蜂群算法,(7)混沌优化算法,(8)人工免疫算法,(9)细菌觅食算法,(10)猫群算法,(11)神经网络与神经网络优化算法,(12)混合优化算法。
4 结论
以上主要介绍了三种在工程中应用较为广泛的智能优化算法:遗传算法、蚁群算法、蛙跳算法。同时列举了几乎近年来全部的智能优化算法的名称以备有需要的学者可以系统的了解智能优化的各种算法,为其继续深入学习该算法提供一些帮助。