ec.multiobjective.spea2
Class SPEA2MultiObjectiveFitness
- java.lang.Object
-
- ec.Fitness
-
- ec.multiobjective.MultiObjectiveFitness
-
- 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
Fields Modifier and Type Field and Description doublefitnessFinal SPEA2 fitness.doublekthNNDistanceSPEA2 NN distancestatic java.lang.StringSPEA2_DISTANCE_PREAMBLEstatic java.lang.StringSPEA2_FITNESS_PREAMBLEstatic java.lang.StringSPEA2_STRENGTH_PREAMBLEdoublestrengthSPEA2 strength (# of nodes it dominates)-
Fields inherited from class ec.multiobjective.MultiObjectiveFitness
FITNESS_POSTAMBLE, maximize, maxObjective, minObjective, MULTI_FITNESS_POSTAMBLE, P_MAXIMIZE, P_MAXOBJECTIVES, P_MINOBJECTIVES, P_NUMOBJECTIVES
-
Fields inherited from class ec.Fitness
context, FITNESS_PREAMBLE, P_FITNESS, trials
-
-
Constructor Summary
Constructors Constructor and Description SPEA2MultiObjectiveFitness()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description booleanbetterThan(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.java.lang.StringfitnessToString()Print to a string the fitness in a fashion intended to be parsed in again via readFitness(...).java.lang.StringfitnessToStringForHumans()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.voidreadFitness(EvolutionState state, java.io.DataInput dataInput)Reads the binary form of an individual from a DataInput.voidreadFitness(EvolutionState state, java.io.LineNumberReader reader)Reads in the fitness from a form outputted by fitnessToString() and thus printFitnessForHumans(...).voidwriteFitness(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, getRankings, isIdealFitness, isMaximizing, isMaximizing, manhattanObjectiveDistance, paretoDominates, partitionIntoParetoFront, partitionIntoRanks, setObjectives, setToBestOf, setToMeanOf, setToMedianOf, setup, sumSquaredObjectiveDistance
-
Methods inherited from class ec.Fitness
compareTo, contextIsBetterThan, getContext, merge, printFitness, printFitness, printFitness, printFitnessForHumans, printFitnessForHumans, readTrials, setContext, setContext, writeTrials
-
-
-
-
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).
-
-
Method Detail
-
getAuxilliaryFitnessNames
public java.lang.String[] 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
public java.lang.String 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
public java.lang.String 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
public void readFitness(EvolutionState state, java.io.LineNumberReader reader) throws java.io.IOException
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:
java.io.IOException
-
writeFitness
public void writeFitness(EvolutionState state, java.io.DataOutput dataOutput) throws java.io.IOException
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:
java.io.IOException
-
readFitness
public void readFitness(EvolutionState state, java.io.DataInput dataInput) throws java.io.IOException
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:
java.io.IOException
-
equivalentTo
public boolean equivalentTo(Fitness _fitness)
The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.- Overrides:
equivalentToin classMultiObjectiveFitness
-
betterThan
public boolean betterThan(Fitness _fitness)
The selection criteria in SPEA2 uses the computed fitness, and not pareto dominance.- Overrides:
betterThanin classMultiObjectiveFitness
-
-
DMelt 3.0 © DataMelt by jWork.ORG