1 10 package org.jgap.util; 11 12 import java.util.Comparator ; 13 import org.jgap.*; 14 15 25 public class ChromosomeFitnessComparator 26 implements Comparator { 27 28 private final static String CVS_REVISION = "$Revision: 1.8 $"; 29 30 private FitnessEvaluator m_fitnessEvaluator; 31 32 38 public ChromosomeFitnessComparator() { 39 this(new DefaultFitnessEvaluator()); 40 } 41 42 48 public ChromosomeFitnessComparator(FitnessEvaluator a_evaluator) { 49 if (a_evaluator == null) { 50 throw new IllegalArgumentException ("Evaluator must not be null"); 51 } 52 m_fitnessEvaluator = a_evaluator; 53 } 54 55 65 public int compare(final Object a_chromosome1, final Object a_chromosome2) { 66 IChromosome chromosomeOne = (IChromosome) a_chromosome1; 67 IChromosome chromosomeTwo = (IChromosome) a_chromosome2; 68 if (m_fitnessEvaluator.isFitter(chromosomeOne, chromosomeTwo)) { 69 return -1; 70 } 71 else if (m_fitnessEvaluator.isFitter(chromosomeTwo, chromosomeOne)) { 72 return 1; 73 } 74 else { 75 return 0; 76 } 77 } 78 } 79 | Popular Tags |