Package ec
Class Population
java.lang.Object
ec.Population
- All Implemented Interfaces:
Setup,Serializable,Cloneable
A Population is the repository for all the Individuals being bred or
evaluated in the evolutionary run at a given time.
A Population is basically an array of Subpopulations, each of which
are arrays of Individuals coupled with a single Species per Subpoulation.
The first Population is created using the initializePopulation method of the Initializer object, which typically calls the Population's populate() method in turn. On generational systems, subsequent populations are created on a generation-by-generation basis by the Breeder object, replacing the previous Population.
In a multithreaded area of a run, Populations 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.subpops int >= 1 |
(the number of subpopulations) |
| base.subpop.n classname, inherits or = ec.Subpopulation |
(the class for subpopulation #n) |
| base.default-subpop int >= 0 |
(the default subpopulation index. The parameter base of this subpopulation will be used as the default base for all subpopulations which do not define one themselves./tr> |
Parameter bases
| base.subpop.n | Subpopulation #n. |
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Returns an instance of Population just like it had been before it was populated with individuals.voidpopulate(EvolutionState state, int thread) Populates the population with new random individuals.voidprintPopulation(EvolutionState state, int log) Prints an entire population in a form readable by humans but also parseable by the computer using readPopulation(EvolutionState, LineNumberReader), with a verbosity of Output.V_NO_GENERAL.final voidprintPopulation(EvolutionState state, int log, int verbosity) Prints an entire population in a form readable by humans but also parseable by the computer using readPopulation(EvolutionState, LineNumberReader).voidprintPopulation(EvolutionState state, PrintWriter writer) Prints an entire population in a form readable by humans but also parseable by the computer using readPopulation(EvolutionState, LineNumberReader).voidprintPopulationForHumans(EvolutionState state, int log) Prints an entire population in a form readable by humans, with a verbosity of Output.V_NO_GENERAL.final voidprintPopulationForHumans(EvolutionState state, int log, int verbosity) Prints an entire population in a form readable by humans.voidreadPopulation(EvolutionState state, DataInput dataInput) Reads a population in binary form, from the format generated by writePopulation(...).voidreadPopulation(EvolutionState state, LineNumberReader reader) Reads a population from the format generated by printPopulation(....).voidsetup(EvolutionState state, Parameter base) Sets up the object by reading it from the parameters stored in state, built off of the parameter base base.voidwritePopulation(EvolutionState state, DataOutput dataOutput) Writes a population in binary form, in a format readable by readPopulation(EvolutionState, DataInput).
-
Field Details
-
subpops
-
P_SIZE
- See Also:
-
P_SUBPOP
- See Also:
-
P_DEFAULT_SUBPOP
- See Also:
-
P_FILE
- See Also:
-
NUM_SUBPOPS_PREAMBLE
- See Also:
-
SUBPOP_INDEX_PREAMBLE
- See Also:
-
loadInds
public boolean loadInds -
file
-
-
Constructor Details
-
Population
public Population()
-
-
Method Details
-
emptyClone
Returns an instance of Population just like it had been before it was populated with individuals. You may need to override this if you override Population. IMPORTANT NOTE: if the size of the array in Population has been changed, then the clone will take on the new array size. This helps some evolution strategies. -
clear
public void clear() -
setup
Description copied from interface:SetupSets up the object by reading it from the parameters stored in state, built off of the parameter base base. If an ancestor implements this method, be sure to call super.setup(state,base); before you do anything else. -
populate
Populates the population with new random individuals. -
printPopulationForHumans
Prints an entire population in a form readable by humans. -
printPopulation
Prints an entire population in a form readable by humans but also parseable by the computer using readPopulation(EvolutionState, LineNumberReader). -
printPopulationForHumans
Prints an entire population in a form readable by humans, with a verbosity of Output.V_NO_GENERAL. -
printPopulation
Prints an entire population in a form readable by humans but also parseable by the computer using readPopulation(EvolutionState, LineNumberReader), with a verbosity of Output.V_NO_GENERAL. -
printPopulation
Prints an entire population in a form readable by humans but also parseable by the computer using readPopulation(EvolutionState, LineNumberReader). -
readPopulation
Reads a population from the format generated by printPopulation(....). The number of subpopulations and the species information must be identical.- Throws:
IOException
-
writePopulation
Writes a population in binary form, in a format readable by readPopulation(EvolutionState, DataInput).- Throws:
IOException
-
readPopulation
Reads a population in binary form, from the format generated by writePopulation(...). The number of subpopulations and the species information must be identical.- Throws:
IOException
-