用c语言写一个遗传算法程序解决y=x*x的最大值问题,x取0--31,种群规模为4,用8位二进制数表示,非常急!浅显一点
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/27 17:18:52
用c语言写一个遗传算法程序解决y=x*x的最大值问题,x取0--31,种群规模为4,用8位二进制数表示,非常急!浅显一点
用c语言写一个遗传算法程序解决y=x*x的最大值问题,x取0--31,种群规模为4,用8位二进制数表示,非常急!
浅显一点
用c语言写一个遗传算法程序解决y=x*x的最大值问题,x取0--31,种群规模为4,用8位二进制数表示,非常急!浅显一点
一个非常简单的遗传算法源代码,是由Denis Cormier (North Carolina State University)开发的,Sita S.Raghavan (University of North Carolina at Charlotte)修正.代码保证尽可能少,实际上也不必查错.对一特定的应用修正此代码,用户只需改变常数的定义并且定义“评价函数”即可.注意代码的设计是求最大值,其中的目标函数只能取正值;且函数值和个体的适应值之间没有区别.该系统使用比率选择、精华模型、单点杂交和均匀变异.如果用Gaussian变异替换均匀变异,可能得到更好的效果.代码没有任何图形,甚至也没有屏幕输出,主要是保证在平台之间的高可移植性.读者可以从ftp.uncc.edu,目录 coe/evol中的文件prog.c中获得.要求输入的文件应该命名为‘gadata.txt’;系统产生的输出文件为‘galog.txt’.输入的文件由几行组成:数目对应于变量数.且每一行提供次序——对应于变量的上下界.如第一行为第一个变量提供上下界,第二行为第二个变量提供上下界,等等.
//
.
代码太多 你到下面呢个网站看看吧
void main(void)
{
int i;
if ((galog = fopen("galog.txt","w"))==NULL)
{
exit(1);
}
generation = 0;
fprintf(galog,"\n generation best average standard \n");
fprintf(galog," number value fitness deviation \n");
initialize();
evaluate();
keep_the_best();
while(generation