教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

遗传算法的c语言程序(2)

来源:网络收集 时间:2026-03-31
导读: for (j=point; jchromlength;j++){ ch=population[index[i]].chrom[j]; } population[index[i]].chrom[j]=population[index[i+1]].chrom[j]; population[index[i+1]].chrom[j]=ch; point=rand()%(popsize-i); temp=

for (j=point; j<chromlength;j++){ ch=population[index[i]].chrom[j]; }

population[index[i]].chrom[j]=population[index[i+1]].chrom[j]; population[index[i+1]].chrom[j]=ch;

point=rand()%(popsize-i); temp=index[i];

index[i]=index[point+i]; index[point+i]=temp;

}

void mutationoperator() //变异操作 {

int i,j; double p;

for (i=0;i<popsize;i++){ }

for(j=0;j<chromlength;j++){ p=rand()%1000/1000.0; if (p<pm){ }

}

population[i].chrom[j]=(population[i].chrom[j]=='0')?'1':'0';

}

void input() //数据输入

{ printf("初始化全局变量:\n"); printf(" 种群大小(50-500):"); scanf("%d", &popsize); if((popsize%2) != 0)

{ printf( " 种群大小已设置为偶数\n"); popsize++;};

printf(" 最大世代数(100-300):");

遗传算法的c语言程序

scanf("%d", &maxgeneration);

printf(" 交叉率(0.2-0.99):"); scanf("%f", &pc);

printf(" 变异率(0.001-0.1):"); scanf("%f", &pm);

}

void outputtextreport()//数据输出 {

int i;

double sum; double average; sum=0.0;

for(i=0;i<popsize;i++)

{sum+=population[i].value;}

average=sum/popsize;

printf("当前世代=%d\n当前世代平均函数值=%f\n当前世代最高函数值=%f\n",generation,average,population[best_index].value);

}

void main() //主函数

{ int i;

printf("本程序为求函数y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)的最大值 \n其中-2.048<=x1,x2<=2.048\n"); generation=0;

input();

generateinitialpopulation();

evaluatepopulation();

while(generation<maxgeneration) { }

generation++;

generatenextpopulation(); evaluatepopulation(); performevolution(); outputtextreport();

printf("\n"); printf(" 统计结果: "); printf("\n");

printf("最大函数值等于:%f\n",currentbest.fitness); printf("其染色体编码为:");

for (i=0;i<chromlength;i++) {

printf("%c",currentbest.chrom[i]);

遗传算法的c语言程序

}

printf("\n"); }

六 测试结果

遗传算法的c语言程序

遗传算法的c语言程序(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/124955.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)