jMetal stands for Metaheuristic Algorithms in Java, and it is an object-oriented Java-based framework for multi-objective optimization with metaheuristics.
The object-oriented architecture of the framework and the included features allow you to: experiment with the provided classic and state-of-the-art techniques, develop your own algorithms, solve your optimization problems, integrate jMetal in other tools, etc.
The motivation driving us is to provide the programs we use in our own works to the multi-objective optimization research community. We have made an effort in trying to produce an ease-to-use software, and we are continuously modifying and extending jMetal according to our needs and those suggested by people interested in using it.
Developing single-objective versions from multi-objective algorithms is usually an easy task, so jMetal contains also single-objective genetic algorithms, evolution strategies, PSO, and DE. An exception is CMA-ES, which currently does not have a multi-objetive counterpart.
- Portability: jMetal is written in Java
- Multi-objective algoritms: NSGA-II (variants: ssNSGAII, NSGAIIadaptive*, NSGAIIrandom*), SPEA2, PAES, PESA-II, OMOPSO, MOCell, AbYSS, MOEA/D, Densea, CellDE, GDE3, FastPGA, IBEA, SMPSO, SMPSOhv, SMS-EMOA, dMOPSO
- Single-objective algoritms: genetic algorithm (variants: generational, steady-state, synchronous cellular, asynchronous cellular), evolution strategy (variants: elitist or mu+lambda, non-elitist or mu, lambda), PSO, DE, CMA-ES
- Parallel algorithms: pNSGAII, pSMPSO, pMOEAD, pgGA
- Problem families: ZDT, DTLZ, WFG, CEC2009, LZ09
- Classical problems: Kursawe, Fonseca, Schaffer
- Constrained problems: Srinivas, Tanaka, Osyczka2, Constr_Ex, Golinski, Water
- Combinatorial problems: multi-objective TSP, multi-objective QAP
- Quality indicators: hypervolume, spread, generational distance, inverted generational distance, additive epsilon, R2*, WFG hypervolume*
- Variable representations: binary, real, binary-coded real, integer, permutation, mixed encoding (real+binary, int+real).
(*: new features)
- J.J. Durillo, A.J. Nebro jMetal: a Java Framework for Multi-Objective Optimization. Advances in Engineering Software 42 (2011) 760-771.
- J.J. Durillo, A.J. Nebro, E. Alba. The jMetal Framework for Multi-Objective Optimization: Design and Architecture. CEC 2010, pp: 4138-4325. July 2010.