日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java遗传算法并行多机调度程序

發布時間:2025/4/5 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java遗传算法并行多机调度程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序有兩部分組成,分別是gen和DNA程序。其中gen用來生成50條原始鏈,作為DNA初始化數據。DNA程序在gen生成的50條鏈的基礎上完成交叉,變異直到找到最優答案。

d:/工業/hk/bestLength.csv

d:/工業/hk/aaa.csv

d:/工業/hk/規劃1.csv? 初始化數據,30個工件和每個工件的耗時

d:/工業/hk/組合.csv

d:/工業/hk/矩陣.csv

d:/工業/hk/遺傳.csv

這個程序中有6個本地路徑,其中d:/工業/hk/規劃1.csv是初始數據,其余保存的都是中間數據。

使用方法

1.在d:/工業/hk/規劃1.csv這個位置手工制作規劃1.csv文件,格式為序數,序數,工時。

2.調用gen程序,生成50條鏈,保存在矩陣.csv文件中

3.調用DNA程序

第一部分gen代碼

第二部分DNA代碼

第三部分 規劃1.csv文件

第一部分gen代碼

package tree1;import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.text.ParseException; import java.util.Random;public class gen {//用于實現遺傳算法,生成50條鏈//種群數量 50 交叉概率 0.75 變異概率0.05 最大迭代數200static int cityNum=30; //工件static int ant=10; //機器static int iter=1000 ;static int tiao=50;private static double alpha=0.0001; //信息素重要程度的參數 1private static double beta=14; //啟發式因子重要程度的參數 5private static double rho=0.5; //信息素蒸發系數 0.5static double bestLength=Integer.MAX_VALUE; //最佳長度static double[][] pheromone= new double[cityNum][cityNum]; //信息素矩陣static double[][] distance= new double[cityNum][cityNum]; //距離矩陣static double[][] pher= new double[cityNum][cityNum]; //信息素矩陣static double[][] bestTour =new double[cityNum+1][1]; //最佳路徑static double [][] tabu=new double[cityNum][1];static int [][] allowedCities=new int[cityNum][1];static double[][] delta = new double[cityNum][cityNum];; //信息素變化矩陣static int firstCity; //起始城市static int currentCity; //當前城市static int[] x= new int[cityNum]; static int[] y= new int[cityNum]; static int [][]ta=new int[ant][cityNum];// static int [][][]dgen=new int[tiao][cityNum][1];static int count1;static int flag;public static void maco(String filename) throws IOException, ParseException {//初始化距離矩陣//初始化信息素矩陣String strbuff; BufferedReader data = new BufferedReader(new InputStreamReader(new FileInputStream(filename))); for (int i = 0; i < cityNum; i++) { strbuff = data.readLine(); String[] strcol = strbuff.split(","); x[i] = Integer.valueOf(strcol[1]); y[i] = Integer.valueOf(strcol[2]); // System.out.println(x[i]+" "+ y[i]);} for (int i = 0; i < cityNum ; i++) { distance[i][i] = 0; //對角線為0for (int j = 0; j < cityNum; j++) { if(i!=j){distance[i][j] =y[j] ; }if(i==j){distance[i][j] =0 ; } }} for(int i=0;i<cityNum;i++) { for(int j=0;j<cityNum;j++){pheromone[i][j]=0.1; // System.out.println(distance[i][j]+" "+i+" "+j);}} solve();}public static void push(int td ,int [][] tad , int js) throws IOException, ParseException{int t=td;int [][]tta=tad;int t1=0;int tem1=0;int max1=0;for(int a=0 ;a<cityNum ;a++){ if(tta[js][a]!=0){max1++;}}// System.out.println(" *************** ");for(int a=0 ;a<max1 ;a++){// System.out.println( tta[js][a]+" "+a );tem1=tem1+tta[js][a]; }t1=t-tem1;// System.out.println(t+" "+max1+" "+tem1+" "+t1+" *t1 ");if(t1-tta[js][max1]==0){count1++;// System.out.println( count1 +" 和 " ); tta[js][max1]=selectNextCity( count1 );//System.out.println(tta[max1]+" **** "+ count1 ); }}public static void solve() throws IOException, ParseException{for(int gen=0 ;gen<iter ;gen++){count1=ant-1;// System.out.println(" 迭代開始 "+count1);ta=new int[ant][cityNum];tabu=new double[cityNum][1];for (int i = 0; i < cityNum; i++) {allowedCities[i][0]=0; //允許搜索城市列表}for (int i = 0; i < cityNum; i++) {for (int j = 0; j < cityNum; j++) { delta[i][j] = 0.0; //信息素矩陣列表 都是0}}ta[0][0]=init( );for(int a=1 ;a<ant ;a++){ta[a][0]=selectNextCity( a ); }/******************************/ //用于初始化for(int t=0 ;t<100 ;t++) {int pan =0;for(int c=0 ;c<ant ;c++ ){pan=0;push(t ,ta ,c );for(int b=0 ;b<cityNum ;b++){ if(allowedCities[b][0]==1){pan++;}}if(pan==cityNum){break;}}if(pan==cityNum){break;}}int max=0;int [][]rc=new int[ant][1];double ave=0.0;for(int a=0 ;a<ant;a++) {for(int b=0 ;b<cityNum ;b++){ rc[a][0]=rc[a][0]+ta[a][b];ave=ave+ta[a][b];}if(max<rc[a][0]){max=rc[a][0];}// System.out.println(a+" rc[a][0] " +max );}ave=1000*ave/cityNum;// System.out.println(max+" *** "+gen);double disx=0.0;disx=max;if (disx < bestLength) {for (int n = 0; n < cityNum; n++) {for (int m = 0; m < cityNum; m++) {if(tabu[m][0]==n){ bestTour[n][0]=m;}}}bestTour[cityNum][0]=bestTour[0][0];bestLength=disx;flag=gen;}for (int j = 0; j < cityNum-1; j++) {delta[j ][j+1] = (double) (1./disx);delta[j+1][j ] = (double) (1./disx); // delta[j ][j+1] = (double) (1./ave);// delta[j+1][j ] = (double) (1./ave); } for(int i=0;i<cityNum;i++){for(int j=0;j<cityNum;j++){ pher[i][j] += delta[i][j];} }updatePheromone();//printOptimal();}}public static int init( ) {//允許城市列表//選出下一個城市//并將這個城市加入禁忌表//選出的城市被作為current city 返回Random random2 = new Random(System.currentTimeMillis());int s1 = random2.nextInt();Random random1 = new Random( );int s = random1.nextInt();Random random = new Random( (s+s1) );firstCity = random.nextInt(cityNum);//firstCity = 4;// System.out.println( firstCity );for (int i = 0; i < cityNum; i++) {if (i == firstCity) {allowedCities[i][0]=1; //去掉等于i的這項break;}} for (int i = 0; i < cityNum; i++) {if (i == firstCity) {tabu[i][0]=0; //去掉等于i的這項break;}} currentCity = firstCity;// System.out.println( "currentCity "+ currentCity +" "+y[currentCity] );return x[currentCity];}public static int selectNextCity( int time ) throws IOException, ParseException {double [] p = new double[cityNum];double sum = 0.0;//計算分母部分//System.out.println( currentCity +" currentCity " );for (int i = 0; i < cityNum; i++) {if (allowedCities[i][0] != 1 ) {sum += Math.pow(pheromone[currentCity][i], alpha)*Math.pow(1.0/distance[currentCity][i], beta);/*System.out.println( i + " "+ " sum: " + sum +" "+Math.pow(pheromone[currentCity][i], alpha) +" a "+ Math.pow(1.0/distance[currentCity][i], beta)+" b " +distance[currentCity][i] +" d "+pheromone[currentCity][i]+" p "+alpha+" "+beta+" " +currentCity+ " ");*/}} for (int i = 0; i < cityNum; i++) {boolean flag = false;if (allowedCities[i][0] != 1 ) {p[i] = (Math.pow(pheromone[currentCity][i], alpha)*Math.pow(1.0/distance[currentCity][i], beta) ) /sum;flag = true;// System.out.println(p[i]+" * "+i);}if (flag == false) {p[i] = 0.0;}} Random random3 = new Random(System.currentTimeMillis());int s3 = random3.nextInt();Random random4 = new Random( );int s4 = random4.nextInt();Random rand = new Random( (s3+s4) );double slectP = rand.nextDouble( );int selectCity = 0;double ff = 0.0;for (int i = 0; i < cityNum; i++) {ff += p[i];if (ff >= slectP) {selectCity = i;// System.out.println(slectP+" slectP " + ff+" "+i +" ");break;}}// System.out.println(selectCity+" selectCity " );for (int i = 0; i < cityNum; i++) {if (i== selectCity ) {allowedCities[i][0]=1;}} for (int i = 0; i < cityNum; i++) {if (i== selectCity ) {tabu[i][0]=time;// System.out.println( tabu[i][0]+" nant "+nant);}} //將當前城市改為選擇的城市 currentCity = selectCity;return x[currentCity];}private static void updatePheromone(){// System.out.println( " updatePheromone " );for(int i=0;i<cityNum;i++) {for(int j=0;j<cityNum;j++) {pheromone[i][j]=pheromone[i][j]*(1-rho);}}for(int i=0;i<cityNum;i++){for(int j=0;j<cityNum;j++){pheromone[i][j] += pher[i][j];} }}private static void printOptimal() throws IOException{FileWriter fileWriter2=new FileWriter("d:/工業/hk/bestLength.csv"); FileWriter fileWriter1=new FileWriter("d:/工業/hk/aaa.csv"); // System.out.println("The optimal length is: " + bestLength);fileWriter2.write( bestLength +"\r\n ");fileWriter2.flush();for (int i = 0; i < cityNum ; i++) {// System.out.println(bestTour[i][0]+" *** ");fileWriter1.write( (int)bestTour[i][0] +"\r\n ");fileWriter1.flush();}fileWriter1.write( (int)bestTour[0][0] +"\r\n ");fileWriter1.flush();}private static int[][] d3() throws IOException, ParseException{double b=100000;int count=-1;// while(b>=48 && count < 100 ) while(b> 52 ) {// System.out.println( count+ " count**** "+ tiao+" "+b);maco("d:/工業/hk/規劃1.csv");// maco("d:/工業/hk/zz.csv");printOptimal();String aa= read.conv.read("d:/工業/hk/bestLength.csv" );aa=aa.replaceAll(",","");b= Double.parseDouble(aa.trim());// System.out.println( " count "+ b);}return ta;}public static void shellSort(double[] data) {int j = 0;double temp = 0;//每次將步長縮短為原來的一半for (int increment = data.length / 2; increment > 0; increment /= 2){for (int i = increment; i < data.length; i++) {temp = data[i];for (j = i; j >= increment; j -= increment) {if(temp > data[j - increment])//如想從小到大排只需修改這里// if(temp < data[j - increment])//如想從小到大排只需修改這里{ data[j] = data[j - increment];}else{break;}} data[j] = temp;}}}private static int[][] cd() throws IOException, ParseException{//產生用于 交叉 變異的數組int count=0;int [][]tem=new int[ant][cityNum];int [][]dgen=new int[cityNum][tiao];for(int a=0 ;a<tiao ;a++){tem=d3();// static int [][]ta=new int[ant][cityNum];int [] dant=new int[cityNum];for(int d=1 ;d<cityNum+1 ;d++){for (int b = 0; b < ant; b++) {for (int c = 0; c < 5; c++) {//System.out.println(tem[b][c]+" "+b+" "+c);if(tem[b][c]==d){//System.out.println(tem[b][c]+" "+b+" " +d+" ");dant[d-1]=b;}}} }/*****************/for(int d=0 ;d<cityNum ;d++){System.out.println(dant[d]+" "+d+" *"+a); dgen[d][a]=dant[d];}}/******************************************/System.out.println( "*********************"); for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ System.out.println(dgen[d][a]+" "+a+" "+d); //機器編號 列 行}}return dgen; }public static void main(String[] args) throws IOException, ParseException {FileWriter fileWriter1=new FileWriter("d:/工業/hk/組合.csv"); FileWriter fileWriter2=new FileWriter("d:/工業/hk/矩陣.csv"); int [][]dgen=cd();System.out.println( "*********************"); for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ System.out.println(dgen[d][a]+" "+a+" "+d); //機器編號 列 行 fileWriter2.write( dgen[d][a] +"\r\n ");fileWriter2.flush();}} int bei=2;int [] s1=new int[tiao*bei];int [] s2=new int[tiao*bei];for(int a=0 ; a< tiao*bei ;a++){Random rand1 =new Random();int ti1=rand1.nextInt(tiao);Random rand2 =new Random();int ti2=rand2.nextInt(tiao);System.out.println(ti1+" "+ti2);s1[a]=ti1;s2[a]=ti2;}System.out.println("****************");for(int a=0 ; a< tiao*bei ;a++){for(int b=a+1 ; b< tiao*bei ;b++){if(s1[a]==s1[b]&&s2[a]==s2[b]){s1[a]=0;s2[a]=0;System.out.println(a+" ** 相同 "+b);} }for(int b=0 ; b< cityNum*bei ;b++){if(s1[a]==s2[b]&&s2[a]==s1[b]){s1[a]=0;s2[a]=0;System.out.println(a+" ** 反向 "+b);} }}//s1 s2 里面的就是沒有重復 沒有相同 沒有反向相同 的組合int count=0;for(int a=0 ; a< tiao*bei ;a++){if( (s1[a]!=0|| s2[a]!=0) && count<50){System.out.println(s1[a]+" "+s2[a]+" " +count );fileWriter1.write( s1[a]+" , "+s2[a] +"\r\n ");fileWriter1.flush();count++;}}}}

第二部分

package tree1;import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.text.ParseException; import java.util.Random; import java.util.regex.Pattern;public class DNA {//需要用gen 得到初始數組//遺傳算法用于多機并行調度/** 400 11 12 18 22 1 23 25 16 23 2 2 13 27 6 11 18 3 1 8 18 28 2 4 17 15 4 0 9 10 16 3 12 10 14 5 5 15 17 7 26 6 6 19 29 27 13 7 20 22 11 26 8 3 4 6 7 24 4 5 9 13 79 14 21 26 8 17 15 */static int tiao=50;static int cityNum=30;static int [][] dgen2=new int[cityNum][tiao];public static void shellSort(int[] data) {int j = 0;int temp = 0;//每次將步長縮短為原來的一半for (int increment = data.length / 2; increment > 0; increment /= 2){for (int i = increment; i < data.length; i++) {temp = data[i];for (j = i; j >= increment; j -= increment) {// if(temp > data[j - increment])//如想從小到大排只需修改這里if(temp < data[j - increment])//如想從小到大排只需修改這里{ data[j] = data[j - increment];}else{break;}} data[j] = temp;}}}private static int cross( int [][]xgen ) throws IOException, ParseException{int ant=10;int changerate=3; //變異概率 這個是 4% double droprate=0.25; //按照時間 淘汰的概率 這個就是 小數int bei=100; //0.85 bei>3 要隨著droprate 的增加變大 因為 去掉 90%以后要用10 個隨機出50個這個重復概率加大int [][] dgen=xgen;int [] mina=new int[tiao];for(int a=0 ;a<tiao ;a++){ int [] tem= new int[cityNum];for(int d=0 ;d<cityNum ;d++){ // System.out.println(dgen [d][a]+" "+a+" "+d+" dgen2 后 "); tem[d]=dgen [d][a];}int tem1=value( tem);mina[a]=tem1; //計算時間數組}shellSort( mina ); //將時間按大小排序 進行 淘汰/****************************************/int [][] dgenorder=new int[cityNum][tiao];int count=0;for(int b=0 ;b<tiao ;b++){int tem1=0;for(int a=0 ;a<tiao ;a++){ int [] tem=new int[cityNum];for(int d=0 ;d<cityNum ;d++){ tem[d]=dgen [d][a];} tem1=value( tem); //System.out.println(tem1+" "+mina[b]+" "+count+ " b "+b);if(tem1==mina[b]){// System.out.println(tem1+" "+mina[b]+" "+count+ " ****** b "+b);for(int d=0 ;d<cityNum ;d++){ dgenorder[d][count]=dgen [d][a];}count++;break;}}}//System.out.println("**************** "+ (int)(tiao*(1-droprate))*bei );int [] s1=new int[(int)(tiao*(1-droprate))*bei];int [] s2=new int[(int)(tiao*(1-droprate))*bei];for(int a=0 ; a< (int)(tiao*(1-droprate))*bei ;a++){Random rand1 =new Random();int ti1=rand1.nextInt((int)(tiao*(1-droprate)));Random rand2 =new Random();int ti2=rand2.nextInt((int)(tiao*(1-droprate)));// System.out.println(ti1+" "+ti2+" "+ (int)(tiao*(1-droprate))*bei +" "+a );s1[a]=ti1;s2[a]=ti2;}for(int a=0 ; a< (int)(tiao*(1-droprate))*bei ;a++){for(int b=a+1 ; b< (int)(tiao*(1-droprate))*bei ;b++){if(s1[a]==s1[b]&&s2[a]==s2[b]){s1[a]=0;s2[a]=0;// System.out.println(a+" ** 相同 "+b);}}//System.out.println("****************");for(int b=0 ; b< (int)(tiao*(1-droprate))*bei ;b++){if(s1[a]==s2[b]&&s2[a]==s1[b]){s1[a]=0;s2[a]=0;// System.out.println(a+" ** 反向 "+b);}}}//s1 s2 里面的就是沒有重復 沒有相同 沒有反向相同 的組合int count1=0;for(int a=0 ; a< (int)(tiao*(1-droprate))*bei ;a++){if( (s1[a]!=0|| s2[a]!=0) && count1< tiao ){// System.out.println(s1[a]+" "+s2[a]+" *** " +count1 );count1++;}}/*************************************///int [][] dgen2=new int[cityNum][tiao];for(int n=0 ;n<tiao;n++)//for(int n=0 ;n<1 ;n++){//s1[n]=Integer.parseInt( as1[2*n] );//s2[n]=Integer.parseInt( as1[2*n+1] );//System.out.println(s1[n]+" "+s2[n]+" " +n);int [] t1=new int[cityNum];int [] t2=new int[cityNum];int [] t3=new int[cityNum];int [] t4=new int[cityNum];for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ //System.out.println(dgen[d][a]+" "+a+" "+d); //機器編號 列 行 if(a==s1[n]){t1[d]=dgenorder[d][a];}if(a==s2[n]){t2[d]=dgenorder[d][a];}}}Random rand1 =new Random();int ti1=rand1.nextInt(cityNum);for(int d=0 ;d<cityNum ;d++){t3[d]=t1[d];t4[d]=t2[d];}//中繼數組for(int d=0 ;d<cityNum ;d++){if(d>ti1){t1[d]=t4[d];}}for(int d=0 ;d<cityNum ;d++){if(d>ti1){t2[d]=t3[d];}}//t1 t2 完成交叉的數組/**********************************************/for(int d=0 ;d<cityNum ;d++){//System.out.println(n+" "+ n*2+" "+ (n*2+1) );dgen2[d][n*2]=t1[d];dgen2[d][n*2+1]=t2[d];}if(n*2+1 ==tiao-1 ){break;}//將交叉后的結果寫入 dgen2}//s1 s2里面就是排列組合/************************************************/for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ // System.out.println(dgen2[d][a]+" "+a+" "+d+" dgen2 前 "); }}for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ // System.out.println(dgen2[d][a]+" "+a+" "+d+" dgen2 "); Random rand1 =new Random();int ti1=rand1.nextInt(99);if(ti1<changerate) //按照指定概率進行變異{Random rand2 =new Random();int ti2=rand2.nextInt(ant);//System.out.println(dgen2[d][a]+" "+a+" "+d+" "+ ti2); dgen2[d][a]=ti2; }}}/*********************************/for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ // System.out.println(dgen2[d][a]+" "+a+" "+d+" dgen2 后 "); }}//dgen2[d][a] 里面存放的就是經過 交叉 變異 后數組/****************************************/int min=100000;for(int a=0 ;a<tiao ;a++){ int [] tem= new int[cityNum];for(int d=0 ;d<cityNum ;d++){ // System.out.println(dgen2[d][a]+" "+a+" "+d+" dgen2 后 "); tem[d]=dgen2[d][a];}int tem1=value( tem);if(tem1<min){min=tem1;}}//用于計算最小值// System.out.println(min+ " max " );return min;}private static int value( int [] test) throws IOException, ParseException{int cityNum=30;int ant=10;int[] x= new int[cityNum]; int[] y= new int[cityNum]; int [] ar=test;String strbuff; BufferedReader data = new BufferedReader(new InputStreamReader(new FileInputStream("d:/工業/hk/規劃1.csv"))); for (int i = 0; i < cityNum; i++) { strbuff = data.readLine(); String[] strcol = strbuff.split(","); x[i] = Integer.valueOf(strcol[1]); y[i] = Integer.valueOf(strcol[2]); // System.out.println(x[i]+" "+ y[i]);}int max=0;int min=100000;// System.out.println( y[15]+" * y[15] * ");for(int c=0 ;c<ant ;c++){int tem=0;for(int b=0 ; b<cityNum ;b++){ if(ar[b]==c){// System.out.println( y[b]+" "+c+" * "+b);tem=tem+y[b];}}// System.out.println(tem+" tem ");if(tem>max){max=tem;// System.out.println(max+" max ");}if(tem<min){min=tem;// System.out.println(min+" min ");}}// System.out.println(max+" max "+ min +" min ");return max;}public static void main(String[] args) throws IOException, ParseException {int ww=100;int cityNum=30;// int tiao=50;FileWriter fileWriter1=new FileWriter("d:/工業/hk/遺傳.csv"); int [][] dgen=new int[cityNum][tiao];String aw=read.conv.read("d:/工業/hk/矩陣.csv");String[] as =Pattern.compile(",").split(aw); for(int n=0 ;n<as.length;n++){//System.out.println(as[n]+" "+n);dgen[n-cityNum*(n/cityNum)][n/cityNum]=Integer.parseInt( as[n].trim() );}int count=0;// while (ww >41 && count<200)int find=40;while (ww >find ){long sysDate1 = System.currentTimeMillis();ww= cross(dgen);long sysDate2 = System.currentTimeMillis();for(int a=0 ;a<tiao ;a++){ for(int d=0 ;d<cityNum ;d++){ dgen[d][a]= dgen2[d][a] ;}}count++;System.out.println(ww+ " max "+count );fileWriter1.write( ww+","+ (sysDate2-sysDate1 ) +"\r\n ");fileWriter1.flush();}//查看最優解for(int a=0 ;a<tiao ;a++){ int [] tem= new int[cityNum];for(int d=0 ;d<cityNum ;d++){ // System.out.println(dgen2[d][a]+" "+a+" "+d+" dgen2 后 "); //dgen2[d][a] 30個工件對應的機器編號tem[d]=dgen2[d][a];}int tem1=value( tem); //最優值工時if(tem1==find){System.out.println(tem1+" tem1 "); for(int d=0 ;d<cityNum ;d++){ System.out.println(dgen2[d][a]+" "+a+" "+d ); //最優解}break;}}}}

程序中出現的read.conv.read( string );

public static String read(String a) throws IOException{String as;{ String tops="";BufferedReader ins=new BufferedReader(new FileReader(a));String ss;List<String> nns=new LinkedList<String>();while((ss=ins.readLine())!=null)nns.add(ss);String kps = nns.toString();kps = kps.substring(1,kps.length()-1);//System.out.println(kp+"*-*");tops=kps;// System.out.println(top+"*-*");ins.close();as=tops;}as=as.trim();return as;}

第三部分

文中規劃1.csv如下,用10臺機器加工30個工件

1

1

3

2

2

2

3

3

6

4

4

4

5

5

5

6

6

7

7

7

9

8

8

13

9

9

4

10

10

12

11

11

10

12

12

18

13

13

22

14

14

11

15

15

8

16

16

26

17

17

14

18

18

6

19

19

17

20

20

27

21

21

11

22

22

17

23

23

26

24

24

16

25

25

7

26

26

23

27

27

15

28

28

18

29

29

15

30

30

13

總結

以上是生活随笔為你收集整理的Java遗传算法并行多机调度程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文视频一区 | 久久久国产一区二区三区 | 天天干,夜夜操 | 亚洲AV午夜精品 | 国产色在线观看 | 高清免费视频日本 | 久久婷婷五月国产色综合激情 | 粉色视频免费观看 | 狠狠干很很操 | 国产青青操 | 91禁看片| 性福利视频| 免费黄色在线播放 | 综合五月天 | 欧美a v在线 | 日本 奴役 捆绑 受虐狂xxxx | 国产乱子伦农村叉叉叉 | 国产精品久久久久毛片软件 | 久草免费在线视频观看 | 欧美极品jizzhd欧美 | 色婷婷久久久 | 免费成人激情视频 | 少妇精品亚洲一区二区成人 | 日韩欧美在线播放 | 亚洲乱仑 | 精品一区二区三区四区五区六区 | 色蜜桃av| 日韩欧美精品在线播放 | 中文字幕日本视频 | 国产成人av免费看 | 久久无码性爱视频 | 国产网红主播精品av | 一级绝黄 | 69国产精品视频 | 午夜天堂av | 成年人免费看视频 | 亚洲精品国产精品乱码不99 | 精品视频一二区 | 久久精品男人的天堂 | 色婷婷av一区 | 一级黄色免费毛片 | 九色porn蝌蚪| 亚洲欧美日韩国产精品 | 亚洲一区二区在线免费 | 欧美老女人性生活视频 | 欧美一区二区三区成人片在线 | 中文字幕乱码中文字幕 | 爱插美女网 | 特黄一区 | 亚洲精久久 | www日韩精品 | 国产午夜精品理论片在线 | 一区视频在线 | 亚洲成人中文字幕 | 成人福利小视频 | 国产婷婷一区二区三区久久 | 天天干,天天操,天天射 | 国产色在线视频 | av字幕网| 亚洲色网址 | 欧美大片在线 | 美女av一区| 亚洲网站在线看 | 久久婷婷国产麻豆91天堂 | 美女网站免费观看视频 | av在线免费播放网站 | 无码人妻精品一区二区三 | 黄瓜视频在线免费观看 | 日韩欧美在线中文字幕 | 成人精品一区二区三区在线 | 六月丁香激情 | 日本一区二区不卡在线观看 | 欧洲女女同性videoso | 亚洲欧美日本在线观看 | 91精品国产自产精品男人的天堂 | 国产黄色大片 | 久久综合久 | 人人草人人爱 | 香蕉成视频人app下载安装 | 日本一区二区三区精品 | 噜噜色图 | 国产wwww | 鲁鲁久久 | 国产欧美一区二区精品性色99 | 性色av网站 | 亚洲专区av | 麻豆一区产品精品蜜桃的特点 | 精品免费一区二区三区 | 久久久精品人妻av一区二区三区 | 成人在线观看一区二区 | 国产成人视屏 | a级黄毛片 | 国产精品久久久久久久久免费看 | 熟妇女人妻丰满少妇中文字幕 | 欧美国产专区 | 蜜桃av影视| 欧美三级在线观看视频 | 久久偷拍免费视频 | 成人午夜视频免费 |