欢迎来到天天文库
浏览记录
ID:57573713
大小:43.00 KB
页数:10页
时间:2020-08-27
《基于基本遗传算法的函数最优化.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于基本遗传算法的函数最优化*//*同济大学计算机系王小平2000年5月*//**************************************************************/#include#include#include#include#include#include#include"graph.c"#include"operator.c"#definePOP_SIZE25/*种群大小*/#defineG_LENGTH8/*染色体长
2、度*/#defineC_RATE0.2/*交叉概率*/#defineM_RATE0.01/*变异概率*/#defineXMAX255/*函数变量最大值*/#defineX1350/*函数图形区窗口左上点X坐标*/#defineY140/*函数图形区窗口左上点Y坐标*/#defineXR1255/*函数图形区窗口长度*/#defineYR1200/*函数图形区窗口高度*/#defineX2360/*适应度图形区窗口左上点X坐标*/#defineY2280/*适应度图形区窗口左上点Y坐标*/#defineXR2250/*适应度图形区窗口长度*/#defineYR2100/*适应度
3、图形区窗口宽度*/#defineSTEP2/*适应度图形区X方向步长*/voidinitialize_gene(gene,pop_size,g_length)/*种群中个体遗传基因型的初始化*/unsignedchar*gene;/*遗传基因*/intpop_size;/*种群大小*/intg_length;/*个体染色体长度*/{inti,j;randomize();for(i=0;i4、gth)/*基因型到表现型的变换--解码*/unsignedchar*gene;/*基因型*/intg_length;/*染色体长度*/{inti,pheno;pheno=0;for(i=0;i5、ble*func;/*评价函数*/double*max_fit,*avg_fit;/*最大适应度与平均适应度*/intpop_size;/*种群大小*/intg_length;/*个体染色体长度*/{unsignedchar*g;/*个体的遗传基因指针变量*/intpheno;/*个体的表现型*/inti,j;doublef;*max_fit=0.0;*avg_fit=0.0;f=(double)pop_size;for(i=0;i6、s+i)=*(func+pheno);if(*(fitness+i)>*max_fit)*max_fit=*(fitness+i);*avg_fit=*avg_fit+*(fitness+i)/f;}}voidsga_reproduction(gene,fitness,new_gene,new_fitness,pop_size,g_length)/*基于个体的适应度评价进行新一代个体的选择(轮盘赌方法),选择后分别将新的基因型和适应度代入到新个体中*/unsignedchar*gene;/*当前代的个体遗传基因型*/unsignedchar*new_gene;/*新一代的个体7、遗传基因型*/double*fitness;/*当前代的个体适应度*/double*new_fitness;/*新一代的个体适应度*/intpop_size;/*种群大小*/intg_length;/*染色体长度*/{doublesum_of_fitness;doubleborder;doubler;/*轮盘上的选择位置变量*/inti,j;intnum;sum_of_fitness=0.0;for(i=0;i
4、gth)/*基因型到表现型的变换--解码*/unsignedchar*gene;/*基因型*/intg_length;/*染色体长度*/{inti,pheno;pheno=0;for(i=0;i5、ble*func;/*评价函数*/double*max_fit,*avg_fit;/*最大适应度与平均适应度*/intpop_size;/*种群大小*/intg_length;/*个体染色体长度*/{unsignedchar*g;/*个体的遗传基因指针变量*/intpheno;/*个体的表现型*/inti,j;doublef;*max_fit=0.0;*avg_fit=0.0;f=(double)pop_size;for(i=0;i6、s+i)=*(func+pheno);if(*(fitness+i)>*max_fit)*max_fit=*(fitness+i);*avg_fit=*avg_fit+*(fitness+i)/f;}}voidsga_reproduction(gene,fitness,new_gene,new_fitness,pop_size,g_length)/*基于个体的适应度评价进行新一代个体的选择(轮盘赌方法),选择后分别将新的基因型和适应度代入到新个体中*/unsignedchar*gene;/*当前代的个体遗传基因型*/unsignedchar*new_gene;/*新一代的个体7、遗传基因型*/double*fitness;/*当前代的个体适应度*/double*new_fitness;/*新一代的个体适应度*/intpop_size;/*种群大小*/intg_length;/*染色体长度*/{doublesum_of_fitness;doubleborder;doubler;/*轮盘上的选择位置变量*/inti,j;intnum;sum_of_fitness=0.0;for(i=0;i
5、ble*func;/*评价函数*/double*max_fit,*avg_fit;/*最大适应度与平均适应度*/intpop_size;/*种群大小*/intg_length;/*个体染色体长度*/{unsignedchar*g;/*个体的遗传基因指针变量*/intpheno;/*个体的表现型*/inti,j;doublef;*max_fit=0.0;*avg_fit=0.0;f=(double)pop_size;for(i=0;i6、s+i)=*(func+pheno);if(*(fitness+i)>*max_fit)*max_fit=*(fitness+i);*avg_fit=*avg_fit+*(fitness+i)/f;}}voidsga_reproduction(gene,fitness,new_gene,new_fitness,pop_size,g_length)/*基于个体的适应度评价进行新一代个体的选择(轮盘赌方法),选择后分别将新的基因型和适应度代入到新个体中*/unsignedchar*gene;/*当前代的个体遗传基因型*/unsignedchar*new_gene;/*新一代的个体7、遗传基因型*/double*fitness;/*当前代的个体适应度*/double*new_fitness;/*新一代的个体适应度*/intpop_size;/*种群大小*/intg_length;/*染色体长度*/{doublesum_of_fitness;doubleborder;doubler;/*轮盘上的选择位置变量*/inti,j;intnum;sum_of_fitness=0.0;for(i=0;i
6、s+i)=*(func+pheno);if(*(fitness+i)>*max_fit)*max_fit=*(fitness+i);*avg_fit=*avg_fit+*(fitness+i)/f;}}voidsga_reproduction(gene,fitness,new_gene,new_fitness,pop_size,g_length)/*基于个体的适应度评价进行新一代个体的选择(轮盘赌方法),选择后分别将新的基因型和适应度代入到新个体中*/unsignedchar*gene;/*当前代的个体遗传基因型*/unsignedchar*new_gene;/*新一代的个体
7、遗传基因型*/double*fitness;/*当前代的个体适应度*/double*new_fitness;/*新一代的个体适应度*/intpop_size;/*种群大小*/intg_length;/*染色体长度*/{doublesum_of_fitness;doubleborder;doubler;/*轮盘上的选择位置变量*/inti,j;intnum;sum_of_fitness=0.0;for(i=0;i
此文档下载收益归作者所有