Package ec.multiobjective.spea2
Class SPEA2MultiObjectiveFitness
java.lang.Object
ec.Fitness
ec.multiobjective.MultiObjectiveFitness
ec.multiobjective.spea2.SPEA2MultiObjectiveFitness
- All Implemented Interfaces:
Prototype,Setup,Serializable,Cloneable,Comparable<Object>
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:
-
Field Summary
FieldsModifier and TypeFieldDescriptiondoubleFinal SPEA2 fitness.doubleSPEA2 NN distancestatic final Stringstatic final Stringstatic final StringdoubleSPEA2 strength (# of nodes it dominates)Fields inherited from class ec.multiobjective.MultiObjectiveFitness
FITNESS_POSTAMBLE, maximize, maxObjective, minObjective, MULTI_FITNESS_POSTAMBLE, objectives, P_MAXIMIZE, P_MAXOBJECTIVE, P_MINOBJECTIVE, P_NUMOBJECTIVESFields inherited from class ec.Fitness
context, FITNESS_PREAMBLE, P_FITNESS, trials -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbetterThan(Fitness _fitness) The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.booleanequivalentTo(Fitness _fitness) The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.Print to a string the fitness in a fashion intended to be parsed in again via readFitness(...).Print to a string the fitness in a fashion readable by humans, and not intended to be parsed in again.String[]Returns auxilliary fitness value names to be printed by the statistics object.double[]Returns auxilliary fitness values to be printed by the statistics object.voidreadFitness(EvolutionState state, DataInput dataInput) Reads the binary form of an individual from a DataInput.voidreadFitness(EvolutionState state, LineNumberReader reader) Reads in the fitness from a form outputted by fitnessToString() and thus printFitnessForHumans(...).voidwriteFitness(EvolutionState state, 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, getRankings, getSortedParetoFront, isIdealFitness, isMaximizing, isMaximizing, manhattanObjectiveDistance, paretoDominates, partitionIntoParetoFront, partitionIntoRanks, setObjectives, setToBestOf, setToMeanOf, setToMedianOf, setup, sumSquaredObjectiveDistanceMethods inherited from class ec.Fitness
compareTo, contextIsBetterThan, getContext, merge, printFitness, printFitness, printFitness, printFitnessForHumans, printFitnessForHumans, readTrials, setContext, setContext, writeTrials
-
Field Details
-
SPEA2_FITNESS_PREAMBLE
- See Also:
-
SPEA2_STRENGTH_PREAMBLE
- See Also:
-
SPEA2_DISTANCE_PREAMBLE
- See Also:
-
strength
public double strengthSPEA2 strength (# of nodes it dominates) -
kthNNDistance
public double kthNNDistanceSPEA2 NN distance -
fitness
public double fitnessFinal SPEA2 fitness. Equals the raw fitness R(i) plus the kthNNDistance D(i).
-
-
Constructor Details
-
SPEA2MultiObjectiveFitness
public SPEA2MultiObjectiveFitness()
-
-
Method Details
-
getAuxilliaryFitnessNames
Description copied from class:MultiObjectiveFitnessReturns 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:
getAuxilliaryFitnessNamesin classMultiObjectiveFitness
-
getAuxilliaryFitnessValues
public double[] getAuxilliaryFitnessValues()Description copied from class:MultiObjectiveFitnessReturns 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:
getAuxilliaryFitnessValuesin classMultiObjectiveFitness
-
fitnessToString
Description copied from class:FitnessPrint 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. When overriding, you may wish to check to see if the 'trials' variable is non-null, and issue an error if so.- Overrides:
fitnessToStringin classMultiObjectiveFitness
-
fitnessToStringForHumans
Description copied from class:FitnessPrint 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:
fitnessToStringForHumansin classMultiObjectiveFitness
-
readFitness
Description copied from class:FitnessReads 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:
readFitnessin classMultiObjectiveFitness- Throws:
IOException
-
writeFitness
Description copied from class:FitnessWrites 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, and be certain to also write the 'trials' variable as well.- Overrides:
writeFitnessin classMultiObjectiveFitness- Throws:
IOException
-
readFitness
Description copied from class:FitnessReads 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, and be certain to also write the 'trials' variable as well.- Overrides:
readFitnessin classMultiObjectiveFitness- Throws:
IOException
-
equivalentTo
The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.- Overrides:
equivalentToin classMultiObjectiveFitness
-
betterThan
The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.- Overrides:
betterThanin classMultiObjectiveFitness
-