Você está na página 1de 17

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/323424632

ANÁLISE SOBRE O ALGORITMO DE OTIMIZAÇÃO METAHEURÍSTICO


HARMONY SEARCH

Article · October 2017

CITATIONS READS

2 686

6 authors, including:

Luiz Eduardo Oliveira Ivo Junior


University of Porto Federal University of Juiz de Fora
14 PUBLICATIONS   23 CITATIONS    81 PUBLICATIONS   487 CITATIONS   

SEE PROFILE SEE PROFILE

F.D. Freitas Bruno Carlos Ribeiro Monteiro


University of Brasília University of Brasília
56 PUBLICATIONS   473 CITATIONS    11 PUBLICATIONS   5 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Dealing with Models, Combinatorial Explosion and Algorithms in Transmission Expansion Planning View project

Parameter Preserving Model Order Reduction of Large Sparse Small-signal Electromechanical Stability Power System Models View project

All content following this page was uploaded by Luiz Eduardo Oliveira on 27 February 2018.

The user has requested enhancement of the downloaded file.


Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

ANÁLISE SOBRE O ALGORITMO DE OTIMIZAÇÃO


METAHEURÍSTICO HARMONY SEARCH

Recebido em 19/09/2017
Aprovado em 13/10/2017

Luiz Eduardo de Oliveira1, luiz.eduardo@engenharia.ufjf.br


Francisco Damasceno Freitas1, ffreitas@ene.unb.br
Bruno Carlos Ribeiro Monteiro1, brunmonteiro@gmail.com
Miguel Bogovicz Junior1, miguelbogoviczjunior@gmail.com
Ivo Chaves da Silva Junior2, ivo.junior@ufjf.edu.br
Filipe Pinheiro de Oliveira Rosa2, filipe.oliveira@engenharia.ufjf.br

1 Programa de Pós-Graduação em Engenharia Elétrica, Departamento de Engenharia Elétrica, Universidade de


Brasília, CEP: 70910-900, Brasília – DF, Brasil
2. Programa de Pós-Graduação em Engenharia Elétrica, Departamento de Engenharia Elétrica, Universidade
Federal de Juiz de Fora, CEP: 36081-900, Juiz de Fora – MG, Brasil

RESUMO: Antes da revolução computacional ocorrida nas últimas décadas, a maioria dos algoritmos de
otimização em engenharia era baseada em métodos de programação linear, e ou não linear. Tais métodos
normalmente requerem informação do gradiente e usualmente necessitam de serem bem inicializados, ou seja,
terem a solução inicial próxima do ótimo global. Tais algoritmos, entretanto, revelam uma aproximação muito
limitada com os problemas de otimização do mundo real. Caso exista mais de um mínimo no espaço amostral da
função, ou seja, caso a função objetivo seja não convexa e exista mínimos locais dentro do espaço factível desta,
com esse tipo de algoritmo, muito provavelmente a solução convergirá para ótimos locais. Em contraponto aos
métodos clássicos de otimização, este estudo descreve o Harmony Search (HS), ou Procura Harmônica,
algoritmo metaheurístico baseado no processo de improvisação musical de músicos de jazz que tem por objetivo
em seus ensaios encontrar a harmonia esteticamente perfeita. O HS trabalha não somente com variáveis
contínuas, quanto com variáveis discretas para resolver problemas de busca do ótimo. Ao invés de utilizar busca
através do gradiente, o HS faz uma pesquisa estocástica aleatória, deixando assim desnecessárias informações
provenientes da derivada da função objetivo. Duas funções matemáticas incluindo minimização (Eggcrate e
Rosenbrock) são apresentadas neste trabalho para demonstrar a efetividade e robustez do método. Inclusive, é
disponibilizado o algoritmo, em um código base, na linguagem MatLab para os leitores.

PALAVRAS – CHAVE: Metaheurística, Otimização, Busca Harmônica.

ABSTRACT: Before the computational revolution occurred in the last decades, most of the engineering
optimization algorithms are based on numerical linear and nonlinear programming methods that require
substantial gradient information and usually seek to improve the solution in the neighborhood of a starting
point. These algorithms, however, reveal a limited approach to complicated real-world optimization problems. If
there is more than one local optimum in the problem, the result must depend of initial point selection;
consequently, the obtained optimal solution may not necessarily be the global optimum. However, in the
opposite line, this paper describes a new Harmony Search (HS) meta-heuristic algorithm-based approach for
engineering optimization problems with continuous and design variables. This recently developed HS algorithm
is conceptualized using the musical process searching for a perfect state of harmony. It uses a stochastic random
search instead of a gradient search so that derivative information is unnecessary. Two mathematical functions
including minimization (Eggcrate e Rosenbrock) are presented in this work to demonstrate the effectiveness and
robustness of the HS algorithm. Furthermore, the algorithm code is showed on MatLab language.

6
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

KEYWORDS: Metaheuristics, Optimization, Harmony Search.

1. INTRODUÇÃO

