- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用演化算法求约束优化问题
姓名: 学号 指导老师:
1问题:
用遗传算法求解下列约束优化问题:
2 演化算法计算过程:
2.1 个体的编码:
采用实数向量编码,每一个个体是一实数对。本文采用二进制编码,自变量精度取小数点后三位,一个自变量需要二进制位数为14位,总共需要28位二进制来编码两个自变量。
2.2 译码:
将二进制编码翻译为变量的实数形式:
2.3 适应函数:
本文使用目标函数作为适应函数
2.4 选择策略:
采用轮盘赌算法。
2.5 杂交算子:
随机挑选两条不同的染色体,随机选出杂交位点,然后交换片段。完成后检查重组后的染色体是否满足约束条件,若不满足,则舍弃,恢复原染色体并重新杂交,直到完成15对染色体的杂交。
2.6 变异算子:
随机生成14个随机数对应于每条染色体的每个基因位点,若则对该基因位点进行变异。同时完成变异后检查是否满足约束条件,若不满足,则舍弃变异,恢复染色体并重新变异直到满足约束条件为止。
2.7 参数设置:
种群规模为30,最大代数为1000代,杂交概率0.9,变异概率0.1
2.8 初始化:
随机产生初始种群,自动生成初始群体,完成检查是否满足约束条件,若不满足,则重新初始化直到有30个个体满足约束条件为止。
2.9 终止条件:
算法运行所指定的最大代数后终止,即1000代后终止迭代。
3 实验结果
表1 四次实验结果比对表
迭代次数500 迭代次数1000 第一次运行 第二次运行 第三次运行 第四次运行 1.227 1.248 1.245 1.253 3.303 3.342 3.259 3.251 0.10944011045 0.09385124541 0.11469797685 0.11279980732 由表1可以看出迭代次数越多遗传算法的效果可能越好;并且多次迭代结果较为稳定,证明没有陷入局部优化。
表2 某2次迭代过程表
代数(迭代总次数1000) 1 1.289 4.363 0.05720063406280318 31 1.295 4.23 0.07322047082080911 75 1.292 4.254 0.07519561586626718 134 1.241 4.256 0.09465988458390849 137 1.225 4.262 0.09525349615511472 最终结果 1.225 4.262 0.09525349615511472 1 1.337 3.246 0.0569004294795720 3 1.321 3.306 0.06461712393829212 10 1.297 3.296 0.08375858854088097 48 1.281 3.275 0.09739037920565881 149 1.271 3.219 0.10366960257048366 最终结果 1.271 3.219 0.10366960257048366
由表2可以看出迭代结果在经过若干代后已经趋于稳定;同时随着迭代次数的增加,最优值越来越靠近目标值。
对原有遗传算法进行改进,在进行重组时将最好的两个个体保留下来直接进入下一次迭代,剩余个体继续保持原来重组方式。
表3 不同遗传算法运算比对表
原遗传算子 改进遗传算子 第三次运行 第四次运行 第五次 第六次 1.245 1.253 1.267 1.251 3.259 3.251 3.235 3.249 0.11469797685 0.11279980732 0.10687750692 0.11349618572 由表3可以看出实验结果稳定。
附录(演化算法java实现代码):
import java.lang.Math;
import java.util.Random;
public class GA
{
public static final int POP_SIZE=30;//种群数目
public static String[] pop=new String[POP_SIZE];//种群编码
public static Pair[] result=new Pair[POP_SIZE];//种群代表的结果
public static final int LENGTH=28;//编码长度,因为要精确到小数点后六位,所以编为22位长,有一公式可参考
public static double[] fitness=new double[POP_SIZE];//存放种群适应度
public static final double PC=0.90;//交叉率
public stat
您可能关注的文档
- CPU的分类结构基本工作原理和主要参数解答.ppt
- 第3讲20120928湍流概念及方程解答.ppt
- 2015-2016学年高中政治3.9.2用对立统一的观点看问题课件新人教版必修4解答.ppt
- Origin在精馏板式塔中的应用解答.ppt
- 食源性疾病监测培训-要点分析.ppt
- 2015-2016学年高中政治3.8.2《用发展的观点看问题》课件新人教版必修4解答.ppt
- CPA审计复习题-2014版解答.ppt
- Origin使用教程解答.ppt
- 校本讲义——万用表使用、元器件测量部分解决方案.doc
- 矢量控制PI调节要点分析.docx
- 在2025年系统新提拔科级干部座谈会上的讲话提纲.docx
- 2024年度乡镇(街道)民主生活会班子检视问题整改方案(四个带头).docx
- 县委常委班子2024年度民主生活会主持词.docx
- 局领导2024年度民主生活会对照检查材料(“四个带头”方面).docx
- 某局领导班子2024年度民主生活会对照检查材料(“四个带头”方面).docx
- 2024年度民主生活会银行纪委书记个人对照检视发言材料.docx
- 街道人大工委议政代表会制度工作推进情况汇报.docx
- 2024年度民主生活会班子检视问题整改方案(四个带头).docx
- 2024年县委党建工作总结.docx
- 教育局民主生活会“四个带头”班子对照检查材料.docx
文档评论(0)