Пример #1
0
 public float getFitness() {
   float fitness = 1;
   for (int i = 0; i < getGenomeSize(); i++) {
     if (lociPattern.getLocusType(i) == LociPattern.LocusType.Fitness) {
       FitnessLocus locus = (FitnessLocus) getLocus(i);
       fitness *= locus.getFitnessEffect();
     }
   }
   return fitness;
 }
Пример #2
0
 public void mutateMutationRate(int nMutatorMutation, int nAntiMutMutation) {
   //        MutatorLocus locus = getRandomMutatorLocus();
   int position = lociPattern.getRandomMutatorPosition();
   MutatorLocus locus = (MutatorLocus) loci[position];
   for (int i = 0; i < nMutatorMutation; i++) {
     locus.increaseStrength();
   }
   for (int j = 0; j < nAntiMutMutation; j++) {
     locus.decreaseStrength();
   }
 }
Пример #3
0
  public OnePair getNMutations() {
    int nDeleteriousMutations = 0;
    int nBeneficialMutations = 0;

    for (int i = 0; i < getGenomeSize(); i++) {
      if (lociPattern.getLocusType(i) == LociPattern.LocusType.Fitness) {
        FitnessLocus locus = (FitnessLocus) getLocus(i);
        nDeleteriousMutations += locus.getNDeleteriousMutations();
        nBeneficialMutations += locus.getNBeneficialMutations();
      }
    }
    return new OnePair(nDeleteriousMutations, nBeneficialMutations);
  }
Пример #4
0
 public float getRecombinationStrength() {
   // TODO: multiple all recombination strength values
   int recombinationLocusPosition = lociPattern.getRecombinationLociPositions()[0];
   return ((RecombinationLocus) getLocus(recombinationLocusPosition)).getStrength(); // refactor
 }
Пример #5
0
 public double getMutatorStrength() {
   // TODO: multiple all mutator strength values
   int mutatorLocusPosition = lociPattern.getMutatorLociPositions()[0];
   return ((MutatorLocus) getLocus(mutatorLocusPosition)).getStrength(); // refactor
 }
Пример #6
0
 private OnePair getRandomFitnessLocus() {
   int position = lociPattern.getRandomFitnessPosition();
   return new OnePair((FitnessLocus) getLocus(position), position);
 }
Пример #7
0
 // TODO: modify getRandomXXLocus to remove redundant codes; extract new methods
 private MutatorLocus getRandomMutatorLocus() {
   int position = lociPattern.getRandomMutatorPosition();
   return (MutatorLocus) getLocus(position);
 }
Пример #8
0
 public Individual(LociPattern pattern) {
   lociPattern = pattern;
   loci = new Locus[lociPattern.getGenomeSize()];
   alive = true;
 }