/*
* 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.gp;
import java.io.*;
/**
* Optional initializer for creating GP programs.
* Set it via GPConfiguration.setInitStrategy.
*
* @author Klaus Meffert
* @since 3.2.1
*/
public interface IGPInitStrategy
extends Serializable {
/** String containing the CVS revision. Read out via reflection!*/
final static String CVS_REVISION = "$Revision: 1.5 $";
/**
* Initializes a chromosome within a GP program before a random creation of
* the (rest of the) program is executed.
*
* @param a_chrom the chromosome within the GP program to create randomly
* @param a_chromNum index of the chromosome with the GP program
* @return the CommandGene to use as first node, or null if random selection
* @throws Exception
*
* @author Klaus Meffert
* @since 3.2.1
*/
CommandGene init(IGPChromosome a_chrom, int a_chromNum)
throws Exception;
}