遗传算法中的CROSSOVER和MUTATION

结合上次发的代码,这次再多说点,今天看了别人的代码,才晓得在实值编码下crossover和mutation的做法。

1:crossover,对于实值编码的染色体一般进行crossover的时候,是先随机选择2个parent,然后选择一部分进行交换,这样的做法是最常见的。而在我上面的代码中是(parent1+parent2)/2 来做了。那么就在这里说下选择部分进行交换的做法。
比如群体的size是N,先选择最好的M个,那么就需要在产生N-M个才能维持好种群的大小。怎么产生着N-M个后代?做法是这样的,假设每个染色体的长度是K,那么先把M个种群中的染色体的第一个基因,按照倍数复制成长度为N-M,接着随机再给这个N-M排序下,组成了N-M个后代的第一个基因,以此类推,就完成了任意2个parent的基因交换和重组。

2:mutation中最常见的就是以X的概率去mutation,那么怎么弄?这个mutation是针对每个染色体上的每个基因的,做法是这样的,遍历这N个染色体上的K个基因,然后产生随机数,如果这个随机数小于X,那么久给这个基因做mutation,如果大于则不更改,具体的实现的时候可以灵活点。

至此,这就是crossover和mutation的常见做法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
遗传算法的参数设置包括种群规模、交叉概率、变异概率和迭代次数等。下面是对每个参数的详细说明: 1. 种群规模(M):种群规模是指遗传算法每一代所含个体的数量。一般来说,种群规模的选择应该足够大,以保证算法能够充分搜索解空间,但也不能过大,以免增加计算复杂度。根据引用的建议,种群规模一般选择在20-100之间。 2. 交叉概率(Crossover Rate):交叉概率是指在进行交叉操作时,两个个体进行交叉的概率。交叉操作是遗传算法的一种重要操作,通过交叉可以产生新的个体,增加种群的多样性。交叉概率的选择应该适,过高的交叉概率可能导致种群过早收敛,过低的交叉概率可能导致种群缺乏多样性。一般来说,交叉概率的选择范围在0.6-0.9之间。 3. 变异概率(Mutation Rate):变异概率是指在进行变异操作时,一个个体发生变异的概率。变异操作是遗传算法的另一种重要操作,通过变异可以引入新的基因信息,增加种群的多样性。变异概率的选择应该适,过高的变异概率可能导致种群过早收敛,过低的变异概率可能导致种群缺乏多样性。一般来说,变异概率的选择范围在0.001-0.01之间。 4. 迭代次数:迭代次数是指遗传算法进行进化的代数。每一代都会进行选择、交叉和变异等操作,通过多次迭代,逐渐优化种群的个体。迭代次数的选择应该足够大,以保证算法能够充分搜索解空间,但也不能过大,以免增加计算复杂度。 综上所述,遗传算法的参数设置包括种群规模、交叉概率、变异概率和迭代次数等。根据引用的建议,种群规模一般选择在20-100之间,交叉概率的选择范围在0.6-0.9之间,变异概率的选择范围在0.001-0.01之间。迭代次数的选择应该足够大,以保证算法能够充分搜索解空间,具体的选择可以根据问题的复杂度和计算资源的限制来确定。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值