No último século um enorme número de algoritmos foi desenvolvido para resolver vários problemas de
otimização dentro das inúmeras áreas das engenharias. A maioria desses algoritmos é baseada em métodos de
Programação Linear (PL) e Programação Não Linear (PNL) que requerem informações do gradiente. Ou seja,
para tal, é necessário encontrar a derivada da função objetivo para resolução dos problemas através desses
métodos. Os chamados algoritmos clássicos de otimização proporcionam uma excelente estratégia de obtenção
do ótimo global em modelos simples. Para estes sistemas existem uma gama de métodos analíticos. Entretanto,
usualmente, tais métodos necessitam de uma boa solução inicial para a procura do ótimo. A fim de evitar a
convergência para soluções sub-ótimas em funções com vários mínimos locais, devem ser iniciados com uma
solução vizinha ao ótimo global. Ainda que se parta de uma boa solução inicial, a procura pelos métodos que
trabalham com o gradiente pode se tornar difícil e instável quando a função objetivo contiver múltiplos picos.
Em outras palavras, quando o espaço factível da função objetivo for não convexa perde-se a eficiência dos
métodos.
O método metaheurístico Harmony Search (HS), diferente das metodologias tradicionais, combina regras
matemáticas com randomização para modelar fenômenos naturais com o objetivo de encontrar o ótimo global
em funções não convexas, o que o torna uma ferramenta mais eficiente para a resolução de problemas
reconhecidamente complexos que contenha região factível não convexa (Luke, 2009). Tal método se mostra útil
em diversas áreas da engenharia, como por exemplo: análise de casos de alocação e dimensionamento de
capacitores e ou de geração distribuída em sistemas de distribuição de energia elétrica (Coelho, 2013);
planejamento de expansão estática (Aredes et al., 2014) (Mendonça, 2012) e dinâmica de sistemas de
transmissão de energia elétrica (De Oliveira, 2014).
Este trabalho foi escrito conforme a seguinte organização: Na Seção 2 é apresentada a metodologia estudada,
a metaheurística Harmony Search. As seções 3 e 4 estão destinadas a apresentar, respectivamente, o algoritmo e
o código fonte do HS. A fim de auxiliar o leitor no entendimento do HS, fez-se necessário a inserção de um
exemplo tutorial. Este exemplo matemático pode ser encontrado na Seção 5. Na Seção 6 estão contidos os
resultados e análises dos testes com as funções Eggcrate e Rosenbrock. Na Seção 7 estão as conclusões.

2. METODOLOGIA

O Harmony Search um algoritmo de otimização methaeurístico inspirado no processo de improvisação


musical, tal como o observado entre um trio de jazz, onde cada músico busca a harmonia perfeita entre eles (Lee
e Geem, 2005) (Geem et al., 2001).

Tabela 1. Analogia Comparativa entre performance musical e o processo de otimização


Performance Musical Fator de Comparação Processo de Otimização
Melhor harmonia Melhor estado Ótimo global
Padrão estético Estimado por Função objetivo
Som dos instrumentos Estimado com Valor das Variáveis
Cada ensaio, prática Processo unitário Cada iteração
Fonte: (Gonçalves, 2008).

Os próprios parâmetros do método juntamente com uma memória de soluções interagem entre si produzindo
novas harmonias. A representação de tais parâmetros pode ser de forma binária, discreta e ou contínua,
dependendo da característica de cada problema. Devido a sua natureza, ocorre uma convergência dos valores em
um tempo computacional relativamente baixo, com bons resultados. O HS pode utilizar a própria função a ser
otimizada, e não derivadas da mesma, apresentando regras de transição estocástica (HS, 2017).
Cada possível solução é denominada de harmonia. O conjunto todo de harmonias é denominado memória
harmônica sendo associada a cada uma delas uma nota de performance que mede sua capacidade harmônica
(Gonçalves, 2008). Após cada iteração ou ensaio, novas harmonias produzidas através de improvisação e/ou

7
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

mesclagem são avaliadas e ranqueadas. As piores harmonias são descartadas e repete-se o ciclo até que se
satisfaça o critério de parada.
Voltando a destacar os músicos de jazz, cada um pode se enquadrar em uma das três possibilidades: Compor
novas ou randômicas notas; tocar qualquer parte famosa de uma música (uma série de tons em harmonia)
exatamente como veio de sua memória; tocar algo similar a um pedaço conhecido (assim ajustando o tom
levemente).
Cada músico se diferencia em relação ao outro pelo nível de conhecimento musical adquirido, podendo ser
representado por um intervalo entre 0 – conhecimento musical muito baixo – e 1 – elevado conhecimento
musical. É possível comprovar que a melhor faixa de trabalho estará entre 0,7 e 0,95 – sendo 0,9 o valor típico
máximo deste modelo de curva (Yang, 2010); e a randomização total ocorrerá quando o nível de conhecimento
musical dos músicos for o menor possível, zero. Por outro lado, se o mesmo nível de conhecimento musical
corresponder ao valor máximo, será inviável a procura de novas harmonias. Logo, raccept ∈ [0,1] . A probabilidade
de uma nota aleatória será: Prand , caracterizada pela Eq. (1).

