The MOEA Framework aims to provide a comprehensive collection of algorithms and tools for single and multiobjective optimization. This page lists the key features of the MOEA Framework. For more information, see our online documentation.


The MOEA Framework has the largest collection of EAs and MOEAs of any library. In addition to these pre-defined algorithms, new algorithms can be easily constructed using existing components.

Name Description
AbYSS Multiobjective Scatter Search1
Borg MOEA Adaptive Multioperator Search with ε-Dominance and ε-Progress Triggered Restarts3
CellDE Cellular Genetic Algorithm with Differential Evolution1
CMA-ES Covariance Matrix Adaption Evolution Strategy
DBEA Improved Decomposition-Based Evolutionary Algorithm
DE Differential Evolution (Single Objective)
DENSEA Duplicate Elimination Nondominated Sorting Evolutionary Algorithm1
ECEA Epsilon-Constraint Evolutionary Algorithm2
ES Evolution Strategies (Single Objective)
ε-MOEA ε-Dominance-based Evolutionary Algorithm
ε-NSGA-II NSGA-II with ε-Dominance, Randomized Restarts, and Adaptive Population Sizing
FastPGA Fast Pareto Genetic Algorithm1
FEMO Fair Evolutionary Multiobjective Optimizer2
GA Genetic Algorithm with Elitism (Single Objective)
GDE3 Generalized Differential Evolution
HypE Hypervolume Estimation Algorithm for Multiobjective Optimization2
IBEA Indicator-Based Evolutionary Algorithm
MOCell Multiobjective Cellular Genetic Algorithm1
MOCHC Multiobjective CHC Algorithm1
MOEA/D Multiobjective Evolutionary Algorithm with Decomposition
MSOPS Multiple Single-Objective Pareto Sampling
NSGA-II Non-dominated Sorting Genetic Algorithm II
NSGA-III Reference-Point Based Non-dominated Sorting Genetic Algorithm
OMOPSO Multiobjective Particle Swarm Optimization
PAES Pareto Archived Evolution Strategy
PESA2 Pareto Envelope-based Selection Algorithm
Random Random Search
RSO Repeated Single Objective Algorithm
RVEA Reference Vector Guided Evolutionary Algorithm
SEMO2 Simple Evolutionary Multiobjective Optmimizer2
SHV Sampling-Based Hypervolume-Oriented Algorithm2
SIBEA Simple Indicator Based Evolutionary Algorithm2
SMPSO Speed-Constrained Multiobjective Particle Swarm Optimization
SMS-EMOA S-Metric Selection MOEA
SPAM Set Preference Algorithm for Multiobjective Optimization2
SPEA2 Strength-based Evolutionary Algorithm
VEGA Vector Evaluated Genetic Algorithm

1 - Algorithms provided by the JMetal library (included with the MOEA Framework).
2 - Algorithms provided by the PISA library.
3 - Available as a JAR plugin from borgmoea.org.


Meta-algorithms are wrappers around existing algorithms to provide additional functionality.

Name Description
Adaptive Time Continuation Periodically restart the algorithm, possibly adapting parameters
Epsilon Progress Continuation Monitor search progress, triggering a restart if search stagnates
Checkpoints Periodically save the state of the algorithm to resume interrupted runs

Problem Sets

Also included are all major test problems from the literature. Additionally, new problems written in Java or other languages can be easily incorporated.

Name Description
ZDT 6 real-valued problems from Zitzler et al. (2000)
DTLZ 5 unconstrained, scalable real-valued problems from Deb et al. (2001)
LZ 9 real-valued problems from Hui Li and Qingfu Zhang (2009)
CEC2009 13 unconstrained and 10 constrained real-valued problems from the CEC2009 competition
WFG 9 scalable, real-valued problems by Huband et al. (2005)
BBOB-2016 55 bi-objective problems from the BBOB workshop hosted at GECCO 2016
Miscellaneous 28 real-valued, binary, permutation, and program-based test problems from the literature (e.g., knapsack, NK-landscapes)


Representation Operators
Real-Valued Simulated Binary Crossover (SBX)
Polynomial Mutation (PM)
Parent-Centric Crossover (PCX)
Simplex Crossover (SPX)
Unimodal Normal Distribution Crossover (UNDX)
Uniform Mutation (UM)
Differential Evolution (DE)
Adaptive Metropolis (AM)
Binary Bit Flip Mutation
Half-Uniform Crossover (HUX)
Permutation Insertion
Partially Mapped Crossover (PMX)
Subset Replace
Subset Crossover (SSX)
Grammars Single-point Crossover
Uniform Mutation
Programs Point Mutation
Subtree Crossover
Generic One Point Crossover
Two Point Crossover
Uniform Crossover
Adaptive Multimethod Variation

Additional Features

Feature Description
Performance Indicators Hypervolume
Generational Distance (GD)
Inverted Generational Distance (IGD)
Additive ε-Indicator
Maximum Pareto Front Error
R1 Indicator
R2 Indicator
R3 Indicator
Executor, Analyzer, and Instrumenter Three simple Java classes for accessing 90% of the functionality of the MOEA Framework:
  • Executor - Construct and execute MOEAs to solve optimization problems
  • Analyzer - Statistically compare results
  • Instrumenter - Record runtime dynamics
Diagnostic Tool GUI for quickly comparing the performance of algorithms on standard test problems
Sensitivity Analysis Sensitivity analysis tools for identifying key parameters for an algorithm (accessible through a command-line interface)
Parallelization Automatic parallelization of algorithms across multiple cores, or distribute processing across a network using JPPF, GridGain, or any other supported grid computing library
Extensible Build new algorithms, operators, representations, or problems and integrate them into the MOEA Framework using our Service Provider Interface (SPI)
Best Practices Extensively documented and unit tested source code to ensure quality