jMetal is a Java-based framework for multi-objective optimization with metaheuristics. The last stable version is 7.1. The most recent documentation is hosted in https://jmetal.readthedocs.io.
jMetal 7.0 is a Maven project structured in the following sub-projects:
| Sub-project | Contents |
|---|---|
| jmetal-core | Core classes |
| jmetal-solution | Solution encodings |
| jmetal-algorithm | Algorithm implementations |
| jmetal-problem | Benchmark problems |
| jmetal-lab | Experimentation and visualization |
| jmetal-parallel | Parallel extensions |
| jmetal-auto | Auto-design and configuration |
| jmetal-component | Component-based algorithms |
- jMetalPy: jMetal in Python
- SAES: Python library to analyse and compare the performance of multi-objective algorithms
- [03/20/2026] jMetal 7.1 is released.
- [03/18/2026] Add RVEA (contributed by @NicolasRodriguezUribe)
- [03/02/2026] jMetal 7.0 is released.
- [03/01/2026] Add new solution creations stragegies: SobolSolutionsCreation and CauchySolutionsCreation.
- [02/23/2026] Refactored Check utility: added parameter-name-aware overloads and introduced several specific exceptions for clearer errors.
- [02/22/2026] All the unit and integration tests have been updated to jUnit6.
- [02/02/2026] Added the AverageHausdorffDistance quality indicator
- [12/18/2025] jMetal 6.10 is released.
- [12/18/2025] Added new selection (TruncationSelection, RankingSelection, StochasticUniversalSampling, BoltzmannSelection), replacement (RandomReplacement, TournamentReplacement), and solutions creation (OppositionBasedSolutionsCreation) components.
- [07/09/2025] jMetal 6.9 is released.
- [07/07/2025] jMetal 6.8 is released.
- [07/07/2025] Added new crossover (BLX-Alpha-Beta, Laplace, Arithmetic, Fuzzy recombination, UNDX) and mutation (Power Law, Levy Flight, Simple Random) operators for continuous problems.
- [06/18/2025] A new folder resources/referenceFrontsRSG have been added. It contains Pareto front approximations produced with the Reference Set Generator (DOI: https://doi.org/10.3390/math13101626) method. Contribution of Oliver Schütze.
- [05/09/2025] jMetal 6.7 is released.
- [05/09/2025] The jMetal project adopts Java 22.
- [01/17/2025] Added a variant of SMS-EMOA using differential evolution.
- [11/30/2024] Added single and multi-objective versions of the Knapsack problem.
- [11/22/2024] Added new crossover (Cycle, EdgeRecombination, ODX, Population-Based) and mutation (Displacement, Insert, Inversion, Scamble, SimpleInversion) operators for permutations. Contribution of Nicolas R. Uribe (@NicolasRodriguezUribe)
- [06/27/2024] The jMetal project adopts Java 19.
- [11/30/2023] The Zapotecas-Coello-Aguirre-benchmark (ZCAT) (https://doi.org/10.1016/j.swevo.2023.101350) is included in jMetal.
- [09/25/2023] The jMetal project adopts Java 17.
- [09/25/2023] Added a variant of NSGA-II using differential evolution.
- [07/19/2023] jMetal 6.1 is released.
- [07/04/2023]. Added the RWA benchmark, described in "Engineering applications of multi-objective evolutionary algorithms: A test suite of box-constrained real-world problems". DOI: https://doi.org/10.1016/j.engappai.2023.106192
- [12/13/2022] jMetal 6.0 is released.
- [9/12/2022] The master branch has been renamed main.
- [7/5/2022] The jMetal project adopts Java 14.
- [5/23/2022] Algorithm AGE-MOEA-II. Contribution of Annibale Panichella (@apanichella).
- [5/9/2022] Algorithm AGE-MOEA. Contribution of Annibale Panichella (@apanichella).
- [3/28/2022] The CF benchmark of constrained multi-objective problems, defined in Constrained Multiobjective Optimization: Test Problem Construction and Performance Evaluations, has been included.
- [3/28/2022] The constraint handling code has been refactorized and the documentation has been updated.