# A New Fuzzy Harmony Search Algorithm Using Fuzzy Logic for Dynamic Parameter Adaptation
## 2 Methodology for Parameter Adaptation
The _HMR_ and _PArate_ parameters in the HS algorithm are very important to fine-tuning the optimized solution vectors, and can be potentially useful in adjusting the convergence rate of the algorithm to find the optimal solution Therefore, the adjustment of these parameters is of great interest. There are three variants of the algorithm that have been applied to achieve better results and they are briefly explained in the following: The improved harmony search algorithm (IHS) [13] is a novel method for generating new solution vectors that enhance accuracy and convergence rate of harmony search (HS) algorithm; the global best harmony search (GHS) [24] is proposed in this paper where concepts from swarm intelligence are borrowed to enhance the performance of HS; and the new global harmony search (NGHS) [25] is a proposed new algorithm that includes two important operations--position updating and genetic mutation with a small probability. The former enables the worst harmony of the harmony memory to move to the global best harmony rapidly in each iteration, and the latter can effectively prevent the NGHS from trapping into the local optimum. It should be noted that none of these methods use fuzzy logic techniques to achieve their goals. The harmony search algorithm has been applied so far to various optimization problems: optimization of functions [9,14], the distribution of water, groundwater modeling, energy-saving clearance, structural design [26], vehicle routing, and others. The possibility of combining harmony search with other algorithms, such as particle swarm optimization and genetic algorithms has also been investigated. The parameter harmony memory accepting (_HMR_) represents the exploitation, and this will ensure that the best harmonies will be transferred to the new harmony memory. The parameter pitch adjustment (_PArate_) represents the exploration of this algorithm, and is similar to the mutation operator in genetic algorithms. A pitch adjustment rate (_PArate_) was used to control the degree of adjustment. The literature suggests the range of pitch adjustment to be between 0 and 1; this parameter in the original algorithm does not change during the iterations and some authors use this parameter in a range between 0.1 and 0.7. In the proposed model, the parameters change during iterations in the range 0.7 to 1 through the use of a fuzzy system to give diversity algorithm and finding the global optimum. Parameter randomization is used to increase the diversity of the solutions, and the use of randomization can further push the system to explore various regions with high diversity solutions in order to find the global optimum. The main difference between FHS and the traditional HS method is in the way they perform the adjusting of the _HMR_ and _PArate_ parameters. To improve the performance of the HS algorithm, the FHS algorithm considers the _HMR_ and _PArate_ as dynamic parameters in the improvisation step. FHS uses a fuzzy system to be responsible for dynamically changing the _HMR_ and _PArate_ parameters in the range from 0 to 1 and 0.7 to 1; this range is based on a detailed study of the behavior of the algorithm parameters after performing a series of experiments applied to optimization problems, since some items used different ranges in the original method [22] in each iteration number. In this case, the rules are used in increasing and decreasing form as shown in Figure 1.  
This method includes the input iterations of the algorithm, because other studies have found it favorable to consider this measure that can control the execution of the algorithm. In addition, it is also found that an algorithm performance measure, such as the iterations, needs to be considered in the parameter adaptation. In this work, all the above are taken into consideration for the fuzzy systems to modify the _HMR_ and _PArate_ parameters by dynamically changing these parameters in each iteration of the algorithm. In this phase, the percentage of elapsed iterations is considered to determine the values of _HMR_ and _PArate_.