遗传算法选择-交叉

遗传算法中的选择算子、交叉算子、变异算子
1.选择算子
轮盘选择
按照每条染色体的适应度占种群所有染色体适应度之和的概率来选择;
在这里插入图片描述
锦标赛选择
每次从种群中选出m条染色体,保留适应度最大的,共选K次,得到K条最大染色体,从K中选择最大的2条作为父代;一般都取2;

线性排序选择
按照染色体的适应度进行升序排序,适应度最低的染色体序号为1,对应概率为pmin,适应度最高染色体序号为N(假设种群共N条染色体),对应概率为pmax,其余染色体被选择的概率为累积概率为:
在这里插入图片描述
2.交叉算子
实数交叉
注:并不是所有被选择的染色体都会交叉,要有交叉概率pc,当random(1)<pc时,此对这对父代进行交叉选择;
SBX:
SBX
参考文献:
[1] 百度文库-遗传算法
[2] 知乎-遗传算法中几种不同的选择算子

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
上一篇文章中我们介绍了如何通过遗传算法来解决函数优化问题,本文将介绍如何使用遗传算法来解决组合优化问题。 组合优化问题是指在一组离散的元素中,寻找一个最优的组合方案,使得满足一定的约束条件,并且达到最优化的目标。比如,在旅行商问题中,需要找到一条经过所有城市的最短路径。 下面我们以背包问题为例,来介绍如何使用遗传算法来解决组合优化问题。 背包问题是指有一个容量为W的背包,和n个物品,每个物品有一个重量wi和一个价值vi,需要选择一些物品放入背包中,使得总重量不超过W,同时总价值最大。 我们可以将每个物品视为一个基因,将所有物品的组合视为一个个体,通过遗传算法来不断优化每个个体的适应度,从而找到最优的组合方案。 具体步骤如下: 1. 定义基因型和表现型 我们可以将每个物品看做一个基因,每个个体的基因型就是一个n维的01向量,其中每个元素表示该物品是否被选中,1表示被选中,0表示未被选中。例如,一个基因型为[1, 0, 1, 0, 1]表示选中了第1、3、5个物品。 每个个体的表现型就是选中的物品的集合,可以通过基因型和物品的重量和价值来计算得到。 2. 定义适应度函数 适应度函数可以定义为选中的物品的总价值,但需要满足总重量不超过W的约束条件。如果超过了W,则适应度为0。 3. 初始化种群 我们可以随机生成一些基因型,作为初始种群。 4. 选择操作 选择操作可以使用轮盘赌选择,即按照每个个体的适应度来分配一定的比例,再进行随机选择。 5. 交叉操作 交叉操作可以选择两个基因型,随机选取一个位置,将两个基因型在该位置之后的部分进行交换,得到两个新的基因型。 6. 变异操作 变异操作可以随机选择一个基因型的一个位置,将该位置的值进行取反。 7. 繁殖新种群 通过选择交叉和变异操作,生成一些新的基因型,作为下一代种群。 8. 判断终止条件 可以设定一个终止条件,例如达到最大迭代次数或者找到最优解。 通过上述步骤,我们可以使用遗传算法来解决背包问题。下一篇文章将介绍如何使用遗传算法来解决排课问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值