|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectec.Subpopulation
public class Subpopulation
Subpopulation is a group which is basically an array of Individuals. There is always one or more Subpopulations in the Population. Each Subpopulation has a Species, which governs the formation of the Individuals in that Subpopulation. Subpopulations also contain a Fitness prototype which is cloned to form Fitness objects for individuals in the subpopulation.
An initial subpopulation is populated with new random individuals using the populate(...) method. This method typically populates by filling the array with individuals created using the Subpopulations' species' emptyClone() method, though you might override this to create them with other means, by loading from text files for example.
In a multithreaded area of a run, Subpopulations should be considered immutable. That is, once they are created, they should not be modified, nor anything they contain. This protocol helps ensure read-safety under multithreading race conditions.
Parameters
base.size int >= 1 |
(total number of individuals in the subpopulation) |
base.species classname, inherits and != ec.Species |
(the class of the subpopulations' Species) |
base.fitness classname, inherits and != ec.Fitness |
(the class for the prototypical Fitness for individuals in this subpopulation) |
base.file String |
(pathname of file from which the population is to be loaded. If not defined, or empty, then the population will be initialized at random in the standard manner) |
base.duplicate-retries int >= 0 |
(during initialization, when we produce an individual which already exists in the subpopulation, the number of times we try to replace it with something unique. Ignored if we're loading from a file.) |
Parameter bases
base.species | species (the subpopulations' species) |
Field Summary | |
---|---|
static java.lang.String |
INDIVIDUAL_INDEX_PREAMBLE
|
Individual[] |
individuals
The subpopulation's individuals. |
java.io.File |
loadInds
A new subpopulation should be loaded from this file if it is non-null; otherwise they should be created at random. |
static java.lang.String |
NUM_INDIVIDUALS_PREAMBLE
|
int |
numDuplicateRetries
Do we allow duplicates? |
static java.lang.String |
P_FILE
|
static java.lang.String |
P_RETRIES
|
static java.lang.String |
P_SPECIES
|
static java.lang.String |
P_SUBPOPSIZE
|
Species |
species
The species for individuals in this subpopulation. |
Constructor Summary | |
---|---|
Subpopulation()
|
Method Summary | |
---|---|
Group |
emptyClone()
Returns an instance of Subpopulation just like it had been before it was populated with individuals. |
void |
populate(EvolutionState state,
int thread)
|
void |
printSubpopulation(EvolutionState state,
int log,
int verbosity)
Prints an entire subpopulation in a form readable by humans but also parseable by the computer using readSubpopulation(EvolutionState, LineNumberReader). |
void |
printSubpopulation(EvolutionState state,
java.io.PrintWriter writer)
Prints an entire subpopulation in a form readable by humans but also parseable by the computer using readSubpopulation(EvolutionState, LineNumberReader). |
void |
printSubpopulationForHumans(EvolutionState state,
int log,
int verbosity)
Prints an entire subpopulation in a form readable by humans. |
void |
readSubpopulation(EvolutionState state,
java.io.DataInput dataInput)
Reads a subpopulation in binary form, from the format generated by writeSubpopulation(...). |
void |
readSubpopulation(EvolutionState state,
java.io.LineNumberReader reader)
Reads a subpopulation from the format generated by printSubpopulation(....). |
void |
setup(EvolutionState state,
Parameter base)
Sets up the object by reading it from the parameters stored in state, built off of the parameter base base. |
void |
writeSubpopulation(EvolutionState state,
java.io.DataOutput dataOutput)
Writes a subpopulation in binary form, in a format readable by readSubpopulation(EvolutionState, DataInput). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public java.io.File loadInds
public Species species
public Individual[] individuals
public int numDuplicateRetries
public static final java.lang.String P_FILE
public static final java.lang.String P_SUBPOPSIZE
public static final java.lang.String P_SPECIES
public static final java.lang.String P_RETRIES
public static final java.lang.String NUM_INDIVIDUALS_PREAMBLE
public static final java.lang.String INDIVIDUAL_INDEX_PREAMBLE
Constructor Detail |
---|
public Subpopulation()
Method Detail |
---|
public Group emptyClone()
emptyClone
in interface Group
Group.emptyClone()
public void setup(EvolutionState state, Parameter base)
Setup
setup
in interface Setup
public void populate(EvolutionState state, int thread)
public void printSubpopulationForHumans(EvolutionState state, int log, int verbosity)
public void printSubpopulation(EvolutionState state, int log, int verbosity)
public void printSubpopulation(EvolutionState state, java.io.PrintWriter writer)
public void readSubpopulation(EvolutionState state, java.io.LineNumberReader reader) throws java.io.IOException
java.io.IOException
public void writeSubpopulation(EvolutionState state, java.io.DataOutput dataOutput) throws java.io.IOException
java.io.IOException
public void readSubpopulation(EvolutionState state, java.io.DataInput dataInput) throws java.io.IOException
java.io.IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |