1 10 package examples.equalDistribution; 11 12 import org.jgap.*; 13 import org.jgap.impl.*; 14 15 21 public class SampleFitnessFunction 22 extends FitnessFunction { 23 24 private final static String CVS_REVISION = "$Revision: 1.1 $"; 25 26 private Vent[] m_vents; 27 28 public SampleFitnessFunction(Vent[] a_vents) { 29 m_vents = a_vents; 30 } 31 32 42 public double evaluate(IChromosome a_subject) { 43 double[] groupWeights = new double[8]; 44 double squaredDiff = 0.0d; 45 for (int i = 0; i < 8; i++) { 46 double groupWeight = 0.0d; 47 for (int j = 0; j < 8; j++) { 48 IntegerGene ventIndex = (IntegerGene) a_subject.getGene( (i * 8 + j)); 49 Vent vent = (Vent) m_vents[ventIndex.intValue()]; 50 groupWeight += vent.getWeight(); 51 } 52 if (i > 0) { 53 for (int k = 0; k < i; k++) { 54 double diff = Math.abs(groupWeight - groupWeights[k]); 55 squaredDiff += diff * diff; 56 } 57 } 58 groupWeights[i] = groupWeight; 59 } 60 return squaredDiff; 61 } 62 } 63 | Popular Tags |