General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python

Several interesting libraries for optimization have been proposed. Some focus on individual optimization algorithms, or limited sets of them, and others focus on limited sets of problems. Frequently, the implementation of one of them does not precisely follow the formal definition, and they are diff...

Full description

Bibliographic Details
Main Authors: Illya Bakurov, Marco Buzzelli, Mauro Castelli, Leonardo Vanneschi, Raimondo Schettini
Format: Article
Language:English
Published: MDPI AG 2021-05-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/11/11/4774
id doaj-7f260f80bb0a4140af084bf379342ac1
record_format Article
spelling doaj-7f260f80bb0a4140af084bf379342ac12021-06-01T00:50:52ZengMDPI AGApplied Sciences2076-34172021-05-01114774477410.3390/app11114774General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in PythonIllya Bakurov0Marco Buzzelli1Mauro Castelli2Leonardo Vanneschi3Raimondo Schettini4Nova Information Management School (NOVA IMS), Universidade NOVA de Lisboa, Campus de Campolide,1070-312 Lisboa, PortugalDipartimento di Informatica Sistemistica e Comunicazione, Università degli Studi di Milano-Bicocca, Viale Sarca, 336, 20126 Milano, ItalyNova Information Management School (NOVA IMS), Universidade NOVA de Lisboa, Campus de Campolide,1070-312 Lisboa, PortugalNova Information Management School (NOVA IMS), Universidade NOVA de Lisboa, Campus de Campolide,1070-312 Lisboa, PortugalDipartimento di Informatica Sistemistica e Comunicazione, Università degli Studi di Milano-Bicocca, Viale Sarca, 336, 20126 Milano, ItalySeveral interesting libraries for optimization have been proposed. Some focus on individual optimization algorithms, or limited sets of them, and others focus on limited sets of problems. Frequently, the implementation of one of them does not precisely follow the formal definition, and they are difficult to personalize and compare. This makes it difficult to perform comparative studies and propose novel approaches. In this paper, we propose to solve these issues with the General Purpose Optimization Library (GPOL): a flexible and efficient multipurpose optimization library that covers a wide range of stochastic iterative search algorithms, through which flexible and modular implementation can allow for solving many different problem types from the fields of continuous and combinatorial optimization and supervised machine learning problem solving. Moreover, the library supports full-batch and mini-batch learning and allows carrying out computations on a CPU or GPU. The package is distributed under an MIT license. Source code, installation instructions, demos and tutorials are publicly available in our code hosting platform (the reference is provided in the Introduction).https://www.mdpi.com/2076-3417/11/11/4774optimizationevolutionary computationswarm intelligencelocal searchcontinuous optimizationcombinatorial optimization
collection DOAJ
language English
format Article
sources DOAJ
author Illya Bakurov
Marco Buzzelli
Mauro Castelli
Leonardo Vanneschi
Raimondo Schettini
spellingShingle Illya Bakurov
Marco Buzzelli
Mauro Castelli
Leonardo Vanneschi
Raimondo Schettini
General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python
Applied Sciences
optimization
evolutionary computation
swarm intelligence
local search
continuous optimization
combinatorial optimization
author_facet Illya Bakurov
Marco Buzzelli
Mauro Castelli
Leonardo Vanneschi
Raimondo Schettini
author_sort Illya Bakurov
title General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python
title_short General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python
title_full General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python
title_fullStr General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python
title_full_unstemmed General Purpose Optimization Library (GPOL): A Flexible and Efficient Multi-Purpose Optimization Library in Python
title_sort general purpose optimization library (gpol): a flexible and efficient multi-purpose optimization library in python
publisher MDPI AG
series Applied Sciences
issn 2076-3417
publishDate 2021-05-01
description Several interesting libraries for optimization have been proposed. Some focus on individual optimization algorithms, or limited sets of them, and others focus on limited sets of problems. Frequently, the implementation of one of them does not precisely follow the formal definition, and they are difficult to personalize and compare. This makes it difficult to perform comparative studies and propose novel approaches. In this paper, we propose to solve these issues with the General Purpose Optimization Library (GPOL): a flexible and efficient multipurpose optimization library that covers a wide range of stochastic iterative search algorithms, through which flexible and modular implementation can allow for solving many different problem types from the fields of continuous and combinatorial optimization and supervised machine learning problem solving. Moreover, the library supports full-batch and mini-batch learning and allows carrying out computations on a CPU or GPU. The package is distributed under an MIT license. Source code, installation instructions, demos and tutorials are publicly available in our code hosting platform (the reference is provided in the Introduction).
topic optimization
evolutionary computation
swarm intelligence
local search
continuous optimization
combinatorial optimization
url https://www.mdpi.com/2076-3417/11/11/4774
work_keys_str_mv AT illyabakurov generalpurposeoptimizationlibrarygpolaflexibleandefficientmultipurposeoptimizationlibraryinpython
AT marcobuzzelli generalpurposeoptimizationlibrarygpolaflexibleandefficientmultipurposeoptimizationlibraryinpython
AT maurocastelli generalpurposeoptimizationlibrarygpolaflexibleandefficientmultipurposeoptimizationlibraryinpython
AT leonardovanneschi generalpurposeoptimizationlibrarygpolaflexibleandefficientmultipurposeoptimizationlibraryinpython
AT raimondoschettini generalpurposeoptimizationlibrarygpolaflexibleandefficientmultipurposeoptimizationlibraryinpython
_version_ 1721413760269156352