SWARM-BASED OPTIMIZATION ALGORITHMS

Nature has always inspired us. From arts to science and engineering, nature has provided an apparently endless list of objects of interest. Out of these, the human brain is probably the most enigmatic object of study. Efforts to understand it have ranged from introspection to anatomic descriptions of its physical structure. Both of these efforts have resulted in models that we have simulated in digital computers as an attempt to create intelligent systems. The former approach gave us systems that use existing knowledge of a domain and some form of logic in order to derive new knowledge. Nevertheless, their practical success varies considerably. The modeling of the physical structure of natural systems has resulted in some of the most successful attempts at mimicking human intelligence. As an example, consider the remarkable set of applications that neural networks, and deep learning in particular, have exhibited in recent years (1,2). Swarm intelligence (3,4), in particular the swarm-based optimization algorithms, share with neural networks the key aspect of being composed of a large set of processing units that, individually, have only limited computational power. However, put together, these units can form powerful information processing systems. Thus, putting it simply, we can say that a kind of collective intelligence emerges from the interactions of many non-intelligent units. This point is the overarching unifying theme behind swarm intelligence techniques. After decades of research on artificial intelligence, it has become evident that intelligence is often associated with search and/or optimization (5). Therefore, it is not surprising that at the core of diverse artificial intelligence techniques lies an optimization problem or an optimization algorithm, which emphasizes the importance of search and optimization in the field. There is a rich variety of optimization techniques available. Swarm-based algorithms are part of the family of algorithms inspired by nature. Different metaphors have been used as a basis for the development of nature-inspired search and optimization algorithms. One such metaphor is based on what we know about natural evolution, and the corresponding class of algorithms comprises the so-called evolutionary algorithms (EAs) (6). In essence, EAs employ populations of search agents that encode candidate solutions of the problem at hand. The population is evolved by applying operators that imitate the effects of biological DNA procedures, namely, crossover, mutation, and selection, in order to produce new populations. Selection pressure and the imposed competition among members of the population offer the necessary guidance toward improved solutions. EAs have proved to be very effective in a large number of applications (7,8). Their ability to cope with uncertainty, as well as their minor requirements with respect to the form and mathematical properties of the objective function, has rendered EAs a valuable part of the state-ofthe-art in modern optimization literature. Moreover, due to their ability to concurrently evolve many search points, their application in parallel computation environments becomes extremely convenient (9). The success of EAs has increased interest in different natural systems where traits of computational efficiency have been observed. Swarms, herds, and other socially organized groups of living organisms exhibit clear evidence of problem-solving capabilities (4,10). Typical examples are ants with their remarkable ability of solving shortest path problems during foraging and bees with the ability to guide the search of their mates by waggle dancing according to their discoveries. In such systems, patterns of intelligent behavior emerge as a result of simple local interactions between their members (11). The aforementioned properties have offered fertile ground for the development of population-based optimization algorithms based on models of natural swarms. Although intimately related with EAs, this type of algorithms promotes cooperation and collaboration rather than competition among themembers of the swarm. Thus, it has been distinguished as a unique, promising new category of algorithms called swarm intelligence (SI) (4,10,11). Today, SI accounts for a variety of computational models with significant applications. A large number of practical applications, including traveling salesman problem, vehicle routing, flow shop scheduling, and robotics, among others, are reported in (7). This article presents the principles of swarm-based optimization as well as representative algorithms for continuous and discrete optimization problems. The rest of the article is organized as follows: Section 2 exposes the basic principles that govern SI algorithms. In Sections 3 and 4, selected swarm-based algorithms for discrete and continuous optimization problems are presented. These include the following popular algorithms: