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

📄 gaaalleleset.java

📁 Java实现的遗传算法工具集:GA Playground
💻 JAVA
字号:
public class GaaAlleleSet {
	int size;
	int order;
	GaaAllele alleles[];

	
	public GaaAlleleSet(int num) {
		
		int i;
		
		size = num;
		alleles = new GaaAllele[size];
		
		for (i=0;i<size;i++) 
			alleles[i] = new GaaAllele(1, 100, (double)1, 1);
			
		order = alleles[0].nsteps;	
			
	}
		
		
	public GaaAlleleSet(int num, double mn, double mx, double st, double vl) {
		
		int i;
		
		size = num;
		alleles = new GaaAllele[size];
		
		for (i=0;i<size;i++) 
			alleles[i] = new GaaAllele(mn, mx, st, vl);
		
		order = alleles[0].nsteps;
			
	}

		
	public GaaAlleleSet(int num, double mn, double mx, int ns, double vl) {
		
		int i;
		
		size = num;
		alleles = new GaaAllele[size];
		
		for (i=0;i<size;i++) 
			alleles[i] = new GaaAllele(mn, mx, ns, vl);
		
		order = alleles[0].nsteps;
			
	}
	
	
	public GaaAlleleSet(GaaProblem pr) {
		
		int num = pr.genesNumber;
		double mn = pr.minVal;
		double mx = pr.maxVal;
		double st = pr.stepVal;
		double vl = pr.defVal;
				
		int i;
		
		size = num;
		alleles = new GaaAllele[size];
		
		for (i=0;i<size;i++) 
			alleles[i] = new GaaAllele(mn, mx, st, vl);
		
		order = alleles[0].nsteps;
			
	}
	
	
	public String encodeChrom(double values[]) {

		int i;
		char kar;
		String st;
		StringBuffer sb = new StringBuffer(values.length);

		for (i=0;i<values.length;i++) {
			kar = alleles[i].encodeValue(values[i]);
			sb.append(kar);
		}

		st = sb.toString();
		return st;

	}
	
	
	public String encodeRandomChrom(int type) {

		int i;
		double n;
		char kar;
		String st = "";
		StringBuffer sb = new StringBuffer(size);

	  switch(type) {
	  	case 1:
				for (i=0;i<size;i++) {
					n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
					kar = alleles[i].encodeValue(n);
					sb.append(kar);
					st = sb.toString();
				}
				break;
	  	case 2:
				for (i=0;i<size;i++) {
					n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
					kar = alleles[i].encodeValue(n);
					while (st.indexOf(kar) >= 0) {
						n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
						kar = alleles[i].encodeValue(n);
					}
					sb.append(kar);
					st = sb.toString();
				}
				break;
	  	default:
				for (i=0;i<size;i++) {
					n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
					kar = alleles[i].encodeValue(n);
					sb.append(kar);
					st = sb.toString();
				}
		}
				
		st = sb.toString();
		return st;

	}
	
	public void decodeChrom(String st) {

		int i;

		int n = st.length();

		for (i=0;i<st.length();i++) {
			double d = alleles[i].decodeValue(st.charAt(i));
			alleles[i].value = alleles[i].decodeValue(st.charAt(i));
		}

	}
	
}

⌨️ 快捷键说明

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