Research Article
A Novel Self-Adaptive Harmony Search Algorithm
Algorithm 1
Pseudo code of the NSHS algorithm.
| NSHS Algorithm | | Initialise the problem and algorithm parameters: | | Define a standard fitness function by (1) | | Define the parameters HMCR by (10), Bw by (11), HMS and NI | | Generate randomly an initial HM and calculate fstd | | Search the best solution: | | While () do | | Generate a new harmony vector by the following loop | | While () do | | First, generate a new value for every variable by the following rules: | | If (), then choose uniformly a value from the current memory for variable | | | | Else, generate randomly | | If , then generate randomly in the range of | | | | Else, generate randomly in the range of | | | | End if | | End if | | Second, adjust the new value of every variable by the following rules: | | If , then | | | | Else, generate randomly in the range of | | | | End if | | End while | | Assess the merit of the new harmony vector and update the current harmony memory | | If , then | | Accept the new harmony vector and replace the worst vector in the HM with it. | | Recalculate the standard deviation of the fitness function values fstd. | | End if | | End while | | Determine the optimal solution in the HM by the minimum fitness. |
|