Keywords

1 Introduction

1.1 Previous Classifications

Nature-inspired computing is a discipline that develops new computing techniques by observing how nature behaves to solve existing complex problems in different environmental situations. Algorithms that are inspired by natural problems are known as Nature-Inspired Algorithms. These algorithms have gained much popularity as real-world problems are becoming more and more complex and extensively large in contrast with past computing techniques. Nature-inspired algorithms are applied mostly to optimization problems and are used to give feasible and acceptable solutions to optimization problems rather than guaranteed optimal solution within a reasonable amount of time. Nature-inspired algorithms are broadly classified into four major categories which are evolution-based, swarm intelligence based algorithms, physics based algorithms, and human-based algorithms [1].

Evolution-based algorithms are inspired by the evolutionary behavior of natural systems and the laws of natural evolution. In these algorithms, a set of the population is stochastically selected and is processed over successive generations through evolutionary operations. The best individuals are selected are sent through the next generation process and this process is continued until the optimal solution is obtained or the termination criteria are reached. These algorithms are inspired by Charles Darwin Theory [2, 3] e.g. - Genetic Algorithm (GA), Differential Evolution (DE), etc. Swarm-based intelligence (SI), which is also known as Swarm optimization techniques [4], is inspired by the collective behavior of natural swarms. The working process of swarm-based algorithms is that they mimic the social behavior of groups on animals. Like particle swarm optimization [5], artificial bee colony algorithm [5, 6], and ant colony optimization algorithm [7]. One of the most popular Swarm based algorithms is Particle Swarm Optimization which was developed by James Kennedy and Russell C. Eberhart. It mimics the behavior of bird flocks and fish schooling. Physics-based nature-inspired algorithms are those algorithms that are inspired by physical processes in nature. Some common examples of physics-based algorithms are Simulate Annealing (SA) [8], Gravitational Search Algorithm (GSA) [9], Central Force Optimization (CFO) [10] and Black Hole (BH) algorithm [11], etc. While Human-based nature-inspired algorithms are inspired by human behaviors and try to imitate human characteristics. The most common example of human-based algorithms is the Harmony Search algorithm (HS) [12]. Besides this very simple categorization, nature-inspired algorithms are further classified into many categories based on their working process, mathematical functions, searching methods, and capability of finding optimal solutions.

1.2 History of Nature – Inspired Computing

Another reason why we use nature-inspired algorithms is the fact that these algorithms are inspired by nature itself. Nature is amazing and it has always been a source of inspiration for scientists and researchers. Besides these visible natural phenomena, there are numerous of invisible events and marvels that our scientists are still trying to explain. For centuries, scientists and philosophers are observing natural occurrences and trying to emulate and adapt these processes. There are already numerous researches proving that nature-inspired algorithms are much efficient and have a competitive edge over deterministic methods. In today’s world where real-world problems are getting complex day-by-day and extensively large due to scientific advancements, nature-inspired computing can be exceptionally beneficial. Real-world problems have innumerable search spaces with countless difficulties, a large number of variables, and multiple dimensions. These real-world problems enhance and elucidate multiobjective functions and solve NP-hard problems. Thus, demand for resolving these complications has engaged many scientists and researchers to come down with much faster, precise, explicitly powerful nature-inspired optimization algorithms. The revolutionary period for nature-inspired algorithms started when evolution-based algorithms came into existence. In 1950, Alan Turing proposed a machine that was inspired and emulated based on principles of evolution. 1960–1970 was the most crucial decade for the development of these algorithms. In 1963, Rechenberg and Haul-Paul Schwefel solved complex computation problems in aerospace engineering using a searching technique called evolution strategy and it was extensively acknowledged as a feasible optimization method [13]. The Genetic Algorithm was then introduced by John Holland in the early 1970s and his book “Adaptation in Natural and Artificial Systems” [14]. Genetic Algorithm is a biologically inspired computational procedure that is inspired by Darwin’s theory of evolution. It shows the ability to exploit the previous information to find the optimal result or expecting off-springs. 1980–1990s were also important decades as Simulated Annealing [8] was developed by Scott Kirkpatrick, Mario P. Vechchi, and C. DanielGellat in 1983. In 1992, Marco Dorigo proposed his work on the Ant Colony Optimization algorithm [15]. It is a swarm intelligence based algorithm inspired by the social behavior of ant colonies. In 1995, a remarkable advancement was made when John Kennedy and Russell C. Eberhart came up with Particle Swarm Optimization (PSO). Differential Evolution [16] was developed by Rainer Storm and Kenneth Price in 1997 and it turned out to be much more efficient than the Genetic Algorithm on many aspects. Xin-She Yang developed many nature-inspired algorithms like Firefly Algorithm (2007) [17], Bat Algorithm (2010) [17], Cuckoo Search (2009) [17], and Flower Pollination Algorithm in 2012 [18]. Since the 2000’s many nature-inspired algorithms were developed and many of them were modified by scientists to give better solutions. The number of these algorithms in the past two decades has risen exponentially. Even in present times, this field of nature-inspired algorithms is evolving rapidly.

