## Harmony Search Algorithm

Harmony Search (HS), a music-inspired metaheuristic optimization algorithm, is based on the principal to find a perfect harmony state through improvisations of jazz playes with different instruments which is analogous to that of finding the optimal solution of an optimization problem. Detail comparisons between optimization process and musical performance process are summarized in Table 1.

Figure 1 describe the optimization process of HSA, each steps is as follows:

Step 1. Problem formulation and parameter setting

An optimization problem and associated decision variables are specified and HSA parameters are set. The parameters of HSA are Harmony Memory Size (HMS), Harmony Memory Considering Rate (HMCR), Pitch Adjusting Rate (PAR) and Number of Function Evaluation (NFE). HM consists of a solution vector matrix of decision variables, rows equal to the HMS value and columns equal to the number of decision variables. HMCR and PAR is used to improving the solution
vectors. These two parameters ranges from 0 to 1. NFE is the value of total iteration value.

Step 2. Initial memory generation

HM are filled with randomly generated values. This means that the initial value of decision variables is set randomly. Then, HM are sorted by the value of
objective function.

Step 3. Improvisation

A new harmony memory vector is generated by considering HMCR and PAR. HMCR is used to find global optimum and PAR is used to escape local optima. First, generate one random number. The HMCR of 0.95 means that a new HM vector is determined by values in HM if the random number is generated within a 95% probability, and a new HM vector is determined by a random value if it is generated within the remaining 5% probability. For the former case (New HM vector is determined by values in HM), Generates the other random number. A Pitch Adjusting Rate (PAR) of 0.10 means that the new HM vector determined by values in HM is converted to neighboring value (an upper value with 5% or a lower value with 5%) if the random number is generated within a 10%
probability.

Step 4. Update HM and iteration

If the new harmony is better than the worst harmony in HM, include the new harmony in HM, and exclude the worst harmony from HM.

Step 5. Stopping criteria

The iterations are terminated if stopping criteria is satisfied. NFE is the maximum number of improvisations. In other words, if the number of improvisations equals the value of NFE, the calculation is stopped, otherwise from step 3 to step 4 is repeated.