最近对GA算法的一些思考
来源:互联网 发布:软件开发中心 编辑:程序博客网 时间:2024/06/06 04:55
最近多次试验了下代码,发现了一些很有意思的事情,主要涉及到的问题是分别用实值编码和二进制编码对一个问题的解决的收敛速度等的体会,分别总结下:
1:用来做实验的目标函数是
2:大概的流程就是这样子:随机初始化一定数量的种群,评估fitness,根据fitness删除掉不需要的个体,从剩余的个体中选择出来父亲来生孩子,变异。
3:其中删除不需要的个体,这个地方可以事先设定,比如我每次的评估之后只需要一般的父类,那么就删除一半就好了。删除的策略可以是把fitness不好的删除掉。剩下的流程就没啥问题了。也可以按照一定的策略,比如roulette wheel等思路,但是经过我的实验发现,以及和别的老师讨论发现这个效果不好,并且实践中很少有人这么来用的。具体怎么用,接下来说。
4:经过讨论和试验,发现如果想要好的结果就这么来操作:首先还是初始化,评估。然后随机从这个种群中取出来2个,找出其中fitness最好的一个
5:其实第四部包含了selection和crossover了,具体的产生后代的策略还可以在
6:接着就是mutation了,这个没啥好说的了。
7:我分别用real value和binary 的方法编码基因,发现real value的方法比较方便一点,用binary的方法的时候,分别尝试了用8,10,20长度来编码一个基因,发现20的时候最好,8的时候最小化到一个值之后就弄不下去了,我发现是此时是种群中不相同的个体很少很少,也就是说大部分都是一样的个体,类别太少了。而长度增大以后,可以在一定程度上导致个体多样性,但是能不能从mutating的角度来增大多样性,我还没测试,我这里测试的是每次只有
8:收敛速度都还是挺快的,只是最终收敛到的那个最好结果不一定都一样,还是需要多写写,多测试才知道!
- 最近对GA算法的一些思考
- 最近对招聘Android开发人员的一些思考
- 对simhash算法的一些思考
- 新手报到~对算法的一些思考
- 对于最近的自己的一些思考
- 最近的关于测试的一些思考
- 最近的一些思考,感悟和理解。
- 【编程思考】最近的一些事
- 最近对产品升级的思考
- 对台球的一些思考
- 对病毒的一些思考
- 对职业生涯的一些思考
- 对一些问题的思考
- 对自省的一些思考
- 对STL的一些思考
- 对概率的一些思考
- 对javascript的一些思考
- 对前沿的一些思考
- unity官方教程space shooter 学习文档
- BZOJ 1857 [Scoi2010]传送带 三分套三分
- Eclipse C++ and Xcode for Mac
- BZOJ 1858 [Scoi2010]序列操作 线段树
- VS2012坦克大战的部分源码
- 最近对GA算法的一些思考
- 数据挖掘算法简介
- 003.控制台输入
- 《构建之法》第七章 MSF
- kNN(K-Nearest Neighbor)最邻近规则分类
- 自己的反汇编引擎——Intel指令编码(1)
- Java中高级面试题
- 在非控制台程序中开启控制台进行信息的输出
- hdu 1728 逃离迷宫 经典BFS