<h1>遗传算法求解二元函数最值
<h2>1.解析式分析</h2>
![表达式](https://raw.githubusercontent.com/baiyaoyu/GA/master/img/fun.JPG)
<font size=4>
*特点*
+ 两个自变量
+ 范围[-10,10]
+ 周期函数
<h2>2.遗传算法解析</h2>
>遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。(百度百科)
*进化学说的一些观点*
1. 进化以中群为单位
2. 自然选择决定进化的方向
3. 变异具有不确定性
4. 变异为进化提供原材料
遗传算法需要模拟进化中的几个过程
+ 可能发生交叉互换。
+ 可能产生基因突变。
+ 每个个体具有不同的个体差异,产生子代的概率不同,模拟自然选择。
以上几点很重要,前两点产生新的类型,虽然不定向变异,但有机会产生更优的答案。而第三点,隐含了启发式信息。结合进化学说中的观点,可知,应选择一定数量的个体来模拟进化(种群为单位)。
*遗传算法解决问题的一般思路*
![pro](https://raw.githubusercontent.com/baiyaoyu/GA/master/img/pro.jpg)
<h2>3.编程实现</h2>
语言:python
版本:v3.6.0
库:math copy numpy matplotlib
主要函数:
1. 编码函数Encode()
2. 解码函数Decode()
3. 变异函数getChange()
4. 交叉函数getSwap()
5. 产生子代getNextGen()
编码方式分类
1. 二进制编码
2. 格雷码编码
3. 浮点数编码
4. 排列编码
本程序采用二进制编码,将两个自变量的取值精确到0.01(1/1024),用22位二进制编码变量。编码基因型使得交叉和变异变得容易模拟,只需模拟某一位的编码的改变或互换即可模拟表现型的改变。
子代个体产生方法
1. 轮盘赌选择法
2. 随即遍历抽样
3. 锦标赛算法
适应度评估是通过函数的值的大小来评估,然而此函数的值中有负数的存在。轮盘赌算法不适用,本程序采用将适应度统一增加225。当然也有其他的解决思路,可以采用锦标赛方法产生后续个体,这种方法类似于有放回的摸球方法。
<h2>4.结果分析及总结</h2>
![图像](https://raw.githubusercontent.com/baiyaoyu/GA/master/img/Figure.png)
其中绿点表示本次求的的最值。
*结果分析*
+ 量化导致的误差,因为,量化精度为1/1024。分析此函数的连续性和周期性可得出,取得最值的点的位置相对于量化点的位置不一定完全一样,所以导致程序求的不同峰值的最优解不相同。
+ 进化压力偏大可能导致种群进化到某一个较低的极值点位置而不易变异到更高的最值处。所以应控制进化压力的大小在一个合适的范围。
*总结*
使用遗传算法求解函数极值的方法还是比较得心应手的。通过本次作业,了解到算法对于程序的重要意义,也发现自己本身所欠缺的正是这种算法的积累。
在编程中学到的一些python的知识点现总结如下
1. numpy中的数组与python中的列表不是一种数据结构
2. 深复制与浅复制,python直接将该数组中的值赋值添加到其他列表属于浅复制。修改其中一个,另一个仍会修改。
3. matplotlib库,数据可视化,可轻松画出美观的图像,是便于理解数据规律的好工具。
好家伙VCC
- 粉丝: 2305
- 资源: 9142
最新资源
- 雅居乐地产置业有限公司企业文化与福利制度培训教材(PPT 60页).ppt
- 人力资源--伊利集团岗前培训手册(PPT 67页).ppt
- 人力资源-培训积分制度(PPT).ppT
- 某某不动产新人培训手册-新人工作培训手册(PPT 38页).ppt
- HR工作者的心理素质完全手册.ppt
- 蓝月亮-人事专员培训操作手册(PPT 33页).ppt
- 人力资源部管理手册-培训管理办法(doc 20).doc
- 山西通达摩托车集团公司培训管理制度(doc 6页).doc
- 山东省对外经济贸易明达公司人事管理培训工作细则(DOC 7页).doc
- 人力资源开发与培训管理制度.doc
- 永泰鑫公司员工培训手册(DOC 27页).doc
- 员工培训计划表.doc
- 美的集团空调事业部人力资源开发与培训制度.doc
- 内部培训评估表7.7.doc
- 康佳集團培訓管理辦法.doc
- 培训需求调查表7.7.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