ec.spatial
Interface Space

All Known Implementing Classes:
Spatial1DSubpopulation

public interface 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.

Version:
1.0
Author:
Liviu Panait

Method Summary
 int getIndex(int threadnum)
          Functionality: retrieve the index for a specific threanum.
 int getIndexRandomNeighbor(EvolutionState state, int threadnum, int distance)
          Input: the maximum distance for neighbors.
 java.lang.Object indexToLocation(int index)
          The Space provide a bijectional mapping from indexes in the subpopulation to locations in space.
 int locationToIndex(java.lang.Object location)
          The Space should provide a bijectional mapping from locations in space to indexes in the subpopulation.
 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.
 

Method Detail

locationToIndex

int locationToIndex(java.lang.Object location)
The Space should provide a bijectional mapping from locations in space to indexes in the subpopulation. Returns -1 if error occured.


indexToLocation

java.lang.Object indexToLocation(int index)
The Space provide a bijectional mapping from indexes in the subpopulation to locations in space. Returns null if error occured.


setIndex

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. All such accesses from the specific thread will use the exact same index, until this function is called again to change the index.


getIndex

int getIndex(int threadnum)
Functionality: retrieve the index for a specific threanum. Returns -1 if any error is encountered.


getIndexRandomNeighbor

int getIndexRandomNeighbor(EvolutionState state,
                           int threadnum,
                           int distance)
Input: the maximum distance for neighbors. Functionality: computes the location in space associated with the index, then computes the neighbors of that location that are within the specified distance. Output: returns one random neighbor within that distance (possibly including self)