Prand = 1 − raccept (1)

Conforme demonstra a Figura 1, além do conhecimento musical, deve-se atribuir uma taxa de ajuste de tom,
rpa ∈ [0,1] . Sendo uma boa faixa de utilização um valor entre 0,1 e 0,5. No caso em questão, foi considerado 0,3
para rpa .

Figura 1. Possibilidades do HS na busca do ótimo

Heuristicamente, foi observado para uma otimização simples em mesma função, que a melhor taxa de
utilização de raccept é entre 0,7 e 0,95. (Yang, 2010). Contudo, não é somente o raccept que define a obtenção do
ótimo global. Deve-se levar em consideração também, a probabilidade de ajuste de som, p pitch , dada pela Eq.
(2).

Ppitch = raccept * rpa (2)

Já a probabilidade de se utilizar a inteligência coletiva é dada pela Eq. (3):

Pint = raccept * (1 − rpa ) = raccept * cint (3)

Enquanto a probabilidade de randomização do HS é representada pela Eq. (4):

Prandom = 1 − raccept (4)

Conforme a Equação (5), é importante observar que a possibilidade de ações do algoritmo em busca do ponto
ótimo é o somatório entre randomização, ajuste e inteligência coletiva.

Ppitch + Pint + Prandom = 1 (5)

Outro fator que se relaciona diretamente com o processo em questão é o passo inteiro, que se trata do
tamanho máximo de ajuste - b p . Este define duas situações: b p ≈ 0 , o passo será nulo, o que resulta na procura
da harmonia por micro afinação (1/8 de tom); b p ≈ inf , o passo será enorme (12 tons). Um passo descomedido
levará a perda do ajuste fino.

8
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

3. O ALGORITMO

De acordo com o apresentado em (Geem et al., 2001) e (Lee e Geem, 2005), a Figura 2 representa o
fluxograma do HS, algoritmo baseado no processo de improvisação de músicos de Jazz. Apesar de essa analogia
musical apresentar uma complexidade inicial para leigos em instrumentos musicais, o HS é uma metaheurística
de grande simplicidade. Sendo assim, esta Seção tem por objetivo apresentar o algoritmo de maneira
simplificada ao leitor.
O bloco 1, “Define parameters of Harmony Search”, é o responsável pela definição dos parâmetros iniciais
da pesquisa harmônica. Encontram-se entre essas definições os parâmetros da Função Objetivo e do critério de
parada. Assim como, rpa (taxa de ajuste de tom), raccept (aceitação da memória harmônica), HMS (tamanho do
vetor solução, ou seja, quantas notas terão a frase musical) e b p (passo inteiro, responsável pelo ajuste de tom)
necessários para iniciar o HS.
O bloco 2, “Initialize harmony memory”, tem por objetivo inicializar a memória harmônica (HM). Ou seja,
neste bloco cria-se uma matriz HM com tamanho equivalente a HMS de soluções e dimensão equivalente ao
número de variáveis do problema.

Figura 2. Fluxograma do algoritmo Harmony Search

O bloco 3, “Improvise a new Harmony”, é o início pela busca da nova harmonia. Nesse ponto do problema, o
músico (variável) tem três possibilidades. Na Figura 3, estas possibilidades são demonstradas. Dentro do bloco 3,
o primeiro passo é fazer um teste entre um número aleatório, rand ∈ [0,1] , e raccept , evidenciando assim a Eq.
(1). Caso o sistema opte por uma nota aleatória na tentativa de se obter o ótimo, este bloco se encerrará. Caso
contrário, deve-se ir para o segundo passo do bloco 3. No segundo passo deste bloco, conforme a mesma Figura
3, já se admite que o músico vá consultar sua memória harmônica para a criação da nova nota. Sendo assim,
caberá um novo teste. Desta vez, entre um novo número aleatório, rand ∈ [0,1] e rpa . Caso este número aleatório
seja maior ou igual a rpa , a nova nota, ou seja, novo valor para a variável será proveniente de um ajuste
aleatório em função do passo inteiro. Por outro lado, se o teste lógico feito acima se demonstrar falso, a nota
tocada deverá ser uma nota aleatória proveniente da memória harmônica sem nenhum ajuste, ativando assim a
inteligência coletiva do método.

9
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

Figura 3. Detalhamento do processo de improvisação do algoritmo Harmony Search

