




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
半边也函数的应用半变异函数拟合指数模型程序(c+代码)#include #include #include #include #include #define S 1 /*试验次数 */#define G 2000 /*混合迭代次数*/#define P 200 /*个体总数*/#define M 20 /*族群数*/#define I 10 /*因此,一个族群中的个体数是10*/#define V 3 /*个体维数*/#define N 10 /*族群内更新次数*/#define MAX 10#define MIN 0double DMAX=1.0; /*蛙跳的最大值*/double DMIN=0.4; /*蛙跳的最大值*/double D=MAX/1; /*蛙跳的最大值*/int i1,i2,i3,i4,ii;int try_number=0;int try_max=5;double C=1.0;#define R (double)(rand()%10000)/10000)/0-1之间的随机数,精度为1/10000/#define R1 rand()%100/100.0static int kk;double PI=3.14159265;double Tolerance=0.0000001;/收敛精度double c3=0.03;/扰动幅度double e=2.718281828459;/自然对数底数int sm=3;int bz=0;/扰动因子标志double awV;double nihe172=1115.658026,8.70628355,1915.362904,8.20840555,2467.305693,9.1856689,2952.330784,9.0543057,5095.207855,9.132906445,5418.830566,8.852431395,4146.89209,9.45153145,6037.806376,9.103558859,4818.459044,7.2313171,5143.558017,9.0538129,5459.844361,9.74985695,5762.570046,8.6310193,6060.453719,9.194387,6356.051127,10.398948,6651.015103,9.8449629,6941.254523,7.2279982,7223.868903,6.579128;typedef struct double dV;double fitness;Individal;typedef struct double hV;heli;Individal pwM;/*族群中个体最差位置*/Individal pbM;/*族群中个体最好位置*/Individal px;/*全体中最好位置*/Individal individualP;/*全部个体*/Individal popMI;/*排序后的群组*/Individal tempM;Individal temp1I;Individal tem;Individal temxS;/*计算标准差*/*选择测试函数为Sphere*/double fitness(double a)int i;double sum=0.0;double sum1=0.0;double s1=0.0,h1=0.0;double x1V+1;for(i=0;iV;i+)x1i=ai;for(i=0;iV;i+) for(i=0;ix12)sum1=x10+x11;elsesum1=nihei1-(x10+x11*(1.5*nihei0-0.5*pow(nihei0,3)/pow(x12,3); sum=sum+sum1;return sum; /*对每一个个体初始化*/void init() int i,j; srand(unsigned)time(NULL)+kk+);for(i=0;iP;i+)for(j=0;jV;j+)individuali.dj=R*(MAX-MIN)+MIN;individuali.fitness=fitness(individuali.d);px.fitness=individualP-1.fitness;/*按照适应度降序对全部个体进行排序和族群划分*/void sort()int i,j,k;for(i=1;iP;i+)for(j=0;jP-i;j+)if(individualj.fitnessindividualj+1.fitness) tem=individualj;individualj=individualj+1;individualj+1=tem; k=0;/*按照规则分组*/ for(i=0;iI;i+) for(j=0;jindividualP-1.fitness)px=individualP-1;for(i=0;iM;i+)pwi=popi0;pbi=popiI-1;/*对某个群组中的个体进行重新排序*/void sortPop(int b)int i,j;for(i=1;iI;i+)for(j=0;jI-i;j+)if(popbj.fitnesspopbj+1.fitness) tem=popbj; popbj=popbj+1; popbj+1=tem; /*群组内更新*/void update()int i,j,k,l,n;double a;double b; for(n=0;nN;n+) for(i=0;iM;i+) /temp1I=popi; a=0.0; b=0.0;/fitnessFw(i);/D=DMIN+(DMAX-DMIN)*(G-i2)/G; /D=DMIN+(DMAX-DMIN)*pow(e,-30*pow(i2/G,sm); for(j=0;jD) if(tempi.dj0) tempi.dj=D;else tempi.dj=-D; tempi.dj+=pwi.dj;if(tempi.djMAX)tempi.dj=MAX; if(tempi.djMIN)tempi.dj=MIN; a=fitness(tempi.d); tempi.fitness=a; if(apwi.fitness) popi0=tempi; sortPop(i); pwi=popi0; pbi=popiI-1; else/标志 for(k=0;kD) if(tempi.dk0.0) tempi.dk=D; else tempi.dk=-D; tempi.dk+=pwi.dk;if(tempi.dkMAX)tempi.dk=MAX; if(tempi.dkMIN)tempi.dk=MIN; / a+=tempi.dk*tempi.dk;/适应度值计算/z=z+(x1i*x1i-10*cos(2*PI*x1i)+10); a=fitness(tempi.d); tempi.fitness=a; if(apwi.fitness) popi0=tempi; sortPop(i); pwi=popi0; pbi=popiI-1; else for(l=0;lV;l+) popi0.dl=R*(MAX-MIN)+MIN; / b+=popi0.dl*popi0.dl;/适应度值计算 /popi0.fitness=b; popi0.fitness=fitness(popi0.d); sortPop(i); pwi=popi0; pbi=popiI-1; /标志 /*M循环 for(ii=0;iipbii.fitness) px=pbii;/*N循环/*将popMI复制到individual*/void copy()int i,j,k;i=0;for(j=0;jM;j+) for(k=0;kI;k+) individuali=popjk; i+;void report()printf(第%d次试验极值为%.10en,i1+1,px.fitness);double sigma() int j; double f=0.0; double fitness_avg=0.0; for (j=0;jS;j+) / printf(极值e为%16fn,temxj.fitness);fitness_avg=fitness_avg+temxj.fitness; fitness_avg=fitness_avg/S; printf(平均值为%.16en,fitness_avg); /printf(%d极值e为%.16fn,j,temxj.fitness); for (j=0;jS;j+) f=f+fabs(temxj.fitness-fitness_avg)*fabs(temxj.fitness-fitness_avg); / printf(极值e为%.16fn,f); f=sqrt(f/(S-1); return f;void main() clock_t start,end; double ave,sigmax; FILE *f=fopen(result(SFLA).txt,w); ave=0.0;start=clock(); for(i1=0;i1S;i1+) init(); for(i2=0;i2G;i2+) sort(); update(); copy();temxi1=px;report(); ave=ave+px.fitness; sigmax=sigma(); end=clock(); ave=ave/S; /printf(平均极值为n%.16fnCompleted!,ave);printf(50次试验标准差为%.16en,sigmax); printf(50次试验平均运行时间=%.2fsecondsn,(double)(end-start)/(S*(double)CLOCKS_PER_SEC); printf(50次试验的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 25556:2025 EN Ageing societies - General requirements and guidelines for ageing-inclusive digital economy
- 【正版授权】 IEC 60228:2004 EN-D Conductors of insulated cables
- 【正版授权】 IEC 60092-301:2025 EN Electrical installations in ships - Part 301: Equipment - Generators and motors
- 校园食品安全基础知识培训
- 校园防卫安全知识培训课件
- 校园消防知识培训课件主持词
- 芜湖工会考试试题及答案
- 出镜人员安全考试试题及答案
- 防暑安康面试题及答案
- 2025年贵州省中考语文真题(含答案)
- 2025年医疗器械生产企业员工培训试题(附答案)
- 2025年中药调剂师试卷及答案
- 破局向新 持续向上-2025年人力资源发展趋势报告-智联招聘北大国发院
- 2025年公平竞争审查知识竞赛考试练习题库(正式版)含答案
- 自适应加密动态调整-洞察及研究
- 2025年北京市房屋租赁合同范本(个人版)
- 手术室护理个案分析
- DB4451T 4-2023 潮州工夫茶艺技术规程
- 运管助理面试题及答案
- 2025至2030年中国手机电池块市场分析及竞争策略研究报告
- KYT考试题及答案
评论
0/150
提交评论