jMetal/jMetalPy

A framework for single/multi-objective optimization with metaheuristics

What it solves

It provides a comprehensive framework for solving multi-objective optimization problems, where the goal is to find a set of optimal trade-off solutions (the Pareto front) rather than a single best answer.

How it works

The library implements a wide variety of evolutionary algorithms (such as NSGA-II, NSGA-III, and MOEA/D) and metaheuristics (like simulated annealing and local search). It allows users to define a problem, select an encoding (real, integer, binary, or permutation), apply genetic operators for selection, crossover, and mutation, and evaluate the results using quality indicators and statistical testing methods.

Who it’s for

It is designed for researchers and developers working on multi-objective optimization, evolutionary computation, and algorithmic benchmarking.

Highlights

  • Extensive Algorithm Library: Includes genetic algorithms, evolution strategies, and preference articulation-based algorithms.
  • Distributed Computing: Supports parallel execution using Apache Spark and Dask.
  • Comprehensive Benchmarking: Includes a vast array of standard benchmark problems (ZDT, DTLZ, WFG, etc.) and constrained problems.
  • Advanced Visualization: Offers real-time, static, and interactive plotting for Pareto front approximations, including 2D, 3D, and parallel coordinates.
  • Statistical Analysis: Built-in tools for pairwise and multiple hypothesis testing using both frequentist and Bayesian methods.

Related

  • Project
  • Project
  • Project
  • Project