I. Introduction
Evolutionary algorithms have been shown to be very successful when tackling optimization problems as they can provide close to optimum results within a reasonable amount of time. However, they often suffer from the curse of dimensionality. Performance can quickly deteriorate when the number of problem variables increases. This is a very critical issue as most real-world optimization problems can be of larger sizes. Different frameworks for cooperative evolutionary algorithms were proposed to have a far more efficient search mechanism in comparison to the individual algorithmic instances. Cooperative frameworks rely on running multiple algorithmic instances in the search space (either serially or in parallel) while exchanging useful information. In such frameworks, the search space is divided among the different algorithms [1], [2]. The search space is either divided explicitly by decomposing the problem variables between the cooperating instances or implicitly by having the different instances search different parts of the search space.