MOEA Framework 2.12
API Specification

org.moeaframework.algorithm
Class MOEAD

java.lang.Object
  extended by org.moeaframework.algorithm.AbstractAlgorithm
      extended by org.moeaframework.algorithm.MOEAD
All Implemented Interfaces:
Algorithm

public class MOEAD
extends AbstractAlgorithm

Implementation of MOEA/D, the multiobjective evolutionary algorithm with decomposition. This implementation supports both the original MOEA/D specification from [1] as well as the utility-based search extension from [2].

References:

  1. Li, H. and Zhang, Q. "Multiobjective Optimization problems with Complicated Pareto Sets, MOEA/D and NSGA-II." IEEE Transactions on Evolutionary Computation, 13(2):284-302, 2009.
  2. Zhang, Q., et al. "The Performance of a New Version of MOEA/D on CEC09 Unconstrained MOP Test Instances." IEEE Congress on Evolutionary Computation, 2009.


Field Summary
 
Fields inherited from class org.moeaframework.algorithm.AbstractAlgorithm
initialized, numberOfEvaluations, problem, terminated
 
Constructor Summary
MOEAD(Problem problem, int neighborhoodSize, Initialization initialization, Variation variation, double delta, double eta)
          Constructs the MOEA/D algorithm with the specified components.
MOEAD(Problem problem, int neighborhoodSize, Initialization initialization, Variation variation, double delta, double eta, int updateUtility)
          Constructs the MOEA/D algorithm with the specified components.
MOEAD(Problem problem, int neighborhoodSize, WeightGenerator weightGenerator, Initialization initialization, Variation variation, double delta, double eta)
          Constructs the MOEA/D algorithm with the specified components.
MOEAD(Problem problem, int neighborhoodSize, WeightGenerator weightGenerator, Initialization initialization, Variation variation, double delta, double eta, int updateUtility)
          Constructs the MOEA/D algorithm with the specified components.
 
Method Summary
 NondominatedPopulation getResult()
          Returns the current best-known result.
 Serializable getState()
          Returns a Serializable object representing the internal state of this algorithm.
 void initialize()
          Performs any initialization that is required by this algorithm.
 void iterate()
          Performs one iteration of the algorithm.
 void setState(Object objState)
          Sets the internal state of of this algorithm.
protected  void updateUtility()
          Updates the utility of each individual.
 
Methods inherited from class org.moeaframework.algorithm.AbstractAlgorithm
evaluate, evaluateAll, evaluateAll, finalize, getNumberOfEvaluations, getProblem, isInitialized, isTerminated, step, terminate
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MOEAD

public MOEAD(Problem problem,
             int neighborhoodSize,
             Initialization initialization,
             Variation variation,
             double delta,
             double eta,
             int updateUtility)
Constructs the MOEA/D algorithm with the specified components. This version of MOEA/D uses utility-based search as described in [2].

Parameters:
problem - the problem being solved
neighborhoodSize - the size of the neighborhood used for mating, which must be at least variation.getArity()-1.
initialization - the initialization method
variation - the variation operator
delta - the probability of mating with a solution in the neighborhood rather than the entire population
eta - the maximum number of population slots a solution can replace
updateUtility - the frequency, in generations, in which utility values are updated; set to 50 to use the recommended update frequency or -1 to disable utility-based search.

MOEAD

public MOEAD(Problem problem,
             int neighborhoodSize,
             Initialization initialization,
             Variation variation,
             double delta,
             double eta)
Constructs the MOEA/D algorithm with the specified components. This constructs the original MOEA/D implementation without utility-based search.

Parameters:
problem - the problem being solved
neighborhoodSize - the size of the neighborhood used for mating, which must be at least variation.getArity()-1.
initialization - the initialization method
variation - the variation operator
delta - the probability of mating with a solution in the neighborhood rather than the entire population
eta - the maximum number of population slots a solution can replace

MOEAD

public MOEAD(Problem problem,
             int neighborhoodSize,
             WeightGenerator weightGenerator,
             Initialization initialization,
             Variation variation,
             double delta,
             double eta,
             int updateUtility)
Constructs the MOEA/D algorithm with the specified components. This version of MOEA/D uses utility-based search as described in [2].

Parameters:
problem - the problem being solved
neighborhoodSize - the size of the neighborhood used for mating, which must be at least variation.getArity()-1.
weightGenerator - the weight generator
initialization - the initialization method, which must generate the same number of solutions as weights
variation - the variation operator
delta - the probability of mating with a solution in the neighborhood rather than the entire population
eta - the maximum number of population slots a solution can replace
updateUtility - the frequency, in generations, in which utility values are updated; set to 50 to use the recommended update frequency or -1 to disable utility-based search.

MOEAD

public MOEAD(Problem problem,
             int neighborhoodSize,
             WeightGenerator weightGenerator,
             Initialization initialization,
             Variation variation,
             double delta,
             double eta)
Constructs the MOEA/D algorithm with the specified components. This constructs the original MOEA/D implementation without utility-based search.

Parameters:
problem - the problem being solved
neighborhoodSize - the size of the neighborhood used for mating, which must be at least variation.getArity()-1.
weightGenerator - the weight generator
initialization - the initialization method, which must generate the same number of solutions as weights
variation - the variation operator
delta - the probability of mating with a solution in the neighborhood rather than the entire population
eta - the maximum number of population slots a solution can replace
Method Detail

initialize

public void initialize()
Description copied from class: AbstractAlgorithm
Performs any initialization that is required by this algorithm. This method is called automatically by the first invocation of AbstractAlgorithm.step(), but may also be called manually prior to any invocations of step. Implementations should always invoke super.initialize() to ensure the hierarchy is initialized correctly.

Overrides:
initialize in class AbstractAlgorithm

getResult

public NondominatedPopulation getResult()
Description copied from interface: Algorithm
Returns the current best-known result.

Returns:
the current best-known result

updateUtility

protected void updateUtility()
Updates the utility of each individual.


iterate

public void iterate()
Description copied from class: AbstractAlgorithm
Performs one iteration of the algorithm. This method should be overridden by implementations to perform each logical iteration of the algorithm.

Specified by:
iterate in class AbstractAlgorithm

getState

public Serializable getState()
                      throws NotSerializableException
Description copied from interface: Algorithm
Returns a Serializable object representing the internal state of this algorithm.

Specified by:
getState in interface Algorithm
Overrides:
getState in class AbstractAlgorithm
Returns:
a Serializable object representing the internal state of this algorithm
Throws:
NotSerializableException - if this algorithm does not support serialization

setState

public void setState(Object objState)
              throws NotSerializableException
Description copied from interface: Algorithm
Sets the internal state of of this algorithm.

Specified by:
setState in interface Algorithm
Overrides:
setState in class AbstractAlgorithm
Parameters:
objState - the internal state of this algorithm
Throws:
NotSerializableException - if this algorithm does not support serialization

MOEA Framework 2.12
API Specification

Copyright 2009-2016 MOEA Framework. All rights reserved.
Licensed under the GNU Lesser General Public License.
Return to the MOEA Framework homepage. Visit us on Github!