MOEA Framework 4.0
API Specification

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.

List of algorithms
Algorithm Type Real Binary Permutation Subset Grammar Program Constraints Provider
AbYSS Scatter Search Yes No No No No No Yes JMetal
AMOSA Simulated Annealing Yes Yes Yes Yes Yes Yes Yes Native
CDG Differential Evolution 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
ECEA Genetic Algorithm Yes Yes Yes Yes Yes Yes No PISA
ESPEA Genetic Algorithm Yes Yes Yes No No No Yes JMetal
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
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 Yes Yes Yes Yes Yes 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
SA Simulated Annealing 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.

Packages
Package
Description
Convenience classes for using the MOEA Framework.
Implementations of various algorithms and support tools for working with algorithms.
Extends an algorithm with "continuations" or "restarts", where we periodically reseed an algorithm with random solutions and optionally adjust the settings.
Implementations of various Particle Swarm Optimization (PSO) algorithms.
Implementations of various simulated annealing (SA) algorithms.
Implementations of various single-objective optimization algorithms.
Tools for analyzing the runtime and end-of-run behavior of algorithms.
Collectors record information periodically during the execution of an algorithm.
Diagnostic tool for analyzing the runtime behavior of algorithms.
File formats used by the MOEA Framework analysis codes.
Basic 2D plotting support.
Command line tools for evaluating MOEAs and analyzing results.
Command line tools for generating the scaffolding for native problems from template files.
Contains the core classes used by this framework.
Contains dominance comparators and other comparators used by this framework.
Support for configuring algorithms.
Implementations of various fitness assignment methods.
Collection of unary quality indicators for comparing the quality of non-dominated approximation sets.
Package of various initialization operators.
Package of various mutation and crossover operators.
Collection of operators for binary-encoded variables.
Collection of operators for grammars for use with Grammatical Evolution (GE).
Collection of operators for permutation variables.
Collection of operators for expression trees for use with Genetic Programming (GP).
Collection of operators for real-encoded variables.
Collection of operators for subset variables.
Package of various selection operators.
Defines the service provider interfaces (SPIs) and factories for constructing problems, algorithms and operators.
Defines conditions for terminating runs.
Defines the various decision variables that may be used.
Provides island model and other parallelization strategies for optimization algorithms.
Implementation of the island model parallelization strategy.
Executes an island model in some environment.
Implementations of island model migration strategies.
Implementations of island model topologies.
Utilities for building parallel algorithms, including thread-safe versions of some classes.
Package containing standardized problems and utility classes for working with problems.
Package containing the BBOB 2016 bi-objective test problems.
Package for the constrained DTLZ test problems.
Test problems used for the CEC 2009 special session and competition.
Package for the scalable DTLZ test problem suite.
Package for the scalable LSMOP test problem suite.
Package for the complicated Pareto sets test suite by Hui Li and Qingfu Zhang.
Set of unconstrained and constrained numeric multiobjective test problems aggregated by Van Veldhuizen [1].
 
Implementation of the Walking Fish Group (WFG) test suite of scalable multiobjective problems.
Package for the scalable ZCAT test problem suite.
Package for the ZDT test problem suite.
Collection of general-purpose utilities.
Classes to enable distributed computing.
Classes for formatting data into a tabular format.
Utilities for representing, parsing and building grammars for use in Grammatical Evolution (GE).
Collection of I/O utility classes.
Collection of classes for managing progress reporting, including providing listeners for receiving progress updates and estimating remaining time.
Classes for generating sequences of real numbers.
Collection of statistical methods for determining certain properties of collected samples.
Classes for representing, building and evaluating expression trees for use in Genetic Programming (GP).
Routines for generating weights for decomposition and reference point methods.