MOEA Framework 4.3
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.

The following table lists the algorithms provided by the MOEA Framework natively:

List of algorithms
Algorithm Type Real Binary Permutation Subset Grammar Program Constraints
AGE-MOEA-II Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes
AMOSA Simulated Annealing Yes Yes Yes Yes Yes Yes Yes
CMA-ES Evolutionary Strategy Yes No No No No No Yes
DBEA Decomposition Yes Yes Yes Yes Yes Yes Yes
DE Single Objective Yes No No No No No Yes
eMOEA ε-Dominance Yes Yes Yes Yes Yes Yes Yes
eNSGAII ε-Dominance Yes Yes Yes Yes Yes Yes Yes
ES Single Objective Yes No No No No No Yes
GA Single Objective Yes Yes Yes Yes Yes Yes Yes
GDE3 Differential Evolution Yes No No No No No Yes
IBEA Indicator-Based Yes Yes Yes Yes Yes Yes No
MOEAD Decomposition Yes Yes Yes Yes Yes Yes Yes
MSOPS Differential Evolution Yes No No No No No Yes
NSGAII Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes
NSGAIII Reference Points Yes Yes Yes Yes Yes Yes Yes
OMOPSO Particle Swarm Yes No No No No No Yes
PAES Evolutionary Strategy Yes Yes Yes Yes Yes Yes Yes
PESA2 Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes
RSO Single Objective Yes Yes Yes Yes Yes Yes Yes
RVEA Reference Vectors Yes Yes Yes Yes Yes Yes Yes
SA Simulated Annealing Yes Yes Yes Yes Yes Yes Yes
SMPSO Particle Swarm Yes No No No No No Yes
SMSEMOA Indicator-Based Yes Yes Yes Yes Yes Yes Yes
SPEA2 Genetic Algorithm Yes Yes Yes Yes Yes Yes Yes
UNSGAIII Reference Points Yes Yes Yes Yes Yes Yes Yes
VEGA Genetic Algorithm Yes Yes Yes Yes Yes Yes No

Furthermore, extensions are available to integrate with other popular libraries, including JMetal-Plugin and PISA-Plugin.

As this project is academic in nature, every effort is taking to ensure the correctness, quality, and openness of this software. Please open an issue on our GitHub repository if you encounter any issues.

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.
Convenience methods for reading and writing attributes.
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.
Collection of penalty functions.
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.
Support for distributed and parallel computing 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.
The MaF test problem suite for many-objective optimization.
Collection of unconstrained and constrained numeric multiobjective test problems aggregated by Van Veldhuizen [1].
Collection of single-objective optimization algorithms.
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).
Methods for validating inputs, arguments, and properties.
Routines for generating weights for decomposition and reference point methods.