ec.multiobjective.spea2
Class SPEA2MultiObjectiveFitness

java.lang.Object
  extended by ec.Fitness
      extended by ec.multiobjective.MultiObjectiveFitness
          extended by ec.multiobjective.spea2.SPEA2MultiObjectiveFitness
All Implemented Interfaces:
Prototype, Setup, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable

public class SPEA2MultiObjectiveFitness
extends MultiObjectiveFitness

SPEA2MultiObjectiveFitness is a subclass of MultiObjectiveFitness which adds three auxiliary fitness measures used in SPEA2: strength S(i), kthNNDistance D(i), and a final fitness value R(i) + D(i). Note that so-called "raw fitness" (what Sean calls "Wimpiness" in Essentials of Metaheuristics) is not retained.

The fitness comparison operators solely use the 'fitness' value R(i) + D(i).

See Also:
Serialized Form

Field Summary
 double fitness
          Final SPEA2 fitness.
 double kthNNDistance
          SPEA2 NN distance
static java.lang.String SPEA2_DISTANCE_PREAMBLE
           
static java.lang.String SPEA2_FITNESS_PREAMBLE
           
static java.lang.String SPEA2_STRENGTH_PREAMBLE
           
 double strength
          SPEA2 strength (# of nodes it dominates)
 
Fields inherited from class ec.multiobjective.MultiObjectiveFitness
FITNESS_POSTAMBLE, maximize, maxObjective, minObjective, MULTI_FITNESS_POSTAMBLE, objectives, P_MAXIMIZE, P_MAXOBJECTIVES, P_MINOBJECTIVES, P_NUMOBJECTIVES
 
Fields inherited from class ec.Fitness
FITNESS_PREAMBLE, P_FITNESS, trials
 
Constructor Summary
SPEA2MultiObjectiveFitness()
           
 
Method Summary
 boolean betterThan(Fitness _fitness)
          The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.
 boolean equivalentTo(Fitness _fitness)
          The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.
 java.lang.String fitnessToString()
          Print to a string the fitness in a fashion intended to be parsed in again via readFitness(...).
 java.lang.String fitnessToStringForHumans()
          Print to a string the fitness in a fashion readable by humans, and not intended to be parsed in again.
 java.lang.String[] getAuxilliaryFitnessNames()
          Returns auxilliary fitness value names to be printed by the statistics object.
 double[] getAuxilliaryFitnessValues()
          Returns auxilliary fitness values to be printed by the statistics object.
 void readFitness(EvolutionState state, java.io.DataInput dataInput)
          Reads the binary form of an individual from a DataInput.
 void readFitness(EvolutionState state, java.io.LineNumberReader reader)
          Reads in the fitness from a form outputted by fitnessToString() and thus printFitnessForHumans(...).
 void writeFitness(EvolutionState state, java.io.DataOutput dataOutput)
          Writes the binary form of an individual out to a DataOutput.
 
Methods inherited from class ec.multiobjective.MultiObjectiveFitness
clone, defaultBase, fitness, getNumObjectives, getObjective, getObjectives, isIdealFitness, isMaximizing, manhattanObjectiveDistance, paretoDominates, partitionIntoParetoFront, partitionIntoRanks, setObjectives, setup, sumSquaredObjectiveDistance
 
Methods inherited from class ec.Fitness
compareTo, printFitness, printFitness, printFitness, printFitnessForHumans, printFitnessForHumans, setToMeanOf
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SPEA2_FITNESS_PREAMBLE

public static final java.lang.String SPEA2_FITNESS_PREAMBLE
See Also:
Constant Field Values

SPEA2_STRENGTH_PREAMBLE

public static final java.lang.String SPEA2_STRENGTH_PREAMBLE
See Also:
Constant Field Values

SPEA2_DISTANCE_PREAMBLE

public static final java.lang.String SPEA2_DISTANCE_PREAMBLE
See Also:
Constant Field Values

strength

public double strength
SPEA2 strength (# of nodes it dominates)


kthNNDistance

public double kthNNDistance
SPEA2 NN distance


fitness

public double fitness
Final SPEA2 fitness. Equals the raw fitness R(i) plus the kthNNDistance D(i).

Constructor Detail

SPEA2MultiObjectiveFitness

public SPEA2MultiObjectiveFitness()
Method Detail

getAuxilliaryFitnessNames

public java.lang.String[] getAuxilliaryFitnessNames()
Description copied from class: MultiObjectiveFitness
Returns auxilliary fitness value names to be printed by the statistics object. By default, an empty array is returned, but various algorithms may override this to provide additional columns.

Overrides:
getAuxilliaryFitnessNames in class MultiObjectiveFitness

getAuxilliaryFitnessValues

public double[] getAuxilliaryFitnessValues()
Description copied from class: MultiObjectiveFitness
Returns auxilliary fitness values to be printed by the statistics object. By default, an empty array is returned, but various algorithms may override this to provide additional columns.

Overrides:
getAuxilliaryFitnessValues in class MultiObjectiveFitness

fitnessToString

public java.lang.String fitnessToString()
Description copied from class: Fitness
Print to a string the fitness in a fashion intended to be parsed in again via readFitness(...). The fitness and evaluated flag should not be included. The default form simply calls toString(), which is almost certainly wrong, and you'll probably want to override this to something else.

Overrides:
fitnessToString in class MultiObjectiveFitness

fitnessToStringForHumans

public java.lang.String fitnessToStringForHumans()
Description copied from class: Fitness
Print to a string the fitness in a fashion readable by humans, and not intended to be parsed in again. The default form simply calls toString(), but you'll probably want to override this to something else.

Overrides:
fitnessToStringForHumans in class MultiObjectiveFitness

readFitness

public void readFitness(EvolutionState state,
                        java.io.LineNumberReader reader)
                 throws java.io.IOException
Description copied from class: Fitness
Reads in the fitness from a form outputted by fitnessToString() and thus printFitnessForHumans(...). The default version of this method exits the program with an "unimplemented" error.

Overrides:
readFitness in class MultiObjectiveFitness
Throws:
java.io.IOException

writeFitness

public void writeFitness(EvolutionState state,
                         java.io.DataOutput dataOutput)
                  throws java.io.IOException
Description copied from class: Fitness
Writes the binary form of an individual out to a DataOutput. This is not for serialization: the object should only write out the data relevant to the object sufficient to rebuild it from a DataInput. The default version exits the program with an "unimplemented" error; you should override this.

Overrides:
writeFitness in class MultiObjectiveFitness
Throws:
java.io.IOException

readFitness

public void readFitness(EvolutionState state,
                        java.io.DataInput dataInput)
                 throws java.io.IOException
Description copied from class: Fitness
Reads the binary form of an individual from a DataInput. This is not for serialization: the object should only read in the data written out via printIndividual(state,dataInput). The default version exits the program with an "unimplemented" error; you should override this.

Overrides:
readFitness in class MultiObjectiveFitness
Throws:
java.io.IOException

equivalentTo

public boolean equivalentTo(Fitness _fitness)
The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.

Overrides:
equivalentTo in class MultiObjectiveFitness

betterThan

public boolean betterThan(Fitness _fitness)
The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.

Overrides:
betterThan in class MultiObjectiveFitness