O bloco 4, “Add new harmony to harmony memory?”, é onde se testará a nova solução obtida através do
bloco 3, o xnew . Neste ponto, o músico irá analisar se a nova nota tocada está esteticamente melhor na harmonia
que as notas da frase já existente. Já o programador irá analisar o novo valor para a variável conforme sua
necessidade, erro mínimo (design), custo mínimo (parâmetros de calibração), máximo lucro (gerenciamento),
entre outros.
Caso o xnew resulte em uma melhor harmonia, este irá para o bloco 5, Update Harmony memory, onde será
anexado a memória harmônica no lugar da pior solução contida em HM.
O bloco 6, “Termination criteria satisfied?”, testará se o critério de parada foi satisfeito. Caso não, volta-se
para o começo do bloco 3, onde dará início a uma nova repetição do processo. Ou seja, a mais uma iteração. Ao
final do procedimento, com o critério de parada satisfeito, têm-se a convergência do método constatada no
último bloco, “Local optimization".

4. CÓDIGO FONTE

Neste item definiremos os parâmetros harmônicos do HS que serão utilizados em uma simulação. Tais
parâmetros estão representados na Figura 4 e consistem em: 𝑟"# = 0,25; 𝑟#**+", = 0,85; 𝐻𝑀𝑆 = 5; 𝑏" = 2,
estático; número máximo de 250 iterações, sendo este último o critério de parada. Vale ressaltar que o código
fonte se encontra dividido em quatro passos apresentados pelas figuras que se seguem.

10
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

Figura 4. Definição dos parâmetros do HS

Neste ponto do algoritmo é a hora de inicializar a memória harmônica, ou seja, criar soluções iniciais
aleatórias factíveis como mostra a Fig. 5.

Figura 5. Inicialização da memória harmônica

Através da Fig. 6 é possível perceber que toda vez que o algoritmo chega ao final ele faz a checagem através
da estrutura de repetição “while – end”.

11
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

Figura 6. Processo de Improvisação

Neste problema em particular, otimizar significa minimizar. Contudo, se o objetivo fosse maximizar seria
neste ponto do algoritmo, que representa a atualização da memória harmônica - Fig. 7, onde fazia-se o teste e a
diferenciação entre o que é uma boa solução ou não.

Figura 7. Atualização da memória harmônica com a nova solução

5. EXEMPLO TUTORIAL

A resolução do exemplo matemático representado pela Eq. (6) torna o entendimento do funcionamento do
HS o mais claro possível. As Equações (7), (8) e (9) consistem nas restrições das quais o problema está sujeito.

12
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

: = : (6)
min 𝑓 𝑥, 𝑦, 𝑧 = 𝑥 − 2 + 𝑦−3 + 𝑧−1 +3
sujeito a:

𝑥, 𝑦, 𝑧 ≤ 5 (7)

𝑥, 𝑦, 𝑧 ≥ 0 (8)

𝑥, 𝑦, 𝑧 ∈ ℕ (9)

Passo 1: Definição dos parâmetros iniciais do HS: taxa de ajuste de tom, 𝑟"# = 0,3; aceitação da memória
harmônica, 𝑟#**+", = 0,8; tamanho do vetor solução, 𝐻𝑀𝑆 = 4. Nesta solução iremos utilizar somente números
naturais conforme a restrição do problema. Sendo assim, o passo inteiro, 𝑏" = 1, é uma boa estimativa. O
critério de parada será de 10 iterações. Onde a solução ótima será a melhor contida em HM.
Passo 2: Inicialização da memória harmônica. A matriz HM é preenchida por valores aleatórios que se
encontram dentro da largura de banda e em cumplicidade com as restrições. Na Tabela 2 encontram-se os
valores de HM aleatórios e os valores respectivos de sua FOB.

Tabela 2. Iteração 0 - Preenchimento da Memória Harmônica (HM)


X Y Z F
1 3 4 13
2 3 2 4
5 5 5 44
1 0 3 89

Passo 3: Neste exato momento, o bloco 3, “Improvise a new Harmony”, irá definir qual atitude o HS irá
tomar, iniciando assim a primeira iteração. Supondo que o valor de 𝑟𝑎𝑛𝑑 ∈ [0,1] seja 0,9435. Dessa maneira,
fica-se decidido que o HS irá procurar uma solução aleatória. A Tabela 3 apresenta os resultados aleatórios que
são obtidos no decorrer do processo.

Tabela 3. Nova solução aleatória proposta pelo HS


X Y Z F
2 3 3 7

Passo 4: Após definida a nova solução candidata a ser inserida na memória harmônica, 𝑥J+K = 2,3,3 ,
fazem-se os testes necessários para visualizar se essa solução deverá ou não fazer parte da matriz HM. Para esta
solução o valor da função é 7. Como a meta do problema é minimizar a função objetivo, deve-se inspecionar se a
pior solução contida no HM tem um valor referente maior que 7. A pior solução, 𝐻𝑀L#M = 1,0,3 representa o
valor 89 na função. Logo, 𝑥NOP = 1,0,3 será descartado de HM e 𝑥J+K = 2,3,3 entrará em seu lugar,
conforme demonstrado na Tabela 4.

Tabela 4. Iteração 1 – Memória Harmônica (HM)


X Y Z F
1 3 4 13
2 3 2 4
5 5 5 44
2 3 3 7

Passo 5: Fim da primeira iteração e o critério de parada não foi correspondido. Então volta-se para o passo 3.
13
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

