遗传算法解决函数优化问题

遗传算法解决函数优化问题

ID:26084711

大小:128.50 KB

页数:7页

时间:2018-11-24

遗传算法解决函数优化问题_第1页
遗传算法解决函数优化问题_第2页
遗传算法解决函数优化问题_第3页
遗传算法解决函数优化问题_第4页
遗传算法解决函数优化问题_第5页
资源描述:

《遗传算法解决函数优化问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WORD格式可编辑实验一遗传算法解决函数优化问题一、实验目的1.掌握遗传算法的基本原理和步骤。2.复习VB、VC的基本概念、基本语法和编程方法,并熟练使用VB或VC编写遗传算法程序。二、实验内容1.上机编写程序,解决以下函数优化问题:2.调试程序。3.根据实验结果,撰写实验报告。三、实验原理遗传算法是一类随机优化算法,但它不是简单的随机比较搜索,而是通过对染色体的评价和对染色体中基因的作用,有效地利用已有信息来指导搜索有希望改善优化质量的状态。标准遗传算法流程图如下图所示,主要步骤可描述如下:①随机产生一组初始个体构成初始种群。②

2、计算每一个体的适配值(fitnessvalue,也称为适应度)。适应度值是对染色体(个体)进行评价的一种指标,是GA进行优化所用的主要信息,它与个体的目标值存在一种对应关系。③判断算法收敛准则是否满足,若满足,则输出搜索结果;否则执行以下步骤。④根据适应度值大小以一定方式执行复制操作(也称为选择操作)。⑤按交叉概率pc执行交叉操作。⑥按变异概率pm执行变异操作。⑦返回步骤②。专业知识分享WORD格式可编辑NN计算各个体的适配值(适应度)算法收敛准则满足?Yrandom[0,1]

3、,1]#include#include#include#definebyteunsignedchar#definestep200//步长#defineMAX50#defineN10//随机数个数#definePc0.74//被选择到下一代的概率,个数=Pc*N,小于N下一代数=上一代,不用处理#definePt0.25//交叉的概率,个数=Pt*N

4、舍,小于N0~(n2+1)随机数,之后部分开始交叉#definePm0.01//变异的概率,个数=Pm*N*n2入,小于N0~(N*(n2+1))随机数/(n2+1)=个体,0~(N*(n2+1))随机数%(n2+1)=该个体基因位置#definen215//2的15次方,共16位#definenext_t(int)(Pt*N)//交叉个数#definenext_m(int)(Pm*N+1)//变异个数向后约等于#definee0.001//次数限制阈值/*intN=10;//随机数个数floatPc=0.74;//被选择到下一代

5、的概率,个数=Pc*N,小于N下一代数=上一代,不用处理floatPt=0.25;//交叉的概率,个数=Pt*N舍,小于N0~(n2+1)随机数,之后部分开始交叉floatPm=0.01;//变异的概率,个数=Pm*N*n2入,小于N0~(N*(n2+1))随机数/(n2+1)=个体,0~(N*(n2+1))随机数%(n2+1)=该个体基因位置*/bytebitary[N][n2+1],bitary0[N][n2+1];//二进制intsrc1[N];专业知识分享WORD格式可编辑floatShowType(inta);//表现型

6、voidBinNum(inta);//二进制位数n2floatfit_func(floata);//适应度voidDecToBin(intsrc,intnum);//十进制转二进制voidBinToDec(void);//十进制转二进制intselectT(floata,floatb[10]);//选择交叉个体intselectM(floata,floatb[10]);//选择变异个体voidmain(void){//范围是[-100,100]***************************intsrc[N],i=0,j=0

7、,k=0,count=0;//十进制floatshow[N];//表现型floatfit[N],sumfit=0;//适应度floatpcopy[N];//优胜劣汰,遗传到下一代的概率fit[i]/总和(fit[i])floatpacc[N];//pcopy[i]累加概率值floatprand[N];//随机产生N个0~1的下一代概率intiselect;//根据概率选择到的个体序号intnew_select[N];//根据概率选择到的个体intnew_T[next_t],new_M[next_m];floatmin,min1;p

8、rintf("随机数(原始母体),表现型,适配值");srand((unsigned)time(NULL));for(i=0;i-100~100的十

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

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

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