Genetic Algorithm: Reviews, Implementations, and Applications

Nowadays genetic algorithm (GA) is greatly used in engineering pedagogy as an adaptive technique to learn and solve complex problems and issues. It is a meta-heuristic approach that is used to solve hybrid computation challenges. GA utilizes selection, crossover, and mutation operators to effectively man-age the searching system strategy. This algorithm is derived from natural selection and genetics concepts. GA is an intelligent use of random search supported with historical data to contribute the search in an area of the improved outcome within a coverage framework. Such algorithms are widely used for maintaining high-quality reactions to optimize issues and problems investigation. These techniques are recognized to be somewhat of a statistical investigation process to search for a suitable solution or prevent an accurate strategy for challenges in optimization or searches. These techniques have been produced from natural selection or genetics principles. For random testing, historical information is provided with intelligent enslavement to continue moving the search out from the area of improved features for processing of the outcomes. It is a category of heuristics of evolutionary history using behavioral science-influenced methods like an annuity, gene, preference, or combination (sometimes refers to as hybridization). This method seemed to be a valuable tool to find solutions for problems optimization. In this paper, the author has explored the GAs, its role in engineering pedagogies, and the emerging areas where it is using, and its implementation.


Introduction
The GA is a meta-heuristic motivated by the evolution process and belongs to the large class of evolutionary algorithms in informatics and computational mathematics. These algorithms are frequently used to create high-quality solutions to optimize and search concerns by focusing on bio-inspired operators such as selection, convergence, or mutations [1]. The author John Holland developed GAs based on Darwin's evolutionary theory in 1988 [2]. Subsequently, in 1992, he expanded the GA [3]. This algorithm falls under the heading of evolutionary algorithms. The evolutionary algorithms are used to solve problems that do not already have a well-defined efficient solution. This approach is used to solve optimization problems (scheduling, shortest path, etc.), and in modeling and simulation where randomness function is used [4]. GA is a solution to the population of the candidate (known as people, animals, or genotypes) to the problem of optimizing that is developed towards better options [5]. Every candidate's solution has a set of characteristics (the genes or phenotype) that can be evolved and changed; typically, solutions are depicted in the binary digits as strings of 0s and 1s, although another codec is also allowed. Evolution generally starts of a community of randomized individuals and is an iterative process with the population being viewed as a method of generation for each reproduction. For every generations, the fitness of each individual in the population is measured. However, the fitness is usually the value of the objective feature being solved [6]. When sufficiently fit individuals are probabilistically chosen from the existing population, and the gene is modified to create a new generation cycle for all (recombined and potentially mutated at random) [7]. A newer generation of candidate strategies would be utilized over the next generation of the process. The algorithm usually ends when either a maximum number of generations or satisfaction has been generated. Therefore, every successive generation is more suitable for the environments of the population [8]. Within the search's approaches, the populations is maintained. Every person representing the solutions to a provided issue in the computational complexity. Everyone in the population is numbered as a finite length vectors of components that they have [9]. The component is like Genes and many genes generate a chromosome. The fitness score is represented to everyone that has the ability of an individual to fulfill. An optimal fitness score could be found for the individual [10]. GA can maintain the population of n persons along with the fitness scores that they have. Each individual is having good fitness score that are given more chance to reproduce. Figure 1 shows Gene, Chromosome, and population. Any individual that has good fitness score is selected whose mating and generate good offspring by grouping chromosomes of their generation. When a new baby born, the room will be created since the population size is static. Thus, several persons expire and to get replaced with new arrivals that ultimately create a new generation if all of the older human population breeding potentials are low. Whether the less suitable expire, there is a possibility that alternative solutions would be sought across succeeding generations. Over avg, these newer generations provide more "good genes" than that of the older generation's person. Therefore, every new generation has good solution than the old generation. When the offspring generated with no significant differences than offspring generated by the old population, the populations are converging. This algorithm known as converted to group of solution for the problem individually. Following are the strengths of GAs.
1. The GA is robust and strong. 2. It provides an optimistic solution over large populations. 3. GAs do not break on slight changes in input or noise present during the process. The research questions are: "How is the GA useful in engineering pedagogy?", "How can we implement GA in emerging areas?".
The rest of the paper is organized as below. Section II represents the GA operators, Section III represents the GA, Section IV shows the methodologies of this algorithm, Section V represents the role of GA in different areas and section VI shows the GA applications, section VII represents the conclusion.

