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 of multi-objective algorithms is usually an easy task, so jMetal contains also single-objective genetic algorithms, evolution strategies, PSO, and DE.
- Portability: jMetal is written in Java
- Implemented algoritms: NSGA-II, SPEA2, PAES, PESA-II, OMOPSO, MOCell, AbYSS, MOEA/D, Densea, CellDE, GDE3, FastPGA, IBEA, SMPSO, SMS-EMOA, dMOPSO, SMPSOhv
- 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.
- Variable representations: binary, real, binary-coded real, integer, permutation.
- 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.