一个简单问题的遗传算法的实现
来源:互联网 发布:js base64转换成file 编辑:程序博客网 时间:2024/06/06 01:29
刚开始研究遗传算法,所以先尝试用该算法实现解决一个简单的问题问题如下:
求函数f(x)=x^2在区间[0,31]内的最大值,其中x取整数
利用遗传算法解决的思路如下:
1.编码策略
用五位二进制表示x的0~31共32个数
2.初始种群
初始种群为随机的4个个体
3.适应函数
将二进制转换为十进制,并取其平方即得到适应度
4.选择算子
适应性大的个体被选中的概率也大
5.交叉算子与变异算子
交叉概率为1,变异概率为0.01
交叉点为随机产生的一个范围为1-5的数,假定产生一个随机数位3,则10000与11111交叉后为10111,11000
以下是该算法的java代码实现,代码写的时间比较短,没怎么优化及注释,不过可以看到结果了。代码只输出了遗传算法中每一代中的种群个体染色体情况。从代码的输出结果可以看出,算法找到了最优解11111,但是由于变异的存在,又会跳到其他解,不过运行几秒之后停下来后你会发现他的解是接近最优的。
本文参考了《人工智能导论》(鲍军鹏,张选平等著,机械工业出版社,第207-209页)
本文为lgjfly原著,转载时请注明出处:http://blog.csdn.net/lgjfly
- 一个简单问题的遗传算法的实现
- 遗传算法的简单实现
- 用Python实现简单的遗传算法
- 用Java实现简单的遗传算法
- 用Java实现简单的遗传算法
- 用perl实现简单的遗传算法
- 用python实现简单的遗传算法
- c++ 简单的遗传算法实现
- 用python实现简单的遗传算法
- 简单的遗传算法
- 旅行销售员问题的遗传算法实现
- 旅行销售员问题的遗传算法实现
- TSP问题的遗传算法实现
- 简单的遗传算法源代码
- 最简单的遗传算法
- 简单的遗传算法实例
- 一个简单实用的遗传算法c程序(转载)
- 一个简单实用的遗传算法c程序(转载)
- [OE]iis php环境配置完整版
- SQL 连接查询(内链接----外连接)
- Symbian Thread and Process 进程和线程
- linux-crontab 命令
- 用Ftrace跟踪内核模块
- 一个简单问题的遗传算法的实现
- C#中父窗口和子窗口之间实现控件互操作
- 用getch实现控制
- HttpServletRequest接口的getSession方法
- Ubuntu开启root用户及其它登录问题的解决
- 【WM】Phone Canvas重复创建视图的原因
- Ubuntu 10.04 安装配置手记
- [OE]IIS配置全能空间
- 难受