jMetal Metal stands for Metaheuristic Algorithms in Java, and it is an object-oriented Java-based framework aimed at the development, experimentation, and study of metaheuristics for solving multi-objective optimization problems. jMetal provides a rich set of classes which can be used as the building blocks of multi-objective metaheuristics; taking advantage of code-reusing, the algorithms share the same base components, such as implementations of genetic operators and density estimators, thus facilitating the development of new multi-objective algorithms.
We have implemented a number of multi-objective metaheuristics using jMetal, and many problems usually included in performance studies are currently available in the framework. jMetal also provides quality indicators to performance assessing as well as a set of utilities that help in carrying out experimental studies.
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, but it is far from be a finished product. We are continuously modifying and extending jMetal according to our needs and those suggested by people interested in using it.
If you want to cite jMetal, please use this reference
Summary of features
- 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
- Included problems:
- Problem families: ZDT, DTLZ, WFG, CEC2009, LZ09
- Classical problems: Kursawe, Fonseca, Schaffer
- Constrained problems: Srinivas, Tanaka, Osyczka2, Constr_Ex, Golinski, Water
- Quality indicators: hypervolume, spread, generational distance, inverted generational distance, additive epsilon.
- Variable representations: binary, real, binary-coded real, integer, permutation.
This work is licensed under the Creative Commons GNU Lesser General Public License