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 {@link org.moeaframework.Executor} and {@link org.moeaframework.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 Grammar Program Constraints Provider
AbYSS Scatter Search Yes No No No No Yes JMetal
CellDE Differential Evolution Yes No No No No Yes JMetal
DENSEA Genetic Algorithm Yes Yes Yes No No Yes JMetal
ECEA Genetic Algorithm Yes Yes Yes Yes Yes No PISA
eMOEA ε-Dominance Yes Yes Yes Yes Yes Yes Native
eNSGAII ε-Dominance Yes Yes Yes Yes Yes Yes Native
FastPGA Genetic Algorithm Yes Yes Yes No No Yes JMetal
FEMO Genetic Algorithm Yes Yes Yes Yes Yes No PISA
GDE3 Differential Evolution Yes No No No No Yes Native
HypE Indicator-Based Yes Yes Yes Yes Yes No PISA
IBEA Indicator-Based Yes Yes Yes No No Yes JMetal
MOCell Cellular Yes Yes Yes No No Yes JMetal
MOCHC CHC Algorithm No Yes No No No Yes JMetal
MOEAD Decomposition Yes No No No No Yes Native
NSGAII Genetic Algorithm Yes Yes Yes Yes Yes Yes Native
OMOPSO Particle Swarm Yes No No No No Yes JMetal
PAES Evolutionary Strategy Yes Yes Yes No No Yes JMetal
PESA2 Genetic Algorithm Yes Yes Yes No No Yes JMetal
SEMO2 Genetic Algorithm Yes Yes Yes Yes Yes No PISA
SHV Indicator-Based Yes Yes Yes Yes Yes No PISA
SIBEA Indicator-Based Yes Yes Yes Yes Yes No PISA
SMPSO Particle Swarm Yes No No No No Yes JMetal
SMSEMOA Indicator-Based Yes Yes Yes No No Yes JMetal
SPAM Indicator-Based Yes Yes Yes Yes Yes No PISA
SPEA2 Genetic Algorithm Yes Yes Yes No No Yes JMetal

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.