MOEA Framework 2.5
API Specification

org.moeaframework.algorithm
Class ReferencePointNondominatedSortingPopulation

java.lang.Object
  extended by org.moeaframework.core.Population
      extended by org.moeaframework.core.NondominatedSortingPopulation
          extended by org.moeaframework.algorithm.ReferencePointNondominatedSortingPopulation
All Implemented Interfaces:
Iterable<Solution>

public class ReferencePointNondominatedSortingPopulation
extends NondominatedSortingPopulation

Implementation of the reference-point-based nondominated sorting method for NSGA-III. NSGA-III includes an additional parameter, the number of divisions, that controls the spacing of reference points. For large objective counts, an alternate two-layered approach was also proposed allowing the user to specify the divisions on the outer and inner layer. When using the two-layered approach, the number of outer divisions should less than the number of objectives, otherwise it will generate reference points overlapping with the inner layer. If there are M objectives and p divisions, then binomialCoefficient(M+p-1, p) reference points are generated.

Unfortunately, since no official implementation has been released by the original authors, we have made our best effort to implement the algorithm as described in the journal article. We would like to thank Tsung-Che Chiang for developing the first publicly available implementation of NSGA-III in C++.

References:

  1. Deb, K. and Jain, H. "An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints." IEEE Transactions on Evolutionary Computation, 18(4):577-601, 2014.
  2. C++ Implementation by Tsung-Che Chiang


Constructor Summary
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions)
          Constructs an empty population that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions, DominanceComparator comparator)
          Constructs an empty population that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions, DominanceComparator comparator, Iterable<? extends Solution> iterable)
          Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner)
          Constructs an empty population that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner, DominanceComparator comparator)
          Constructs an empty population that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner, DominanceComparator comparator, Iterable<? extends Solution> iterable)
          Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner, Iterable<? extends Solution> iterable)
          Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.
ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions, Iterable<? extends Solution> iterable)
          Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.
 
Method Summary
protected  double achievementScalarizingFunction(Solution solution, double[] weights)
          The Chebyshev achievement scalarizing function.
 void truncate(int size)
          Truncates the population to the specified size using the reference-point based nondominated sorting method.
 void truncate(int size, Comparator<? super Solution> comparator)
          Truncates the population to the specified size using the reference-point based nondominated sorting method.
 
Methods inherited from class org.moeaframework.core.NondominatedSortingPopulation
add, clear, get, iterator, prune, remove, remove, sort, update
 
Methods inherited from class org.moeaframework.core.Population
addAll, addAll, contains, containsAll, containsAll, indexOf, isEmpty, removeAll, removeAll, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisions)
Constructs an empty population that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisions - the number of divisions

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisions,
                                                   DominanceComparator comparator,
                                                   Iterable<? extends Solution> iterable)
Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisions - the number of divisions
comparator - the dominance comparator
iterable - the solutions used to initialize this population

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisions,
                                                   DominanceComparator comparator)
Constructs an empty population that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisions - the number of divisions
comparator - the dominance comparator

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisions,
                                                   Iterable<? extends Solution> iterable)
Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisions - the number of divisions
iterable - the solutions used to initialize this population

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisionsOuter,
                                                   int divisionsInner)
Constructs an empty population that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisionsOuter - the number of outer divisions
divisionsInner - the number of inner divisions

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisionsOuter,
                                                   int divisionsInner,
                                                   DominanceComparator comparator,
                                                   Iterable<? extends Solution> iterable)
Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisionsOuter - the number of outer divisions
divisionsInner - the number of inner divisions
comparator - the dominance comparator
iterable - the solutions used to initialize this population

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisionsOuter,
                                                   int divisionsInner,
                                                   DominanceComparator comparator)
Constructs an empty population that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisionsOuter - the number of outer divisions
divisionsInner - the number of inner divisions
comparator - the dominance comparator

ReferencePointNondominatedSortingPopulation

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives,
                                                   int divisionsOuter,
                                                   int divisionsInner,
                                                   Iterable<? extends Solution> iterable)
Constructs a new population with the specified solutions that maintains the rank attribute for its solutions.

Parameters:
numberOfObjectives - the number of objectives
divisionsOuter - the number of outer divisions
divisionsInner - the number of inner divisions
iterable - the solutions used to initialize this population
Method Detail

achievementScalarizingFunction

protected double achievementScalarizingFunction(Solution solution,
                                                double[] weights)
The Chebyshev achievement scalarizing function.

Parameters:
solution - the normalized solution
weights - the reference point (weight vector)
Returns:
the value of the scalarizing function

truncate

public void truncate(int size,
                     Comparator<? super Solution> comparator)
Truncates the population to the specified size using the reference-point based nondominated sorting method.

Overrides:
truncate in class NondominatedSortingPopulation
Parameters:
size - the target population size after truncation
comparator - the comparator to be used for truncation

truncate

public void truncate(int size)
Truncates the population to the specified size using the reference-point based nondominated sorting method.

Overrides:
truncate in class NondominatedSortingPopulation
Parameters:
size - the target population size after truncation

MOEA Framework 2.5
API Specification

Copyright 2009-2015 MOEA Framework. All rights reserved.
Licensed under the GNU Lesser General Public License.
Return to the MOEA Framework homepage. Hosted by Get MOEA Framework at SourceForge.net. Fast, secure and Free Open Source software downloads