# A Reward Population-Based Differential Genetic Harmony Search Algorithm
## 3 Improved Harmony Search Algorithm
### Differential Genetic Harmony Search Algorithm (DEGA-HS)
#### 3.2.2 Partheno-Genetic Algorithm  
To increase the diversity of harmony factors, the Partheno-genetic algorithm (PGA) was considered to increase the means of generating new harmonies. For individuals with high randomness, they are subject to a shift operation, inversion operation, and permutation operation, and thus, three new harmonies are obtained. Then, the harmony with the optimal fitness is selected as the new individual introduced by the genetic operation. The PGA is an improved GA that was put forward by [PERSON] and [PERSON] in 1999 [28]. PGA is a genetic method for reproduction through gene shift, gene permutation, and gene inversion. Next, we will introduce genetic operators, namely, the permutation operator, shift operator, and inversion operator, which are characterized by a simple genetic operation,decreasing the requirement for diversity in the initial population and avoiding \"premature convergence\" [29]. (1) Permutation Operator. The permutation operator is a process where genes at specific locations of a chromosome are exchanged at a certain probability and the locations of the exchanged genes are random. Permutation operators may be divided into single-point permutation and multi-point permutation. As to single-point permutation, two genes on a chromosome are exchanged, and in multi-point permutation, multiple genes on a chromosome are exchanged. The process of the two permutation operators is shown in Figure 1, where \(B\) and \(B^{\prime}\) are the single-point permutation and multi-point permutation result for Chromosome \(A\), respectively. \[A=(c_{1},c_{2},c_{3},\cdots,c_{i-1},c_{i},c_{i+1},\cdots,c_{j-1}c_{j},c_{j+1}, \cdots,c_{N})\]  
\[\Downarrow\]  
\[B=(c_{1},c_{2},c_{3},\cdots,c_{i-1},c_{j},c_{i+1},\cdots,c_{j-1},c_{i},c_{j+1}, \cdots,c_{N})\]  
\[B^{\prime}=(c_{1},c_{2},c_{3},\cdots,c_{i-1},c_{j},c_{i+1},\cdots,c_{N},c_{i},c_ {j+1},\ldots,c_{j-1})\]  
(2) Shift Operator. The shift operator is a process in which genes in some substrings of a chromosome are shifted backward successively, while the last gene in the substring is shifted to the foremost location. The substrings whose genes are shifted in a chromosome and their length are selected randomly. The gene shift can be divided into single-point shift and multi-point shift. As to single-point shift, only one substring of a chromosome is selected for gene shift, and in multi-point shift, multiple substrings of a chromosome are selected for gene shift. The process of the shift operation is shown in Figure 2. \(H\) is a chromosome including multiple genes \(k_{i}(i\in 1,2,\cdots N)\). \(I\) and \(I^{\prime}\) are chromosomes obtained by implementing single-point shift and multi-point shift operations for \(H\), respectively. \[H=(k_{1},k_{2},k_{3},k_{4},k_{5},\cdots,k_{i-2},k_{i-1}k_{i},k_{i+1},k_{i+2}, \cdots,k_{N})\]  
\[\Downarrow\]  
\[I=(k_{4},k_{1},k_{2},k_{3},k_{5},\cdots,k_{i-2},k_{i-1},k_{i},k_{i+1},k_{i+2}, \cdots,k_{N})\]  
\[I^{\prime}=(k_{4},k_{1},k_{2},k_{3},k_{5},\cdots,k_{i-2},k_{i+2},k_{i-1},k_{i},k_{i+1},\cdots,k_{N})\]  
(3) Inversion Operator. The inversion operation is a process where the genes in some substrings of a chromosome are inversed successively at a specific probability. The substrings for gene inversion in a chromosome and their length are selected randomly. The gene inversion can also be divided into single-point inversion and multi-point inversion. As to single-point inversion, only one substring of a chromosome is selected for gene inversion, and for multi-point inversion, multiple substrings of a chromosome are selected for gene inversion. The operation is shown in Figure 3. We assume \(O\) is a chromosome including multiple genes \(l_{i}(i\in 1,2,\cdots N)\). On the basis of the operations of single-point and multi-point inversions for chromosome \(O\), we can obtain the chromosomes \(R\) and \(R^{\  
The multi-point genetic operator is usually used when the chromosome length is large, while the single-point genetic operator is used when the chromosome length is small.