/*
Copyright 2006 by Sean Luke and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package ec.rule;
import ec.*;
import ec.util.*;
import java.io.*;
/*
* RuleSpecies.java
*
* Created: Wed Feb 31 17:42:10 2001
* By: Liviu Panait
*/
/**
* RuleSpecies is a simple individual which is suitable as a species
* for rule sets subpopulations. RuleSpecies' individuals must be RuleIndividuals,
* and often their pipelines are RuleBreedingPipelines (at any rate,
* the pipelines will have to return members of RuleSpecies!).
*
Default Base
rule.species
*
* @author Liviu Panait
* @version 1.0
*/
public class RuleSpecies extends Species
{
public static final String P_RULESPECIES = "species";
public Parameter defaultBase()
{
return RuleDefaults.base().push(P_RULESPECIES);
}
public void setup(final EvolutionState state, final Parameter base)
{
super.setup(state,base);
// check to make sure that our individual prototype is a RuleIndividual
if (!(i_prototype instanceof RuleIndividual))
state.output.fatal("The Individual class for the Species " + getClass().getName() + " is must be a subclass of ec.rule.RuleIndividual.", base );
}
public Individual newIndividual(EvolutionState state, int thread)
{
RuleIndividual newind = (RuleIndividual)(super.newIndividual(state, thread));
newind.reset( state, thread);
return newind;
}
}
Ads help maintain this website.