/jMetal

jMetal: a framework for multi-objective optimization with metaheuristics

Primary LanguageJavaMIT LicenseMIT

jMetal project Web site

Build Status Test Status Integration Test Status Documentation Status

jMetal is a Java-based framework for multi-objective optimization with metaheuristics. The last stable version is 5.11 (https://github.com/jMetal/jMetal/tree/jmetal-5.11), which is based on the description of jMetal 5 included in the paper "Redesigning the jMetal Multi-Objective Optimization Framework" (http://dx.doi.org/10.1145/2739482.2768462), presented at GECCO 2015.

The current development version (6.0-SNAPSHOT) 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

The most recent documentation is hosted in https://jmetal.readthedocs.io (the old documentation site is located in https://github.com/jMetal/jMetalDocumentation).

Comments and suggestions are very welcome.

Changelog

  • [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.
  • [1/20/2022] The autoconfiguration of NSGA-II with irace has been revised, including fixing a bug and updating the documentation.
  • [9/6/2021] Release 5.11
  • [9/6/2021] The jMetal project adopts Java 13.
  • [7/6/2021] The LSMOP benchmark is available.
  • [2/19/2021] The Solution interface has been refactorized.
  • [2/19/2021] New implementation of quality indicators to remove the dependence of jMetal classes. Now, all of them accept as a parameter a matrix containing objective values.
  • [1/21/2021] Added the MicroFAME multi-objective genetic algorith, described in: Alejandro Santiago, Bernabé Dorronsoro, Héctor Fraire, Patricia Ruíz: Micro-Genetic algorithm with fuzzy selection of operators for multi-Objective optimization: microFAME. Swarm and Evolutionary Computation, V.61, March 2021. DOI. Contributed by Alejandro Santiago.
  • [10/1/2020] Added the problems described in: Ryoji Tanabe and Hisao Ishibuchi: An Easy-to-use Real-world Multi-objective Optimization Problem Suite. Applied Soft Computing, V.89, April 2020. DOI.
  • [9/14/2020] New jmetal-parallel sub-module. It contains asynchronous versions of a genetic algorithm and NSGA-II, and a synchronous evaluator based on Apache Spark.
  • [7/23/2020] The former jmetal-auto sub-project and the stuff related to using a component-based evolutionary template have been moved to a new sub-project called jmetal-experimental, which is intended to explore new features that can be consolidated in the project in the future.
  • [7/21/2020] jMetal 5.10 has been released.
  • [7/15/2020] Automatic generation of HTML pages <https://jmetal.readthedocs.io/en/latest/experimentation.html#generation-of-html-pages>_. summarizing the results of experimental studies. Contributed by Javier Pérez Abad.
  • [7/14/2020] New experiment component: GenerateFriedmanHolmTestTables. Contributed by Javier Pérez Abad.
  • [3/19/2020] New quality indicator: NormalizedHypervolume.
  • [3/19/2020] The jMetal project adopts Java 11.
  • [2/11/2020] All the files containing Pareto front approximations and weight vectors have been moved to the resources folder, located in root project directory.