**3. A hybrid genetic, differential evolution algorithm**

This hybrid genetic, differential evolution algorithm determines a best solution with respect to an optimization criterion that has a solution space which is the subset of an *N* dimensional hyper-rectangular solution space although the algorithm can be adapted for other types of *N* dimensional spaces. The algorithm generates an initial population of *K*ð Þ 0 candidate solutions by randomly selecting *K*ð Þ 0 candidate solutions within the solution space. Each candidate solution in the initial population is evaluated by an optimization criterion and ranked. Except for the top ranked candidate solution that is assured selection, a subset of these candidate solutions are randomly selected as a function of their rank. The surviving *M*ð Þ1 candidate solutions solutions from the initial mating pool, where 1≤ *M*ð Þ1 ≤*K*ð Þ 0 , are randomly selected and employed in creating new candidate solutions using a differential evolution operator to improve convergence, a differential evolution operator to improve diversity and a crossover operator that improves both convergence and diversity. To ensure that the new candidate solutions lie in the solution space, one of two methods is used to move any unfeasible candidate solutions into the solution space. All the new candidate solutions are then added to the mating pool and candidate solutions from

*A Hybrid Genetic, Differential Evolution Optimization Algorithm DOI: http://dx.doi.org/10.5772/intechopen.106204*

this set are randomly selected for Taguchi crossover, a type of recombination operator. After Taguchi crossover, the population should have an average of approximately *K*ð Þ 0 candidate solutions. After the Taguchi crossover operation, each candidate in the population is evaluated, ranked, and randomly selected for the next iteration. The algorithm can be summarized as follows:

Initialize population {*K*ð Þ 0 candidate solutions)}

```
n 0
```
**repeat**

*n n* þ 1 Ranking and stochastic selection {*M n*ð Þ candidate solutions} Differential evolution operator to improve convergence Differential evolution mutation operator to improve diversity Recombination operator to improve convergence and diversity Ensure new solutions are in the solution space Taguchi crossover {*K n*ð Þ candidate solutions}

**until** convergence condition is met

where *n* is the algorithm's iteration number.
