Crow Search Algorithm: Theory, Recent Advances, and Applications

In this article, a comprehensive overview of the Crow Search Algorithm (CSA) is introduced with detailed discussions, which is intended to keep researchers interested in swarm intelligence algorithms and optimization problems. CSA is a new swarm intelligence algorithm recently developed, which simulates crow behavior in storing excess food and retrieving it when needed. In the optimization theory, the crow is the searcher, the surrounding environment is the search space, and randomly storing the location of food is a feasible solution. Among all food locations, the location where the most food is stored is considered to be the global optimal solution, and the objective function is the amount of food. By simulating the intelligent behavior of crows, CSA tries to find optimal solutions to various optimization problems. It has gained a considerable interest worldwide since its advantages like simple implementation, a few numbers of parameters, flexibility, etc. This survey introduces a comprehensive variant of CSA, including hybrid, modified, and multi-objective versions. Furthermore, based on the analyzed papers published in the literature by some publishers such as IEEE, Elsevier, and Springer, the comprehensive application scenarios of CSA such as power, computer science, machine learning, civil engineering have also been reviewed. Finally, the advantages and disadvantages of CSA have been discussed by conducting some comparative experiments with other similar published peers.


I. INTRODUCTION
Nowadays, optimization can be considered as one of the most important and hottest research topics [1]- [9]. It is inside the core processes of every aspect and can be found in almost all fields such as engineering, science, energy, computer, etc. [10]- [19]. Since the complexity increasing of the real-world scientific and engineering problem, optimization becomes a big challenge in soft computing. Traditional The associate editor coordinating the review of this manuscript and approving it for publication was Jenny Mahoney. methods of mathematics sometimes fail to solve and address them [180], [184]. Metaheuristics Algorithm (MA) is very good at solving these NP problems and finding the optimal/near-optimal solution in real-time [185]. These algorithms become very popular since their advantages like easy in implementation, avoiding local optima, and flexible and versatile [188]. They can be considered as a black box, and can solve different problem types: single/multi-objective, constrained or unconstrained, and continuous/discrete.
Generally speaking, MA can be categorized into two major classes: single-based / individual-based algorithms and population-based. Examples of single-based algorithms are Tabu Search (TS) [22], Guided Local Search (GLS), and Pattern Search (PS) whereas Particle Swarm Optimization (PSO) [23], Differential Search Algorithm (DSA) [24] and Grey Wolf Optimizer (GWO) [36] are examples of population-based algorithms.
Crow Search Algorithm (CSA) is a recent algorithm developed by Alireza Askarzadeh in 2016, which simulates the crow behavior in storing their food and retrieving it when they need it. Since its appearance, CSA has been widely used and applied to different optimization problem such as chemical engineering [83], medical [84], power energy [85], feature selection [86], and image processing [87].
Reviews/survey papers are critical as they present and discuss recent and up-to-date works. In literature, there are enormous reviews that concern with MA such as Grey Wolf Optimizer [88], Firefly Algorithm [89], Gravitational Search Algorithm [90], Krill Herd Algorithm [90].
To the best of our knowledge, there is no study in literature covers or lists all CSA aspects, variants, and applications. This review article aims to carry a comprehensive study for all CSA aspects, how scientists/researchers are motivated to use this algorithm to solve different real-world optimization problems. Also, This review collects and summarizes all modifications and variants of CSA to overcome its drawbacks.
The main contributions of this article can be listed below: • A comprehensive review to CSA has been done.
• All modifications to the original CSA has been highlighted.
• All applications and fields that employed CSA have been summarized and presented.
• Advantages and disadvantages of CSA have been discussed.
• Number of challenges/ideas as a future work have been suggested. This article is organized as follows: Section 2 presents a literature review to MA whereas Section 3 disuses inspiration & mathematical model of CSA. Section 4 presents all variants and modifications of CSA and Section 5 summarizes and highlights all applications that use CSA. An assessment and evaluation to CSA is presented in section 6 whereas Section 7 concludes the paper and adds some suggestions that can be handled in future work.
• Human-Inspired algorithm: the last category contains algorithms inspired by human being behavior as in Table 4.

III. CROW SEARCH ALGORITHM
In this section, we discuss the mathematical model of CSA and its research status/trend.

