亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? genericonjava.java

?? 前段時間用JAVA改寫的遺傳算法
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

import java.io.*;
import java.math.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;

class individual{
	int parentNum=2,chromNum=100;
	int chrom[]=new int[chromNum];
	double fitness;
	double varible;
	int xsite;
	int parent[]=new int[parentNum];
	}
	
class bestever{
	int chromNum=100;
	int chrom[]=new int[chromNum];
	double fitness;
	double varible;
	int generation;
	}

class SGA{
	
	//Global
	double sumfitness;
	double max, avg, min;
    float pcross, pmutation;
    int popsize=5000,lchrom,chromsize,gen,maxgen;
	int printstrings; //* 輸出染色體編碼的判斷,0 -- 不輸出, 1 -- 輸出 */
    int nmutation; //* 當前代變異發(fā)生次數 */
    int ncross;
    /* 隨機數發(fā)生器使用的靜態(tài)變量 */
    double oldrand[]=new double[55];
    int jrand;
    double rndx2;
    int rndcalcflag; 
	String answer="";
	
	individual oldpop[]=new individual[popsize];        /* 當前代種群 */
	individual temp[]=new individual[popsize];          
	individual newpop[]=new individual[popsize];        /* 新一代種群 */
	bestever bestfit=new bestever();                    /* 最佳個體 */
	
    Scanner scanner=new Scanner(System.in);             //input scanner initialization
    
	
	public void preselect(){                                   //preselect function
		int j;
        sumfitness= 0;
        for(j=0;j<popsize;++j){
        	sumfitness += oldpop[j].fitness;
        	}
		}
		
	public int select(){        //* 輪盤賭選擇*///select function
		float sum, pick;
        int i;
        pick= randomperc();
        sum= 0;
        if (sumfitness!=0) {
        		for(i = 0; (sum < pick) && (i < popsize); ++i){
        			sum += (float)(oldpop[i].fitness/sumfitness);
        			}
        		}else{
        			i= rnd(1, popsize);
        			}
        return(i-1);
	    }
	    
	public int rnd(int low,int high){  //*在整數low和high之間產生一個隨機整數*///rnd function
		int i;
        if (low >= high){
        	i= low;
        	}else{
        		 i= (int)((randomperc()* (high - low + 1)) + low);
                 if (i > high){
                 	 i= high;
                 	 }
                 }
        return i;
		}
	    
	public float randomperc(){  //*與庫函數random()作用相同, 產生[0,1]之間一個隨機數 *///randomperc function
		jrand++;
        if (jrand >= 55){
        	jrand= 1;
        	advance_random();
        	}
        return((float)oldrand[jrand]);
		}
		
    public void advance_random(){               /* 產生55個隨機數 *///advance_random function
    	 int j1;
         double new_random;
         for(j1= 0;j1<24;++j1){
         	new_random= oldrand[j1] - oldrand[j1 + 31];
         	if (new_random < 0.0){
         		new_random= new_random + 1.0;
         		}
            oldrand[j1]= new_random;
            }
         for(j1= 24;j1<55;++j1){
         	new_random= oldrand[j1] - oldrand[j1 - 24];
         	if (new_random < 0.0){
         		new_random= new_random + 1.0;
         		}
    	    oldrand[j1]= new_random;
    	    }
    	    
    	}
    	
    public int crossover(int parent1[],int parent2[],int child1[],int child2[]){  //crossover function
    	int j, jcross, k;                               // * 由兩個父個體交叉產生兩個子個體 * /
        int mask, temp;
        if (flip(pcross)){
        	jcross= rnd(1, (lchrom - 1)); // * Cross between 1 and l - 1 * /
            ncross++;
            for(k= 1;k<=chromsize;++k){
            	if (jcross >= (k * 32)) {
            		child1[k - 1] = parent1[k - 1];
            		child2[k - 1] = parent2[k - 1];
            		}else if((jcross < (k * 32)) && (jcross > ((k - 1) * 32))){
            			mask = 1;
                        for(j = 1;j<= jcross - 1 - ((k - 1) * 32);++j){
                        	temp = 1;
                        	mask = mask << 1;
                        	mask = mask | temp;
                        	}
                        child1[k - 1] = (parent1[k - 1] & mask) | (parent2[k - 1] & (~mask));
                        child2[k - 1] = (parent1[k - 1] & (~ mask)) | (parent2[k - 1] &mask);
                        }else{
                        	child1[k - 1] = parent2[k - 1];
                        	child2[k - 1] = parent1[k - 1];
                        	}
                        	}
          }else{
          	for (k = 0;k<chromsize;++k){
          		child1[k] = parent1[k];
          		child2[k] = parent2[k];
          		}
            jcross= 0;
            }
         return jcross;
    	}
    	
    public boolean flip(float prob){                    // 以一定概率產生0或1 flip function
    	if (randomperc() <= prob){
    		return true;
    		}else{
    			return false;
    			}
    	}
    	
