您好,欢迎来到99网。
搜索
您的当前位置:首页每天学点算法->进化策略->遗传算法简单例子解读

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

来源:99网

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

在这个例子中

目标函数: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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务