Equilibrium Optimizer

This project entails both EO and BiEO algorithms. The original EO was developed in 2019 for single-objective optimization, and the binary EO (Bi EO) was developed in 2021 for the binary optimization problems.

Single-objective optimization

Equilibrium Optimizer (EO) is a novel optimization algorithm inspired by control volume mass balance models used to estimate both dynamic and equilibrium states. In EO, each particle (solution) with its concentration (position) acts as a search agent. The search agents randomly update their concentration with respect to best-so-far solutions, namely equilibrium candidates, to finally reach to the equilibrium state (optimal result). A well-defined “generation rate” term is proved to invigorate EO’s ability in exploration, exploitation, and local minima avoidance.

The proposed algorithm was benchmarked with 58 unimodal, multimodal, and composition functions and three engineering application problems. Results of EO were compared to three categories of existing optimization methods, including: (i) the most well-known meta-heuristics, including Genetic Algorithm (GA), Particle Swarm Optimization (PSO); (ii) recently developed algorithms, including Grey Wolf Optimizer (GWO), Gravitational Search Algorithm (GSA), and Salp Swarm Algorithm (SSA); and (iii) high performance optimizers, including CMA-ES, SHADE, and LSHADE-SPACMA. Using average rank of Friedman test, for all 58 mathematical functions EO is able to outperform PSO, GWO, GA, GSA, SSA, and CMA-ES by 60%, 69%, 94%, 96%, 77%, and 64%, respectively, while it is outperformed by SHADE and LSHADE-SPACMA by 24% and 27%, respectively. The Bonferroni-Dunn and Holm’s tests for all functions showed that EO is significantly a better algorithm than PSO, GWO, GA, GSA, SSA and CMA-ES while its performance is statistically similar to SHADE and LSHADE-SPACMA.

The source code of EO is written in MATLAB. The following links are available to download the source code:

This work was published in Knowledge-Based Systems in 2020.

Project lead: Afshin Faramarzi
Co-authors: Mohammad Heidarinejad, Brent Stephens, and Seyedali Mirjalili

Binary Equilibrium Optimizer

Binary Equilibrium Optimizer (Bi EO) is a binary version of an original continuous novel optimization algorithm called Equilibrium Optimizer (EO) which is inspired by control volume mass balance to estimate both dynamic and equilibrium state. We employed a V-type transfer function to map a continuous search space into a binary one and also used a random search approach for invigorating the exploration ability of BiEO. The performance of BiEO was validated against 19 mathematical functions including unimodal, multimodal, hybrid and composition functions as well as 3 building optimal control problems including (i) control of switchable Ethylene tetrafluoroethylene (ETFE) cushions, (ii) operation of motorized shades, and (iii) schedule of window opening during natural ventilation. The results of BiEO in all test suites were compared to Binary Particle Swarm Optimization with S-shape (BPSO/S) and V-shape (BPSO/V) transfer functions, Binary Dragonfly Algorithm (BDA), and Genetic Algorithm (GA).

The proposed BiEO method shows a fast rate of convergence compared to its competitors in most mathematical and optimal control problems (i.e., on average 5 times). This characteristic highlights the merits of BiEO and makes it a powerful binary optimizer specially when there are limited budget of time and iterations for solving an optimization problem.

The source code of Binary Equilibrium Optimizer (Bi EO) is written in MATLAB. The following links are available to download the source code:

The work was published in  Energy and Buildings in 2022.

Project lead: Afshin Faramarzi
Co-authors: Seyedali Mirjalili and Mohammad Heidarinejad