Arithmetic optimization algorithm (AOA) is a recent population-based metaheuristic widely used for solving optimization problems. However, the emerging large-scale optimization problems pose a great challenge for AOA due to its prohibitive computational cost to traverse the huge solution space effectively. This article proposes a parallel Spark-AOA using Scala on Apache Spark computing platform. Spark-AOA leverages the intrinsic parallel nature of the population-based AOA and the native iterative in-memory computation support of Spark through resilient distributed datasets (RDD) to accelerate the optimization process. Spark-AOA divides the solutions population into several subpopulations that are distributed into multiple RDD partitions and manipulated concurrently. Simulation experiments on different benchmark functions with up to 1,000-dimension and three engineering design problems demonstrate that Spark-AOA outperforms considerably standard AOA and Spark-based implementations of two recent metaheuristics both in terms of run-time and solution quality.
Read full abstract