A Survey on Evolutionary Computation: Methods and Their Applications in Engineering

Evolutionary computation is now an inseparable branch of artificial intelligence and smart methods based on evolutional algorithms aimed at solving different real world problems by natural procedures involving living creatures. It’s based on random methods, regeneration of data, choosing by changing or replacing data within a system such as personal computer (PC), cloud, or any other data center. This paper briefly studies different evolutionary computation techniques used in some applications specifically image processing, cloud computing and grid computing. These methods are generally categorized as evolutionary algorithms and swarm intelligence. Each of these subfields contains a variety of algorithms and techniques which are presented with their applications. This work tries to demonstrate the benefits of the field by presenting the real world applications of these methods implemented already. Among these applications is cloud computing scheduling problem improved by genetic algorithms, ant colony optimization, and bees algorithm. Some other applications are improvement of grid load balancing, image processing, improved bi-objective dynamic cell formation problem, robust machine cells for dynamic part production, integrated mixed-integer linear programming, robotic applications, and power control in wind turbines.


Introduction
Evolutionary computation, abbreviated as EC, is a subfield of artificial intelligence (AI), machine learning, and smart systems.The EC is almost a new and interesting area of research which uses biological evolution principles in order to solve computational problems with different complexities.A computational problem that must be solved by EC often requires the system to follow some convergence criteria expressed by the problem or its conditions.Evolution is defined as optimization process that tries to advance the ability of an organism to live longer in rapidly changing and unstable environments.Now if systems with computational models of evolutionary environments and processes are solved by a systematic approach, hence it's referred to as EC.The processes are: natural selection, reproduction, and survival.The theory of natural selection means that all living creatures on earth are the result of adaptation (and upgrade) to the demands of environment to date.If an organism has a successful adaptation to such environments, then it has higher fitness as it has more chance to exit and to outlast.Survival of fitness also shows that entities that are more fit to fluctuations of environment have more chances to survive longer, therefore more chances to spread their genotype to future generation by reproduction (Eiben & Smith, 2003;Fogel, 2007).
Evolutionary computation in this case employs some procedures based on evolutionary principles and techniques as the soul of EC.Generally, solutions of many problems are searchable in a domain-for example large integer factorization-but the problem is that covering the whole range of solutions and probably testing them for verification can be challenging.Clearly, optimum solution is achieved when the number of possible correct solutions is less, and on the other hand, if search space is not limited, the findings are based on exhaustive searches that may either lead to an answer or not.This is not just for EC, and many other topics such as A Survey on Evolutionary Computation: Methods and Their Applications in Engineering mathematics, signal processing, artificial neural networks (ANNs) and more suffer from such conditions that lead to many answers verifiable after extensive searches (Rahmati, Yar, Khalilpour, & Malekijavan, n.d.;Vahid Rahmati, Yar, & Malekijavan, 2014).Search is one way to find the solution, therefore, a collection of different searching methods developed with regard to the extent of spaces.Among these searching methods, the natural evolution methods-usually using meta-heuristic procedures-are the best choices at the moment.Despite applications, many of the resources categorize methods into two main branches: 1-evolutionary algorithms (EAs) 2-swarm intelligence (SI) (Back & Schwefel, 1996;Fogel, 2007;Wierstra, Schaul, Glasmachers, Sun, & Schmidhuber, 2011).This paper introduces both of these categories briefly with current real world examples and algorithms that show promising future for such methods.Management of immense amount of information available on PCs and web servers, use of cloud/grid computing, and efficient signal/image processing are among top applications of EC.The subfields for the EA are therefore: 1-differential evolution and search, 2-evolutionary strategy and programming, and 3-genetics (expressing) programming and algorithm.SI also includes: 1-ant colony, 2-bees algorithm, 3-cuckoo bird algorithm, and 4-particle swarm (Eberhart & Yuhui, 2001;Eberhart & Kennedy, 1995;Fogel, 2007;Guo, Zhao, Shen, & Jiang, 2012;Marinos & Briscoe, 2009;Sun, Wierstra, Schaul, & Schmidhuber, 2009).

