## 2 Fundamental Concepts
### Genetic Algorithm  
The genetic algorithm (GA) is widely used in optimization, which simulates [PERSON]'s theory of evolution. GA differs from other methods in three main points:  
* This method works from a population of solutions to the problem.
* This method does not depend on differential equations.
* This method uses probabilistic and non-deterministic rules.  
The GA starts from a set of possible solutions to the problem addressed. This set is known as the population. Each individual in this population is characterized by the chromosome, the set of values that solve the problem. Each of these values is known as a gene. Each gene can be encoded in different ways, such as in binary, integer, double precision or other ways [23; 24]. Figure 2 presents the GA process flowchart.  
The zero-step process is the generation of a population with an amount \(N\) of individuals, where each one of them has \(i\) genes. The value of each gene must be generated randomly, and its encoding depends on the problem at hand [24].  
After the initial population is generated, the evolutionary process begins. The first step is the aptitude assessment or calculation. At this point, the adaptation degree of each individual is calculated. As each solution set improves, it tends to the desired response, thus offering the GA an aptitude measure of each individual in the population. Together with the chromosome coding, this step is the most dependent on the problem addressed, varying for each case. The choice of the fitness function is critical to the success of the algorithm [6].  
Then comes the crossing or reproduction step (crossover). This process creates more fit populations, with better solutions, from the individuals selected in the previous step. In this method, the individual's temporary sets are separated into pairs, and if a specific number (crossover rate), randomly generated between 0 and 1 for each pair, is greater than the probability of mating, then the pair, known as parents, goes through the process of reproduction, giving rise to two new individuals, the children, who will make up the new population [24].  
Behind the crossover step, the mutation process takes place. The mutation operator is necessary for introducing and maintaining the population's genetic diversity, arbitrarily altering one or more components of a chosen structure, thus providing means for introducing new elements into the population. In this way, mutation ensures that the probability of reaching any point in the search space will never be zero, in addition to circumventing the problem of local minimums [6].  
In most GA applications, all individuals in a population are replaced by new ones, but some of the previous population is propagated to the next generation. That is, not the entire set is renewed. There are also cases where the population size varies according to the generation. At the end of each generation, a population is generated with individuals that are, for the most part, more fit than the individuals of the previous generation [25].  
There are some stopping criteria for the genetic algorithm. The main ones are the number of generations or the degree of convergence of the current population. After each generation, the population passes an evaluation, and if the pre-established criterion is fulfilled, the algorithm stops. At the end of the algorithm's execution, the population will contain the individuals that best fit as a solution to the problem studied, thus optimizing the practical case, be it maximization or minimization.