免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 尿酸结石机制-洞察与解读
- 病态窦房结综合征治疗分析2026
- 云南省大理州新世纪中学2026届化学高二上期末检测试题含答案
- 2025 三年级数学上册倍的认识知识框架课件
- 浙江省各地2026届化学高二第一学期期中联考试题含解析
- 幼儿园消防安全课件播放
- 贵州省上学期小学五年级数学期中重点难点突破试卷
- 安全教育之珍爱生命课件
- 2026届山东省新泰市二中高三上化学期中质量跟踪监视试题含解析
- 菏泽市购房合同
- 武装押运考试题目及答案
- 党的二十届四中全会精神题库
- 【MOOC】美术鉴赏-河南理工大学 中国大学慕课MOOC答案
- QB/T 2660-2024 化妆水(正式版)
- JJG 443-2023燃油加油机(试行)
- 全国中学生英语能力竞赛(NEPCS)高一组决赛(含答案和听力)
- 《现代汉语修辞》PPT课件(完整版)
- 现浇混凝土工程工程量计算方法
- 成美行销制定成功的品牌战略定位致胜课件
- 高速铁路沉降变形观测及评估方案
- 高速公路交安工程施工总结
评论
0/150
提交评论