MOEA Framework 2.12
API Specification

MOEA Framework 2.12
API Specification

This document is the API specification for the MOEA Framework.

See:
          Description

Packages
org.moeaframework Convenience classes for using the MOEA Framework.
org.moeaframework.algorithm Implementations of various algorithms and support tools for working with algorithms.
org.moeaframework.algorithm.jmetal Adapters for interfacing with the JMetal library.
org.moeaframework.algorithm.pisa Adapters for interfacing with the PISA framework.
org.moeaframework.algorithm.pso Implementations of various Particle Swarm Optimization (PSO) algorithms.
org.moeaframework.algorithm.single Implementations of various single-objective optimization algorithms.
org.moeaframework.analysis Tools for analyzing the runtime and end-of-run behavior of algorithms.
org.moeaframework.analysis.collector Collectors record information periodically during the execution of an algorithm.
org.moeaframework.analysis.diagnostics Diagnostic tool for analyzing the runtime behavior of algorithms.
org.moeaframework.analysis.plot Basic 2D plotting support.
org.moeaframework.analysis.sensitivity Utilities for analyzing an algorithm using control maps and sensitivity analysis.
org.moeaframework.analysis.tools Command line tools for solving optimization problems and analyzing the results.
org.moeaframework.core Contains the core classes used by this framework.
org.moeaframework.core.comparator Contains dominance comparators and other comparators used by this framework.
org.moeaframework.core.fitness Implementations of various fitness assignment methods.
org.moeaframework.core.indicator Collection of unary quality indicators for comparing the quality of non-dominated approximation sets.
org.moeaframework.core.operator Package of various selection, mutation, crossover, and hybrid operators.
org.moeaframework.core.operator.binary Collection of operators for binary-encoded variables.
org.moeaframework.core.operator.grammar Collection of operators for grammars for use with Grammatical Evolution (GE).
org.moeaframework.core.operator.permutation Collection of operators for permutation variables.
org.moeaframework.core.operator.program Collection of operators for expression trees for use with Genetic Programming (GP).
org.moeaframework.core.operator.real Collection of operators for real-encoded variables.
org.moeaframework.core.operator.subset Collection of operators for subset variables.
org.moeaframework.core.spi Defines the service provider interfaces (SPIs) and factories for constructing problems, algorithms and operators.
org.moeaframework.core.termination Defines conditions for terminating runs.
org.moeaframework.core.variable Defines the various decision variables that may be used.
org.moeaframework.problem Package containing standardized problems and utility classes for working with problems.
org.moeaframework.problem.BBOB2016 Package containing the BBOB 2016 bi-objective test problems.
org.moeaframework.problem.CDTLZ Package for the constrained DTLZ test problems.
org.moeaframework.problem.CEC2009 Test problems used for the CEC 2009 special session and competition.
org.moeaframework.problem.DTLZ Package for the scalable DTLZ test problem suite.
org.moeaframework.problem.LZ Package for the complicated Pareto sets test suite by Hui Li and Qingfu Zhang.
org.moeaframework.problem.misc Set of unconstrained and constrained numeric multiobjective test problems aggregated by Van Veldhuizen [1].
org.moeaframework.problem.WFG Implementation of the Walking Fish Group (WFG) test suite of scalable multiobjective problems.
org.moeaframework.problem.ZDT Package for the ZDT test problem suite.
org.moeaframework.util Collection of general-purpose utilities.
org.moeaframework.util.distributed Classes to enable distributed computing.
org.moeaframework.util.grammar Utilities for representing, parsing and building grammars for use in Grammatical Evolution (GE).
org.moeaframework.util.io Collection of I/O utility classes.
org.moeaframework.util.progress Collection of classes for managing progress reporting, including providing listeners for receiving progress updates and estimating remaining time.
org.moeaframework.util.sequence Classes for generating sequences of real numbers.
org.moeaframework.util.statistics Collection of statistical methods for determining certain properties of collected samples.
org.moeaframework.util.tree Classes for representing, building and evaluating expression trees for use in Genetic Programming (GP).
org.moeaframework.util.weights Routines for generating weights for decomposition and reference point methods.

 