De volta ao passo 3, o valor de 𝑟𝑎𝑛𝑑 ∈ [0,1] sorteado foi 0,3846. Dessa maneira, o algoritmo ao enxergar
que o valor assumido para 𝑟𝑎𝑛𝑑 é menor que 𝑟#**+", (0,8) aciona a memória harmônica para a composição de
𝑥J+K .
Com a certeza da utilização de HM nesta iteração, um novo sorteio envolvendo a variável 𝑟𝑎𝑛𝑑 faz-se
necessário para definir se o HS utilizará a memória coletiva ou fará um ajuste em alguma das soluções existentes
em HM. O novo 𝑟𝑎𝑛𝑑 = 0,7584 foi maior que 𝑟"# , garantindo assim que o HS optará pelo ajuste na HM. Neste
caso, há uma modificação na Equação (10) para que se possa respeitar a restrição de programação inteira do
problema. A Equação (11) permitirá encontrar valores ajustados sem violar as restrições do problema. A partir
do sorteio com chances iguais demonstrado na Fig. 8 podemos definir qual 𝑥NOP será utilizado como base para a
criação de 𝑥J+K .

𝑥J+K = 𝑥NOP ± 𝑏" ∗ 2 ∗ 𝑟𝑎𝑛𝑑 − 1 (10)

𝑥J+K = 𝑥NOP ± 𝑏" (11)

Figura 8. Seleção pelo método de sorteio

A partir da definição de 𝑥NOP = {1,3,4}, conforme a Fig. 8, através de randomização definiu-se 𝑏" = {1,0, −1}.
Logo, ao substituir estes dados na Equação (11) têm-se 𝑥J+K = 2,3,3 . Conforme visto na iteração 1, o valor da
Função Objetivo para esta solução corresponde a 7, o que é menor que a pior solução contida em HM. Sendo
assim, o valor de 𝑥J+K entrará em HM excluindo a solução 𝐻𝑀L#M = {5,5,5} da memória harmônica. Ao fim da
iteração, a matriz HM estará conforme a Tabela 5.

Tabela 5. Iteração 2 – Memória Harmônica (HM)


X Y Z F
1 3 4 13
2 3 2 4
2 3 3 7
2 3 3 7

