I. Introduction
Population-based algorithms are a class of algorithms that maintain a population of solutions updated over a number of generations. They have been successfully applied to many nonlinear continuous and/or discrete optimization problems. The population is evolved through a number of iterations until some stopping criterion is met. Population-based algorithms are categorized according to the inspiration behind their evolving strategy. One class is evolutionary algorithms, in which the population update mechanism is developed to mimic the biological evolution process. These algorithms include Genetic Algorithms (GAs), Genetic Programming (GP), Evolutionary Strategies (ES), and Evolutionary Programming (EP). The other class includes swarm intelligence algorithms, in which the population update mechanism is developed to mimic the behavior of living organisms. Some of the algorithms falling under this class are referred to as foraging algorithms as they simulate the foraging behavior of animals and/or insects. Examples of foraging algorithms include Particle Swarm Opti-mization (PSO) [1], [2], Ant Colony Optimization (ACO) [3], Artificial Bee Colony (ABC) [4], and many more. Other swarm intelligence algorithms mimic different kinds of behaviors including for example the egg laying behavior of cuckoos in Cuckoo Search (CS) [5] and the echolocation behavior of bats in the Bat Algorithm (BA) [6].