# New Insights into Fuzzy Genetic Algorithms for Optimization Problems
## 2 Fuzzy Genetic Algorithms: Dealing with Individuals and Fitness
### Efga  
In EFGA, as in traditional GAs, an initial set of individuals is randomly generated. The approach relies on a min-heap data structure keyed at fitness in order to reduce the number of fitness function calls. The min-heap data structure is a binary tree, where each node is associated with a pair of numbers, i.e., the index assigned to the chromosome as a unique identifier and the fitness value. A simple example of min-heap is shown in Figure 2 where the integer in any node represents the above-mentioned index and the other value is the fitness value. The solutions that show minimal fitness are put on top levels of the tree, and they are more likely to be selected. The root presents the best solution. The algorithm is stopped when either the difference between the best and worst solution is below a certain threshold value (e.g., 0.003) or when the number of iterations exceeds the maximum iterations. Additionally, a large initial population is created to increase the likelihood of being close to local minima early on. However, large populations also have a lot of low-quality solutions. The authors of the original approach refer to the Pareto front by allowing only the top 20% of the individuals to reproduce. Figure 1: Linguistic variable, terms, and syntactic rules. Figure 2: A simple example of a min-heap scheme. In EFGA, fuzzy rules are used to update the simulation parameters. Average fitness, best fitness, and average fitness change are used as inputs. The first two variables are associated with the term set _[Excellent, Acceptable, Poor]_, and the last one with the term set _(Low, Medium, High)_. Crossover rate and mutation rate may take the linguistic values _(Low, Medium, High)_, while reproductive group size may take _[Low, Medium, Large]_. Fuzzy rules are also used for priority updates. After evaluating a child's genome fitness, the parent genome priority is updated. Linguistic values for the child's genome fitness are _[Excellent, Acceptable, Poor]_, the term set for the priority is _[Very Low, Low, Medium, High, Very High]_. Let \(N_{priority}\) and \(N_{fitness}\) be the number of terms of priority and fitness, respectively. We notice that \(N_{priority}=2N_{fitness}-1\). We observe that the term sets for fitness and priority, respectively, could include more attributes as follows:  
* _[Great, Good, Fair, Average, Bad]_ _and [Very Low, Low, Moderate, Medium, High, Very High, Extremely High, Exceptionally High, Extraordinary]_, i.e., \(N_{fitness}=5\);
* _[Exceptional, Great, Good, Average, Mediocre, Poor, Terrible]_ _and [Very Low, Low, Moderately Low, Below Average, Average, Above Average, Moderate, High, Very High, Extremely High, Exceptionally High, Extraordinary, Exceptional], i.e., \(N_{fitness}=7\);  
having increased the linguistic attributes of priority proportionally. An example of a fitness linguistic variable, with five terms expressed as trapezoidal MFs, is shown in Figure 3. In the original method, triangular MFs were adopted, but here we investigate trapezoidal MFs, in addition to pi-shaped MFs, as they allow for a higher degree of uncertainty, as explained in Section 2.1.1. The rules are of the form  
IF f1 IS term_i AND f2 IS term_j THEN priority is term_(2N-i-j-2)  
where \(f1\) and \(f2\) are the fitness of the parent genomes. The goal is to move parent genomes with offspring having better fitness higher in the priority queue and parent genomes with worse offspring lower in the priority queue. Regarding diversity, some formulas are meant to preserve it, as explained in the following. Let \(\rho_{1}^{(k)},\rho_{2}^{(k)}\) be two chromosomes in the \(k\)th generation. A crossover is performed by randomly selecting two positions \(\overline{p}_{1},\overline{p}_{2}\in(0,1]\), with \(\overline{p}_{1}<\overline{p}_{2}\).