jMetalPy: a Python Framework for Multi-Objective Optimization with Metaheuristics

This paper describes jMetalPy, an object-oriented Python-based framework for multi-objective optimization with metaheuristic techniques. Building upon our experiences with the well-known jMetal framework, we have developed a new multi-objective optimization software platform aiming not only at repli...

Descripción completa

Detalles Bibliográficos
Autores: Del Ser, J., Benítez-Hidalgo, A., J. Nebro, A., García-Nieto, J., Oregi, I.
Tipo de recurso: artículo
Estado:Versión aceptada para publicación
Fecha de publicación:2019
País:España
Institución:Basque Center for Applied Mathematics (BCAM)
Repositorio:BIRD. BCAM's Institutional Repository Data
OAI Identifier:oai:bird.bcamath.org:20.500.11824/1162
Acceso en línea:http://hdl.handle.net/20.500.11824/1162
https://doi.org/10.1016/j.swevo.2019.100598
Access Level:acceso abierto
Palabra clave:Multi-ObjectiveOptimization
Metaheuristics
SoftwareFramework
Python
StatisticalAnalysis
Visualization
Descripción
Sumario:This paper describes jMetalPy, an object-oriented Python-based framework for multi-objective optimization with metaheuristic techniques. Building upon our experiences with the well-known jMetal framework, we have developed a new multi-objective optimization software platform aiming not only at replicating the former one in a different programming language, but also at taking advantage of the full feature set of Python, including its facilities for fast prototyping and the large amount of available libraries for data processing, data analysis, data visualization, and high-performance computing. As a result, jMetalPy provides an environment for solving multi-objective optimization problems focused not only on traditional metaheuristics, but also on techniques supporting preference articulation and dynamic problems, along with a rich set of features related to the automatic generation of statistical data from the results generated, as well as the real-time and interactive visualization of the Pareto front approximations produced by the algorithms. jMetalPy offers additionally support for parallel computing in multicore and cluster systems. We include some use cases to explore the main features of jMetalPy and to illustrate how to work with it.