Ao final da segunda iteração, é possível notar que o sistema está convergindo, contudo são necessárias ainda
mais algumas iterações para saciar o critério de parada.
De volta ao passo 3, o valor de 𝑟𝑎𝑛𝑑 ∈ [0,1] sorteado foi 0,8846, obrigando o HS a procurar uma solução
aleatória. Sendo assim, 𝑥J+K = (4,1,2) e o valor da função para essa solução é 24. Levando em consideração o
que o 𝐻𝑆L#M = 𝑓(1,3,4) = 13 é menor que o valor de 𝑓(𝑥J+K ) = 𝑓(4,1,2) = 24, 𝑥J+K será descartado,
findando assim a iteração 3.
Ao considerar que o valor do primeiro 𝑟𝑎𝑛𝑑 sorteado foi 0,7326 e que o segundo 𝑟𝑎𝑛𝑑 foi equivalente a
0,2598, de acordo com a Fig. 3, o HS consultará a memória harmônica com o objetivo de acessar a inteligência
coletiva do método. Através de um novo sorteio com chances iguais entre as soluções de HM foi definido que
𝑥J+K = 2,3,3 . Sendo assim, como 𝑓 𝑥J+K = 𝑓(2,3,3) = 7 < 𝑓(𝐻𝑀L#M ) = 𝑓 1,3,4 = 13. O HM ao final
da iteração será o contido na Tabela 6.

14
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

Tabela 6. Iteração 4 - Memória Harmônica (HM)


X Y Z F
2 3 3 7
2 3 2 4
2 3 3 7
2 3 3 7

As iterações subsequentes serão a repetição do método até que o critério de parada seja satisfeito, conforme
demonstrado na Tabela 7.

Tabela 7. Comportamento do HS entre a quinta e a última iteração


Critério de
Iteração Método 𝑥J+K 𝑓 𝑥J+K 𝐻𝑆L#M 𝑓(𝐻𝑀L#M ) HM
Parada
5 Ajuste {2,3,4} 12 {2,3,3} 7 Mantém Insatisfeito
6 Repetição {2,3,2} 4 {2,3,3} 7 Altera Insatisfeito
7 Repetição {2,3,3} 7 {2,3,3} 7 Mantém Insatisfeito
8 Ajuste {2,3,1} 3 {2,3,3} 7 Altera Insatisfeito
9 Aleatório {2,3,0} 4 {2,3,3} 7 Altera Insatisfeito
10 Ajuste {2,3,1} 3 {2,3,2} 4 Altera Satisfeito

Ao final das dez iterações previstas o resultado obtido pelo HS é o demonstrado na Tabela 8. Embora tenha
sido encontrada a resposta correta para o problema através do HS em 10 iterações, note que nem todos os valores
convergiram para a resposta correta. Isso é uma demonstração de que em apenas 10 iterações este problema pode
convergir para um mínimo local e não para o global. Com mais iterações, obrigatoriamente, o método convergirá
para um HM composto somente por repetições do vetor solução {2,3,1}.

Tabela 8. Iteração 10 - Memória Harmônica (HM)


X Y Z F
2 3 0 4
2 3 1 3
2 3 1 3
2 3 2 4

O HS, ao contrário da maioria das metaheurísticas, como o Genetic Algorithm (GA), o Bat Algorithm (BA), o
Ant Colony Optimization (AC) e do Particle Swarm Optimization (PSO), por concepção, executa apenas uma
alteração na frase musical por ensaio. Ou seja, uma das soluções contidas na HM é alterada por solução. Fazendo
uma comparação com o GA, no HS, apenas um indivíduo da população é alterado por iteração.

6. RESULTADOS E DISCUSSÕES

6.1 Função Eggcrate

O objetivo desta Seção é comprovar a eficácia do método metaheurístico. Para tanto, a metodologia foi
aplicada cem vezes na minimização de cada uma das duas funções matemáticas que apresentam alta
complexidade para uma vasta lista de técnicas de otimização. Sendo elas: Eggcrate e Rosenbrock (Coelho,
2013). É importante salientar que para cada simulação o HS partiu de uma diferente solução inicial factível. Para
definição dos parâmetros iniciais do HS foram utilizados rpa = 0,25 ; 𝑟#**+", = 0,8; HMS=5; b p estático;
número máximo de 250 iterações, sendo este último o critério de parada.

15
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

A função objetivo apresenta a formulação matemática conforme a Eq. (12), ressaltando que se trata de uma
função contínua, derivável e com variáveis separáveis:

𝑓 𝑥, 𝑦 = 𝑥² + 𝑦² + 25 ∗ 𝑠𝑒𝑛: 𝑥 + 𝑠𝑒𝑛: 𝑦 , −2𝜋 ≤ 𝑥, 𝑦 ≤ 2𝜋 (12)

O que se deseja encontrar no processo de busca é o ponto mínimo da Função Eggcrate, que se encontra em
𝑥, 𝑦 = {0,0}. A Figura 9 exibe o aspecto da função analisada em três dimensões. Com as regiões em vermelho
significando valores altos, portanto indesejáveis, e as regiões em azul representando os pontos de baixo valor da
função objetivo (Coelho, 2013). Por heurística, definiu-se o passo inteiro como sendo a vigésima parte da largura
=]
de banda, ou seja, 𝑏" = .
:^
Visando a convergência do método, no canto superior esquerdo da Figura 10 é representado um histórico da
memória harmônica das variáveis x e y em azul e em vermelho respectivamente; na Fig. 11, a curva em preto
exprime o caminho de convergência, da primeira à última iteração, feito pelo melhor resultado.
Considerando que foram realizadas 100 simulações, a Figura 12, mostra em azul e vermelho,
respectivamente, o melhor resultado de cada uma destas simulações das variáveis x e y. Já na Figura 13, o que se
pode observar é o resultado do HS nas 100 simulações propostas. Nota-se que embora haja alguns poucos pontos
fora da curva, até estes se demonstraram próximos do ótimo global.


Figura 9. Função Eggcrate


Figura 10. Histórico das variáveis x e y do HS para a função Eggcrate em uma simulação

16
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403


Figura 11. Caminho percorrido pelo HS na busca do mínimo da função Eggcrate em uma simulação


Figura 12. Melhores X e Y ao final de cada simulação da função Eggcrate


Figura 13. Resultado final do HS para cem simulações de busca do ótimo na função Eggcrate

A Tabela 9 exprime os dados estatísticos do Harmony Search obtidos nas simulações com a
função Eggcrate.

Tabela 9. Dados Estatísticos de 100 simulações da função Eggcrate


𝑓(𝑥, 𝑦) Soluções Finais
Média 0,0108
Desvio Padrão 0,0131
Mediana 0,0067
Mínimo 4,1976e-005
Máximo 0,0865

17
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

Como evidenciado pela Tabela 9, as simulações com HS mediante a Função Eggcrate se mostram muito
eficazes, uma vez que os valores encontrados foram bem próximos do ótimo global da função. Nota-se uma clara
convergência do método, pois ele apresenta uma média bem baixa das soluções, ocorrendo o mesmo para o
desvio padrão, permitindo assim, a conclusão de que a probabilidade de se obter a resposta ótima é grande com o
HS. É importante salientar que cada simulação demorou em média 0,2730 segundos, explicitando assim a
rapidez do método.

6.2 Função Rosenbrock

A função 𝑅𝑜𝑠𝑒𝑛𝑏𝑟𝑜𝑐𝑘, também conhecida como Rosenbrock’s Valley e Rosenbrock’s Banana Function se
caracteriza por ser contínua, diferenciável, unimodal e conter variáveis não separáveis. Seu mínimo global é
encontrado dentro de um longo e estreito vale plano em forma de um parabolóide. Encontrar o vale é trivial. A
dificuldade, entretanto, encontra-se em driblar os mínimos locais e convergir para o ótimo global (Rosenbrock,
1960). O modelo matemático desta função se dispõe mediante a Eq. (13):

