每天学点算法->进化策略->遗传算法简单例子解读

假设草原上有一群斑马,这群斑马里面,有些斑马跑的比较快,有的跑的慢,而狮子每次捕猎能抓到跑的慢的斑马,那么经过一代代的繁衍,根据达尔文进化论,留下的大部分斑马都是跑的比较快的。进化策略也是基于这优胜略汰,适者生存的套路,通过模拟一个种群的进化过程,逐步优化参数,最终使得目标函数达到最优.

在这个例子中

目标函数:max=sin(10*x)*x + cos(2*x)*x ; x属于[0,5]

 

由此我们的整个逻辑过程就变成了:

1.创建一个种群,种群中有100个个体(数量自定义),每个个体有10个长度的基因,基因我们这里使用0和1编码

2.将种群中每个个体的基因由2进制翻译成10进制数,带入目标函数,得到的值作为个体的适应度

3.随机保留适应度高的个体,随机去除适应度低的个体,优胜略汰

4.种群经过自然选择后,每个个体都随机与一个个体进行配对,生成孩子,孩子分别从父母中获取一半的基因.

5.生成的孩子进行随机突变,

6.将生成的子代作为新一代种群

7.重复2-6过程100次(繁衍100代)

 

 

由于过程比较简单,下面直接上例子代码(注释比较全,对上上面过程应该也很容易)


# coding: utf-8
"""
基础遗传算法
1.初始化种群
2.对种群select
3.对种群crossover
4.循环2,3
"""
impor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值