遗传算法java.docx
- 文档编号:3010827
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:38
- 大小:25.40KB
遗传算法java.docx
《遗传算法java.docx》由会员分享,可在线阅读,更多相关《遗传算法java.docx(38页珍藏版)》请在冰豆网上搜索。
遗传算法java
importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Random;
publicclassGA{
privateChromosome[]chromosomes;
privateChromosome[]nextGeneration;
privateintN;
privateintcityNum;
privatedoublep_c_t;
privatedoublep_m_t;
privateintMAX_GEN;
privateintbestLength;
privateint[]bestTour;
privatedoublebestFitness;
privatedouble[]averageFitness;
privateint[][]distance;
privateStringfilename;
publicGA(){
N=0;
cityNum=;
p_c_t=0.9;
p_m_t=0.1;
MAX_GEN=00;
bestLength=0;
bestTour=newint[cityNum];
bestFitness=0.0;
averageFitness=newdouble[MAX_GEN];
chromosomes=newChromosome[N];
distance=newint[cityNum][cityNum];
}
/**
*ConstructorofGAclass
*@paramn种群规模
*@paramnum城市规模
*@paramg运行代数
*@paramp_c交叉率
*@paramp_m变异率
*@paramfilename数据文件名
*/
publicGA(intn,intnum,intg,doublep_c,doublep_m,Stringfilename){
this.N=n;
this.cityNum=num;
this.MAX_GEN=g;
this.p_c_t=p_c;
this.p_m_t=p_m;
bestTour=newint[cityNum];
averageFitness=newdouble[MAX_GEN];
bestFitness=0.0;
chromosomes=newChromosome[N];
nextGeneration=newChromosome[N];
distance=newint[cityNum][cityNum];
this.filename=filename;
}
publicvoidsolve()throwsIOException{
System.out.println("---------------------Startinitilization---------------------");
init();
System.out.println("---------------------Endinitilization---------------------");
System.out.println("---------------------Startevolution---------------------");
for(inti=0;i System.out.println("-----------Startgeneration"+i+"----------"); evolve(i); System.out.println("-----------Endgeneration"+i+"----------"); } System.out.println("----------packagetsp; importjava.io.BufferedReader; importjava.io.FileInputStream; importjava.io.IOException; importjava.io.InputStreamReader; importjava.util.Random; publicclassTsp3{ privateintscale;//种群规模 privateintcityNum;//城市数量,染色体长度 privateintMAX_GEN;//运行代数 privatefloat[][]distance;//距离矩阵 privateintbestT;//最佳出现代数 privatefloatbestLength;//最佳长度 privateint[]bestTour;//最佳路径 //初始种群,父代种群,行数表示种群规模,一行代表一个个体,即染色体,列表示染色体基因片段 privateint[][]oldPopulation; privateint[][]newPopulation;//新的种群,子代种群 privatefloat[]fitness;//种群适应度,表示种群中各个个体的适应度 privatefloat[]Pi;//种群中各个个体的累计概率 privatefloatPc;//交叉概率 privatefloatPm;//变异概率 privateintt;//当前代数 privateRandomrandom; publicTsp3(){ } /** *constructorofGA * *@params *种群规模 *@paramn *城市数量 *@paramg *运行代数 *@paramc *交叉率 *@paramm *变异率 * **/ publicTsp3(ints,intn,intg,floatc,floatm){ scale=s; cityNum=n; MAX_GEN=g; Pc=c; Pm=m; } //给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默 @SuppressWarnings("resource") /** *初始化GA算法类 *@paramfilename数据文件名,该文件存储所有城市节点坐标数据 *@throwsIOException */ privatevoidinit(Stringfilename)throwsIOException{ //读取数据 //int[]x; //int[]y; Stringstrbuff; BufferedReaderdata=newBufferedReader(newInputStreamReader( newFileInputStream(filename))); distance=newfloat[cityNum][cityNum]; //x=newint[cityNum]; //y=newint[cityNum]; for(inti=0;i strbuff=data.readLine(); String[]strcol=strbuff.split(""); for(intj=0;j distance[i][j]=Float.valueOf(strcol[j]); System.out.println(distance[i][j]); } } data.close(); bestLength=Float.MAX_VALUE; bestTour=newint[cityNum+1]; bestT=0; t=0; newPopulation=newint[scale][cityNum]; oldPopulation=newint[scale][cityNum]; fitness=newfloat[scale]; Pi=newfloat[scale]; random=newRandom(System.currentTimeMillis()); /* *for(inti=0;i *System.out.print(distance[i][j]+",");}System.out.println();} */ //初始化种群 } //初始化种群 voidinitGroup(){ inti,j,k; //Randomrandom=newRandom(System.currentTimeMillis()); for(k=0;k { oldPopulation[k][0]=random.nextInt(65535)%cityNum; for(i=1;i { oldPopulation[k][i]=random.nextInt(65535)%cityNum; for(j=0;j if(oldPopulation[k][i]==oldPopulation[k][j]){ break; } } if(j==i){ i++; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 java