姜 爽
(承德石油高等专科学校 数理部,河北 承德 067000)
蜘蛛猴算法(SMO)是2014年由Jagdish Chand Bansal等[1]学者提出的,是一种建立在对蜘蛛猴群觅食行为建模基础上产生的新型解决优化问题的数值优化方法.根据原始SMO算法多种改进算法[2-4]被研发用来解决优化问题.本文设计了S-SMO算法并挑选了优化问题的测试函数进行了实验,表明改进算法的多重评价性能均优于原算法和WSMO算法。
首先程序会产生一个规模为N的蜘蛛猴群.SMOi代表群体中第i个猴子,同时也为D维被优化函数潜在的解。按:SMOij=SMOminj+rand(0,1)×(SMOmaxj-SMOminj)确定其自身位置.我们称第2阶段为本地领导人阶段,在本进程中新位置的产生依靠的是本地领导人和群体成员的反馈所决定即SMOnewij=SMOij+rand(0,1)×(LLkj-SMOij)+rand(-1,1)×(SMOrj-SMOij),LLk是第k组本地领导人位置向量.当实现了本地领导人阶段,随即开始进行全局领导人进程:SMOnewij=SMOij+rand(0,1)×(GLj-SMOij)+rand(-1,1)×(SMOrj-SMOij),GLj代表全局领导人位置向量,此时位置的改变依靠的是全局领导人和小组成员的反馈。
接下来展开全局领导人学习进程,判断全局领导人的位置是否得到了改变,如未得到改变则GlobalLimitCount增加1。随后算法开展本地领导人学习阶段,同样地,判断本地领导人位置是否更新,否则LocalLimitCount增加1。在以上两阶段本地领导人位置和全局领导人位置由距离“食物源”最近的个体位置确定。第6阶段为本地领导人决策阶段,若本地领导人位置更新次数未达到已知的LocalLeaderLimit的值,那么该小组的所有成员启动新的公式:SMOnewij=SMOij+rand(0,1)×(GLj-SMOij)+rand(0,1)×(SMOij-LLkj)来改变位置。
最后算法会经历全局领导人决策阶段,此时若全局领……