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); ,并更新初始值 |
*学习阶段* |
07:for i=1:n;利用公式(6)更新 If F(new) |
08:取(0,1)区间内随机数rand Ifrand>pi;利用公式(11)、(12)更新 else;利用公式(13)更新 if F(new) else;利用公式(14)、(15)更新,产生 、 |
09:利用公式(16)进行选择,判定是否满足条件并更新 If F(new) |
10:边界判定 end while |
输出:最优解Xbest |