布谷鸟算法求解车间调度问题(书籍摘录版)

布谷鸟算法求解车间调度问题

基本原理

布谷鸟算法

理想化描述

  1. 每只布谷鸟选择一个巢并产一个卵
  2. 具有高质量的卵保留到下一代
  3. 可选择巢的数量是固定的,并且布谷鸟的卵被原巢主鸟发现的概率 p a ∈ ( 0 , 1 ) p_a\in(0,1) pa(0,1) ,此情形下,原巢主鸟可能将布谷鸟的卵扔掉或放弃巢穴。

L e ˊ v y L\acute{e}vy Leˊvy飞行

一种典型的随机游走机制,表示一类非高斯随机过程,并与 L e ˊ v y L\acute{e}vy Leˊvy稳定分布有关。
L e ˊ v y L\acute{e}vy Leˊvy是一种连续概率分布,
levy分布
在这里插入图片描述
在这里插入图片描述

上述三种情况可使用基本函数表示概率密度分布函数

基本理论框架

布谷鸟算法的基本思想是巢寄生行为及鸟类的 L e ˊ v y L\acute{e}vy Leˊvy飞行。
伪代码:


begin
    目标函数 f ( x ) , x = ( x 1 , ⋅ ⋅ ⋅ , x d ) T f(x),x=(x_1,···,x_d)^T f(x),x=(x1,⋅⋅⋅xd)T
    初始化种群,产生n个巢 x i ( i , 2 , 3 , ⋅ ⋅ ⋅ , n ) x_i(i,2,3,···,n) xii23⋅⋅⋅n
    while(t小于最大迭代次数或终止条件)
      布谷鸟通过飞行产生一个新解并评价适应度 f i f_i fi
      随机选择一个巢穴 f f f
      if f i f_i fi> f j f_j fj
        用新解代替旧解
      end
      丢弃一部分劣解( p a p_a pa)并建立新解
      保留最优解
      对解进行排序并找到当前最优解
    end while
    结果显示
end
当布谷鸟 i i i产生了一个新解 x i t + 1 + α ⊕ L e ˊ v y ( λ ) x_i ^{t+1} + \alpha \oplus L\acute{e}vy(\lambda) xit+1+αLeˊvy(λ)
其中a为步长,一个随机游走是一个马尔可夫决策过程,下一个状态/位置仅由当前状态、转移概率决定。
L e ˊ v y L\acute{e}vy Leˊvy飞行产生的随机游走,其步长服从 L e ˊ v y L\acute{e}vy Leˊvy分布
L e ˊ v y ( λ ) − u = t − λ L\acute{e}vy(\lambda) - u =t^{-\lambda} Leˊvy(λ)u=tλ

改进的布谷鸟算法

教学优化算法(teaching learning based optimization,TLBO)

优点: 不需要参数,收敛速度快
缺点: 某些难以优化的问题中容易陷入局部最优

Teacher phase

  教师尝试将班级的平均水平提升到 T A T_A TA,现实操作中可实现平均成绩由 M 1 M_1 M1增加到 M 2 M_2 M2
   M j M_j Mj为平均值, T i T_i Ti为第 i i i次迭代过程中的教师。新旧平均值之间的差距计算公式:
D i f f e r e n t M e a n i = r i ( M n e w − T F M i ) DifferentMean_i = r_i(M_new - T_FM_i) DifferentMeani=ri(MnewTFMi)
  其中 r i r_i ri为0-1之间的随机数, M n e w M_new Mnew为教师水平, T F T_F TF为教学因子,决定着平均值的改变
T F = r o u n d [ 1 + r a n d ( 0 , 1 ) 2 − 1 ] T_F = round[1+rand(0,1){2-1}] TF=round[1+rand(0,1)21]
  由此可进行当前最新解的更新
X n e w , i = X o l d , i + D i f f e r e n t M e a n i X_{new,i} = X_{old,i}+DifferentMean_i Xnew,i=Xold,i+DifferentMeani

Learner phase

学生之间相互学习增长自己的知识水平。
算法的每次迭代中, i i i次迭代两个不同的学生 X i X_i Xi X j X_j Xj,其中 i ≠ j i\not=j i=j
{ X n e w , i = X o l d , i + r i ( X i − X j ) , f ( X i ) < f ( X j ) X n e w , i = X o l d , i + r i ( X j − X i ) , f ( X j ) < f ( X i ) \left\{ \begin{matrix} X_{new,i}= X_{old,i}+r_{i}(X_i-X_j), f(X_i)<f(X_j) \\ X_{new,i}= X_{old,i}+r_{i}(X_j-X_i), f(X_j)<f(X_i) \end{matrix} \right. {Xnew,i=Xold,i+ri(XiXj),f(Xi)<f(Xj)Xnew,i=Xold,i+ri(XjXi),f(Xj)<f(Xi)
如果 X n e w X_{new} Xnew X o l d X_{old} Xold
算法步骤如下:
Step1:初始化种群,确定优化问题的设计变量
Step2:选定当前种群最优解为教师,并计算种群的平均值
Step3:根据 D i f f e r e n t M e a n i DifferentMean_i DifferentMeani公式及算法当前解和最优解之间的差值
Step4:根据 X n e w , i X_{new,i} Xnew,i更新学生的知识
Step5:更新当前解
Step6:重复Step2-5,直至满足终止条件

基于教学优化机制的改进布谷鸟算法

优化算法的高效性意味着算法有很强的全局搜索性能,很快的收敛速度以及适用于求解大部分领域的优化问题。

    首先初始化参数,然后根据适应值将种群分成两部分,较好的一部分执行 L e ˊ v y L\acute{e}vy Leˊvy飞行,另一部分利用数学规划机制进行更新,对于劣解按变异概率进行变异,计算适应度值,重复操作,直至算法终止。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值