Operators Used in GA
When the initial generation is generated, the GA evolves the generation using the operators, discussed as follows:

Operator for selection
In this kind of operator, the individuals have a preference with better fitness score and enable them to pass their gene to the successive generation of the individual.

Operator for crossover
This reflects a generation of breeding among persons. Randomly choose two individuals using selection operators and crossover operators. After chosen, genes are at the crossover sites exchanged, so building a completely new offspring or individual. Figure 2 shows the crossover operator.

Operator for mutation
To use this tool, introduce random genes into offspring to retain the genetic heterogeneity to prevent excessive divergences. Figure 3 shows the mutation process.

Genetic Algorithm
It is a paradigm of machine learning that generates the behavior patterns from the representation of evolution mechanisms. It is achieved through generation on the inside of the machine of the population of entities identified via genetics. People in the population will undergo a phase of mutation. It should be noted that growth will not be an assisted mechanism. Therefore, there is no evidence to support the theory that the purpose of evolution is to generate humans. So, the mechanisms of existence appear to come away to various Persons competing for services in the World. The following steps are used to obtain fitness using GA ( Figure 4).
1. Consider populations p randomly 2. Obtain the fitness of the population. 3. Repeat from Step 4 to 7 until convergence 4. Choose any parent from the population individually 5. Generates a new population through the crossover process 6. Insert random genes in a new population to perform mutation 7. Obtain fitness for newly generated populations The whole process is described as follows: Suppose there is a target string, its goal is to produce target string starting from a random string with the same length. Its process for implementation is as follows.
1. The characters A-Z, a-z, 0-9, and other special symbols are considered as genes in GA. 2. The string generated by these characters is considered a chromosome.
The fitness score is the number of characters that are differed from characters in target string at a specific index of the string. Therefore, individuals having lower fitness value is given more preferences. According to the output of the algorithm, this approach having issues in the optimal solutions so that further improvement is needed to update the fitness score.

Generate new population
Firstly, throughout order to create new communities, several individual strategies are randomly generated. The population density is calculated as per the scope of the problem. Usually, moreover, it includes many hundreds or thousands of potential solutions for maximizing certain population numbers. The populations are produced typically at random, providing the whole range of potential alternatives. Furthermore, ideas in places where appropriate approaches are expected to be produced that can be "seeded".

Selections
The proportion of the current population is chosen at the period of each subsequent generation to breed a new-generation process. To use the health, feature the individual solution is chosen via a health-based procedure. The basic approaches of evaluation assess the health for each outcome choose better solution. Other approaches also score a random sample of the populations, as this approach can be very time-consuming. All the mechanisms are stochastic and built to choose a limited proportion of approaches that are less fit. This helps to maintain population heterogeneity high and to avoid excessive convergence on a poor response.

Reproductions
It is an approach to regenerate a generation population of solution from selected using genetic operator such as crossovers and mutations operators. Increasing new solutions to be generated is a couple of parental strategies that are chosen from the randomized collection for breeding. The reproduction process generates a child solution using crossover and mutation operators that shares the characteristics of the parent solution.
Every new child has a new parent and this process will continue until the new population generated with the expected sizes. The new generation population generated with different chromosomes. Therefore, the average fitness is increased by this procedure for the populations. Figure 5 shows the methodologies used in GAs.

Termination
The production process will continue until a termination condition has occurred. The Genetic experiments are carried out on chosen people. That outcomes of the genetic activities are incorporated into the new population of the peoples. Whether the termination requirement is met throughout this stage, the current population will continue to be replaced by the new population and Stage 2-4 will be continued. Therefore, the best individual results of each population are identified. The following terminating conditions are occurring: 1. Generated solution satisfies the minimum criteria. 2. The expected size of populations generated. 3. The computational requirements fulfilled such as time or money. 4. Best fitness solutions found. 5. Physical evaluation.

Genetic Programming
The genetic programming is the main application of GA. A result of the GA is an amount, whereas the result of genetic programming is a virtual machine process. Essentially, this would be the starting of the algorithms that run automatically. But many researchers think how genetic programming and GAs are entirely different things according to their features. Furthermore, the genetic programming is fundamentally very distinct from another methodology to artificial intelligence, machine learning, neural networks, evolutionary structures, deep learning, or computational reasoning because of how it is genetically motivated; it performs its quest for a result of poverty within the framework of development. Ultimately Genetic Programming helps machines to find solutions without any need for programmers to decide the technique, i.e. what can be performed. That performs such an objective of intelligent coding by genetically modifying a population of automated systems based on the concepts of Natural selection Evolutionary theory or biologically inspired activities. Primarily, sequentially, the genetic design turns a population of software programs into something like a newer generation of software by adding additives to biologically active genetic activities. The Genetic processes involve fusion, mutation, replication, chromosome replication, or genome removal. The Genetic programming is ideally suited to many kinds of challenges. So, there's no transportation option in an automobile. Many approaches operate efficiently at the cost of money, whereas others operate quickly at a high overall possibility. Operating a vehicle, thus, entails balancing speeds against protection, and several other factors. Throughout this case, genetic programming would offer a solution that tries to adapt and was the most effective approach from a wide number of factors [41], [42]. To start implementing GA, pursue the following steps:

Role of GA in Emerging Areas
The population is configured first. Overall population services are assessed or allocated statistical scores for fitness. The preceding action is taken as long as the current population is completely crowded: human beings from the population are chosen using a selection method. GAs is using in many areas nowadays. Here, the author has highlighted some very important emerging areas as follows:

In Engineering pedagogy
In the engineering pedagogy, GA is very useful. Some of the areas such as timetable generation, a mathematical model of the problem, optimization principles and practices, etc. At the points of rapid increase as indicated by the growing groups of conference, workshop and publication relating to, and the formation of the journals. The GAs had also considered being a successful method with about its wonderful reliability for several implementations for optimizing, designing, controlling, and machine learning processes. A student who is taking the GA courses and applying the different methods of GA. Also, the evaluation experiments with implementations can play a vital role in the teaching of similar courses in computer science [43].

In the Internet of Things
In the Internet of things (IoT) [15], smart device selection is a challenging task [16], [17], [18]. The GA is the best solution for selecting the IoT nodes to exchange information among IoT nodes [19], [20], [21]. Also, the GA can be used for mining the intelligent objects in IoT [22], [40].

Smart traffic signal system
The GA can be implemented in the intelligent traffics. Such an intelligent vehicle sensors scheme was presented by combining IoT with existing highway systems to reduce journey times, emissions of contaminants, traffic, and travelling difficulties. A traffic signals have been constructed throughout every city and rural region at the crosspoint of the roadway [23]. Almost all motorcycle, vehicle, bus, auto-rickshaw, transportation providers are for travelling. Utilizing smart signals this could lead to heavy transmissions in the public highway.

Intelligent routing in MANET of smart devices
The GA can be implemented in the intelligent routing when smart devices want to discover and connect the neighborhood devices then they need to have an intelligent routing [25]. Nowadays, technological advancement supports various wireless network variants and, between each other, MANET is of utmost significance and a significant challenge. Each important component of MANETs is the geometrical transition with moment. A saving of power generation or movement measured with devices [26] tends to occur at all. Also, as result, the routing problem under MANET is also flexible and could be constructed to discover an optimum path as a dynamic optimization issue. These are important in order to identify the achieving the optimal path the solution must have a high level of capability. The whole objective function accomplished optimum solution routing in a very efficient manner under dynamic topology.

6.5
The loads balancing and tasks scheduling in cloud computing GA can be implemented in the loads balancing in the cloud computing system. In the next era, Cloud-MANET can play a vital role in the integration of IoT devices [24]. This integrated framework will be heterogeneous with many technologies.

Blockchain technology
In blockchain technology, the GA can be implemented. Blockchain on the edge of the network is emerging with a new computing approach for releasing computational resources from access point to 5G edge notes [13], [27]. The blockchain-based processing is being proposed that offloads methods. Similarly, blockchain is an efficient strategy for the distributed network, and an edge computing structure based on blockchain is constructed to diminish the possibility of data failure by incorporating it with blockchain [14].

GA Implementation in Traveling Salesman Problem
The GA is used to solve the Traveling salesman problem that is a well-known combinatorial problem using novel crossover approaches. Traveling salesman problem is a hybrid computing framework under the broader scope of operation equivalent to the standard transport real-world problems [11]. For applying GA in traveling salesman problems, the encoding mechanism generates a sequence which is then considered a chromosome comprised of a set of items. Such pieces are recognized as genes that make up the chromosomes. The chromosomes are made up of the gene. Selection, crossover, and mutation are the steps of the GAs used in the Traveling Salesman Problems. Chromosomes are the sequence of places reached by salespersons. Consider the following example, S = (S1, S2, S3, ..., Sn) implies that salespersons travel from S1 to S2, S2 to S3, S3 to Sn. There are six places that the salesman will be going through. These places are P1, P2, P3, P4, P5, and P6. This trip starts at P1 and finishes at the same place P1 [12]. Figure 6 indicates the distance between places. The salesman travels according to table 1.  Apply the GA for the traveling salesman problem scenario. The fitness 29 is reselected that shows the chromosomes with mid value fitness could have a high possibility of being reselected.

Crossover
The crossover is performed to generate the child from parents who are married. Their resultant chromosomes have been supposed to boost the fitness level. An amount of chromosome that crossover encounter is estimated by the crossover possibility.

Mutation
The mutations mechanism would be brought out during this part. Each mutation acts to swap genes with the other chromosome. The predicted outcomes would increase the importance of fitness to be obtained. When the gene is transferred at the ends of the gene, the mutation will be substituted for the first chromosome. This is a criterion to assess so many chromosomes need to be a mutation.

Discussion
It is shown in the first generation that there is the lowest fitness valuation which does not alter. Unless the estimation continues up to the Nth, the smallest fitness level is considered to remain in place. While the measurement is significantly elaborate up to the first generation, a close-optimal approach has been identified from the GA method mentioned, an outcome of the route with the smallest optimum route is P1, P2, P3, P4, P5, P6, and P1.

8
Applications and Area Coverage

Machine learning
The GA is used in genetics-based machine learning that is an emerging area. The GAs is essential to machine learning for three factors. Firstly, it operates in discrete spaces where gradient-based techniques could not be applied. This could be used to check for rulesets, neural network structures, cellular automation machines, and many more. In this way, this could be used while stochastic high scaling and optimization algorithms could also be regarded. Secondly, these are reinforced learning techniques. A specific variable, fitness, is used to assess the efficiency of the learning technique. Eventually, GA requires a population, and often whatever one needs is not a single individual, however, a community. Training in multi-agent structures is a perfect example of this [28].

Image processing
The GA can be used for different digital imaging activities and the equivalent heavy pixel's algorithms. Segmentation of images is one of the key problems in the area of image processing. A lot of efficient methods are available to solve this issue. Its purpose of such a method is to divide the digital image into multiple segments based on genetic or conceptual similarities. Its purpose is to investigate the implementation of GA in the segmentation of images [29].

Vehicle routing problems
Multiple soft time frames, multiple depots, and heterogeneous fleet problems are also solved through the GA. Vehicle routing problems are consisting of a variety of consumers, every needing the same amount of the products to be transported. The vehicle is delivered from a single warehouse will supply the products needed and returns to the warehouse. That vehicle could bring a specific weight and could also be reduced to the distance traveled it can carry. Every consumer is permitted to visit just one vehicle. An issue is the alternative range of distribution routes that meet these criteria and have low overall costs. Throughout fact, it is also seen as analogous to reducing the total distance covered, or reducing the number of vehicles utilized, and instead of decreasing the total distance for this number of units [30].

Optimization problems
The GA has been most widely used in optimized challenges where we have to maximize or reduce a given objective function value through a given set of conditions. Such a strategy will solve a problem related to optimization. The optimization raises issues of minimizing or optimizing variables with several factors that are typically subject to fairness and inequalities restrictions. This plays a pivotal role in research, marketing, and manufacturing operations. Several challenges of industrial engineering architecture are very complex and hard to overcome using traditional optimization algorithms. Within past years, GA has attracted significant attention to its capacity as an innovative optimization methodology. Depending on their usability, ease of activity, minimum specifications, and simultaneous and international viewpoint, GA has been commonly applied to a variety of issues [31].

Multimodal optimization
The GA becomes very strong multimodal computation methods through that we need to find solutions to several optimal problems. For technical challenges due to the physical and expense limitations, even better results achieved by a universal computation technique may not always be achieved. In these circumstances, when several approaches (local and global) are identified, the execution could be easily moved to another approach without much disruption in the design stage. It introduces a swarm multimodal optimization algorithm called cooperative human behavior [32].

Economics
The GA can also be used to describe various financial systems such as the cobweb system, the resolution of game theory optimization, asset pricing, etc. Several economists have started to use GAs to fix common shortcomings of conventional economic models while retaining a convenient mathematical structure. The optimization of GA happens in a way that can mimic the complexities of real decision-making issues. Also, it eliminates the need for a fixed structure to the policy problem and therefore can determine between alternate optimizations [33].

8.7
Neural networks GA also serves to practice machine learning, particularly recursive neural networks. GA is a meta-heuristic method influenced by the natural selection mechanism which belongs to the larger network of evolution optimizations. The GA is widely used to produce high-quality alternatives for computation and problem-finding by focusing on bio-inspired operations like selection, mutation, and crossover. This algorithm is a reliable approach to evolutionary optimization based on biological concepts. The population of strings describing potential solutions to problems is developed [34].

Parallelization
The GA seems to have very good simultaneous functionality and proves to be a very successful way to solve such problems, as well as providing a good study area. This approach is a populations-based computational optimizations technique that have been utilized to effectively train neural network systems. But, if many people making up the population, the runtime of the algorithm is always very large. Parallelism computing is a methodology that can theoretically be used to tackle this problem. Through the study explores the implementation of a parallel GA for the search for optimal specifications of artificial neural networks system. The Palatalization is accomplished using the Interprocesses communication Framework, wherein sub-populations are shared among processors during selection, mutation, and crossover [35].

Scheduling applications
A schedule at scheduling issues typically includes contradictory priorities based on the cost of the individual and the cost of the operator. Consumers tend to spend less time waiting, changing, and commuting by public vehicles. Technicians are involved in making money from reduced running costs for vehicles and providing a minimum number of vehicles. So far as the quality of service is involved, consumers are engaged in lower crowing whereas providers are involved with increasing income and therefore have high lead levels. Waiting time performs a significant role in scheduling planning issues. Customers are interested in integrating services with reasonable waiting times, while operators tend to provide fewer services [36]. The GA is used to solve various scheduling problems such as timetables and so on.

Robotics formation
The GA can be used to design the route taken by a robotic arm from each stage to another. Various GA implementations in the area of robotic trajectory modeling have been conducted out over the last few generations. This algorithm, which is versatile public-purpose optimization algorithms, was used to produce collision-free paths for a robot with defined begin and target mutual specifications. A code system and fitness analysis are the main features of the design of the algorithm. Fitness evaluation included a measured total of the distance, time, and collisions consequences for each route [37].

Aircraft parametric architecture
The GA is used to design aircraft by changing variables and creating better approaches in the field of motion. A cheaper aircraft could never be the strongest, and the most effective would not be the most convenient. Under other terms, the final aircraft is still, in some context, a collaboration. Different measurements are included in the feature referred to as a quality or quantitative statistic, like value, control surfaces, mechanisms, production, fuel consumption, disturbance, and aviation dynamics, the relative weight of which depends on the expected aircraft usage [38].

GA in bioinformatics
GA has been used to evaluate the DNA structure using specimen spectrometric information. In recent years, the field of bioinformatics has progressed exponentially. Advancements in genomic engineering have contributed to an increase in the generation of genetic information. Such a role is challenged by the lack of awareness of genetic characteristics, as quality-altering hypotheses can quickly be implemented during algorithm construction, and the technique can easily become redundant. The GAs is an evolution-inspired category of machine learning algorithms that are very promising to solve such challenges [39].

Conclusion
The GA is a probabilistic solution to optimize the problems that are modeled on a genetic evaluation process in biologically and are focused as an effective algorithm to find a global optimum solution for many types of problems. The GA is used in different artificial intelligence applications like object-oriented systems, robotics, and futuristic emerging technologies. Dr. Shamimul Qamar has been recognized as an eminent scholar in the field of Computer Engg. He has done his B.Tech from MMMTU Gorakhpur, M.Tech from AMU, Aligarh, and earned his Ph.D. degree from IIT Roorkee with highly honorable grade. Prof. Qamar has a wide teaching experience in various Engineering colleges. He has research interests in Computer Architecture & Embedded system, Computer network & Multimedia, Networking & Security, Artificial Intelligence. He has published several research papers in reputed national/international journals and conferences. He served as a Consultant at Jackson state university, USA. He is a reviewer of IJCSIS, USA. He has written some textbooks and chapters in the field of Electronics & Computer Engineering. He is also a technical program committee member in the international mobility conference, Singapore. He is a lifetime member of the international association of Engineers and a life member of the Indian Society of technical education.