# Differential Evolution in Waveform Design for Wireless Power Transfer
## 3 Evolutionary Algorithms
### CoDE, L-SHADE, Java Algorithms  
In this subsection, we are going to highlight the most important characteristics of CoDE, L-SHADE, and Java. We are not going to give a full description of the algorithms since their basic structure is similar to DE.  
CoDE is an algorithm that is based on DE and utilizes the distinct attributes of different trial vector generation strategies and control parameter values. The term trial vector generation strategy refers to the selected mutation and crossover strategies. The authors in [20] utilized other researchers' experiences of applying the DE algorithm in various problems to choose three trial vector generation strategies and three pairs of control parameter values \((F,CR)\) that demonstrate distinct advantages. Each of them is suitable for different kinds of problems and different stages of the optimization process. The novelty in CoDE is that each one of the trial vector generation strategies is combined randomly with one of the \((F,CR)\) pairs to produce three different trial vectors for each target vector. The three trial vectors compete with each other before competing with the target vector. This gives CoDE its adaptive capabilities and enables its effectiveness for a variety of optimization problems. One may say that CoDE uses adaptive control both for the control parameters and the trial vector generation strategies. The only control parameter value that needs to be adjusted is the population size.  
L-SHADE is also based on the DE algorithm and it automatically adapts its control parameter values during the search process. These values, which differ between individuals, are indicated as \(F_{i}\), \(CR_{i}\), and are adapted according to the control parameter values of the trial vectors that have successfully survived selection in past generations. L-SHADE features a modified mutation scheme that directs the population towards the top \(p\times NP\) individuals, where \(p\in(0,1)\). Also, an optional external archive contains former target vectors that have failed to survive selection and they are used in a way that enhances the diversity of the current population. Finally, L-SHADE incorporates a feature called Linear Population Size Reduction (LPSR), meaning that the population size \(NP\) is continuously reduced from generation to generation according to a linear function. Hence, L-SHADE automatically adjusts not only the \(F_{i}\), \(CR_{i}\) control parameters, but the population size as well. The control parameters that need to be provided in L-SHADE are the mutation scheme parameter (\(p\)), the size of the external archive (\(A\)), the size of the historical memory (\(H\)), the initial population size (\(NP_{init}\)), and the final population size (\(NP_{min}\)).  
Jaya is not classified to a DE variant; nonetheless it is also a population based heuristic algorithm. It has only one mechanism for perturbing the population vectors and generating new ones. The basic concept is that the generated solutions move towards the individual with the best fitness and away from the one with the worst. Jaya is a very simple algorithm and its only control parameter is the population size.