Main Applications of EC
As mentioned in introduction, smarter image and signal processing are among important applications of EC where some regions in the image must be extracted in order for later processing.However, filtering and de-noising are also done by some algorithms.These applications are also introduced in this paper (Felzenszwalb & Huttenlocher, 2004;Horng, 2010;James & Eberhart, 1995;Kirchmaier, Hawe, & Diepold, 2013).
The most important and recently introduced concept in the ever growing field of information industry is cloud computing (CC) that gives privilege of request sending to some immense computational resources available on the web.The main fact proposed by CC states: it's not necessary for every organization or company to build up its own data centers and high-tech infrastructures while it's possible to use CC on a pay per use basis.The main problem for companies was building and maintaining such infrastructures, which without any doubt needs expenditure of money with too much efforts for future benefits of the companies.High amounts of investment are not feasible for middle to low income companies permitting them to use CC instead.This makes a brighter future for CC, thereupon a better prospect for upcoming EC methods and techniques (Arya & Verma, 2014;Ma & Wang, 2012;Subrata, Zomaya, & Landfeldt, 2007;Younge, Laszewski, Wang, Lopez, & Carithers, 2010).
Although CC is growing and transfer of data done by secure communication protocols with public key encryptions, there are some companies and individuals that are still reluctant to use CC services.In the question of "high cost or high risk?"many of them reply high risk as the data is available to CC providers (Shaikh & Haider, 2011;Zissis & Lekkas, 2012).
Despite cluster computing, if local and global resources together are used at the same time to solve a particular problem, then such a method is called grid computing (GC) which is itself a kind of distributed computing (DC).However, it's useful to use local and global computing units concurrently in order to compute, but this itself makes some problems arose from mismanagement of nodes in such networks which are solvable via genetic algorithms (Berstis, 2002;Furht & Escalante, 2010).
EAs can also be employed in military applications (Vahid, Tal, & Ghasem, 2014), however, there are few papers considering such growing number of applications in smart electronic warfare capabilities.Another application of EAs and ANNs can be software's developments total cost evaluation (Vahid, 2016b).

Evolutionary Algorithms (EAs)
The motivation behind EAs is essentially to employ the natural mechanisms of life, biological evolution including mutation, selection, and more-that are used by living creatures to solve a problem-in a computational manner.EAs are part of a broader algorithm set (EC) and are based on random searches and meta-heuristics.The accuracy of optimized candidate solution by using EAs are generally improved by more iterations.However, more iteration cannot always reduce error (Fogel, 2007).

General Steps in an EA
EAs usually follow some steps in each iteration to find the best solution (Eiben & Smith, 2003;Fogel, 2007).This is as: 1-Fitness of population of individuals grows after natural selection due to environmental pressures.
2-Evaluation of each individual is done by a fitness function (given by the problem).6-If error of solution is more than expected go to step 1 else finish iteration.Now that the main steps in an EA are known, it's useful to review some of the most famous algorithms.

Differential Evolution (DE)
Minimization and maximization of functions are generally a mathematical topic.Minimization of several variable functions can be very complex but practical as it can exhibit error function.DE algorithm thus, as a stochastic optimization method, invented to minimize an objective function under certain given constraints.DE is capable of finding true global solution by few control parameters and fast convergence (Bäck & Schwefel, 1993;Das, Abraham, & Konar, 2008;Vahid, 2015;Vahid, 2016a).

Differential Search Algorithm (DSA)
DSA utilizes migration of super organism by stable motioning for real valued numerical optimization problems.This multi way method uses the mid-point in journey of the migrating super organism (Das et al., 2008).

Genetic Programming (GP)
Specific user tasks on computers can be discovered or evaluated by biological evolution methods.GP works because it's possible to optimize a computer population (by fitness function) in order to perform user tasks.GP cannot solve all problems as it's complex, however, it has produced excellent outcomes in computing (Kumar, Husian, Upreti, & Gupta, 2010;Whitley, 1994).

Evolutionary Programming (EP)
Unlike GP that follows fixed structures, EP doesn't obey any constant pattern because all parents are generators due to extension of membership concept in this method (Bäck & Schwefel, 1993).

Evolution Strategy (ES)
In ES, mutation and selection are searchers, and normal parameters of problems are used for representations.Evolution of generations in an iterative manner where it's stopped by termination criterion (usually, the expected level of accuracy) forms this strategy (Wierstra, Schaul, Peters, & Schmidhuber, 2008).

Genetic Algorithm (GA)
Process of natural selection with a heuristic search forms GA by natural evolution characteristics that has applications such as automatic electronic circuit generating (Fogel, 2007;Whitley, 1994;Sachs, Russell, & Hollowell, 2002;Vahid & Ghashghavi, 2016).

Gene Expressing Programming (GEP)
Tree structures are used in data compression, searching and information processing algorithms.GEP also uses complex trees in order to make adaptable programs by changing almost all properties.Because GEP can use its genome to distribute genetic information, it's called genotype.Ability of adapting to the new environment also classifies GEP as phenotype (Kumar et al., 2010).