A. STANDARD CROW SEARCH ALGORITHM
A new population-based algorithm called Crow Search Algorithm (CSA) was proposed by Askarzadeh, which simulates the hiding of food behavior of crow [92]. Crow is an intelligent bird that can remember faces and warn its species in danger. One of the most evidence of their cleverness is hiding food and remember its location. Moreover, the exploration and exploitation of CSA can be learned from Figure 1.
Overall, the pseudocode of CSA can be modeled as shown in Algorithm 1, Figure 2 is the flowchart of CSA, and its main phases can be shown as follows: 1) Initializing crows swarm in d-dimensional randomly.
2) A fitness function is used to evaluate each crow, and its value is put as an initial memory value. Each crow stores its hiding place in its memory variable m i . 3) Crow updates its position by selecting a random another crow, i.e x j and generating a random value. if this value is greater than Awareness Probability 'AP', then crow x i will follow x j to know m j Then new x j is calculated as follows: where AP j,iter refers to crow j awareness probability, iter refers to iteration number, r i , r j refers to random numbers, fl i,iter is the crow i flight length to denote crow j memory.

5) Updating memory
B. CROW SEARCH ALGORITHM RESEARCH TRENDS CSA has gained huge attention from all researchers and scientists all over the world. According to Google Scholar 1 558 times (accessed in 23rd May 2020): 375 in journals, 138 in conferences, 38 in book chapters, and 4 in review papers. Table 5 shows the top 10 journals with the highest paper numbers dealing with CSA. Also, Figure 3 shows the number of publications per different publisher such as Elsevier, Springer, IEEE, and others, whereas Figure 4 shows the number of publications per year.

IV. DIFFERENT METHODS OF CROW SEARCH ALGORITHM
In the section, CSA variants have been divided to 3 classes: modified CSA, hybrid CSA, and multi-objective CSA.
A. MODIFIED CSA I this section, we discuss all modified versions of CSA such as binary version, Opposition-based learning-based, Levy flight-based, etc.

1) BINARY CSA
De Souza et al. [93] proposed a binary version of CSA called BCSA in which a V-shape transfer function was  used to convert the continuous values to discrete ones. Laabadi et al. [161] did another work. They developed a binary version of CSA to solve the 2D bin packing problem.

2) MODIFIED CSA
In [94], Coelho et al. [95] tried to propose a modified CSA by using Gaussian distribution and diversity information of the population. Also, Gupta et al. tried to extract usability features by proposing a novel approach of CSA called modified CSA (MCSA) in which a particular selected feature number is generated and applied to the life cycle of software development by using usability factors hierarchical model. Mohammadi and Abdi in [96] enhanced the classical version of CSA by performing two modifications 1) Introducing a priority-based technique which shows how each crow will choose another crow to move towards its position. 2) Introducing a method to determine the sufficient flight length amount. The authors applied it to economic load dispatch. Likewise, another enhancement to CSA has done by Cuevas et al. [97] by modifying two CSA parameters, namely: awareness probability and random perturbation. They argued that these modifications would affect the diversity of the population and also improve the convergence speed. In [98], authors added local search and niching methods to enhance the searching capabilities of CSA.

3) LÉVY FLIGHT AND OPPOSITION-BASED CSA
Wu et al. [99] introduced a novel approach of CSA named CCSA, in which an Lévy flight was used. The novel algorithm was tested on two different models: a simple structure (beam) and a complex structure. In [100], Majhi et al. tried to prevent SCA from getting trapped into local optima by  developing another enhanced version of CSA with the use of opposition learning strategy and mutation operator. They tested their algorithm which named OBL-SCA-MO by using CEC2017 and used it to design fractional order PID (FOPID). Another enhancement called CCSA was proposed in [101] by Zamani et al. by using three strategies, namely:neighborhood-based local search, non-neighborhood based search, and wandering around search.

4) ENHANCED CSA
A new version called ECSA was developed by Javidi et al. [102]. In this version, the authors tried to improve the performance of the original CSA in handling problems of structural optimization by adding three enhancements: 1) replacing each variable of violated decision with its corresponding variable. 2) suggesting a free-fly mechanism. 3) introducing the upper bound strategy. Likewise, Bhullar et al. [103] proposed another version of CSA by 1) adding an archive component to use crow experience.
2) formulating a non-hideout position. 3) exploiting the 1/5th of exploitation by using awareness probability. In [104], the authors proposed a version called ICSA by restructuring two properties of CSA: awareness probability and a random perturbation and adding a dynamic probability.