1.3 Uses of Nature – Inspired Algorithms

Nature-inspired algorithms are implemented and used in many fields of science and engineering. The genetic Algorithm which is an evolution-based algorithm is used for Machine Learning, Deep Learning, Computer Architecture, Bayesian Inference, etc. Swarm intelligence based algorithm i.e. Ant Colony Optimization (ACO) and Particle Swarm algorithm (PSO) are used for network routing applications [18], Neural network system design, image processing etc. [19]. Firefly algorithm, Bat Algorithm, and Cuckoo Search algorithm which were developed by Xin-She Yang are also preferred in Neural Network programming, Semantic Web, Software testing, and image clustering [20, 21]. Nature-inspired algorithms are immensely popular and preferred when dealing with multi-dimensional functions and complex problems where optimal solutions are required in a discrete search space.

1.4 Reason for Classification

In this paper, Nature-Inspired algorithms are classified into different categorize on various factors. Classification is very important because it helps us to identify and differentiate these algorithms on the basis of their searching technique, ability to provide an optimal solution, derivation, etc. It helps in a better understanding of these algorithms and to determine which technique to use for that specific operation and it also allows us to understand the mechanism of algorithms easily and efficiently either individually or in a group.

1.5 Basis of Classification

In this paper, algorithms are classified into Four major parameters which are optimization technique, population, and the number of solutions, subjects they are inspired from. Based on optimization, it is categorized into two categories which are Stochastic optimization and Deterministic optimization [1]. Stochastic Optimization generates and uses random variables. Stochastic optimization algorithms have expansive applications in problems in mathematics, computation techniques, and engineering. Deterministic global optimization focuses on finding global solutions to optimization problems. The next parameter is population-based against single solution based search [22]. Population-based algorithms execute a search with various initial points. Single solution method focus on modifying and enhancing an individual solution. The third parameter focuses on the source of inspiration and the subject from which they are derived. Besides the broad classification that we already have, it further classifies these algorithms based on the subject like biological evolution, chemical processes, physics-based, music-based and swarm behavior or social psychology. As per our knowledge, we have further distributed this paper in Sect. 2 and Sect. 3. In Sect. 2 we have described the drawbacks of the previous classifications which have been proposed earlier. Then in Sect. 3, we proposed our classification. Following which Sect. 4 concludes this paper with some related future work.

2 Drawbacks