Ant Colony Optimization (ACO)
ACO is a meta-heuristic optimization procedure primary invented for finding an optimal path in a graph which is based on observations of ants seeking colonies and sources of food.In summary, when one of the members of the colony discovers a short (and possibly safe) path according to its experience, other members converge to that path-as they have already tested and benefited from that path-which results in concentrated rally of ants (Kennedy & Eberhart, 1995b;Mahor, Prasad, & Rangnekar, 2009).

Bees Algorithm (BA)
Similar to ACO, BA is inspired by bees searching for food and sharing secret places as sources of food with other members as long as they contain enough food.Clearly, these bees will stop advertising those discovered locations if the source of foods has neither enough high quality nor richness (optimized).Therefore, BA is a population-based search algorithm used for combinatorial and continuous optimizations using neighborhood and global searches simultaneously (Kennedy & Eberhart, 1995a).

Cuckoo Bird Search Algorithm (CSA)
CSA is a simple optimization algorithm inspired by the way tricky cuckoos fighting to reproduce by laying their eggs in the nests of other birds with similar patterns on eggs exploiting the host birds to protect all eggs and therefore increase the chance of Cuckoos' eggs to become chicks (Poli, Kennedy, & Blackwell, 2007).

Particle Swarm Optimization (PSO)
PSO is an iterative meta-heuristic computational method that solves a problem by improving the possible correct solution (known as candidate solution) with respect to a measure of quality that leads to searching very large spaces of possible solutions with even no assumption about the problem.PSO was largely inspired by birds and fishes.Population of candidate solutions corresponds to swarm of particles that change their position according to some formulas in order to guide the whole swarm for an uncertain and possibly optimized solution.Indeed, swarms try to move to center while trying to match the neighbors' velocities and avoiding collisions (Poli et al., 2007).

Classic Real World Applications of EAs and SIAs
However, there exist many real world applications for EC, in this part, some real world contributions of EAs and SIAs are provided in compliance with definitions and statements presented already.

CC Scheduling by GA
In CC, scheduling is vital for balancing the loads between virtual machine (VM) resources (Vahid & Hedayat, 2016).Usual schedulers in CC follow a static manner considering only current status of the system bringing about imbalances and unequal distribution of tasks and finally failures.GA chooses the best solution, with regard to past and current states of data, resulting in migration's cost reduction (Gan & Huang, 2010).

CC Scheduling by ACO and BA
Similar to GA based task scheduling in CC, ACO has been proven to be a good load balancer algorithm (LBACO).However, combing ACO and BA, as their swarm structures suggest, can lead to less operational costs as power consumption is also minimized.In fact, the mixture of these two results in more efficient resource management.In such methodologies, service rescheduling which is the appropriate management of under-loaded CPUs is done by BA, and power consumption management which controls idle CPUs is done by ACO.
When several (mostly independent and unrelated to initial) tasks are waiting in a queue in a CC, the loads are not uniformly balanced over all VMs.In this case, honey bee behavior for load balancing (HBB-LB) invented to reduce waiting and execution times (Kun, Gaochao, Guangyu, Yushuang, & Wang, 2011;Dhinesh & Venkata, 2013;Vahid & Hedayat, 2016).

Grid Load Balancing by ACO
ACO has been used for grid load balancing which protects the nodes from being overloaded by distributing the loads uniformly among all nodes.It means that similar groups of ants (loads) are absorbed by corresponding colonies (nodes) (Ma & Wang, 2012), (Ludwig & Moallem, 2011).

Image Processing by ACO and BA
Obtaining image features, reducing image segmentation computations, and enhancing signal to noise ratio (SNR) are among applications of ACO and BA (Huang, Cao, & Luo, 2008;Akay, 2013).Transform-invariant pattern recognition by EAs and ANNs is also studied already by the authors in Vahid & Hedayat (2014).

Newly Introduced Trends
Last part introduced some of the main and some-how well established applications of EC, but there are some other applications and improvements of older algorithms used in newly introduced trends.

Improved Image Segmentation Via K-Means Clustering and PSO
Image segmentation can be very practical when data mining procedures need to extract specific features and information from a set of images.Vast amount of visual resources available arises the need to use smart methods on these information as quickly as possible.K-means clustering is a fast algorithm that can build up enough clusters for image segmentation using implementation with low complexities at expense of lower visual qualities.Recently, the use of both dynamic PSO-as a global optimizer-with K-means resulted in better enhancements compared to usual PSO with K-means (PSOK).This method is called dynamic PSOK (DPSOK) (Li, He, & Wen, 2015).

