Abstract

Python has become the programming language of choice for research and industry projects related to data science, machine learning, and deep learning. Since optimization is an inherent part of these research fields, more optimization related frameworks have arisen in the past few years. Only a few of them support optimization of multiple conflicting objectives at a time, but do not provide comprehensive tools for a complete multi-objective optimization task. To address this issue, we have developed pymoo, a multi-objective optimization framework in Python. We provide a guide to getting started with our framework by demonstrating the implementation of an exemplary constrained multi-objective optimization scenario. Moreover, we give a high-level overview of the architecture of pymoo to show its capabilities followed by an explanation of each module and its corresponding sub-modules. The implementations in our framework are customizable and algorithms can be modified/extended by supplying custom operators. Moreover, a variety of single, multi and many-objective test problems are provided and gradients can be retrieved by automatic differentiation out of the box. Also, pymoo addresses practical needs, such as the parallelization of function evaluations, methods to visualize low and high-dimensional spaces, and tools for multi-criteria decision making. For more information about pymoo, readers are encouraged to visit: https://pymoo.org

Highlights

  • Optimization plays an essential role in many scientific areas, such as engineering, data analytics, and deep learning

  • Python is a high-level, cross-platform, and interpreted programming language that focuses on code readability

  • Having access to either a good collection of different source codes or a comprehensive library is time-saving and avoids an error-prone implementation from scratch. To address this need for multi-objective optimization in Python, we introduce pymoo

Read more

Summary

INTRODUCTION

Optimization plays an essential role in many scientific areas, such as engineering, data analytics, and deep learning. Having access to either a good collection of different source codes or a comprehensive library is time-saving and avoids an error-prone implementation from scratch To address this need for multi-objective optimization in Python, we introduce pymoo. Pymoo provides implementations of performance indicators to measure the quality of results obtained by a multi-objective optimization algorithm. Each sub-module takes care of an aspect independently and, variants of algorithms can be initiated by passing different combinations of sub-modules This concept allows end-users to incorporate domain knowledge through custom implementations. We created a starter’s guide for users to become familiar with our framework and to demonstrate its capabilities As an example, it shows the optimization results of a bi-objective optimization problem with two constraints.

RELATED WORKS
PROBLEM DEFINITION
OPTIMIZATION
ARCHITECTURE
IMPLEMENTATIONS
OPTIMIZATION MODULE
OPERATORS The following evolutionary operators are available:
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.