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.
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.