遗传算法步骤、禁忌搜索算法步骤、退火算法步骤

1、遗传算法步骤

1:选择问题的一个编码,并初始化种群(N个染色体),构成种群pop(1)=\left \{ pop_{j}(1)|j=1,2,...,n \right \}t=1

2:对种群pop(1)计算其每个染色体pop_{i}(1)的适应度,f(i)=fitness(pop_{i}(1))

3:while  不满足停止规则   do

4:        计算概率分布 p_{i}=\frac{f_{i}}{\sum_{1\leq j\leq n}^{}f_{i}} (*)

5:        根据概率分布从pop(1)中随机选取N个染色体形成新种群:newpop(t+1)=\left \{ pop_{j}(t)|j=1,2,...,n \right \}

6:        通过交叉(交叉概率为p_{c}),得到一个新的有N个染色体的种群,crosspop(t+1)

7:        通过较小概率p的基因变异,得到种群mutpop(t+1)t=t+1

8:        诞生新的种群pop(t) = mutpop(t)

9:        计算pop(t)中每个染色体pop_{i}(t)的适应度,f(i)=fitness(pop_{i}(t)) ;

10:end while            


2、 退火算法步骤

1:任选初始可行解x_{0},并初始化 x_{i} \leftarrow x_{0}k\leftarrow 0t_{0} \leftarrow t_{max}(初始化温度)

2:while k\leq k_{max}  && t_{k}\geq T_{f}    do

3:        从邻域N(x_{i})中随机选择x_{j},即x_{j}\leftarrow _{R}N(x_{i})

4:        计算\Delta f_{ij} = f(x_{j}) - f(x_{i})

5::       if        \Delta f_{ij}\leq 0 ||exp(-\Delta f_{ij}/t_{k})> RANDOM(0,1)        then

6:                  x_{i}\leftarrow x_{j}

7:        end if

8:        t_{k+1} \leftarrow d(t_{k})

9:        k\leftarrow k+1

10:end while 


 3、禁忌搜索算法步骤

1:选择一个初始可行解x^{cb},并初始化禁忌表H\leftarrow \left \{ \right \}

2:While        不满足停止规则        do

3:        在x^{cb}的邻域中选出满足禁忌要求的候选集Can-N(x^{cb})

4:        从候选集中选择一个评价值最佳的解x^{Lb}

5:        令x^{cb}\leftarrow x^{Lb},并更新记录H

6:end While

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值