Minion

Minion is an optimization library designed for solving complex optimization problems where gradients are unavailable or unreliable. It implements state-of-the-art evolutionary algorithms which are often missing in standard optimization libraries.

3
contributors

Cite this software

What Minion can do for you

Minion: Derivative-Free Optimization Library

Minion is a high-performance derivative-free optimization library designed for solving complex optimization problems where gradients are unavailable or unreliable. It features state-of-the-art evolutionary algorithms, including top-performing methods from IEEE CEC competitions, which are not commonly found in standard optimization libraries such as SciPy, NLopt, OptimLib, pyGMO, and pagmo2.

Minion also serves as a research platform for developing and testing new optimization algorithms. It includes benchmark functions from CEC competitions (2011, 2014, 2017, 2019, 2020, and 2022), providing a robust framework for algorithm evaluation and comparison.

🔥 Why Choose Minion?

  • State-of-the-art optimization algorithms :
    • Differential Evolution-based algorithms:
      • Basic Differential Evolution (DE)
      • JADE
      • L-SHADE
      • jSO
      • j2020
      • NL-SHADE-RSP
      • LSRTDE
      • ARRDE (our novel Adaptive Restart-Refine DE algorithm)
    • Other population-based algorithms:
      • Artificial Bee Colony (ABC)
      • Grey Wolf DE Optimization
    • Classical optimization algorithms:
      • Nelder-Mead
      • Generalized Simulated Annealing (Dual Annealing)
      • L-BFGS-B (vectorized)
  • Highly parallelized
    • Designed for vectorized function evaluations, supporting multithreading and multiprocessing to speed up optimization.
  • Optimized C++ backend with Python API
    • Enjoy the performance of C++ with the simplicity of Python.
  • CEC Benchmark Suite
    • Includes benchmark problems from 2011, 2014, 2017, 2019, 2020, and 2022 for rigorous algorithm testing.

🚀 Installation

The Python wrapper (minionpy) is available on PyPI:

pip install --upgrade minionpy

For compiling the C++ version, please refer to the official Minion documentation.

📖 Documentation

For full usage instructions, API reference, and examples, visit the official documentation:

Logo of Minion
Keywords
License
</>Source code
Packages
pypi.org

Participating organisations

Forschungszentrum Jülich

Contributors

KM
Khoirul Faiq Muzakka
Author/Developer/Maintainer
Forschungszentrum Jülich
SM
Sören Möller
Scientist
Forschungszentrum Jülich
MF
Martin Finsterbusch
Group Leader
Forschungszentrum Jülich