5) IMPROVED CSA
Another effort to enhance the original CSA to be able to solve high dimensional optimization tasks is shown in [105] where three operators have been added to a balance between exploration and exploitation. These factors are Lévy flight, experience factor, and adaptive adjustment factor. In [106], Zhang and Huang added an inertia weight factor and used the Roulette wheel as a selection scheme. Likewise, Díaz et al. [107] developed another improvement VOLUME 8, 2020  [109] used GA operators: crossover and mutation and employed it in CSA to increase its performance and prevent it from getting stuck into sub-optimal regions. Fallah et al. [110] introduced an improved CSA (ICSA) in which each crow must choose a random crow as a leader.
In [111], Sahoo and Padhy replaced random movement and 'AP' with Lévy flight and Dynamic AP (DAP). Likewise, Anter et al. [86] used CSA with a fast fuzzy c-mean to identify crops. CSA also has been improved by Han et al. [160] by using a spiral search mechanism. Their new algorithm, which called ISCSA, is enhanced using weight coefficient, optimal guidance position, spiral search, Gaussian variation, and random perturbation. They tested their algorithm using 23 benchmark functions and four different engineering problems. Rizk-Allah et al. [173] has designed another chaotic CSA for the fractional optimization problem. Likewise, the Space Transform Search (STS) method has been combined with CSA to improve the performance of the original algorithm [174]. The authors used the CEC 2017 benchmark to test their method. To solve truss sizing optimization, Ozbasaran and Yildirim developed modified CSA called CSA M [175]. Overall, literature reviews on variants and modified CSA algorithms can be summarized in Table 6.

B. HYBRID CSA
In literature, CSA has been hybridized with many other MA and machine learning to combine and benefit from the strength of both. In [112], a novel hybrid algorithm called GWOCSA, which combined GWO with CSA. To test the hybrid algorithm, the authors used 23 benchmark functions, and the results were compared with GWO, augmented GWO (AGWO), and Enhanced GWO (EGWO). GWOCSA was also applied to solve the feature selection problem.
Davoodkhani et al. also hybridized GWO and CSA [113] in which the hybrid algorithm (hGWO-CSA) was used to maximize photovoltaic power point tracking. Another hybrid algorithm was proposed by Pratiwi [114], which combined cat swarm optimization with CSA. The novel algorithm was applied to the vehicle routing problem. The same hybrid algorithm was done by Kumar [115] and was applied to the economic emission dispatch problem. Javaid et al. [116] has combined the BA and CSA. The proposed algorithm, which is called BCSA, was employed in smart grid applications. Likewise, Wu et al. [117] tried to solve the flow shop scheduling problem using a novel algorithm named CPO, which is a hybridization between CSA and PSO. Another CSA version was employed in the vehicle routing problem in which CSA has been hybridized with ACO [118]. Also, Mahesh and Vijayachitra in [119] proposed a new version of CSA called DECSA in which dolphin echolocation and CSA were hybridized together to classify energy-aware routing. Pasandideh and Khalilpourazari in [120], [121] developed a hybrid algorithm SCCSA in which SCA was combined with CSA. Their novel algorithm was compared with original SCA, DA, GSA, CS, and PSOGSO. Allaoui et al. [122], combined CSA with a local search method to accelerate the searching process to solve the fragment assembly of DNA problems that follow the OLC model. Likewise, Anter and Ali integrated the CSA with the Fuzzy C-means algorithm and chaos theory and applied it to medical problems [123]. Also, Nawaz-Enscore-Ham (NEH) strategy was used to generate CSA population [124]. Also, in [169]  was integrated with Nawaz-Enscore-Ham (NEH). The novel algorithm has been applied to the flow shop scheduling problem. And, literature reviews on hybrid CSA algorithms can be shown in Table 7.

C. MULTI-OBJECTIVE CSA
In many areas, the process starts with the modeling and design of objective functions for searching for feasible solutions, which cannot necessarily be an optimal value [179], [181]- [183]. One of the most challenging characteristics in solving the real-world problem is the multi-objective fitness function. Many variants of multi-objective CSA have been developed in the literature. Nobahari and Bighashdel in [126] developed a multi-objective version called MOCSA. They also added a chasing operator to improve the convergence speed. They compared their results with ten multi-objective algorithms using 13 unconstrained functions. Also, in [127], Hinojosa et al. proposed another multi-objective CSA version hybridized with chaos theory. The authors tested MOCCSA using different datasets, and they argued that the proposed algorithm achieved better results than the Multi-Objective Dragonfly Algorithm (MODA) and Multi-Objective Particle Swarm Optimization (MOPSO). Likewise, a multi-objective crow and fruit fly optimization algorithm has been developed by Ramgouda and Chandraprakash [128]. Rizk-Allah et al. [129] developed an orthogonal opposition-based version of CSA known as M2O-CSA. In their algorithm, two crows selected randomly to undergo crossover. Then, the orthogonal  Table 8.

