VecMetaPy: A vectorized framework for metaheuristic optimization in Python. (April 2022) - Hemmasian, AmirPouya; Meidani, Kazem; Mirjalili, Seyedali; Barati Farimani, Amir
Highlights: VecMetaPy is an accelerated framework for meta-heuristic optimization. VecMetaPy utilizes the concept of vectorization to greatly speed up matrix calculations. VecMetaPy saves a lot of computational time by performing many operations simultaneously. VecMetaPy proposes general guidelines for vectorizing meta-heuristics. VecMetaPy can reduce the execution time by two to three orders of magnitude in some cases. Abstract: This work aims to accelerate metaheuristic optimization algorithms and their experimental environment using the vectorization feature in the NumPy library in Python. It is built upon EvoloPy, a framework previously introduced by Faris et al. (2016)[41] for metaheuristic optimization in Python. We have vectorized every aspect of this framework including function evaluation, random number sampling, strategy selection, and performing the update equations. We compare the wall-clock time of our vectorized framework for a few algorithms with the original implementation in EvoloPy. The results demonstrate the substantial improvement in the algorithm's execution time, even to three orders of magnitude in cases like a 180-dimensional search space. The codes can be found at https://github.com/BaratiLab/VecMetaPy .