## 3 Materials and Method
### Genetic Algorithms  
Genetic algorithms are used to solve optimization and search problems by applying biologically inspired operators such as mutation, crossover, and selection.  
**Step 1 (Initialization):** a population of chromosomes (individuals) is initially generated at random. Each individual represents a potential solution within the search space (Figure 1).  
The quality of these chromosomes is evaluated using a fitness function. Every chromosome consists of multiple genes, where each gene corresponds to a specific dimension or feature of the solution. In the context of GA for FS problems, each gene is binary, taking a value of either 0 or 1. A value of 0 indicates that the associated feature is excluded, while a value of 1 means the feature is selected, as in Figure 2.  
To evolve the population and generate new candidate solutions, three key operators are applied iteratively until a termination criterion is met. These operators and their roles in the GA process are explained as follows.  
**Step 2 (Selection process):** high-quality chromosomes are chosen as parents through a selection process designed to preserve the exploration of potential solutions. Various methods can be used for parent selection, including:  
* Elitism Selection: this method selects the top \(k\) chromosomes based on their fitness scores and passes them directly to the next generation without modification.
* Roulette Wheel Selection: in this approach, each chromosome is assigned a portion of a wheel proportional to its fitness value. Chromosomes with higher fitness occupy larger segments, increasing their probability of being selected as parents.  
**Step 3 (Crossover):** the crossover operator, controlled by a probability parameter \(P_{c}\), is applied to the selected parents to generate new offspring (solutions) by exchanging genes between them. This operator is inspired by the concept of offspring inheriting the most favorable traits from their parents. Common crossover methods include single-point, two-point, and uniform crossover, each offering varying degrees of diversity in the GA (Figure 3).  
Figure 1: Population initialization of Genetic Algorithms.  
Figure 3: Genetic Algorithms crossover process.  
**Step 4 (Mutation process):** this step introduces small random changes to the offspring solutions, creating variations that differentiate them from their parents and potentially improve them. This process helps maintain diversity within the population by exploring the local search space. A mutation is typically applied with a lower probability (\(P_{m}\)) compared to crossover (\(P_{c}\)). An example of the mutation process is illustrated in Figure 4.  
**Step 5 (Next generation):** Offspring replace some or all individuals in the current population. Several common strategies:  
* Generational Replacement: the entire population is replaced by offspring.
* Elitism: the best individuals from the parent generation are carried over to the next generation to preserve good solutions.
* Steady-state: offspring are evaluated, then merged with the parent generation and sorted. Finally, less fit individuals are removed.  
**Step 6 (Termination):** the reproduction process continues until a specified termination condition is met. Common termination criteria include: achieving a solution that meets a predefined minimum fitness value, reaching a set number of iterations, or exhausting the allocated computation time.