- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/**********主函数************/main(){???double?sum;???int?i;???SampleChang();???do???{????sum=0.0;????generation=0;????initialpopulation();????evaluatepopulation();????for(i=0;ipop;i++)??????sum?+=?population[i].fitness;???}while(sum==0.0);???while(generationmaxgeneration)???{????generation++;????if(currentbest.fitness==0.98)??B=3;????nextpopulation();????evaluatepopulation();????if?(currentbest.fitness=0.92)?break;????performevolution();????outputtextreport();???}???getch();???check();???getch();}/**********样本处理函数************/void?SampleChang(void){???int?i;???for(i=0;iSIZE;i++)???{?????samp[i].tch_sign?/=?XS;???}}/**********权值的获得************/void?GetW(void){??????int?i,j;??????int?s=0;??????for(j=0;jHN;j++)??????{for(i=0;i=IN;i++){??w_h_i[j][i]=1.0*DecodeNum[s]/1023.0-0.5;??s++;}????????for(i=0;iOUT;i++){??w_o_h[j][i]=1.0*DecodeNum[s]/1023.0-0.5;??s++;????????}??????}??????for(i=0;iOUT;i++)??????{w_o_h[HN][i]=1.0*DecodeNum[s]/1023.0-0.5;s++;??????}}/**********网络输出计算************/void?NetOut(void){???int?i,j,l;???double?net;???double?o_h[SIZE][HN];???for(i=0;iSIZE;i++)???{?????for(j=0;jHN;j++)?????{???????net=0.0;???????for(l=0;lIN;l++)?????????net=net+samp[i].in_sign[l]*w_h_i[j][l];???????net=net+w_h_i[j][IN];???????o_h[i][j]=sigmoid(net);?????}?????for(j=0;jOUT;j++)?????{???????net=0.0;???????for(l=0;lHN;l++)?????????net=net+o_h[i][l]*w_o_h[l][j];???????net=net+w_o_h[HN][j];???????o_o[i][j]=sigmoid(net);?????}???}}/**********变形的Sigmoid函数************/double?sigmoid(double?z){???double?zout;???zout=(exp(z)-exp(-z))/(exp(z)+exp(-z));???/*zout=1.0/(1+exp(-z));?*/???return(zout);}/**********群体初始化函数************/void?initialpopulation(void){???int?i,j;???randomize();???for(i=0;ipop;i++)???{????for(j=0;jchromlength;j++)??????population[i].chrom[j]=(random(10)5)?0:1;????population[i].chrom[chromlength]=\0;???}}/**********产生下一代群体************/void?nextpopulation(void){
文档评论(0)