为了克服标准教与学优化(TLBO)算法在求解高维问题中表现出的后期收敛速度慢、容易早熟的问题,提出了一种具有振荡搜索和自适应突变的改进教与学优化算法(ITLBOA)。该算法首先在“教”算子中引入二阶振荡搜索策略,期望在早期抑制粒子向最优粒子的过快收敛,而在后期使其具有较强的勘探能力,提高算法的解精度。其次,引入自适应突变,随着迭代的进行逐渐提高粒子的突变概率,并随机选择部分维度变异,赋予算法摆脱局部最优约束的能力。在5个标准Benchmark函数上的测试,结果表明该算法具有较好的全局搜索能力和解精度。选择8个UCI数据集上进行特征选择问题求解,ITLBOA获得的有效特征数目比TLBO平均减少了1.35个,最优适应度值下降了15.91个百分点。一系列的实验表明,ITLBOA不仅适合求解较高维度的函数优化问题,同样也能够高效求解组合优化问题。
群智能[1] [2]算法利用种群内的协作及特定的进化机制, 实现待求解问题解空间的启发式搜索。
教与学优化(Teaching & Learning based optimization, TLBO) [3] [4] [5]算法诞生于2010 年,通过模拟教学班中的“教”和“学”两种行为,实现对问题的求解,是群智能算法中优秀代表之一。算法原理简单,参数较少且易实现,在多个领域得到了应用[6] [7] [8] [9] [10]。
由于TLBO 的数学基础薄弱,在求解较高维度的问题时,后期往往容易陷入局部最优,收敛速度降低等问题[4]。为了克服这些弱点,提高算法的性能和效率,研究者们从不同的角度提出了各种策略对算法进行改进。文献[11]提出了一种相对精英教与学优化算法(OETLBO)该算法能够提高搜索全局最优解的效率, 在算法后期能够较好地保持种群多样性。
于坤杰等人[12]针对种群多样性下降过快的问题,提出了一种基于反馈的精英教与学优化算法(FETLBO),该算法在“学”算子中增加了一种差生向教师反馈的机制,通过这种反馈来调整种群的多样性。文献[13]采用自适应教学因子并通过调节教师人数的方式提升TLBO 的全局搜索能力,提高算法的性能。文献[14]提出了一种自主学习行为的教与学优化算法(SDTLBO),在执行完标准TLBO 算法之后,通过计算当前粒子与最优、最差粒子的距离自主完成学习, 最后通过高斯搜索实现全局搜索以避免种群陷入局部最优的约束。针对TLBO 在求解高维问题中出现的解精度低、收敛速度慢和容易陷入局部最优解的弱点, 文献[15]提出了一种融合头脑风暴思想的改进教与学优化算法(ITLBOBSO)。在执行“教”算子中当前粒子与优秀粒子进行头脑风暴式学习,同时在该算子中引入柯西变异和一个与迭代次数关联的随机参数提高对新解的开发能力。
为了提高算法的性能,提出了一种引入二阶振荡搜索和粒子自适应突变的改进教与学优化算法。将当前粒子向教师粒子的学习曲线视为信号的振荡变化,将“教”算子修改为二阶振荡搜索。基于迭代次数产生概率,以此为基础使当前粒子或者部分维度突变,或者执行标准“学”算子。