V. APPLICATION(OPTIMIZATION AND ENGINEERING)
CSA has been successfully applied to different application domains, as shown in Figure 5.

A. POWER ENGINEERING
In this subsection, all CSA applications related to power engineering have been discussed.

B. COMPUTER SCIENCE
In this subsection, all CSA applications related to computer science have been discussed.

1) FEATURE SELECTION
Feature selection (FS) can be defined as the process of selecting the most critical dataset and removing irrelevant ones [140], [141]. If it is a wrapper method, it is often related to the neural networks in its application part [186], [187].
In [93], Souza et al. used a binary version of CSA called BCSA, which has the V-shape to solve the FS problem. The authors used six different datasets and compared their results with BBA, BPSO, SFS, and SBS. Also, Allahverdipoor and Gharehchopogh in [142] combined K-nearest neighbor with CSA to solve the FS problem in classifying text documents. Likewise, Anter and Ali [123] hybridized CSA with chaos theory and c-means to solve medical diagnosis problems. Sayed et al. [143] used CSA with chaos theory to solve the FS problem.

2) IMAGE PROCESSING
In [87], the authors used CSA to estimate multilevel threshold optimal values of image based on Kapur's entropy. They tested their model on different values of thresholds (2, 4, 8, 16, and 32). They argued that CSA achieved better results than PSO, DE, GWO, MFO, and CS in terms of PSNR, SSIM, and FSIM metrics. Oliva et al. [144] used CSA to find the optimal cost of cross-entropy in image segmentation. They tested their model in multi-dimensional spaces. Thomas and Rangachar [145] used CSA to recognize faces in low-resolution images by combining Gabor filter + wavelet + texture (GWTM). Fred et al. [84] proposed the fuzzy-CSA algorithm and applied it to the segmentation of medical images. They compared it with ABC, FA, and SA.

3) NEURAL NETWORK AND SUPPORT VECTOR MACHINE
Chithra and Jagatheeswari [146] Combined CSA with Support Vector Machine (SVM), neural network, and fraction theory to classify tuberculosis patients. They mentioned that their combination increased the speed of computation and decreased time and cost spent on test samples. Also, in [147], Chakravarthy and Rajaguru integrated their modified version of CSA with a neural network to detect lung cancer. Likewise, More and Ingle [148] introduced a dragonfly-crow algorithm called D-Crow hybridized with Support Vector Regression (SVR). They applied it to Virtual Machine Migration (VMM).

4) CLOUD
Satpathy et al. [149] used CSA in order to propose a resourceaware to consolidate a substantial Virtual Machine (VM) numbers on minimal in the cloud data center. They proposed two different technique CSA-based travel salesman problem (TSPCS) and Greedy Crow Search (GCS). The same problem has been handled by Satpathy et al. [150] where a 2-tier VM placement algorithm has been proposed. First, a queuing structure to schedule VMs, whereas the second (CSAVMP) CSA-based VM problem was developed to reduce the consumption of power at data centers. Likewise, In [151], authors enhanced cloud task scheduling by using CSA. They proved that the CSA-based system has better results than Min-Min and an ant algorithm. In [152], George and Sumathi proposed the Crow Lion Algorithm (C-lion) and applied it in privacy protection on the cloud using the dyadic product. Also, Firefly Crow Search Algorithm (FF-CSA) is developed in [153] by Malleswaran and Kasireddi to produce efficient task scheduling in the cloud environment. Another attempt has been made by Kumar and Vimala [154], which combined an integrated Fractional Dragonfly Algorithm (C-FDLA) to achieve load balance in cloud environments. The latter approach was performed by Makhdoomi and Askarzadeh [155], which tried to optimize the photovoltaic / diesel generator operation with pumped hydro storage by a modified version of CSA.

C. CIVIL ENGINEERING
Recently, many works have been proposed to solve structural optimization problems using different MAs. In [102], authors employed their new version of CSA in finding the design of the optimum structure. Also, Lin et al. [156] used modified CSA with a fuzzy concept to control adjacent connected building by magnetorheological dampers concerning soilstructure interaction.

D. CHEMICAL ENGINEERING AND QSAR
Abdallh and Algmal [83] used an improved binary version of CSA in order to classify skin sensitization potential based on quantitative structure-activity relationship (QSAR) model. VOLUME 8, 2020

