用浮点数编码解决遗传算法问题

用浮点数编码解决遗传算法问题

ID:27261131

大小:55.50 KB

页数:9页

时间:2018-12-02

用浮点数编码解决遗传算法问题_第1页
用浮点数编码解决遗传算法问题_第2页
用浮点数编码解决遗传算法问题_第3页
用浮点数编码解决遗传算法问题_第4页
用浮点数编码解决遗传算法问题_第5页
资源描述:

《用浮点数编码解决遗传算法问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、遗传算法作业一:用浮点数编码解决以下问题。二:构造过程。第一步:确定决策变量和约束条件。题目中已给出了该问题的决策变量及约束条件。第二步:建立优化模型。既是题目给出所要求的。第三步:确定编码方法。第四步:确定解码方法。第五步:确定个体评价方法。这里可将个体的适应度直接取为对应的目标函数值,并且不再对它做其他变化处理,即有:F(X)=f(x1,x2)第六步:设计遗传算子。选择运算使用比例运算算子;交叉运算是用单点交叉算子;变异运算使用基本位变异算子。第七步:确定遗传算法的运行参数。对于本例,设计基本遗传算法的运行参数如下:MAXGENS=80/*最大世代数*/PO

2、PSIZE=20/*种群大小*/NVARS=2/*变量个数*/PXOVER=0.2/*交叉概率*/PMUTATION=0.1/*变异概率*/三:代码如下。#include"stdafx.h"#include#include#include#defineMAXGENS80/*最大世代数*/#definePOPSIZE20/*种群大小*/#defineNVARS2/*变量个数*/#definePXOVER0.2/*交叉概率*/#definePMUTATION0.1/*变异概率*/#defineFALSE0#def

3、ineTRUE1intgeneration;/*当前世代*/intcur_best;/*最佳个体*/structgenotype{doublegene[NVARS];doublefitness;doubleupper[NVARS];doublelower[NVARS];doublerfitness;doublecfitness;};structgenotypepopulation[POPSIZE+1];structgenotypenewpopulation[POPSIZE+1];voidinitialize(void);doublerandval(double,

4、double);voidevaluate(void);voidkeep_the_best(void);voidelitist(void);voidselect(void);voidcrossover(void);voidXover(int,int);voidswap(double*,double*);voidmutate(void);voidreport(void);voidinitialize(void){inti,j;doublelbound,ubound;for(i=0;i

5、f",&ubound);for(j=0;j

6、{doubleval;val=((double)(rand()%1000)/1000.0)*(high-low)+low;return(val);}voidevaluate(void){intmem;inti;intX=0;intY=0;doublex[NVARS+1];for(mem=0;mem

7、));}population[mem].fitness=(-1)*X*Y;}}}voidkeep_the_best(){intmem;inti;cur_best=0;for(mem=0;mempopulation[POPSIZE].fitness){cur_best=mem;population[POPSIZE].fitness=population[mem].fitness;}}for(i=0;i

8、opulation[cu

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

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

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