:
𝑓 𝑥, 𝑦 = 1 − 𝑥 + 100 𝑦 − 𝑥 : :
, − 2.048 ≤ 𝑥, 𝑦 ≤ 2.048 (13)

O ótimo global (mínimo) da famosa função Rosenbrock está localizado no ponto {x,y}={1,1} e possui valor
𝑓 𝑥, 𝑦 = 0, assim como a função Eggcrate. A análise qualitativa da metodologia aplicada à função Rosenbrock
foi realizada sob as mesmas condições de simulação utilizadas anteriormente na função Eggcrate, exceto por
=.^de
dois fatores. O primeiro, o 𝑏" foi considerado a décima parte da largura de banda. Logo, 𝑏" = = 0.4096. O
f^
segundo, fora o número de iterações. Demonstrou-se necessária a utilização de 1500 iterações para garantir a
convergência do método. Mediante a grande aleatoriedade nos ajustes, o HS se demonstra com maior capacidade
de convergência, ou seja, necessita de menos iterações, o que o torna mais rápido, em funções onde os mínimos
locais e globais são mais explícitos e frutos de uma decida íngreme, como é o caso da Eggcrate.
Do mesmo modo que foi demonstrada a convergência do método na função 𝐸𝑔𝑔𝑐𝑟𝑎𝑡𝑒 através dos resultados
anteriores, a Figura 15 evidencia a convergência do método ao longo das 1500 iterações. Em azul e vermelho,
tem-se as matrizes de dimensão (5x1500) HMX e HMY que representam um histórico da memória harmônica
das variáveis x e y, respectivamente, ao longo das iterações de uma simulação. Já a Figura 16 exprime o caminho
utilizado pelo HS até a última iteração de f(HMX, HMY) na mesma simulação, demonstrando também a
convergência do método.
O resultado obtido na aplicação do HS na função 𝑅𝑜𝑠𝑒𝑛𝑏𝑟𝑜𝑐𝑘 - Fig. 14 - é mais um indício de que o
algoritmo converge e é muito eficaz. Na Figura 17 é feita uma comparação demonstrativa entre a convergência
do método com as mesmas 250 iterações e cem simulações realizadas na função 𝐸𝑔𝑔𝑐𝑟𝑎𝑡𝑒 e o resultado com
1500 iterações proposto.


Figura 14. Função Rosenbrock

18
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403


Figura 15. Histórico das variáveis x e y do HS para a função Rosenbrock em uma simulação


Figura 16. Caminho percorrido pelo HS na busca do mínimo da função Rosenbrock em uma simulação


Figura 17. Comparação entre critérios de parada do HS para a função Rosenbrock

Embora o tempo para cada simulação seja 6 vezes maior, assim como o número de iterações, os resultados
obtidos com 1500 iterações demonstraram-se significativamente mais próximos do ótimo global. Na tabela 10,
encontram-se os dados estatísticos dos resultados finais obtidos através das 100 simulações do HS em
comparação entre as 250 iterações e as 1500 iterações propostas.

19
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

Tabela 10. Dados Estatísticos - 100 simulações da função Rosenbrock.


Soluções Finais: Soluções Finais: Razão entre as
𝑓(𝑥, 𝑦)
250 Iterações 1500 Iterações colunas 2 e 3
Média 0,1144 0,0018 63,5555
Desvio Padrão 0,1098 0,0035 31,3714
Mediana 0,0857 5,6957e-004 150,5206
Mínimo 5,5089e-004 8,7447e-006 62,9961
Máximo 0,5183 0,0180 28,8007

Após as 100 simulações com diferentes critérios de parada, uma com 250 iterações e outra com 1500
iterações, para o HS, cada critério levando 0,2792s e 1,5714s, respectivamente, para ser satisfeito,
comparativamente pode-se analisar a quarta coluna da tabela acima e observar a razão entre os resultados finais
obtidos com os diferentes critérios. Embora a razão do tempo de convergência entre o primeiro e o segundo
critério seja de 1 para 6. Com o segundo e mais robusto critério de parada, a média das soluções foi cerca de
sessenta e quatro vezes mais baixa, o desvio padrão demonstrou-se aproximadamente trinta e uma vezes mais
baixo e o mínimo e o máximo, respectivamente, quase vinte e nove e sessenta e três vezes inferior ao critério
inicial.

7. CONCLUSÕES

O algoritmo de otimização metaheurístico de busca do ótimo, recentemente desenvolvido, foi concebido


