Harmony Search Algorithm
Harmony search tries to find a vector which optimizes (minimizes or maximizes) a certain objective function.
The algorithm has the following steps:
Step 1: Generate random vectors () as many as (harmony memory size), then store them in harmony memory (HM).
Step 2: Generate a new vector . For each component ,
with probability (harmony memory considering rate; 0 ≤ ≤ 1), pick the stored value from HM:
with probability , pick a random value within the allowed range.
Step 3: Perform additional work if the value in Step 2 came from HM.
with probability (pitch adjusting rate; 0 ≤ ≤ 1), change by a small amount: or for discrete variable; or for continuous variable.
with probability , do nothing.
Step 4: If is better than the worst vector in HM, replace with .
Step 5: Repeat from Step 2 to Step 4 until termination criterion (e.g. maximum iterations) is satisfied.
The parameters of the algorithm are
= the size of the harmony memory. It generally varies from 1 to 100. (typical value = 30)
= the rate of choosing a value from the harmony memory. It generally varies from 0.7 to 0.99. (typical value = 0.9)
= the rate of choosing a neighboring value. It generally varies from 0.1 to 0.5. (typical value = 0.3)
= the amount between two neighboring values in discrete candidate set.
(fret width, formerly bandwidth) = the amount of maximum change in pitch adjustment. This can be (0.01 × allowed range) to (0.001 × allowed range).
It is possible to vary the parameter values as the search progresses, which gives an effect similar to simulated annealing.
Parameter-setting-free researches have been also performed. In the researches, algorithm users do not need tedious parameter setting process.
see more in :
http://en.wikipedia.org/wiki/Harmony_search
Citation pour cette source
sajjad yazdani (2026). Harmony Search Algorithm (https://fr.mathworks.com/matlabcentral/fileexchange/41158-harmony-search-algorithm), MATLAB Central File Exchange. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
| Version | Publié le | Notes de version | |
|---|---|---|---|
| 1.0.0.0 |
