Discussão do artigo "Algoritmos de otimização populacionais: Busca harmônica (Harmony Search, HS)"

 

Novo artigo Algoritmos de otimização populacionais: Busca harmônica (Harmony Search, HS) foi publicado:

Hoje, estudaremos e testaremos o algoritmo de otimização mais avançado, a busca harmônica (HS), que é inspirada no processo de procura da harmonia sonora perfeita. Então, qual algoritmo é agora o líder em nossa classificação?

O algoritmo de busca harmônica (Harmony Search, HS) possui uma lógica semelhante àquela empregada por um músico na criação de uma harmonia perfeita. O músico busca modificar diferentes tons até encontrar a harmonia ideal. As harmonias encontradas são armazenadas na memória. Na tarefa de otimização, as harmonias passam por várias variações. Caso os resultados dessas variações sejam favoráveis, a memória é atualizada, incluindo a nova harmonia e descartando aquelas indesejáveis... Entretanto, já estou confuso com os termos utilizados pelos autores do algoritmo. O que exatamente é uma harmonia? E o que são tons? Vamos tentar entender o algoritmo utilizando nossos próprios termos.

O que é uma peça musical? Embora eu não seja um músico (o que é uma pena), sou programador. Para nós e para escrever o algoritmo, será suficiente utilizar o conceito de "nota". Uma peça musical é composta por notas (acordes). A Figura 1 apresenta esquematicamente o "mecanismo" de construção de uma peça musical, sendo que a seleção de notas mostrada na Figura 1 corresponde a uma única peça musical. Essa peça pode ser facilmente identificada, se houver interesse e se tivermos um ouvido musical (mas também é possível apreciá-la sem necessariamente possuir esse talento) ou uma formação musical (embora também seja possível apreciá-la sem essa formação).

O processo de otimização do algoritmo HS consiste em mover as barras verdes com as notas ao longo das barras azuis que representam a peça musical em si. O intervalo coberto pelas barras verdes corresponde a uma oitava, que é composta por notas individuais. A peça musical (barra azul) representa uma das soluções de otimização. As notas na barra verde são os parâmetros correspondentes a serem otimizados no problema. Na memória do músico, há várias variantes da peça musical (diversas barras azuis), isso é o que chamamos de população no algoritmo.



HSachord

Figura 1. Seleção de notas em uma peça musical (encontrar harmonia). A barra azul é a peça musical. As barras verdes são um conjunto de notas.

Na Figura 1, temos um exemplo de solução para um problema discreto, em que o parâmetro possui 8 etapas, sendo apresentado de forma simplificada para facilitar a compreensão do funcionamento do algoritmo. No entanto, em um problema genérico, a etapa dos parâmetros otimizados pode ter qualquer valor, e podem existir notas intermediárias, como os semitons. Os parâmetros corretos para a solução de um problema

Autor: Andrey Dik