através do processo de busca pelo perfeito estado de harmonia. Comparado com os algoritmos matemáticos
baseados no gradiente o HS, por concepção, requer menor dificuldade matemática e não necessita de um valor
inicial para as variáveis de decisão. Como o algoritmo HS utiliza pesquisas randômicas estocásticas, as
informações contidas na derivada da função objetivo se tornam desnecessárias. Entretanto, o HS gera um novo
vetor responsável pela memória harmônica (HM). Além de considerar a taxa de aceitação da memória harmônica
(𝑟#**+", ), Taxa de Ajuste de Tom (𝑟"# ) e o passo unitário, b p .
O HS é uma metaheurística que vem se demonstrando bastante eficiente devido a sua simplicidade
matemática e habilidade de fuga dos ótimos locais. Contudo, os valores sugeridos por (Yang, 2010) para TAT e
TCMH são empíricos. Estudos estocásticos comparativos sobre qual a melhor relação entre TCMH e TAT para
os diferentes tipos de problema de otimização como: a função-objetivo convexa ou não-convexa; contínua ou
descontínua; com variáveis mistas ou não; entre outros parâmetros, é um bom tema para estudos futuros.
Ao contrário da maioria dos métodos de otimização, como o Bat Algorithm (BA) ou o Anty Colony
Optimization (AC), por concepção do método, somente uma nota (indivíduo) da frase musical (população) é
modificada por iteração do HS. Embora o HS necessite de mais iterações comparado aos métodos de busca
citados acima, frente a estes métodos o tempo computacional requerido por iteração do HS é muito menor.
Sendo assim, para alcançar a satisfação do critério de parada utilizado nas duas funções testadas, 250 iterações, o
HS precisou, em média de 0,2750s aproximadamente, e no máximo de 0,35s segundos para encerrar o seu
processo de busca, demonstrando assim alta capacidade de convergência do método em curto tempo.
Ao avaliar a flexibilidade e a simplicidade matemática requerida pelo método, surge a proposta de se
apresentar possíveis temas para desenvolvimentos futuros, alguns exemplos são: Estudos objetivando encontrar a
influência dos parâmetros harmônicos do HS, inclusive o passo inteiro mais indicado para problemas não
lineares contínuos, onde este se faz importante no processo de otimização; assim como proposto em (Coelho,
2013) em relação ao Bat Algorithm (BA), tentar otimizar o método, para que ele convirja com menos iterações e
de maneira mais rápida; utilizar o HS para comparação de resultados com trabalhos já publicados, objetivando a
conferência de dados e quando possível, encontrar melhores soluções; o HS, devido à formação de seus criadores
e difusores, já possui larga utilização na Engenharia Civil. Entretanto, muito também por ser um algoritmo
relativamente novo (2001), na área de Sistemas Elétricos de Potência, onde normalmente são utilizados os
métodos Newton-Raphson, AG e AC, o HS ainda precisa ser difundido.

8. AGRADECIMENTOS

Os autores deste artigo agradecem o apoio da Portfólio Engenharia, CAPES e do grupo de pesquisa
‘‘Otimização Heurística e Bioinspirada” da UFJF.

20
Acta Brazilian Science
Copyright © 2017 by CEAMA 01, 4º Trimestre, Outubro de 2017, São Luis, Ma, Brasil
ISSN: 2317-7403

9. REFERÊNCIAS

Aredes, C., Silva Jr., I. C., Mendonça, I. M., Dias, B. H., Oliveira, L. W., (2014), Planejamento Estático da
Expansão de Sistemas de Transmissão de Energia Elétrica Via Ecolocalização, Anais do XX Congresso
Brasileiro de Automática, p.1755-1760.
Coelho, F. R., (2013), Alocação de Geração Distribuída Via Otimização Bioinspirada na Ecolocalização de
Morcegos, Dissertação MSc, UFJF.
Geem Z. W., Kim, J. H., Loganathan, G. V., (2001), A New Heuristic Optimization Algorithm: Harmony
Search, Sumulation,76, p. 60-86.
Gonçalves, L. A., (2008) Otimização de Parâmetros de modelos Pluvi-Fluviométricos Utilizando Algoritmo
Genético e Busca Harmônica, Dissertação MSc, UFMS.
HS, Harmony Search Algorithm,. Web page.http://www.harmonysearch.info/ Acessado em: 2017-04-15.
Lee, K. S. and Geem, Z. W (2005). A New Meta-Heuristic Algorithm for Continuous Engineering Optimization:
Harmony Search Theory and Practice. Comput. Methods Appl. Mech. Engrg. 194, p. 3902–3933.
Luke, S. (2009). Essentials of Metaheuristics. Second Edition
Mendonça, I. M., (2012), Planejamento Estático da Expansão de Sistemas de Transmissão de Energia Elétrica
Utilizando Otimização por Enxame de Partículas, Dissertação MSc, UFJF.
Rosenbrock H. H., (1960), An automatic method for finding the greatest or least value of a function, The
Computer Journal 3, p. 175–184
Yang, X. S., 2010, Nature-Inspired Metaheuristic Algorithms, 2nd edn., Luniver Press, University of Cambridge,
United Kingdom.

21

View publication stats

Você também pode gostar