1 10 package org.jgap.gp; 11 12 import org.jgap.*; 13 14 20 public abstract class GPFitnessFunction 21 implements java.io.Serializable { 22 23 private final static String CVS_REVISION = "$Revision: 1.5 $"; 24 25 public final static double NO_FITNESS_VALUE = -1.0000000d; 26 27 public final static double MAX_FITNESS_VALUE = Double.MAX_VALUE / 2; 28 29 32 private double m_lastComputedFitnessValue = NO_FITNESS_VALUE; 33 34 45 public final double getFitnessValue(final IGPProgram a_program) { 46 double fitnessValue = evaluate(a_program); 51 if (fitnessValue < 0.00000000d) { 52 throw new RuntimeException ( 53 "Fitness values must be positive! Received value: " 54 + fitnessValue); 55 } 56 m_lastComputedFitnessValue = fitnessValue; 57 return fitnessValue; 58 } 59 60 68 public double getLastComputedFitnessValue() { 69 return m_lastComputedFitnessValue; 70 } 71 72 86 protected abstract double evaluate(IGPProgram a_subject); 87 } 88 | Popular Tags |