遗传算法的个人理解

遗传算法是根据达尔文的进化论而来,从父代进行交叉繁衍,得出多种多样的子代。
这里讨论的是已知子代的目标值,让父代在繁衍时逐渐靠拢目标子代,也就是在庞大的数据中生成一个我们想要的值。
步骤:

  1. 创建种群:用随机的方式生成种群内的个体。
  2. 选择
    2.1 评估适应度:计算种群中每个个体在目标中出现的概率。
    2.2 创建交配池:在交配池中按适应度添加个体。例:a适应度0.8,b适应度0.2,即在交配池中添加80%的a和20%的b

  3. 繁殖
    3.1 交叉:在交配池中取a中的前两元素,b中的后两个元素,将他们拼接在一起成为子代。
    为了提高子代的多样性,我们可把中点位置改为随机点,即从a中取第一个元素,b中取后三个元素生成一个子代。从a中取前三个元素,b中取后最后一个元素生成另一个子代。
    3.2 突变:在创建种群的过程中,我们用随机的方式创建了有多样性的种群,但是只生成了一次,也就是说种群只有第一代,不一定能满足生成目标值。我们需要多代种群,因此加入突变过程保证种群的不断更新。
    3.3 突变完成后我们将子代加入新种群,新种群替代原来的种群,再回到选择步骤,重新评估适应度,创建新的交配池。
    上一个根据《代码本色》改写的在openframeworks里实现的遗传算法,目标为字符串”HOW DO YOU DO “。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值