Scheduling Algorithm for Load Balancing (SALB) in CC Based on ACO
It's possible to enhance grid load balancing via ACO explained already, however the classic algorithm can be improved by some various parameters.SALB tries to improve ACO by considering SLA violation, minimum overhead, and power consumption in multiple nodes balancing of dynamic workloads (Khan & Sharama, 2014). 6.3 Improved Bi-Objective Dynamic Cell Formation Problem (DCFP) by Non-Dominated Sorting GA (NSGA-II) Dynamic cellular manufacturing system (DCMS) is an important production system fulfilling the needs of flexibility, quickness and efficiency in Industrial Revolution 4.0 standards, however, DCMS ignores some social and other factors.Recently, an innovative method (NSGA II-MOSA) to tackle such issues developed using both hybrid meta-heuristic based on the NSGA-II plus multi-objective simulated annealing (MOSA) is proposed (Deb, Pratap, Agarwal, & Meyarivan, 2002).

Improvement of Robust Machine Cells for Dynamic Part Production (RMCDPP) by GA
A GA based heuristic can be used for cost reduction by several industrial parameters; for instance, capacity of production, different development routes, working systems ability, and more (Deep & Singh, 2015).

Integrated Mixed-Integer Linear Programming (MILP) Model to DCMS Problem with Uncertainty
Many of the parameters in control systems, manufacturing, and engineering are well known which may be referred to as deterministic parameters-that were mostly considered in early versions of swarm and other smart methods (Clerc, 1999)-however, there exit multi stochastic parameters with much uncertainty studied in recent papers that can change the path of system completely to failures, high system breakdown and relocation costs, and etc.To deal with such latent parameters in DCMS, MILP model can be employed to assess different levels of uncertain factors and protection during system planning (Sakhaii, Tavakkoli, Bagheri, & Vatani, 2015).

Robotic Applications
Many tasks assigned to robots include ordinary man's obligations that must be done efficiently by faster means.Industries use robotic arms, smart measuring arrangements, and integrated manufacturing course of decision making processes.These processes are instrumentally interdependent, for that reason, deliberating multi-task considerations can be complicated even by human designer or smart robotic tools.SIAs are employed to handle the processes in different categories, but main studies concern applications on solving by a group of independent robots in a distributed (and not centrally managed similar to swarm) situations.Main lines of control in this case are: 1-accumulation, 2-grouping, 3-searching, 4-object clustering and sorting, 5-system navigation, 6-path shaping, 7-task assigning (Bayindir, 2016).The communication in industries may suffer from noise and other disturbances, particularly when heavy machines with inductors are used such as rotary motors.This problem is solvable by localizing regions in the factory and acquiring data from nearby sensors (Bayindir, 2016;Li, Xu, & Zhao, 2015).

Power Control in Wind Turbines by GA and PSO
Using wind power as a promising source of alternative energy-by constructing wind farms and appropriate positioning of the turbines in order to maximize capturing of wind energy and generating electricity-is now a well-recognized green method (Lindman & Söderholm, 2015).The art of designing such wind farms is based on minimizing the number of turbines used and maximizing output power by GA and PSO (Lindman & Söderholm, 2015).Wind variations and turbine vibrations during the conversion of wind energy to the electricity can cause resonations leading to unsmooth DC voltage and, because of the reason given, incompatible sinusoidal current on the grid side.More recently, the task of smooth controlling assigned to grid side converter (GSC) can be done by PSO to engage in On-Off controlling scheme based on maximum power point tracking for the rotator side (Kahla, Soufi, Sedraoui, & Bechouat, 2015).Other conventional control mechanisms methods (Ghasem Khani, Tal'ati, & Rahmati, 2014;Vahid Rahmati, 2013, 2014) can also be done using GA and PSO by means of optimization algorithms.

Conclusion
This paper introduced EC, which includes EAs and SIAs, as an important computational tool currently being used largely.It also presented a summary for different EAs and SIAs together with their real world applications that mainly deal with cloud computing, distributed computation, image processing, power control, robotic applications, DCMS, RMCDPP, and DCFP problems.Finally, the paper discussed classic and new ways of applying these algorithms to specific problems such as service scheduling in CC, load balancing in grids, and image segmentation and enhancements.
3-Parents are selected among individuals based on fitness values.4-New individuals are generated from the parents (step 3) by recombination.5-The fitness value of new individuals and old candidates are compared to select next generation.