Discussing the article: "Battle Royale Optimizer (BRO)"

 

Check out the new article: Battle Royale Optimizer (BRO).

The article explores the Battle Royale Optimizer algorithm — a metaheuristic in which solutions compete with their nearest neighbors, accumulate “damage,” are replaced when a threshold is exceeded, and periodically shrink the search space around the current best solution. It presents both pseudocode and an MQL5 implementation of the CAOBRO class, including neighbor search, movement toward the best solution, and an adaptive delta interval. Test results on the Hilly, Forest, and Megacity functions highlight the strengths and limitations of the approach. The reader is provided with a ready-to-use foundation for experimentation and tuning key parameters such as popSize and maxDamage.

The Battle Royale Optimizer (BRO) algorithm figuratively represents a virtual world where many players land on the battlefield and only one must survive. This is the essence of the prototype game. Now let's transfer this concept to solving optimization problems.

At the beginning of the algorithm, we create a population of solutions randomly distributed over the search space. Each solution is a unique "player" that has a certain position and the quality (fitness) of this position. Then the main competition cycle begins, where each solution is compared to its nearest neighbor, much like players pitted against each other in a battle.

When two solutions "meet", they are compared for their quality. The best solution is declared the winner and takes zero damage, while the worst solution is declared the loser and takes one damage. This damage counter is a key feature of the algorithm. The losing solution not only suffers damage, it also tries to improve its position by moving towards the best known solution in the population. This movement simulates the desire to survive by finding a safer and more advantageous place.

If a solution accumulates too much damage (exceeds a given threshold), it is "eliminated from the game" - removed from the population and replaced by a new random solution. It is like a player being eliminated in a battle royale and a new one appearing in the next match. This mechanism ensures constant renewal of the population and supports the diversity of solutions.


Author: Andrey Dik

 
It looks very interesting, I'm going to try it out to look at the most optimal solutions to a couple of combinations of factors I've been measuring.