Discussion de l'article "Algorithmes d'optimisation de la population : Harmony Search (HS)"

 

Un nouvel article Algorithmes d'optimisation de la population : Harmony Search (HS) a été publié :

Dans cet article, j'étudierai et testerai l'algorithme d'optimisation le plus puissant : la recherche harmonique (HS), inspirée par le processus de recherche de l'harmonie sonore parfaite. Quel est donc l'algorithme qui domine aujourd'hui notre classement ?

Le travail de la logique de la HS est similaire au travail d'un musicien qui crée une harmonie parfaite. Le musicien essaie de modifier les différentes tonalités jusqu'à ce qu'il trouve l'harmonie parfaite. Ensuite, la collection d'harmonies trouvées est stockée en mémoire. Dans un problème d'optimisation, les harmonies subissent diverses modifications ; si les résultats de la variation sont favorables, la mémoire est renouvelée en ajoutant des harmonies à la mémoire et en supprimant les éléments indésirables... Tout cela peut sembler assez confus. Qu'est-ce que l'harmonie ? Qu'est-ce qu'un ton ? Essayons de comprendre l'algorithme en utilisant nos propres termes.

Qu'est-ce qu'un morceau de musique ? Bien sûr, je ne suis pas musicien (ce qui est dommage), mais programmeur. Mais pour les besoins de la détection de l'algorithme, il suffira d'appliquer le concept de "note". Un morceau de musique est composé de notes (accords). La figure 1 montre schématiquement le "mécanisme" de construction d'un morceau de musique. La sélection des notes correspond à un morceau de musique, qui est facile à déterminer même sans oreille musicale ou sans formation musicale. Les personnes désireuses de deviner peuvent laisser un commentaire ci-dessous. 

L'optimisation de l'algorithme HS consiste à déplacer les barres vertes contenant les notes sur la barre bleue du morceau lui-même. La portée de la barre verte est une octave, qui est composée de notes individuelles. Le produit (barre bleue) correspond à l'une des solutions d'optimisation. Les notes sur la barre verte sont les paramètres d'optimisation correspondants du problème. La mémoire du musicien stocke plusieurs versions du morceau (plusieurs variantes de barres bleues), c'est la population de l'algorithme. 

HSachord

Figure 1. Sélection de notes dans un morceau de musique (recherche d'harmonie). La barre bleue est une pièce. Les barres vertes sont des ensembles de notes 

L'exemple de la figure 1 correspond à la solution d'un problème discret, où il y a huit étapes dans le paramètre. L'exemple est fourni pour faciliter la compréhension du fonctionnement de l'algorithme. Cependant, dans une tâche arbitraire, il peut y avoir n'importe quel pas des paramètres optimisés et il y a aussi des notes intermédiaires - les demi-tons. Les paramètres corrects pour résoudre le problème correspondent aux notes correctes du morceau.

Auteur : Andrey Dik