DEITLBO算法的伪代码

输入:种群大小Np,当前迭代次数iter = 0,和最大迭代次数itermax

*初始化种群*

01:调用初始化函数来初始化各个参数和种群X

02:调用目标函数,计算种群的适应度值,寻找与标记最优个体Xbest,最差个体Xworst所在位置,index排序,计算概率值pi,自适应权值w,教学均值Xmean

03:利用iter=iter+1更新迭代次数

*主程序*

04:While iter < itermax do

05:for i=1:Np

利用公式(7)、(8)更新

*教师阶段*

06:for i=1:Np;利用公式(5)更新

If F(new) < F (i); X i = X i , n e w ,并更新初始值

*学习阶段*

07:for i=1:n;利用公式(6)更新

If F(new) X i = X i , n e w ,并更新初始值

08:取(0,1)区间内随机数rand

Ifrand>pi;利用公式(11)、(12)更新

else;利用公式(13)更新

if F(new) X i = X i , n e w ,并更新初始值

else;利用公式(14)、(15)更新,产生 V i , d t U i , d t

09:利用公式(16)进行选择,判定是否满足条件并更新

If F(new) X i = X i , n e w ,并更新初始值

10:边界判定

end while

输出:最优解Xbest