org.omegahat.Numerics.GeneticAlgorithms
Class TraitLevels

java.lang.Object
  |
  +--org.omegahat.Numerics.GeneticAlgorithms.TraitLevels
All Implemented Interfaces:
Copyable, Trait

public class TraitLevels
extends java.lang.Object
implements Trait, Copyable

A trait class representing a choice from a finite set of alternatives (the levels).

It breeds by choosing randomly from the level choice of either parent and mutates by picking another level, all levels (except the current choice) being equally likely.


Field Summary
protected  long choice
          The index of this trait in the levels set.
protected  java.lang.Object[] levels
           
protected  java.lang.String name
           
protected  Randomizer randomizer
           
 
Constructor Summary
TraitLevels(java.lang.Object[] levels, Randomizer randomizer)
           
 
Method Summary
 Trait breed(Trait partner)
          Return a new trait corresponding to breeding this trait with the argument.
 java.lang.Object copy()
          Return a copy of the object, with the same levels and randomizer.
 java.lang.Object copy(boolean deep)
          Return a copy of the object, with the same levels and randomizer.
 long getChoice()
          Accessor for choice field
 java.lang.Object[] getLevels()
          Accessor for levels field
 java.lang.String getName()
          Accessor for name field
 Randomizer getRandomizer()
          Accessor for randomizer field
 Trait mutate()
          Return a new trait reflecting a mutation of this object.
 long setChoice(long value)
          Accessor for setting choice field
 java.lang.Object[] setLevels(java.lang.Object[] value)
          Accessor for setting levels field
 java.lang.String setName(java.lang.String value)
          Accessor for setting name field
protected  Randomizer setRandomizer(Randomizer value)
          Accessor for setting randomizer field.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

levels

protected java.lang.Object[] levels

randomizer

protected Randomizer randomizer

choice

protected long choice
The index of this trait in the levels set.

name

protected java.lang.String name
Constructor Detail

TraitLevels

public TraitLevels(java.lang.Object[] levels,
                   Randomizer randomizer)
Method Detail

getLevels

public java.lang.Object[] getLevels()
Accessor for levels field

setLevels

public java.lang.Object[] setLevels(java.lang.Object[] value)
Accessor for setting levels field

getRandomizer

public Randomizer getRandomizer()
Accessor for randomizer field

setRandomizer

protected Randomizer setRandomizer(Randomizer value)
Accessor for setting randomizer field.

Not a publicly settable property, in order to protect consistency of the sequence of mutations.


getChoice

public long getChoice()
Accessor for choice field

setChoice

public long setChoice(long value)
Accessor for setting choice field

getName

public java.lang.String getName()
Accessor for name field
Specified by:
getName in interface Trait

setName

public java.lang.String setName(java.lang.String value)
Accessor for setting name field

breed

public Trait breed(Trait partner)
Return a new trait corresponding to breeding this trait with the argument.
Specified by:
breed in interface Trait

mutate

public Trait mutate()
Return a new trait reflecting a mutation of this object.
Specified by:
mutate in interface Trait

copy

public java.lang.Object copy()
Return a copy of the object, with the same levels and randomizer.
Specified by:
copy in interface Copyable

copy

public java.lang.Object copy(boolean deep)
Return a copy of the object, with the same levels and randomizer.

The argument is ignored.

Specified by:
copy in interface Copyable
Following copied from interface: org.omegahat.Environment.DataStructures.Copyable
Parameters:
deepCopy - controls whether the contents of the object are also recursively copied or shared by reference with the new object.