Nothing is perfect, everything lacks something in it. As time passes by new issues and new problems arise. And thus, people keep working to turn it into the best possible version of it. Nature-inspired algorithms are developed to solve problems or to find a better solution to a problem. Today we have lots of Nature-inspired algorithms available to solve a particular problem. But how we are going to decide which would be the best algorithm to solve that problem. Though it is found that in some cases or circumstances one algorithm performs better than the other or Vice – Versa. It mainly depends on the problem, dimensions of the problem, inputs, variables, and many other factors that decide the success of the algorithm. So there is no universal algorithm that outperforms the other algorithms [23]. A best available algorithm must be effective in terms of performance and efficiency in terms of resources such as computation cost and time allowed to come up with the solution. These are important factors in deciding what algorithm to use.

While we were studying for our research work we have gone through a lot of books and research papers and we have found that a lot of researchers have classified Nature-inspired algorithms only based on their subject namely, swarm intelligence, physical or chemical-based algorithms, and evolutionary algorithms [24]. In our classification, we have also classified Nature-Inspired Algorithms based on their subject, nature of optimization, number of solutions, and also on the basis of memory, and in each category, we have arranged the list of Nature-Inspired Algorithms in their Chronological order.

3 Classification

Here we classify Natural Inspired Algorithm according to different categories which are described below one by one.

  • Inspired Subject: In this category, we classify algorithms according to their subject from which they are inspired. Like the Gravitational Search algorithm which is inspired by Physics.

  • Number of Solutions: In this category, we have two sub-Categories:

    • Trajectory-Based NIA: In this Category, we put those algorithms which use the single agent/particle/solution which get better upon iteration. And in the trajectory-based method, the initial agent/particle/solution is randomly selected.

    • Population-Based NIA: In this category, we put those algorithms which use the set of agent/particle/solutions which also result in obtaining the number of a solution in a particular iteration. A population-based algorithm selects the best solution among the number of solutions generated in the iterations. This is called elitism.

  • Based on optimization: In this category also we have two sub-categories:

    • Deterministic Algorithms: These algorithms follow a certain procedure and provide the same solution on different runs.

    • Stochastic Algorithms: These algorithms possess randomness and provide different solutions on a different run. The main advantage of stochastic algorithms is the ability to explore several regions of the search space. That is the reason they can escape from the local optima to reach the global optimum.

  • Based on Memory: In this category also we have two sub-categories:

    • Memory-Based Algorithms: Memory-based algorithms approach the problem by functioning over the entire dataset. The memory-based approach uses data to compute the similarity between items. These memory-based algorithms calculate the similarity between previously analyzed items and produce a prediction by taking the weighted average of all the ratings.

    • Memory-less Algorithms: Memory-less algorithms operate on an individual problem and its dataset to find an optimal solution rather than comparing and predicting results from previously compiled solutions (Tables 1 and 2).

      Table 1. Classification table consisting of three parameters
      Table 2. Classification table consisting of memory parameter

4 Conclusion and Future Works

As the provenance of innovation of nature-inspired algorithms are very contrasting and distinct so it is indisputable that algorithms are also varying in their nature. Hence in this paper, we classify the existing nature-inspired algorithms like genetic algorithm, Cuckoo search, Bat algorithm, Central force algorithm, Differential evolution, Genetic programming, and many other natural inspired algorithms based on four parameters. This can be a very informative source to choose the appropriate algorithm for the problem and also to form a base for further higher research.

It might be notable that the classification is not unique. But this paper seems to be effective for the researchers and a also for the common people who don’t have prior knowledge about these algorithms. It is very hard to find the appropriate algorithm for the problem because there is a huge number of nature-inspired algorithms are present out there. So the main motive of the paper is to help the researcher to find the appropriate algorithm from the ocean of these algorithms. So they can solve the real-world optimization problem more effectively. As we all know that the development of nature-inspired algorithms for optimization is arising rapidly and has seen enormous growth in the past few decades.

In the future, we try to add on more parameters in the classification of natureinspired algorithms i.e. objective function of the algorithm. But this classification can be broadened to freshly originated nature-inspired algorithms and also can be practiced for alteration and modifying already existing nature-inspired algorithms.