    public void mutation(int child[]){                 //mutation function//*變異操作*/
         int j, k, stop;
         int mask, temp;
         temp = 1;
         for (k = 0;k<chromsize;++k){
         	mask = 0;
         	if (k ==(chromsize - 1)){
         		stop = lchrom - (k * 32);
         		}else{
         			stop = 8 * 4;
         			}
            for (j = 0;j<stop;++j){
            	if (flip(pmutation)){
            		mask = mask | (temp << j);
            		nmutation++;
            		}
            		}
            child[k] = child[k] ^ mask;
            }
    	}
    	
    public void objfunc(individual critter){          //objfunc function//* 計算適應度函數值 */
    	int mask, bitpos, tp;
        double bitpow;
        int j, k, stop;
        mask = 1;
        critter.varible = 0.0;
        for (k = 0;k< chromsize;++k){
        	if (k == (chromsize - 1)){
        		stop = lchrom - (k * 32);
        	}else{
        		stop = 8 * 4;
        	}
        	tp = critter.chrom[k];
			for (j = 0;j<stop;++j){
				bitpos = j + (8 * 4) * k;
				if ((tp & mask) == 1){
					bitpow = Math.pow(2.0, (double)bitpos);
					critter.varible = critter.varible + bitpow;
				}
                tp = tp >> 1;
            }
            }
        critter.varible = -1 + critter.varible * 3 / (Math.pow(2.0, (double)lchrom) -1);
        critter.fitness= critter.varible * Math.sin(critter.varible * 10 * Math.atan(1)* 4) + 2.0;
        
    	}
	
	public void generation(){                                   //generation function
		int mate1, mate2, jcross, j=0;
		preselect();//*  每代運算前進行預選 */
		            
		do{              //* 選擇, 交叉, 變異 */
			
			mate1=select();
			mate2=select();
			jcross=crossover(oldpop[mate1].chrom, oldpop[mate2].chrom, newpop[j].chrom,
      newpop[j + 1].chrom);
            mutation(newpop[j].chrom);
            mutation(newpop[j + 1].chrom);
             //* 解碼, 計算適應度
            objfunc(newpop[j]);
              //*記錄親子關系和交叉位置 */
		    newpop[j].parent[0]= mate1 + 1;
		    newpop[j].xsite= jcross;
		    newpop[j].parent[1]= mate2 + 1;
		    objfunc(newpop[j + 1]);
		    newpop[j + 1].parent[0]= mate1 + 1;
		    newpop[j + 1].xsite= jcross;
		    newpop[j + 1].parent[1]= mate2 + 1;
		    j= j + 2;
            
			}while(j<(popsize-1));
			
		}
		
