
MOEA Framework 2.12 API Specification 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object org.moeaframework.core.Population org.moeaframework.core.NondominatedSortingPopulation org.moeaframework.algorithm.ReferencePointNondominatedSortingPopulation
public class ReferencePointNondominatedSortingPopulation
Implementation of the referencepointbased nondominated sorting method
for NSGAIII. NSGAIII includes an additional parameter, the number of
divisions, that controls the spacing of reference points. For large
objective counts, an alternate twolayered approach was also proposed
allowing the user to specify the divisions on the outer and inner layer.
When using the twolayered 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+p1, 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 TsungChe Chiang for developing the first publicly available implementation of NSGAIII in C++.
References:
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 static double 
achievementScalarizingFunction(Solution solution,
double[] weights)
The Chebyshev achievement scalarizing function. 
protected List<List<Solution>> 
associateToReferencePoint(Population population)
Associates each solution to the nearest reference point, returning a listoflists. 
protected double[] 
calculateIntercepts()
Calculates the intercepts between the hyperplane formed by the extreme points and each axis. 
protected Solution 
findExtremePoint(int objective)
Returns the extreme point in the given objective. 
protected Solution 
findSolutionWithMinimumDistance(List<Solution> solutions,
double[] weight)
Returns the solution with the minimum perpendicular distance to the given reference point. 
protected void 
normalizeByIntercepts(double[] intercepts)
Normalizes the solutions in this population by the given intercepts (or scaling factors). 
protected static double 
pointLineDistance(double[] line,
double[] point)
Returns the minimum perpendicular distance between a point and a line. 
protected void 
translateByIdealPoint()
Offsets the solutions in this population by the ideal point. 
void 
truncate(int size)
Truncates the population to the specified size using the referencepoint based nondominated sorting method. 
void 
truncate(int size,
Comparator<? super Solution> comparator)
Truncates the population to the specified size using the referencepoint based nondominated sorting method. 
protected void 
updateIdealPoint()
Updates the ideal point given the solutions currently in this population. 
Methods inherited from class org.moeaframework.core.NondominatedSortingPopulation 

add, clear, get, iterator, prune, remove, remove, replace, 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 

public ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions)
rank
attribute for its solutions.
numberOfObjectives
 the number of objectivesdivisions
 the number of divisionspublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions, DominanceComparator comparator, Iterable<? extends Solution> iterable)
rank
attribute for its solutions.
numberOfObjectives
 the number of objectivesdivisions
 the number of divisionscomparator
 the dominance comparatoriterable
 the solutions used to initialize this populationpublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions, DominanceComparator comparator)
rank
attribute
for its solutions.
numberOfObjectives
 the number of objectivesdivisions
 the number of divisionscomparator
 the dominance comparatorpublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisions, Iterable<? extends Solution> iterable)
rank
attribute for its solutions.
numberOfObjectives
 the number of objectivesdivisions
 the number of divisionsiterable
 the solutions used to initialize this populationpublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner)
rank
attribute
for its solutions.
numberOfObjectives
 the number of objectivesdivisionsOuter
 the number of outer divisionsdivisionsInner
 the number of inner divisionspublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner, DominanceComparator comparator, Iterable<? extends Solution> iterable)
rank
attribute for its solutions.
numberOfObjectives
 the number of objectivesdivisionsOuter
 the number of outer divisionsdivisionsInner
 the number of inner divisionscomparator
 the dominance comparatoriterable
 the solutions used to initialize this populationpublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner, DominanceComparator comparator)
rank
attribute
for its solutions.
numberOfObjectives
 the number of objectivesdivisionsOuter
 the number of outer divisionsdivisionsInner
 the number of inner divisionscomparator
 the dominance comparatorpublic ReferencePointNondominatedSortingPopulation(int numberOfObjectives, int divisionsOuter, int divisionsInner, Iterable<? extends Solution> iterable)
rank
attribute for its solutions.
numberOfObjectives
 the number of objectivesdivisionsOuter
 the number of outer divisionsdivisionsInner
 the number of inner divisionsiterable
 the solutions used to initialize this populationMethod Detail 

protected void updateIdealPoint()
protected void translateByIdealPoint()
protected void normalizeByIntercepts(double[] intercepts)
intercepts
 the intercepts used for scalingprotected static double achievementScalarizingFunction(Solution solution, double[] weights)
solution
 the normalized solutionweights
 the reference point (weight vector)
protected Solution findExtremePoint(int objective)
objective
 the objective index
protected double[] calculateIntercepts()
protected static double pointLineDistance(double[] line, double[] point)
line
 the line originating from the originpoint
 the point
protected List<List<Solution>> associateToReferencePoint(Population population)
population
 the population of solutions
protected Solution findSolutionWithMinimumDistance(List<Solution> solutions, double[] weight)
solutions
 the list of solutions being consideredweight
 the reference point
public void truncate(int size, Comparator<? super Solution> comparator)
truncate
in class NondominatedSortingPopulation
size
 the target population size after truncationcomparator
 the comparator to be used for truncationpublic void truncate(int size)
truncate
in class NondominatedSortingPopulation
size
 the target population size after truncation

MOEA Framework 2.12 API Specification 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 