The Chromosome classes.
- By Peter Winzell
- December 18, 2000
POWER JAVA
Genetic Programming in JavaA Scheduling Example
Peter Winzell
Listing 1. The Chromosome classes.
public abstract class Chromosome {
protected static double mutationProb = 0.01;
protected static double crossOverProb = 1.0;
protected static int crossOverPoints = 1;
private java.util.BitSet bitVector = null;
...
Chromosome(int nBits){
bitVector = new java.util.BitSet(nBits);
...
}
abstract long fitness();
protected boolean crossover(double prob);
protected boolean mutation(double prob);
public void reproduce(Chromosome mate, Chromosome
child1,Chromosome child2){
...
}
...
}
public class MyChromosome extends Chromosome {
...
private static ArrayList points = new ArrayList(10);
static{
setPoints();
}
...
public long fitness(){
int activityCounter = 0;
long partSum = 0;
int size = TestData.size()*no_decodingBits;
for (int i = 0; i < size; i = i + no_decodingBits){
int position = binarytoint(i,i+(no_decodingBits-1));
Activity currentA = (Activity)
TestData.activities.get(activityCounter);
PartSum += currentA.getCurrentPoint(position % 10);
activityCounter++;
}
restorePointLists();
fitnessValue = partSum;
return partSum;
}
...
}