	public void statistics(individual pop[]){     //* 計算種群統(tǒng)計數據 *///statistics function
		  int i, j;
		  sumfitness = 0.0;
		  min = pop[0].fitness;
		  max = pop[0].fitness;
		    //* 計算最大、最小和累計適應度 */
		  for (j = 0;j<popsize;++j){
		  	sumfitness = sumfitness + pop[j].fitness;
		    if (pop[j].fitness > max){
		    	max = pop[j].fitness;
		    }
		    if (pop[j].fitness < min){
		    	min = pop[j].fitness;
		    }
		    // * new global best - fit individual * /
		    if (pop[j].fitness > bestfit.fitness){
		    	for (i = 0;i<chromsize;++i){
		    		bestfit.chrom[i] = pop[j].chrom[i];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
538在线一区二区精品国产| 99热在这里有精品免费| 亚洲一区在线观看视频| 国产精品麻豆一区二区 | |精品福利一区二区三区| 久久蜜桃av一区二区天堂| 精品国产乱码久久久久久久 | 欧美男女性生活在线直播观看| av在线不卡电影| 99视频精品全部免费在线| av网站免费线看精品| 波多野结衣亚洲一区| 从欧美一区二区三区| 99久久婷婷国产综合精品| 99久久伊人网影院| 日本道在线观看一区二区| 欧美亚洲国产bt| 欧美伦理影视网| 精品国产一区二区三区不卡| 久久综合色8888| 亚洲国产经典视频| 伊人开心综合网| 亚洲成人精品一区二区| 日韩av电影天堂| 麻豆91精品91久久久的内涵| 国产99精品视频| 91女厕偷拍女厕偷拍高清| 欧美日韩一级黄| 精品久久五月天| 综合婷婷亚洲小说| 人人精品人人爱| 成人免费va视频| 欧美日韩第一区日日骚| 精品福利一二区| 亚洲视频网在线直播| 亚洲丶国产丶欧美一区二区三区| 男人的j进女人的j一区| 床上的激情91.| 欧美在线小视频| 欧美www视频| 综合av第一页| 久久精品国产亚洲一区二区三区| 懂色av噜噜一区二区三区av | 亚洲电影一级黄| 国产剧情一区二区| 欧美剧情片在线观看| 亚洲国产成人午夜在线一区| 午夜影院在线观看欧美| 成人高清免费在线播放| 欧美精品一区二| 亚洲欧美色图小说| 国产精品99久| 日韩午夜在线观看| 一区二区国产盗摄色噜噜| 国产麻豆精品theporn| 日本丰满少妇一区二区三区| 久久综合久色欧美综合狠狠| 亚洲一级二级三级| 成人国产亚洲欧美成人综合网| 666欧美在线视频| 亚洲天堂成人网| 国产成人日日夜夜| 精品国产a毛片| 丝袜美腿一区二区三区| 在线视频中文字幕一区二区| 最新成人av在线| 国产成人精品亚洲日本在线桃色 | 日本不卡免费在线视频| 色综合中文字幕国产| 日韩欧美激情在线| 日日摸夜夜添夜夜添精品视频 | 91麻豆精品国产自产在线观看一区 | 日韩一区二区精品葵司在线| 亚洲精品免费视频| 9i看片成人免费高清| 国产精品青草综合久久久久99| 国精品**一区二区三区在线蜜桃| 欧美一区二区三区在线观看| 最新国产精品久久精品| 国产91精品一区二区麻豆网站| 久久综合久久鬼色中文字| 激情文学综合插| 久久综合狠狠综合久久激情| 精品午夜久久福利影院| 精品国产一区久久| 国产九九视频一区二区三区| 久久日韩粉嫩一区二区三区| 国产精品正在播放| 26uuu精品一区二区三区四区在线| 青草国产精品久久久久久| 日韩欧美第一区| 韩国一区二区三区| 国产精品久久久久久久久果冻传媒 | 91精品在线观看入口| 日产欧产美韩系列久久99| 日韩欧美在线综合网| 国产精品538一区二区在线| 欧美激情一区二区三区在线| 国产成人综合在线| 亚洲欧洲综合另类在线| 欧美精品在线一区二区三区| 日本亚洲欧美天堂免费| 久久综合久久99| 99久久国产综合色|国产精品| 一卡二卡三卡日韩欧美| 精品久久人人做人人爽| 国产成人av电影在线观看| 亚洲视频免费在线| 欧美精品久久天天躁| 国产精品一二三四五| 亚洲综合自拍偷拍| 日韩欧美国产三级电影视频| 春色校园综合激情亚洲| 亚洲h在线观看| 日本一区二区免费在线| 欧美日韩在线三区| 国产乱色国产精品免费视频| 亚洲精选视频在线| 久久精品人人爽人人爽| 欧美日韩精品免费| jiyouzz国产精品久久| 理论电影国产精品| 亚洲伦理在线免费看| 日韩精品一区二区三区中文精品| 99精品视频中文字幕| 久久精品久久精品| 亚洲国产视频一区| 中文字幕精品一区二区三区精品| 欧美老女人第四色| 色婷婷av一区二区三区大白胸| 黑人巨大精品欧美黑白配亚洲| 一区二区三国产精华液| 欧美国产一区二区| 欧美电影免费观看高清完整版在线观看 | 午夜精品久久久久久久久| 国产精品欧美极品| 精品福利二区三区| 日韩美女一区二区三区四区| 欧美综合一区二区| av电影在线观看一区| 国产suv精品一区二区三区| 免费久久99精品国产| 午夜在线电影亚洲一区| 亚洲欧美另类综合偷拍| 国产精品福利电影一区二区三区四区 | 91免费观看国产| 不卡视频在线看| 岛国精品一区二区| 日本aⅴ亚洲精品中文乱码| 一区二区三区产品免费精品久久75| 久久色视频免费观看| 精品动漫一区二区三区在线观看| 欧美精品在线观看播放| 欧美日韩精品一区二区三区| 在线免费观看视频一区| 色综合久久九月婷婷色综合| 91小视频在线免费看| 色94色欧美sute亚洲线路二| 91丝袜呻吟高潮美腿白嫩在线观看| 成人久久18免费网站麻豆| 高清不卡一区二区在线| 成人黄色软件下载| 99精品国产一区二区三区不卡| 国产成人av网站| 成人污视频在线观看| 97超碰欧美中文字幕| 91在线云播放| 欧美午夜一区二区三区免费大片| 欧美午夜一区二区三区 | 日韩av高清在线观看| 久久国产精品99久久久久久老狼| 蜜臀精品一区二区三区在线观看 | 亚洲欧美日韩国产综合| 亚洲免费在线视频| 亚洲电影一级片| 另类调教123区| 成人免费视频caoporn| 一本大道久久精品懂色aⅴ| 在线亚洲免费视频| 精品第一国产综合精品aⅴ| 日本一区二区三区视频视频| 亚洲人成人一区二区在线观看| 一区二区三区不卡在线观看 | 26uuu国产一区二区三区 | 91亚洲精品一区二区乱码| 在线观看av不卡| 日韩欧美一区二区不卡| 日本一区二区在线不卡| 亚洲午夜久久久久久久久电影院| 日韩va欧美va亚洲va久久| 成人性色生活片| 欧美日韩国产精品成人| 精品播放一区二区| 一区二区三区四区不卡在线| 日韩精品一区第一页| 豆国产96在线|亚洲| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲欧美精品午睡沙发| 毛片基地黄久久久久久天堂| 不卡的看片网站|