⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ga(java).java

📁 遺傳演算法(Genetic Algorithm),使用java編譯
💻 JAVA
字号:
//01絪絏
// -(x-1)^2+5,  0<=x<=15
import java.util.*;
public class GA {
	int populationsize = 5;
	int numberofgene = 4; //2^4 = 16
	int[][] population = new int[populationsize][numberofgene];
	int[] eval = new int[populationsize];
	double probabilityofcrossover = 0.8;
	double probabilityofmutation = 0.1;
	int thebestvalue;
	int[] best = new int[numberofgene];
	int maxgeneration = 10;
	int times;
	public static void main (String args[]) {
		GA G = new GA();
		G.initial();
		G.evaluate();
		do {
			G.reproduction();
			G.crossover();
			G.mutation();
			G.evaluate();
			G.printresult();
			G.times++;
		} while (G.times < G.maxgeneration);
		System.out.print("Gene: ");
		for (int i=0;i<G.numberofgene;i++) {
			System.out.print(G.best[i]+" ");
		}
		System.out.println();
		System.out.println("Number: "+G.binarytonumber(G.best));
		System.out.println("Thebestvalue: "+G.thebestvalue);
	}
	
	
	void printresult() {
		System.out.println("Times: "+times);
		for (int i=0;i<populationsize;i++) {
			System.out.print("Gene: ");
			for (int j=0;j<numberofgene;j++) {
				System.out.print(population[i][j]+" ");
			}
			System.out.print("number: ");
			System.out.println(binarytonumber(population[i]));
		}
		System.out.println("----------------------");
	}
	
	void initial() {
		for (int i=0;i<populationsize;i++) {
			int randomnumber = (int)(Math.random()*16);
			population[i] = numbertobinary(randomnumber);
		}
	}
	
	void evaluate() {
		int x;
		for (int i=0;i<populationsize;i++) {
			x = binarytonumber(population[i]);
			eval[i] = -(int)Math.pow(x-1, 2)+5;//ヘ夹Α
		}
		for (int i=0;i<populationsize;i++) {
			if (eval[i] > thebestvalue) {
				thebestvalue = eval[i];
				for (int j=0;j<numberofgene;j++) {
					best[j] = population[i][j];
				}
			}
		}
	}
	
	void reproduction() {
		int[][] populationtemp = new int[populationsize][numberofgene];
		double stepsum, doubletemp, sum = 0;
		for (int i=0;i<eval.length;i++) { //璸衡ダ砰ず┮Τ琕︹砰続莱

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -