# A Cellular Automata-Based Crossover Operator for Binary Chromosome Population Genetic Algorithms
## 4 Genetic Algorithms  
### The General Presentation of GA  
Genetic algorithms are adaptive heuristic search techniques based on principles genetics and natural selection, stated by [PERSON] (survival of the best adapted). The mechanism is similar to the biological process of evolution. According to this process, only the species that adapt better to the environment are able to survive and evolve over generations, while those less adapted do not manage to survive and eventually disappear, as a result of natural selection. As practical applications, genetic algorithms are most often used in solving problems of optimization, planning, or searches [40].  
The _fitness function_ is used to measure the quality of the chromosomes and is formulated starting from the numerical function to be optimized. The fitness function has a key role at the level of the genetic algorithm through the ranking of chromosomes and the decisions it can produce in the choice of offspring throughout the calculation generations. _The genetic operators_ used by genetic algorithms are the following:  
1. _Selection_: This is an important stage of a genetic algorithm in that it determines the way of choosing the parent chromosomes that will participate in the recombination stage and produce new individuals in the current population. Among the most important selection techniques are roulette wheel, rank, tournament, Boltzmann, and stochastic universal sampling [41].
2. _Crossover_: This determines the transformation method of the genes from the parent chromosomes to result in new candidate chromosomes for the next generation.
3. _The mutation_: This is based on some probability values, where certain values of the genes of a descendant chromosome can be changed. Mutation is an operator that maintains the genetic diversity from one population to the next population.  
For the stages of selection, recombination, and mutation, there are several application and calculation methods used in the field of genetic algorithms. Depending on the specifics of the application and the way chromosome genes are represented, certain methods associated with the application of genetic operators have been chosen in order to obtain good results in experimental studies [42]. The initialization stage at the level of the genetic algorithm is represented by the evaluation of the format of the input data corresponding to the domain of the problem being optimized and the encoding of the input data, as a rule, by binary values or real values. The initial population will consist of a lot of input vectors with binary or real values as chromosomes. Genetic operators will be applied to the population of chromosomes over several generations of evolution, until the stopping condition is fulfilled, by forming new generations based on the fitness function that evaluates the quality of the individuals in the current population.  
The general structure of a genetic algorithm (also shown in the Figure 8) is defined as follows:  
* Set the time \(t\gets 0\).
* Creation of the initial population \(P(t)\).
* Evaluation of the initial population with the fitness function \(\left(fitness(P(t))\right)\).
* Therein, _the final condition_ is _false_ and defined as follows:
* \(t\gets t+1\).
* Selection of new generation \(P(t)\) from \(P(t-1)\).
* Application of the crossover operator for the selected chromosomes for the new population \(P(t)\).
* Evaluation of the new population with the fitness function \(\left(fitness(P(t))\right)\) and determining the final chromosomes (keeping the best chromosomes or according to a certain rule for the formation of new generations).