資源簡(jiǎn)介
基礎(chǔ)的遺傳算法的代碼,是用vs2010編寫的c++代碼,有簡(jiǎn)單注釋.zip

代碼片段和文件信息
#include
?#include
?#include
?//#include
?#include
?#include
?using?namespace?std;?
?
?#define?Maxpop?100
?#define?Maxstring?32
?
?typedef?struct{?????????????
//聲明結(jié)構(gòu)體類型
?char?chrom[Maxstring];
?//染色體數(shù)組
?float?xfitness;
?int?parent1parent2xsite;
?}pp;
?
?pp?*oldpop*newpop*p1;
?int?popsizelchromgenMaxgennmutationncrossjcrossMaxppMinppjrand;
?float?pcrosspmutationsumfitness?MaxMinavgseedrj[Maxpop]oldrand[Maxpop];
?double?coef;
?
?float?objfunc(float);//目標(biāo)函數(shù)
?int?select();//選擇策略
?int?flip(float);
?int?crossover(char?*char?*int);//交叉
?char?mutation();//變異
?void?generation();//遺傳運(yùn)算
?void?initialize();//初始化
?void?report();//報(bào)告
?void?initpop();//初始化種群
?void?initdata();//初始化數(shù)據(jù)
?void?initreport();//初始化報(bào)告
?double?decode(char?*);//譯碼
?float?random1();//隨機(jī)
?void?randomize1();
?void?pause();//終止
?
?void?test(char?x)
?{
?cout< ?}
?
?float?objfunc(float?x1)
?//compute?object?fitness;
?{
?float?y;
?y=3.14*x1;
?y=sin(2.0*y);
?return?y*y;
?}
?
?void?statistic(pp?*pop)
?//statistic?the?fitness?of?population
?{
?int?j;
?sumfitness=pop[0].fitness;
?Max=pop[0].fitness;
?Min=pop[0].fitness;
?Maxpp=0;
?Minpp=0;
?for(j=1;j ?sumfitness=sumfitness+pop[j].fitness;
?if(pop[j].fitness>Max){
?Max=pop[j].fitness;
?Maxpp=j;
?}
?if(pop[j].fitness ?Min=pop[j].fitness;
?Minpp=j;
?}
?}//end?for
?avg=sumfitness/(float)popsize;
?}
?
?void?generation()
?//update?a?generation;
?{
?int?jmate1mate2;
?j=0;
?do{
?mate1=select();
?mate2=select();
?crossover(oldpop[mate1].chromoldpop[mate2].chromj);
?newpop[j].x=(float)decode(newpop[j].chrom);
?newpop[j].fitness=objfunc(newpop[j].x);
?newpop[j].parent1=mate1;
?newpop[j].parent2=mate2;
?newpop[j].xsite=jcross;//recode?the?cross?point;
?newpop[j+1].x=(float)decode(newpop[j+1].chrom);
?newpop[j+1].fitness=objfunc(newpop[j+1].x);
?newpop[j+1].parent1=mate1;
?newpop[j+1].parent2=mate2;
?newpop[j+1].xsite=jcross;
?j=j+2;
?}while(j ?}
?
?void?initdata()
?//input?control?parameters
?{
?int?chj;
?cout<<“*********SGA?DATA?ENTRY?AND?INITIALIZATION*******?“;
?cout<<“Enter?population?size:“;
?cin>>popsize;
?//?cout<<“Enter?chromosome?length:“;
?//?cin>>lchrom;
?lchrom?=?32;
?cout<<“Enter?Max?generations“;
?cin>>Maxgen;
?cout<<“Enter?crossover?probability:“;
?cin>>pcross;
?cout<<“Enter?mutation?probability:“;
?cin>>pmutation;
?
?//randomize1();
?nmutation=0;
?ncross=0;
?}
?
?void?initreport()
?{
?cout<<“Population?size:“< ?//?cout<<“Chromosome?length:“< ?cout<<“Maximum?#?of?generation:“< ?cout<<“Crossover?probability:“< ?cout<<“Mutation?probability:“< ?cout<<“-----------------------------------------------------?“;
?cout<<“Initial?Population?Maximum?Fitness:“< ?cout<<“Initial?Population?Average?Fitness:“< ?cout<
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-14?09:12??GA\
?????目錄???????????0??2015-09-18?16:48??GA\Debug\
?????文件???????51200??2015-05-25?08:54??GA\Debug\GA.exe
?????文件??????421176??2015-05-25?08:54??GA\Debug\GA.ilk
?????文件??????658432??2015-05-25?08:54??GA\Debug\GA.pdb
?????目錄???????????0??2015-09-18?16:48??GA\GA\
?????目錄???????????0??2015-09-18?16:48??GA\GA\Debug\
?????文件????????9120??2015-05-25?08:54??GA\GA\Debug\CL.read.1.tlog
?????文件?????????194??2015-05-25?08:54??GA\GA\Debug\CL.write.1.tlog
?????文件????????1187??2015-04-10?14:53??GA\GA\Debug\GA.Build.CppClean.log
?????文件?????????406??2015-05-25?08:54??GA\GA\Debug\GA.exe.em
?????文件?????????472??2015-05-25?08:54??GA\GA\Debug\GA.exe.em
?????文件?????????381??2015-05-25?08:54??GA\GA\Debug\GA.exe.intermediate.manifest
?????文件??????????48??2015-05-25?08:54??GA\GA\Debug\GA.lastbuildstate
?????文件????????3832??2015-05-25?08:54??GA\GA\Debug\GA.log
?????文件?????????194??2015-04-10?14:53??GA\GA\Debug\GA_manifest.rc
?????文件???????91123??2015-05-25?08:54??GA\GA\Debug\SGA.obj
?????文件?????????526??2015-05-25?08:54??GA\GA\Debug\cl.command.1.tlog
?????文件???????????2??2015-05-25?08:54??GA\GA\Debug\li
?????文件???????????2??2015-05-25?08:54??GA\GA\Debug\li
?????文件???????????2??2015-05-25?08:54??GA\GA\Debug\li
?????文件???????????2??2015-05-25?08:54??GA\GA\Debug\li
?????文件???????????2??2015-05-25?08:54??GA\GA\Debug\li
?????文件???????????2??2015-05-25?08:54??GA\GA\Debug\li
?????文件????????1210??2015-05-25?08:54??GA\GA\Debug\li
?????文件????????2716??2015-05-25?08:54??GA\GA\Debug\li
?????文件?????????452??2015-05-25?08:54??GA\GA\Debug\li
?????文件?????????308??2015-05-25?08:54??GA\GA\Debug\mt.command.1.tlog
?????文件?????????206??2015-05-25?08:54??GA\GA\Debug\mt.read.1.tlog
?????文件?????????206??2015-05-25?08:54??GA\GA\Debug\mt.write.1.tlog
?????文件?????????386??2015-05-25?08:54??GA\GA\Debug\rc.command.1.tlog
............此處省略14個(gè)文件信息
評(píng)論
共有 條評(píng)論