jMetalPy is a Python framework for multi-objective optimization with metaheuristics. It provides a comprehensive set of algorithms, problems, and utilities for solving complex optimization problems.
Note
📚 New to jMetalPy? Start with the Getting Started guide for a quick introduction.
Warning
Documentation of jMetal 1.8.0 is a work in progress! Some information may be missing or outdated.
Target doc |
v1.8.0 |
jMetalPy (v1.8.0) provides:
Local search, genetic algorithms, evolution strategies, simulated annealing, NSGA-II, NSGA-III, SMPSO, OMOPSO, MOEA/D, SMS-EMOA, GDE3, SPEA2, HYPE, IBEA, and preference-based variants.
Benchmark problems (ZDT, DTLZ, FDA, LZ09, RE, RWA), constrained and unconstrained benchmark problems.
Quality indicators (hypervolume, IGD, IGD+, epsilon), statistical testing, visualization, and experimental frameworks.
Parallel computing (Apache Spark, Dask), real-time plotting, dynamic algorithms, and integration with jMetal.
from jmetal.algorithm.multiobjective.nsgaii import NSGAII
from jmetal.problem import ZDT1
problem = ZDT1()
algorithm = NSGAII(problem=problem, population_size=100)
algorithm.run()
solutions = algorithm.get_result()
📖 Documentation: Comprehensive guides and API reference
💬 Issues: Report bugs and request features on GitHub
🤝 Contributing: Help improve jMetalPy - see Contributing
📄 Citation: If you use jMetalPy in research, please cite our paper
@article{BENITEZHIDALGO2019100598,
title = "jMetalPy: A Python framework for multi-objective optimization with metaheuristics",
journal = "Swarm and Evolutionary Computation",
pages = "100598",
year = "2019",
issn = "2210-6502",
doi = "https://doi.org/10.1016/j.swevo.2019.100598",
url = "http://www.sciencedirect.com/science/article/pii/S2210650219301397",
author = "Antonio Benítez-Hidalgo and Antonio J. Nebro and José García-Nieto and Izaskun Oregi and Javier Del Ser",
keywords = "Multi-objective optimization, Metaheuristics, Software framework, Python, Statistical analysis, Visualization",
}