/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap; import java.io.*; import org.jgap.util.*; /** * Bulk fitness functions are used to determine how optimal a group of * solutions are relative to each other. Bulk fitness functions can be * useful (vs. normal fitness functions) when fitness of a particular * solution cannot be easily computed in isolation, but instead is * dependent upon the fitness of its fellow solutions that are also * under consideration. This abstract class should be extended and the * evaluateChromosomes() method implemented to evaluate each of the * Chromosomes given in an array and set their fitness values prior * to returning. * * @author Neil Rotstan * @author Klaus Meffert * @since 1.0 */ public abstract class BulkFitnessFunction implements Serializable, ICloneable { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.9 $"; /** * Calculates and sets the fitness values on each of the given * Chromosomes via their setFitnessValue() method. * * @param a_chromosomes list of Chromosomes for which the fitness values * must be computed and set * * @author Neil Rotstan * @author Klaus Meffert * @since 2.2 (prior versions used other input type) */ public abstract void evaluate(Population a_chromosomes); /** * Override in your implementation if necessary. * * @return deep clone of the current instance * * @author Klaus Meffert * @since 3.2 */ public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException cex) { throw new CloneException(cex); } } }