This document is the API specification for the MOEA Framework. The MOEA Framework is a free and open source Java library for developing and experimenting with multiobjective evolutionary algorithms (MOEAs) and other general-purpose optimization algorithms and metaheuristics. It supports genetic algorithms, differential evolution, particle swarm optimization, genetic programming, grammatical evolution, and more. Problems can be defined using real or integer-valued decision variables, permutations, binary arrays (bit strings), expression trees (programs), grammars, and any combination thereof. This makes the MOEA Framework one of the most comprehensive evolutionary algorithm libraries available.

For most users, the Executor and Analyzer classes provide sufficient functionality to execute and analyze MOEAs. The following table lists the algorithms provided by the MOEA Framework and supported third-party libraries.

Algorithm Type Real Binary Permutation Subset Grammar Program Constraints Provider
AbYSS Scatter Search Yes No No No No No Yes JMetal
CellDE Differential Evolution Yes No No No No No Yes JMetal
CMA-ES Evolutionary Strategy Yes No No No No No Yes Native
DBEA Decomposition Yes Yes Yes Yes Yes Yes Yes Native
DE Single Objective Yes No No No No No Yes Native
DENSEA Genetic Algorithm Yes Yes Yes No No No Yes JMetal
ECEA Genetic Algorithm Yes Yes Yes Yes Yes Yes No PISA
eMOEA ε-Dominance Yes Yes Yes Yes Yes Yes Yes Native
eNSGAII ε-Dominance Yes Yes Yes Yes Yes Yes Yes Native
ES Single Objective Yes No No No No No Yes Native
FastPGA Genetic Algorithm Yes Yes Yes No No No Yes JMetal
FEMO Genetic Algorithm Yes Yes Yes Yes Yes Yes No PISA
GA Single Objective Yes Yes Yes Yes Yes Yes Yes Native
GDE3 Differential Evolution Yes No No No No No Yes Native
HypE Indicator-Based Yes Yes Yes Yes Yes Yes No PISA
IBEA Indicator-Based Yes Yes Yes Yes Yes Yes No Native
MOCell Cellular Yes Yes Yes No No No Yes JMetal
MOCHC CHC Algorithm No Yes No No No No Yes JMetal
MOEAD Decomposition Yes No No No No No Yes Native
MSOPS Differential Evolution Yes No No No No No Yes Native
NSGAII Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes Native
NSGAIII Reference Points Yes Yes Yes Yes Yes Yes Yes Native
OMOPSO Particle Swarm Yes No No No No No Yes Native
PAES Evolutionary Strategy Yes Yes Yes Yes Yes Yes Yes Native
PESA2 Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes Native
RSO Single Objective Yes Yes Yes Yes Yes Yes Yes Native
RVEA Reference Vectors Yes Yes Yes Yes Yes Yes Yes Native
SEMO2 Genetic Algorithm Yes Yes Yes Yes Yes Yes No PISA
SHV Indicator-Based Yes Yes Yes Yes Yes Yes No PISA
SIBEA Indicator-Based Yes Yes Yes Yes Yes Yes No PISA
SMPSO Particle Swarm Yes No No No No No Yes Native
SMSEMOA Indicator-Based Yes Yes Yes Yes Yes Yes Yes Native
SPAM Indicator-Based Yes Yes Yes Yes Yes Yes No PISA
SPEA2 Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes Native
VEGA Genetic Algorithm Yes Yes Yes Yes Yes Yes No Native

While the MOEA Framework provides a large collection of built-in algorithms, operators and problems, advanced users can take advantage of its object-oriented design to extend existing features or add new functionality. In addition, the service provider interface allows extending the software with algorithms and problems provided by third-party libraries. Any algorithms and problems working within the MOEA Framework can take advantage of its suite of diagnostic and statistical testing tools. As this project is academic in nature, every effort is taken to ensure the correctness, quality and openness of the codes.


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!