E. CONTROL ENGINEERING
Kumar et al. [157] used CSA to find the static VAR compensator (SVC) optimal dynamic control assisted Single Machine Infinite Bus (SMIB). Also, in [158], authors applied the island-based CSA in solving optimal control problems: parallel reaction, continuous stirred tank reactor, batch reactor consecutive reaction, nonlinear constrained mathematical system, nonlinear continuous stirred tank reactor, and nonlinear crane container problems. In [159], the hybrid CSA with a pattern search algorithm has been applied in studies of a multi-area LFC system using the FOPID-PDN controller. Likewise, Majhi et al. [100] applied their improved version of CSA, which called OBL-CSA-MO in the FOPID controller design.

F. OTHER APPLICATIONS 1) WATER MANAGEMENT
Optimal management in water and energy is needed as many countries suffering from a lack of water & energy resources. Banadkooki et al. [162] employed CSA to optimize the operation of the reservoir and minimize water in irrigation. They compared their results with PSO, Shark Algorithm (SA), GA, and Weed Algorithm (WA).

2) AIRCRAFT MAINTENANCE CHECK
Siswanto et al. [163] used CSA in order to check aircraft maintenance and airworthiness program. To validate their model, they compared CSA with PSO and hybrid PSO with a greedy randomized adaptive search (PSO-GRASP).

3) WIRELESS SENSOR NETWORK
Gupta et al. [164] used CSA to detect fault that may accrue in the wireless sensor network, which may lead to system failure. VOLUME 8, 2020

4) PRIVACY PRESERVATION IN HEALTH CARE
Health care information privacy and security is one of the most critical requirements for pharmacological or health practitioners [165]. Mandala and Rao [166] used CSA with the probability of adaptive awareness to improve the preservation of medical data in the health care sector. Their improved CSA (AAP-CSA) was compared with PSO, GA, DE, and original CSA.

5) TRAVELLING SALESMAN PROBLEM
Azezan et al. [167] tried to solve the common Traveling Salesman Problem (TSP) using the CSA. They used ten datasets from TSPLIB and compared them with ACO and SA. They argued that CSA's performance is the best.

6) STOCK INDEX PRICE MOVEMENT PREDICTION
Future prediction of stock index price is critical for investors who plan to increase profit and researchers who wish to extract complex stock market data over time series data. Dash et al. [168] used TOPSIS and CSA to predict stock index price movement.

VI. ASSESSMENT AND EVALUATION OF CSA
In this section, CSA analysis and evaluation has been discussed first, then a comparison between CSA and other metaheurstics algorithm have been performed and discussed.

A. CSA EVALUATION AND ANALYSIS
CSA has many advantages: easy in implementation and simple inspiration. Moreover, CSA has a fewer number of parameters. However, CSA has many drawbacks like all other MA, as according to No Free Lunch (NFL), CSA has not the ability to solve all optimization problems. Furthermore, CSA does not perform well in high dimensional & complex problems. Furthermore, the ability to control the parameters of CSA is deficient.

B. RESULTS AND COMPARISONS
To show the effectiveness and the power of CSA. A comparison among many MA has been made including Grey Wolf Optimization, Particle Swarm Optimization, Sine Cosine Algorithm, Bat Algorithm, Firefly Algorithm, Moth-Flame Optimization, Whale Optimization Algorithm, Invasive Weed Optimization (IWO) [177], and Electromagnetism like Mechanism Algorithm (EM) [178]. As seen in Table 9, CSA has achieved promising and better results in approximately all functions. As shown in Figure 6, a statistical test called the Friedman test is used to assess and evaluate CSA results. As shown, we can observe that CSA has ranked first. Figure 7 shows the convergence curves for some representative functions in which we can observe the dominant speed of CSA convergence.

VII. CONCLUSION AND FUTURE WORK
Crow Search Algorithm (CSA) is a recently developed algorithm that simulates the behavior of crows in storing and retrieving food. Researchers have given great interest and attention to CSA due to its excellent characteristics. This article introduces a comprehensive review of the CSA. About 135 papers have been collected and summarized. All CSA modifications have been highlighted and categorized into three classes: variants, hybrid, and multi-objective. The limitations and strengths of CSA have been discussed in details. A comprehensive set of applications has been studied. Although, the success and popularity of CSA, many areas and challenges need to be addressed in the future. Several areas that may be handled in the future is list below: • No work in the literature studied the tuning parameters of CSA.
• No work in the literature has been introduced to adapt CSA to work in dynamic & Multi-objective dynamic problems.
• CSA can be hybridized with many other algorithms.
• No work in the literature has been introduced to adapt CSA to work in a noisy optimization problem.
• CSA needs more theoretical studies.