|Initial release||November 21, 2011|
|Stable release||2.5 / June 30, 2015|
|License||GNU Lesser General Public License|
The MOEA Framework is an open-source evolutionary computation library for Java that specializes in multi-objective optimization. It supports a variety of multiobjective evolutionary algorithms (MOEAs), including genetic algorithms, genetic programming, grammatical evolution, differential evolution, and particle swarm optimization. As a result, it has been used to conduct numerous comparative studies to assess the efficiency, reliability, and controllability of state-of-the-art MOEAs.
The MOEA Framework is an extensible framework for rapidly designing, developing, executing, and statistically testing multiobjective evolutionary algorithms (MOEAs). It features 25 different state-of-the-art MOEAs and over 80 analytical test problems. It supports NSGA-II, it's recently introduced successor NSGA-III epsilon-MOEA, GDE3., and MOEA/D. natively. In addition, it integrates with the JMetal, Platform and Programming Language Independent Interface for Search Algorithms (PISA), and Borg MOEA libraries to provide access to all popular MOEAs. Additionally, using Java's service provider interface (SPI), new MOEAs and problems can be introduced into the framework. This supports the use of the MOEA Framework in scientific studies, allowing new MOEAs to be tested against a suite of state-of-the-art algorithms across a large collection of test problems.
New problems are defined in the MOEA Framework using one or more decision variables of a varying type. This includes common representations such as binary strings, real-valued numbers, and permutations. It additionally supports evolving grammars in Backus–Naur Form and programs using an internal Turing complete programming language. Once the problem is defined, the user can optimize the problem using any of supported MOEAs.
The MOEA Framework is the only known framework for evolutionary computation that provides support for sensitivity analysis. Sensitivity analysis in this context studies how an MOEA's parameters impact its output (i.e., the quality of the results). Alternatively, sensitivity analysis measures the robustness of an MOEA to changes in its parameters. An MOEA whose behavior is sensitive to its paramterization will not be easily controllable; conversely, an MOEA that is insensitive to its parameters is controllable. By measuring the sensitivities of each MOEA, the MOEA Framework can identify the controlling parameters for each MOEA and provide guidance for fine-tuning the parameters. Additionally, MOEAs that are consistently insensitive to parameter changes across an array of problem domains are regarded highly due to their robust ability to solve optimization problems.
- Deb, K.; et al. (2000). "A Fast Elitist Multi-Objective Genetic Algorithm: NSGA-II.". IEEE Transactions on Evolutionary Computation 6: 182–197.
- Deb, K.; Jain, H. (2014). "An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints.". IEEE Transactions on Evolutionary Computation 18 (4): 577–601.
- Deb; et al. (2003). "A Fast Multi-Objective Evolutionary Algorithm for Finding Well-Spread Pareto-Optimal Solutions.". KanGAL Report No 2003002.
- Kukkonen; Lampinen (2005). "GDE3: The Third Evolution Step of Generalized Differential Evolution.". KanGAL Report Number 2005013.
- Li, H.; Zhang, Q. (2009). "Multiobjective Optimization problems with Complicated Pareto Sets, MOEA/D and NSGA-II.". IEEE Transactions on Evolutionary Computation 13 (2): 284–302.
- "JMetal Website".
- "PISA Website".
- "Borg MOEA Website".
- Hadka, D.; Reed, P. (2012). "Diagnostic Assessment of Search Controls and Failure Modes in Many-Objective Evolutionary Optimization". Evolutionary Computation 20 (3): 423–452. doi:10.1162/evco_a_00053.