import java.util.Random; import java.math.BigInteger; public abstract class Gene implements java.lang.Comparable { int N; // number of items in the permutation float fitness;// this must be evaluated when gene is created Evaluator E; int hash = 0; abstract int[] getPermutation(); abstract Gene mutate(); abstract Gene crossover(Gene another); String permutationString(){ int[] p = getPermutation(); String s = ""; for(int i= 0;i g.fitness) return 1; if(equals(g))return 0; return -1; } return 1; } } class Permutor1 extends Gene{ static boolean showwork=false; byte[][] genome ; static Random randomGenerator = new Random(); int J,L; int[] permutation=null; Permutor1(int n, Evaluator e){ N=n;E=e; int i=1;int j=1; while (i "+ permutationString()+ " : "+ 1.0/fitness; return heading; } Permutor1(Permutor1 p){ N=p.N;E=p.E;genome= p.genome.clone();fitness=p.fitness; L=p.L;J=p.J; for (int i=0;i=1){ permscan=0; while((permscan+permstep+permstep-1)0){// swap the entries for(int j=0;j=0;i--)System.out.print(indices[i]+" "); System.out.println();*/ for(int i=0;i "+ permutationString()+" : "+ 1.0/fitness; } }