Class VectorAngleDistanceScalingComparator

java.lang.Object
org.moeaframework.algorithm.single.AbstractAggregateObjectiveComparator
org.moeaframework.algorithm.single.VectorAngleDistanceScalingComparator
All Implemented Interfaces:
Comparator<Solution>, AggregateObjectiveComparator, DominanceComparator

public class VectorAngleDistanceScalingComparator extends AbstractAggregateObjectiveComparator
The vector angle distance scaling aggregate function. The distance between the origin and the objective vector is scaled by the cosine angle between the objective vector and a target vector.

References:

  1. E. J. Hughes. "Multiple Single Objective Pareto Sampling." 2003 Congress on Evolutionary Computation, pp. 2678-2684.
  • Constructor Details

    • VectorAngleDistanceScalingComparator

      public VectorAngleDistanceScalingComparator(double[] weights)
      Constructs a new instance of the vector angle distance scaling aggregate function with the given weights.
      Parameters:
      weights - the weight vector; must have a magnitude of 1.0
    • VectorAngleDistanceScalingComparator

      public VectorAngleDistanceScalingComparator(double[] weights, double q)
      Constructs a new instance of the vector angle distance scaling aggregate function with the given weights.
      Parameters:
      weights - the weight vector; must have a magnitude of 1.0
      q - factor for scaling the effects of the angle
  • Method Details

    • getAngleScalingFactor

      public double getAngleScalingFactor()
      Returns the factor for scaling the effects of the angle.
      Returns:
      the factor for scaling the effects of the angle
    • calculateFitness

      public double calculateFitness(Solution solution)
      Description copied from interface: AggregateObjectiveComparator
      Calculates the aggregate (fitness) value of the solution using this aggregate function.
      Parameters:
      solution - the solution
      Returns:
      the aggregate value (smaller is better)
    • calculateFitness

      public static final double calculateFitness(Solution solution, double[] weights, double q)
      Computes the vector angle distance scaling aggregate fitness of the solution. One weight should be given for each objective.
      Parameters:
      solution - the solution
      weights - the weight vector
      q - factor for scaling the effects of the angle
      Returns:
      the fitness, where smaller values are preferred