EvoloPy: An Open-Source Nature-Inspired Optimization Framework in Python

As an initiative to keep the implementation of the recent nature-inspired metaheuristics as well as the classical ones in a single open-source framework, we introduce EvoloPy. EvoloPy is an open-source and cross-platform Python framework that implements various classical and recent metaheuristic algorithms. The framework’s goal is to take advantage of the rapidly growing scientific community of Python and provide a set of robust optimizers as free and open-source software. We believe implementing such algorithms in Python will increase their popularity and portability among researchers and non-specialists from different domains. The powerful libraries and packages available in Python (such as NumPy) will make it more feasible to apply metaheuristic algorithms for solving complex problems on a much larger scale. EvoloPy facilitates designing new algorithms or improving, hybridizing, and analyzing the current ones.

Team Members:
pedro a castillo JJM Guervós

Our poster of EvoloPy was accepted at the ECTA conference. Thanks to JJ Merelo for presenting it in Porto, Portugal. Have a look at the paper and poster sources:

Paper source: https://github.com/7ossam81/EvoloPy
Paper: https://www.scitepress.org/Papers/2016/60482/60482.pdf
Poster source: https://github.com/7ossam81/EvoloPy-poster
List of implemented optimizers so far: https://github.com/7ossam81/EvoloPy/wiki/List-of-optimizers
Benchmark Functions: http://evo-ml.com/wp-content/uploads/2021/04/EvoloPy_Benchmark_functions.pdf

4 Comments on "EvoloPy: An Open-Source Nature-Inspired Optimization Framework in Python"

  1. Dear developers! Thank you for this amazing tool. I’m wondering how to use your own objective functions. I implemented them in the py file ‘benchmarks’, but unfortunately I get the error

    “module ‘benchmarks’ has no attribute ‘n'”

    Could we come in to touch?

    • Raneem Qaddoura | May 14, 2021 at 1:46 pm | Reply

      Dear Terrence,

      Please check the following video which shows how to add a benchmark function to EvoloPy

      I hope this helps!

  2. can we use this framework for both classification and regression problems?

  3. Mahmoud Shaqfa | June 3, 2019 at 11:08 am | Reply

    Dear all,

    I ran over your codes; the idea itself is good!
    You can push it even one step further by trying to implement such algorithms to deal with high-performance applications. On-flight parameter identification is needed and scarce as well. This could happen by using a faster programming language such as C or C++ and\or even parallel framework. Python is a very practical programming language for non-specialists or fresh-researchers but still not fast on so many levels.
    Recently, I’ve started a project about using C++ binaries (of a self-customized library) and by tweaking the code using Python API (Try CPython or any other similar libraries). This would outperform any other programming languages (not the assembly ones). This could have a significant impact on the hyper-dimensional optimization problems where the number of evaluations could count in hundreds of thousands.
    Anyhow, it is a good idea overall, but if you seek the dominance level of “Numpy” or any other well-known python library you have to consider that.

    Best of luck,
    Mahmoud

Leave a comment

Your email address will not be published.


*