ec.spatial
Class Spatial1DSubpopulation

java.lang.Object
  extended by ec.Subpopulation
      extended by ec.spatial.Spatial1DSubpopulation
All Implemented Interfaces:
Group, Setup, Space, java.io.Serializable, java.lang.Cloneable

public class Spatial1DSubpopulation
extends Subpopulation
implements Space

A Spatial1DSubpopulation is an EC subpopulation that is additionally embedded into a one-dimmensional space. In a spatially-embedded EA, the subpopulations of individuals are assumed to be spatially distributed in some sort of space, be it one-dimmensional, two- dimmensional, or whatever else. The space may or may not be toroidal (although it usually is). Each location in the space has a set of neighboring locations. Thus, each individual has an index in the subpopulation, and also a location in the space.

This public interface provides a method to obtain the indexes of the neighbors of a location.

This Subpopulation does not include toroidalness in writing out to streams.

Parameters

Version:
1.0
Author:
Liviu Panait
See Also:
Serialized Form

toroidal
true (default) or false
(Is this space toroidal?)
Field Summary
static java.lang.String P_TOROIDAL
          This parameter stipulates whether the world is toroidal or not.
 boolean toroidal
           
 
Fields inherited from class ec.Subpopulation
INDIVIDUAL_INDEX_PREAMBLE, individuals, loadInds, NUM_INDIVIDUALS_PREAMBLE, numDuplicateRetries, P_FILE, P_RETRIES, P_SPECIES, P_SUBPOPSIZE, species
 
Constructor Summary
Spatial1DSubpopulation()
           
 
Method Summary
 int getIndex(int threadnum)
          Functionality: retrieve the index for a specific threanum.
 int getIndexRandomNeighbor(EvolutionState state, int threadnum, int distance)
          Returns a the index of a random neighbor.
 java.lang.Object indexToLocation(int index)
          1D mapping is identity
 int locationToIndex(java.lang.Object location)
          1D mapping is identity
 void setIndex(int threadnum, int index)
          Input: a threadnumber (either for evaluation or for breeding), and an index in a subpopulation (the index in the subpopulation is, of course, associated with a location in the space) Functionality: stores the index and the threadnumber for further accesses to the getRandomIndex method.
 void setup(EvolutionState state, Parameter base)
          Read additional parameters for the spatially-embedded subpopulation.
 
Methods inherited from class ec.Subpopulation
emptyClone, populate, printSubpopulation, printSubpopulation, printSubpopulationForHumans, readSubpopulation, readSubpopulation, writeSubpopulation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

P_TOROIDAL

public static final java.lang.String P_TOROIDAL
This parameter stipulates whether the world is toroidal or not. If missing, its default value is true.

See Also:
Constant Field Values

toroidal

public boolean toroidal
Constructor Detail

Spatial1DSubpopulation

public Spatial1DSubpopulation()
Method Detail

setup

public void setup(EvolutionState state,
                  Parameter base)
Read additional parameters for the spatially-embedded subpopulation.

Specified by:
setup in interface Setup
Overrides:
setup in class Subpopulation

locationToIndex

public int locationToIndex(java.lang.Object location)
1D mapping is identity

Specified by:
locationToIndex in interface Space

indexToLocation

public java.lang.Object indexToLocation(int index)
1D mapping is identity

Specified by:
indexToLocation in interface Space

setIndex

public void setIndex(int threadnum,
                     int index)
Description copied from interface: Space
Input: a threadnumber (either for evaluation or for breeding), and an index in a subpopulation (the index in the subpopulation is, of course, associated with a location in the space) Functionality: stores the index and the threadnumber for further accesses to the getRandomIndex method. All such accesses from the specific thread will use the exact same index, until this function is called again to change the index.

Specified by:
setIndex in interface Space

getIndex

public int getIndex(int threadnum)
Description copied from interface: Space
Functionality: retrieve the index for a specific threanum. Returns -1 if any error is encountered.

Specified by:
getIndex in interface Space

getIndexRandomNeighbor

public int getIndexRandomNeighbor(EvolutionState state,
                                  int threadnum,
                                  int distance)
Returns a the index of a random neighbor.

Specified by:
getIndexRandomNeighbor in interface Space