版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能优化算法第一次作业 -遗传算法 洪文杰 S151000853问题:用遗传算法求解f(x)=xsin(10*x)+2.0的最大值,x取-1,2.一、分析:遗传算法基本思路二、实例简介1. 产生初始种群s1= 13 (01101)s2= 24 (11000) s3= 8 (01000)s4= 19 (10011)2. 计算适应度假定适应度为f(s)=s2 ,则f (s1) = f(13) = 132 = 169f (s2) = f(24) = 242 = 576f (s3) = f(8) = 82 = 64f (s4) = f(19) = 192 = 3613.
2、0;选择染色体的选择概率为:染色体的累计概率为:根据上面的式子,可得到:例如设从区间0, 1中产生4个随机数: r1 = 0.450126, r2 = 0.110347 r3 = 0.572496, r4 = 0.98503 4. 交叉基本遗传算法(SGA)中交叉算子采用单点交叉算子。单点交叉运算5. 变异6. 至下一代,适应度计算选择交叉变异,直至满足终止条件三、解决问题初始化输入种群大小,交叉概率,变异概率等条件根据精度编码将区间-1,2
3、分成Num份,再通过Num求解种群基因个数(-1,2用二进制等分)计算每个个体的适应度,该题适应度函数就是f(X)根据适应度求解积累概率,并用轮盘赌法选着个体产生备选种群在备选种群中,利用交叉概率,随机选择个体,再随机选择交叉点进行单点交叉,形成交叉后的种群在交叉后种群中,利用变异概率,随机选择个体,再随机选择变异点进行单点变异,形成变异后的种群是否达到迭代次数输出结果最大值。是否 四、实验结果源代码:/*问题:用遗传算法求解f(x)=xsin(10*x)+2.0的最大值,x取-1,2.*/*洪文杰 2016-3-9. 智能优化算法 第一次作业*/#include<iostream>
4、;/#includ<stdio.h>#include<stdlib.h>#include<math.h>#include<time.h>#include<float.h>using namespace std;#define NUMBER 50/种群规模#define GENE_NUMBER 10000/迭代次数int UnitNUMBER30;/初始种群int Unit_chooseNUMBER30;/选择、交叉、变异后的种群int NumberNUMBER;/被选择的个体编号float FitnessNUMBER;/适应度floa
5、t select_probabilityNUMBER;/选择概率float accumula_probabilityNUMBER ;/积累概率float f_max=0.0;/最大值float f_x=0.0;/最大值对应的自变量int hwj_coding(int start,int end);/编码void hwj_initial_population(int num);/产生初始种群void hwj_fitness(int num);/适应度计算void hwj_choose();/选择个体int hwj_binary_search(int l, int r,float temp);/查
6、找选择/void hwj_N_M(int a,int b,int N, int M);/从M个数中选N个不一样的数void hwj_cross(int num,float cross);/交叉后的得到种群void hwj_aberrance(int num,float aberrance);/变异后的得到的种群void hwj_max(int num);/找到最适应的个体int main()int strat,end;/区间int Num;/编码大小float cross=0.8;/交叉概率float aberrance = 0.04;/变异概率int key=1;cout<<&q
7、uot;请输入求解区间:"<<endl;cin>>strat>>end;Num=hwj_coding(strat,end);cout<<"Num:"<<Num<<endl;/cout<<"-1-"<<endl; hwj_initial_population(Num);/cout<<"-2初始种群-"<<endl;/*for(int i=0;i<NUMBER;i+)for(int j=0;j<Nu
8、m;j+) cout<<Unitij<<' 'cout<<endl;*/while(key!=GENE_NUMBER)hwj_fitness(Num);/cout<<"-3适应度-"<<endl;/for(int i=0;i<NUMBER;i+)/cout<<Fitnessi<<endl;/hwj_choose();/cout<<"-4被选择的个体-"<<endl;/*for(int i=0;i<NUMBER;i+)fo
9、r(int j=0;j<Num;j+) cout<<Unit_chooseij<<' 'cout<<endl;*/hwj_cross(Num,cross);/*cout<<"-5交叉后的种群-"<<endl;for(int i=0;i<NUMBER;i+)for(int j=0;j<Num;j+) cout<<Unitij<<' 'cout<<endl;*/hwj_aberrance(Num,aberrance);/*cout&l
10、t;<"-6变异后的种群-"<<endl;for(int i=0;i<NUMBER;i+)for(int j=0;j<Num;j+) cout<<Unitij<<' 'cout<<endl;*/key+;hwj_max(Num);cout<<"最大值是对应的x值是:"<<endl;cout<<f_x<<endl;cout<<"最大值为:"<<f_max<<endl;ret
11、urn 0;int hwj_coding(int start,int end)/种群编码float precision;int temp=2;int sum;int N=1;cout<<"请输入精度范围:"<<endl;cin>>precision;if(precision=0) cout<<"对不起精度不能为零:"<<endl; return 0;elsesum=(end-start)/precision;cout<<"sum:"<<sum<&
12、lt;endl;while(temp<sum)temp*=2; N+;return N;void hwj_initial_population(int num)/生成初始种群srand(time(NULL);for(int i=0;i<NUMBER;i+)for(int j=0;j<num;j+)Unitij=rand()%2;void hwj_fitness(int num)/计算适应度float sum;int temp;for(int i=0;i<NUMBER;i+)temp=1;sum=0.0;for(int j=num-1;j>=0;j-)sum+=Un
13、itij*temp;temp*=2.0;Fitnessi=sum*3/(temp-1.0)-1.0;/cout<<Fitnessi;/cout<<"-+"Fitnessi=Fitnessi*sin(10*3.1415926*Fitnessi)+2.0;/cout<<Fitnessi<<endl;int hwj_binary_search(int l,int r,float temp)for(int i=0;i<NUMBER;i+)if(temp<=accumula_probabilityi&&tem
14、p>accumula_probabilityi-1)return i;return -1; void hwj_choose()/选择个体float sum=0.0;float temp;int i;for(i=0;i<NUMBER;i+)sum+=Fitnessi;select_probability0=Fitness0/sum;temp=accumula_probability0=select_probability0;for(i=1;i<NUMBER;i+)select_probabilityi=Fitnessi/sum;temp+=select_probabilityi
15、;accumula_probabilityi=temp;/cout<<accumula_probabilityi<<endl;for(i=0;i<NUMBER;i+)/srand(time(NULL);temp=(rand()%1000000)/1000000.0;/cout<<temp;Numberi=hwj_binary_search(0,NUMBER,temp);/cout<<Numberi<<endl;for(int j=0;j<NUMBER;j+)Unit_chooseij=UnitNumberij;/*void
16、 hwj_N_M(int a,int b,int N,int M)/从M个数中选N个不一样的数 int i=1;srand(time(NULL);a0=rand()%M;ba0=1;while(i!=N) ai=rand()%M; if(bai=0) i+; bai=1; cout<<ai<<endl; / cout<<ai<<' '<<bai<<endl; */void hwj_cross(int num,float cross)/交叉后的得到种群int num_cross=NUMBER*cross;in
17、t k;/交叉点int i , j;if(num_cross%2!=0)num_cross=num_cross+1;/需要交叉的个体数int croNUMBER;/被交叉的个体编号int tempNUMBER;/是否交叉数组一览for(i=0;i<NUMBER;i+)croi=-1;tempi=0;/hwj_N_M(cro,temp,num_cross,NUMBER); srand(time(NULL); cro0=rand()%NUMBER; tempcro0=1; i=1; while(i!=num_cross) croi=rand()%NUMBER; if(tempcroi=0)
18、tempcroi=1; i+; /for(int i=0;i<NUMBER;i+)/cout<<tempi<<" "<<croi<<endl;/cout<<num_cross<<endl;for(i=0;i<num_cross/2;i+)srand(time(NULL);k=rand()%num;for(j=0;j<num;j+)if(j<=k)Unitij=Unit_choosecronum_cross-ij; Uniti+num_cross/2j=Unit_choosecro
19、ij;elseUnitij=Unit_choosecroij; Uniti+num_cross/2j=Unit_choosecroij;for(i=0;i<NUMBER;i+)/cout<<tempi<<endl;if(tempi=0)for(j=0;j<num;j+)Unitnum_crossj=Unit_chooseij;num_cross+;void hwj_aberrance(int num,float aberrance)/变异后的得到的种群int num_aberrance=NUMBER*aberrance;/变异的个体数int k;/变异点int abeNUMBER;/变异的个体编号int tempNUM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州贵阳市城乡规划局云岩分局招聘工作人员(专科可)易考易错模拟试题(共500题)试卷后附参考答案
- 2025贵州茅台酒股份限公司和义兴酒业分公司社会招工200人易考易错模拟试题(共500题)试卷后附参考答案
- 2025贵州省毕节市七星关区事业单位招聘68人易考易错模拟试题(共500题)试卷后附参考答案
- 2025绍兴诸暨市国资产经营限公司及下属子公司招聘12名易考易错模拟试题(共500题)试卷后附参考答案
- 2025秋季吉林延边州事业单位招聘应征入伍高校毕业生39人重点基础提升(共500题)附带答案详解
- 2025福建福州市长乐区智航城市管理限公司第一批行政人员招聘2人易考易错模拟试题(共500题)试卷后附参考答案
- 2025福建厦门市民数据服务股份限公司招聘6人易考易错模拟试题(共500题)试卷后附参考答案
- 2025湖南郴州桂阳县蓉城控股集团限公司招聘7人(第二次)易考易错模拟试题(共500题)试卷后附参考答案
- 2025湖南常德市人民政府政务服务中心招聘综合窗口人员16人重点基础提升(共500题)附带答案详解
- 2025湖北黄鹤楼科技限公司招聘32人易考易错模拟试题(共500题)试卷后附参考答案
- 电动前移式叉车操作员考试题有答案
- 2025淘宝服饰9-10月刊趋势洞察
- 无损检测公司管理制度
- 吉林市中储粮2025秋招面试半结构化模拟题30问及答案
- 11.《牛郎织女》(二) 课件 2025-2026学年 统编版语文五年级上册
- 广元市2025四川广元市第十六批引进急需紧缺人才24人笔试历年参考题库附带答案详解
- 广东省新能源汽车出口竞争力问题提升策略研究
- 2024版中国高血压防治指南(完整版)
- 新公司法知识竞赛题库与参考答案
- 备战2026年高考化学三年(2023-2025)真题汇编(通.用版)专题12工艺流程综合题(原卷版)
- DB11∕T 2330-2024 行业协会商会诚信建设规范
评论
0/150
提交评论