论文部分内容阅读
群智能算法是一种通过模拟自然界生物变异进化从而实现算法迭代,最终搜寻到期望解的寻优算法。其通过随机初始化模拟物种的原始分布,通过随机搜索以及有选择性地保存后代来模拟物种的自然进化,进而实现算法种群不断进化,寻找到最优解的目的。人工蜂群算法隶属于群智能启发式算法,该算法提出时间较短,效果较好,算法主要包括引领蜂、跟随蜂以及侦查蜂三个过程,该三个过程顺序执行,从而最终实现了算法寻优最终解决问题。由于人工蜂群算法具有参数少、应用简便、求解快速的特点,其在函数数值优化、制造流程优化、工程设计以及化学工程领域已经得到广泛的应用。作为一种新型算法,面对某些特定问题人工蜂群算法在进化和优化过程中也依然存在着无法收敛、寻优效果不理想等缺陷,在一定程度影响了其在解决实际问题上的性能。因此,研究人工蜂群算法的内在原理,对其进行改进并应用到求解多目标问题领域,具有非常重要的工程与学术价值。本文通过研究分析当前最新的人工蜂群改进算法,针对算法中存在的问题,结合群智能算法的基本原理,提出几种改进方案,在基本测试函数上对其性能进行测试,并将改进后的人工蜂群算法扩展至多目标领域,探索其在特征选择问题领域的应用。本文主要分为两个部分:1.针对原始多目标人工蜂群算法中由于采用pareto支配的选择机制进行引领蜂搜索导致的后期种群收敛压力不足的问题,提出了利用Knee Points引导进化的思想,并将其加入到算法的引领蜂和跟随蜂过程中,加速算法收敛,而且在算法后期迭代过程中,该思想能够提供足够的收敛压力。基于以上想法,本文提出了 一种基于Knee Points的改进多目标人工蜂群算法KnMOABC(An improved multi-objective Artificial Bee Colony Algorithm based Knee Points)。在该算法中,首先设计了一种自适应识别Knee Points的算法,从种群中的每个前沿面中自适应地划分邻域并将该邻域中距离最远的点作为Knee Point,同时引入了一种自适应算法,根据算法执行的情况确定Knee Points的个数。在算法的前期,由于种群本身具有足够的进化压力,只需将Knee Points个数维持在一个比较低的水平,使其能够在引导种群进化方面起着协助进化的作用;在算法执行中后期,由于种群中的蜜源大多已经分布在第一前沿面上,相互之间处于一种非支配关系,此时单纯依靠Pareto支配和拥挤距离的选择标准已经无法为后期种群提供足够的收敛压力,通过增加Knee Point的数量,为引领蜂和跟随蜂阶段提供足够的选择压力,帮助种群进化到理想的Pareto前沿面。2.在经典的多目标蜂群算法中,采用的是基于邻域的引领蜂和跟随蜂以及完全随机的侦查蜂机制,该机制在算法进化前期容易出现变异步长过大,错过最优值点,而在算法进化后期出现步长过小,无法跳出局部最优的情况,为了解决这个问题,本文提出了一种应用自适应原理调整步长的方法,通过种群中每个蜜源的无效重复次数计算出该蜜源对应的变异步长,进而达到根据每个蜜源的质量自动调整搜索邻域的目的。基于完全随机的侦查蜂机制在算法后期极易导致重新生成的个体远离当前种群,严重拖累算法的收敛速度,针对此问题,本文提出了一种基于最优值点的高斯初始化方法,参考当前种群的平均位置来确定重新生成的蜜源。3.本文提出了一种将基于Knee Points的改进多目标人工蜂群算法应用于解决特征选择问题的方法,利用改进之后的算法收敛快、搜索能力强的特性来针对性地解决特征选择这一 NP-hard问题。使用matlab进行代码仿真,并与其他经典多目标进化算法在十一个UCI数据集上对特征选择方法的性能进行了测试,仿真结果证明本文提出的算法对解决特征选择问题具有较好的搜索效果,表现了较优的寻优性能。