KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jgap > BulkFitnessFunction


1 /*
2  * This file is part of JGAP.
3  *
4  * JGAP offers a dual license model containing the LGPL as well as the MPL.
5  *
6  * For licencing information please see the file license.txt included with JGAP
7  * or have a look at the top of class org.jgap.Chromosome which representatively
8  * includes the JGAP license policy applicable for any file delivered with JGAP.
9  */

10 package org.jgap;
11
12 import java.io.*;
13 import org.jgap.util.*;
14
15 /**
16  * Bulk fitness functions are used to determine how optimal a group of
17  * solutions are relative to each other. Bulk fitness functions can be
18  * useful (vs. normal fitness functions) when fitness of a particular
19  * solution cannot be easily computed in isolation, but instead is
20  * dependent upon the fitness of its fellow solutions that are also
21  * under consideration. This abstract class should be extended and the
22  * evaluateChromosomes() method implemented to evaluate each of the
23  * Chromosomes given in an array and set their fitness values prior
24  * to returning.
25  *
26  * @author Neil Rotstan
27  * @author Klaus Meffert
28  * @since 1.0
29  */

30 public abstract class BulkFitnessFunction
31     implements Serializable, ICloneable {
32   /** String containing the CVS revision. Read out via reflection!*/
33   private final static String JavaDoc CVS_REVISION = "$Revision: 1.8 $";
34
35   /**
36    * Calculates and sets the fitness values on each of the given
37    * Chromosomes via their setFitnessValue() method.
38    *
39    * @param a_chromosomes list of Chromosomes for which the fitness values
40    * must be computed and set
41    *
42    * @author Neil Rotstan
43    * @author Klaus Meffert
44    * @since 2.2 (prior versions used other input type)
45    */

46   public abstract void evaluate(Population a_chromosomes);
47
48   /**
49    * Override in your implementation if necessary.
50    *
51    * @return deep clone of the current instance
52    *
53    * @author Klaus Meffert
54    * @since 3.2
55    */

56   public Object JavaDoc clone() {
57     try {
58       return super.clone();
59     } catch (CloneNotSupportedException JavaDoc cex) {
60       throw new CloneException(cex);
61     }
62   }
63 }
64
Popular Tags