{'fraction_non_alphanumeric': 0.031171722794322294, 'fraction_numerical': 0.004035624826050654, 'mean_word_length': 5.021365731043151, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Brief Review of Nature-Inspired Algorithms for Optimization

Swarm intelligence and bio-inspired algorithms form a hot topic in the developments of new algorithms inspired by nature. These nature-inspired metaheuristic algorithms can be based on swarm intelligence, biological systems, physical and chemical systems. Therefore, these algorithms can be called swarm-intelligence-based, bio-inspired, physics-based and chemistry-based, depending on the sources of inspiration. Though not all of them are efficient, a few algorithms have proved to be very efficient and thus have become popular tools for solving real-world problems. Some algorithms are insufficiently studied. The purpose of this review is to present a relatively comprehensive list of all the algorithms in the literature, so as to inspire further research.


INTRODUCTION
Real-world optimization problems are often very challenging to solve, and many applications have to deal with NP-hard problems. To solve such problems, optimization tools have to be used, though there is no guarantee that the optimal solution can be obtained. In fact, for NPproblems, there are no efficient algorithms at all. As a result, many problems have to be solved by trial and errors using various optimization techniques. In addition, new algorithms have been developed to see if they can cope with these challenging optimization problems.
Among these new algorithms, many algorithms such as particle swarm optimization, cuckoo search and firefly algorithm, have gained popularity due to their high efficiency. In the current literature, there are about 40 different algorithms. It is really a challenging task to classify these algorithms systematically. Obviously, the classifications can largely depend on the criteria, and there is no easy guideline to set out the criteria in the literature. As criteria may vary, detailed classifications can be an impossible task for a research paper. However, in this short paper, we only attempt to focus on one aspect of the characteristics of these algorithms. That is, we will focus on the source of inspiration when developing algorithms.
Therefore, the rest of this paper is organized as follows: Section 2 analyzes the sources of inspiration, while Section 3 provides a brief and yet comprehensive Nature has inspired many researchers in many ways and thus is a rich source of inspiration. Nowadays, most new algorithms are nature-inspired, because they have been developed by drawing inspiration from nature. Even with the emphasis on the source of inspiration, we can still have different levels of classifications, depending on how details and how many subsources we will wish to use. For simplicity, we will use the highest level sources such as biology, physics or chemistry.
In the most generic term, the main source of inspiration is Nature. Therefore, almost all new algorithms can be referred to as nature-inspired. By far the majority of nature-inspired algorithms are based on some successful characteristics of biological system. Therefore, the largest fraction of nature-inspired algorithms are biology-inspired, or bio-inspired for short.
Among bio-inspired algorithms, a special class of algorithms have been developed by drawing inspiration from swarm intelligence. Therefore, some of the bioinspired algorithms can be called swarm-intelligencebased. In fact, algorithms based on swarm intelligence are among the most popular. Good examples are ant colony optimization [15], particle swarm optimization [35], cuckoo search [74], bat algorithm [78], and firefly algorithm [69], [20].
Obviously, not all algorithms were based on biological systems. Many algorithms have been developed by using inspiration from physical and chemical systems. Some may even be based on music [23]. In the rest of paper, we will briefly divide all algorithms into different categories, and we do not claim that this categorization is unique. This is a good attempt to provide sufficiently detailed references.

CLASSIFICATION OF ALGORITHMS
Based on the above discussions, we can divide all existing algorithms into four major categories: swarm intelligence (SI) based, bio-inspired (but not SI-based), physics/chemistry-based, and others. We will summarize them briefly in the rest of this paper. However, we will focus here on the relatively new algorithms. Wellestablished algorithms such as genetic algorithms are so well known that there is no need to introduce them in this brief paper.
It is worth pointing out the classifications here are not unique as some algorithms can be classified into different categories at the same time. Loosely speaking, classifications depend largely on what the focus or emphasis and the perspective may be. For example, if the focus and perspective are about the trajectory of the search path, algorithms can be classified as trajectorybased and population-based. Simulated annealing is a good example of trajectory-based algorithms, while particle swarm optimization and firefly algorithms are population-based algorithms. If our emphasis is placed on the interaction of the multiple agents, algorithms can be classified as attraction-based or non-attraction-based. Firefly algorithm (FA) is a good example of attractionbased algorithms because FA uses the attraction of light and attractiveness of fireflies, while genetic algorithms are non-attraction-based since there is no explicit attraction used. On the other hand, if the emphasis is placed on the updating equations, algorithms can be divided into rule-based and equation-based. For example, particle swarm optimization and cuckoo search are equationbased algorithms because both use explicit updating equations, while genetic algorithms do not have explicit equations for crossover and mutation. However, in this case, the classifications are not unique. For example, firefly algorithm uses three explicit rules and these three rules can be converted explicitly into a single updating equation which is nonlinear [69], [20]. This clearly shows that classifications depend on the actual perspective and motivations. Therefore, the classifications here are just one possible attempt, though the emphasis is placed on the sources of inspiration.

Swarm intelligence based
Swarm intelligence (SI) concerns the collective, emerging behaviour of multiple, interacting agents who follow some simple rules. While each agent may be considered as unintelligent, the whole system of multiple agents may show some self-organization behaviour and thus can behave like some sort of collective intelligence. Many algorithms have been developed by drawing inspiration from swarm-intelligence systems in nature.
All SI-based algorithms use multi-agents, inspired by the collective behaviour of social insects, like ants, termites, bees, and wasps, as well as from other animal societies like flocks of birds or fish. A list of swarm intelligence algorithms is presented in Table 1. The classical particle swarm optimization (PSO) uses the swarming behaviour of fish and birds, while firefly algorithm (FA) uses the flashing behaviour of swarming fireflies. Cuckoo search (CS) is based on the brooding parasitism of some cuckoo species, while bat algorithm uses the echolocation of foraging bats. Ant colony optimization uses the interaction of social insects (e.g., ants), while the class of bee algorithms are all based on the foraging behaviour of honey bees.
SI-based algorithms are among the most popular and widely used. There are many reasons for such popularity, one of the reasons is that SI-based algorithms usually sharing information among multiple agents, so that selforganization, co-evolution and learning during iterations may help to provide the high efficiency of most SI-based algorithms. Another reason is that multiple agent can be parallelized easily so that large-scale optimization becomes more practical from the implementation point of view.

Bio-inspired, but not SI based
Obviously, SI-based algorithms belong to a wider class of algorithms, called bio-inspired algorithms. In fact, bio-inspired algorithms form a majority of all nature-inspired algorithms. From the set theory point of view, SI-based algorithms are a subset of bio-inspired algorithms, while bio-inspired algorithms are a subset of nature-inspired algorithms. That is Conversely, not all nature-inspired algorithms are bioinspired, and some are purely physics and chemistry based algorithms as we will see below.
Many bio-inspired algorithms do not use directly the swarming behaviour. Therefore, it is better to call them bio-inspired, but not SI-based. For example, genetic algorithms are bio-inspired, but not SI-based. However, it is not easy to classify certain algorithms such as differential evolution (DE). Strictly speaking, DE is not bio-inspired because there is no direct link to any biological behaviour. However, as it has some similarity to genetic algorithms and also has a key word 'evolution', we tentatively put it in the category of bioinspired algorithms. These relevant algorithms are listed in Table 1.
For example, the flower algorithm [72], or flower pollination algorithm [76], developed by Xin-She Yang in 2012 is a bio-inspired algorithm, but it is not a SIbased algorithm because flower algorithm tries to mimic the pollination characteristics of flowering plants and the associated flower consistency of some pollinating insects.

Physics and Chemistry Based
Not all metaheuristic algorithms are bio-inspired, because their sources of inspiration often come from physics and chemistry. For the algorithms that are not bio-inspired, most have been developed by mimicking certain physical and/or chemical laws, including electrical charges, gravity, river systems, etc. As different natural systems are relevant to this category, we can even subdivide these into many subcategories which is not necessary. A list of these algorithms is given in Table 1.
Schematically, we can represent the relationship of physics and chemistry based algorithms as the follows: Physics algorithms Chemistry algorithms    / ∈ bio-inspired algorithms ∈ nature-inspired algorithms Though physics and chemistry are two different subjects, however, it is not useful to subdivide this subcategory further into physics-based and chemistry. After all, many fundamental laws are the same. So we simply group them as physics and chemistry based algorithms.

Other algorithms
When researchers develop new algorithms, some may look for inspiration away from nature. Consequently, some algorithms are not bio-inspired or physics/chemistry-based, it is sometimes difficult to put some algorithms in the above three categories, because these algorithms have been developed by using various characteristics from different sources, such as social, emotional, etc. In this case, it is better to put them in the other category, as listed in Table 1 3

.5 Some Remarks
Though the sources of inspiration are very diverse, the algorithm designed from such inspiration may be equally diverse. However, care should be taken, as true novelty is a rare thing. For example, there are about 28,000 living species of fish, this cannot mean that researchers should develop 28000 different algorithms based on fish. Therefore, one cannot call their algorithms trout algorithm, squid algorithm, ..., shark algorithm.
In essence, researchers try to look for some efficient formulas as summarized by Yang [73] as the following generic scheme: (p 1 , p 2 , ..., p k ); (w 1 , w 2 , ..., w m ) , which attempts to generate better solutions (a population of n solutions) at iteration t + 1 from the current iteration t and its solution set x i , (i = 1, 2, ..., n). This iterative algorithmic engine (i.e., algorithm A) also uses some algorithm-dependent parameters (p 1 , ..., p k ) and some random variables (w 1 , ..., w m ). This schematic representation can include all the algorithms listed in this paper. However, this does not mean it is easy to analyze the behaviour of an algorithm because this formula can be highly nonlinear. Though Markov chains theory and dynamical system theory can help to provide some limited insight into some algorithms, the detailed mathematical framework is still yet to be developed.
On the other hand, it is worth pointing out that studies show that some algorithms are better than others. It is still not quite understood why. However, if one looks at the intrinsic part of algorithm design closely, some algorithms are badly designed, which lack certain basic capabilities such as the mixing and diversity among the solutions. In contrast, good algorithms have both mixing and diversity control so that the algorithm can explore the vast search space efficiently, while converge relatively quickly when necessary. Good algorithms such as particle swarm optimization, differential evolution, cuckoo search and firefly algorithms all have both global search and intensive local search capabilities, which may be partly why they are so efficient.

CONCLUSION
The sources of inspiration for algorithm development are very diverse, and consequently the algorithms are equally diverse. In this paper, we have briefly summarized all the algorithms into 4 categories. This can be a comprehensive source of information to form a basis or starting point for further research. It is worth pointing out that the classifications may not be unique, and this present table is just for the purpose of information only.
Based on many studies in the literature, some algorithms are more efficient and popular than others. It would be helpful to carry out more studies, but this does not mean that we should encourage researchers to develop more algorithms such as grass, sky, or ocean algorithms.
Currently, there may be some confusion and distraction in the research of metaheuristic algorithms. On the one hand, researchers have focused on important novel ideas for solving difficult problems. On the other hand, some researchers artificially invent new algorithms for the sake of publications with little improvement and no novelty. Researchers should be encouraged to carry out truly novel and important studies that are really useful to solve hard problems. Therefore, our aim is to inspire more research to gain better insight into efficient algorithms and solve large-scale real-world problems.