演化算法作业.doc

演化算法作业.doc

ID:58572933

大小:96.00 KB

页数:9页

时间:2020-10-19

演化算法作业.doc_第1页
演化算法作业.doc_第2页
演化算法作业.doc_第3页
演化算法作业.doc_第4页
演化算法作业.doc_第5页
资源描述:

《演化算法作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、利用演化算法求约束优化问题姓名:学号指导老师:1问题:用遗传算法求解下列约束优化问题:2演化算法计算过程:2.1个体的编码:采用实数向量编码,每一个个体是一实数对。本文采用二进制编码,自变量精度取小数点后三位,一个自变量需要二进制位数为14位,总共需要28位二进制来编码两个自变量。2.2译码:将二进制编码翻译为变量的实数形式:2.3适应函数:本文使用目标函数作为适应函数2.4选择策略:采用轮盘赌算法。2.5杂交算子:随机挑选两条不同的染色体,随机选出杂交位点,然后交换片段。完成后检查重组后的染色

2、体是否满足约束条件,若不满足,则舍弃,恢复原染色体并重新杂交,直到完成15对染色体的杂交。2.6变异算子:随机生成14个随机数对应于每条染色体的每个基因位点,若则对该基因位点进行变异。同时完成变异后检查是否满足约束条件,若不满足,则舍弃变异,恢复染色体并重新变异直到满足约束条件为止。2.7参数设置:种群规模为30,最大代数为1000代,杂交概率0.9,变异概率0.12.8初始化:随机产生初始种群,自动生成初始群体,完成检查是否满足约束条件,若不满足,则重新初始化直到有30个个体满足约束条件为止。

3、2.9终止条件:算法运行所指定的最大代数后终止,即1000代后终止迭代。3实验结果表1四次实验结果比对表迭代次数500迭代次数1000第一次运行第二次运行第三次运行第四次运行1.2271.2481.2451.2533.3033.3423.2593.2510.0.0.0.由表1可以看出迭代次数越多遗传算法的效果可能越好;并且多次迭代结果较为稳定,证明没有陷入局部优化。表2某2次迭代过程表代数(迭代总次数1000)11.2894.3630.311.2954.230.751.2924.2540.134

4、1.2414.2560.1371.2254.2620.最终结果1.2254.2620.11.3373.2460.9572031.3213.3060.101.2973.2960.481.2813.2750.1491.2713.2190.最终结果1.2713.2190.由表2可以看出迭代结果在经过若干代后已经趋于稳定;同时随着迭代次数的增加,最优值越来越靠近目标值。对原有遗传算法进行改进,在进行重组时将最好的两个个体保留下来直接进入下一次迭代,剩余个体继续保持原来重组方式。表3不同遗传算法运算比对表

5、原遗传算子改进遗传算子第三次运行第四次运行第五次第六次1.2451.2531.2671.2513.2593.2513.2353.2490.0.0.0.由表3可以看出实验结果稳定。附录(演化算法java实现代码):importjava.lang.Math;importjava.util.Random;publicclassGA{publicstaticfinalintPOP_SIZE=30;//种群数目publicstaticString[]pop=newString[POP_SIZE];//种群

6、编码publicstaticPair[]result=newPair[POP_SIZE];//种群代表的结果publicstaticfinalintLENGTH=28;//编码长度,因为要精确到小数点后六位,所以编为22位长,有一公式可参考publicstaticdouble[]fitness=newdouble[POP_SIZE];//存放种群适应度publicstaticfinaldoublePC=0.90;//交叉率publicstaticfinaldoublePM=0.1;//变异率pu

7、blicstaticdouble[]p=newdouble[POP_SIZE];//轮盘赌方法个体适应度概率publicstaticdouble[]q=newdouble[POP_SIZE];//q[i]是前i项p之和publicstaticPairpair=newPair(0,0);publicstaticMaxmax=newMax(0,pair);//最大值publicstaticRandomrandom=newRandom();//用于产生随机数的工具/*约束条件*/publicstati

8、cdoublegx1(Pairresult){returnMath.pow(result.getX1(),2)-result.getX2()+1;}publicstaticdoublegx2(Pairresult){return1-Math.pow(result.getX1(),2)+Math.pow(result.getX2()-4,2);}/*初始化种群*/publicvoidinitialization(){Stringa="";for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。