• Nenhum resultado encontrado

B.42 Clustering Teste de Nemenyi (Wine)

3.6 Algoritmo de Busca do Cuco (CS)

1 início

2 Definir o número de dimensões d do problema; 3 Definir a função objetivo f (x), x = (x1, ..., xd)T;

4 Definir o número de indivíduos e o número máximo de gerações; 5 Gerar uma população inicial de n vaga-lumes xi(i = 1, 2, ..., n); 6 Definir o coeficiente de absorção de luz γ ;

7 Intensidade de luz Iiem xié determinada por f (xi);

8 Avaliar os vaga-lumes da população inicial usando a função objetivo; 9 repita

10 para cada vaga-lume i faça 11 para cada vaga-lume j faça 12 se (Ii< Ij) então

13 Mover o vaga-lume i em direção ao vaga-lume j;

14 fim

15 Variar a atratividade com distância r por exp[- γ r]; 16 Calcular novas soluções e atualizar a intensidade de luz;

17 fim

18 fim

19 Ordenar os vaga-lumes e encontrar a melhor solução global; 20 até critério de parada ser atingido;

21 fim

3.6

Algoritmo de Busca do Cuco (CS)

O algoritmo de busca do cuco (Cuckoo Search - CS) é um algoritmo evolucionário meta- heurístico desenvolvido por Yang e Deb (YANG; DEB,2009), baseando-se no comportamento parasita da reprodução de algumas espécies do pássaro cuco. No processo, essas espécies deposi- tam seus ovos nos ninhos de outros pássaros. Alguns desses ovos, que são muito semelhantes aos ovos do pássaro hospedeiro, têm a oportunidade de crescer e se tornar cucos adultos. Outros são descobertos e jogados fora pelo pássaro hospedeiro, que nesse caso pode ainda abandonar o ninho e construir outro ninho em um novo local.

Esta técnica tem sido muito aplicada em problemas de otimização global, por sua simplicidade e eficácia, além de sua rápida convergência e capacidade de evitar os mínimos locais (YANG; DEB,2009;BISWAS; KUNDU; DAS,2015). Também tem sido aplicado em várias outras áreas, como processamento de imagens, agendamento, planejamento, seleção de características e previsão.

Neste algoritmo, uma solução é representada por um ovo em um ninho e uma nova solu- ção é representada por um ovo de cuco. Cada solução em um ninho é analisada de acordo com a função de aptidão que avalia sua capacidade de resolver o problema. Novas e potenciais melhores soluções são utilizadas para substituir as piores soluções atuais se elas de fato apresentarem melhores valores de aptidão. Soluções candidatas para as próximas épocas são obtidas através

3.6. ALGORITMO DE BUSCA DO CUCO (CS) 42 de uma busca estilo random-walk (YANG; DEB,2009), a fim de explorar novas possibilidades. Finalmente, um ovo de cuco presente nos piores ninhos é descoberto e descartado com uma dada probabilidade (pa).

Na sua forma mais simples, o algoritmo considera cada ninho com apenas um ovo, havendo assim apenas uma solução por ninho. Entretanto, isto pode ser estendido para casos onde cada ninho tem múltiplos ovos, havendo assim um conjunto de soluções por ninho. A sim- plicidade é uma importante vantagem deste algoritmo, visto que além do tamanho da população (número de ninhos), o único parâmetro a ser definido é a probabilidade de um ovo de cuco ser descoberto pa. As três regras básicas desse algoritmo são:

1. Cada cuco deposita um ovo de cada vez em um ninho escolhido aleatoriamente, 2. Os melhores ninhos são mantidos para a próxima geração,

3. Cada ninho contém apenas um ovo, o número de ninhos disponíveis é fixo e o ovo depositado pelo cuco é descoberto pelo pássaro hospedeiro com um certo valor de probabilidade, que implica que uma fração dos ninhos é substituída por novos ninhos ou novas soluções aleatórias (YANG; DEB,2009).

Inicialmente, cada solução é gerada aleatoriamente e atualizada a cada iteração usando voos de Lévy (YANG; DEB,2009), de acordo com a Equação (3.7), uma espécie de movimento aleatório observado em muitos animais, em sua busca por água, comida, parceiros, e fuga de predadores. Neste movimento, o tamanho do deslocamento se distribui com uma densidade de probabilidade que decai como uma lei de potência, onde o índice de Lévy α = λ − 1, com 0 < α ≤ 2, de modo que λ varia no intervalo 1 < λ ≤ 3. Nos casos em que λ = 1 o movimento é dito balístico e nos casos em que λ > 3 o movimento é dito browniano.

Lévy ∼ u = t−λ 3.7 A Figura 3.7 ilustra o conceito simples deste algoritmo.

3.6. ALGORITMO DE BUSCA DO CUCO (CS) 43 Alguns trabalhos relacionados utilizaram o algoritmo CS sem a distribuição dos voos de Lévy. Neste trabalho esta distribuição foi utilizada, pois estudos mostram que é esta propriedade que garante que todo o espaço de busca é coberto de maneira eficiente.

Após produzir uma nova solução de acordo com a Equação (3.8), ela será avaliada e comparada com a solução atual. Se o valor do fitness for menor do que o fitness da solução atual, ela é então aceita como nova solução.

x(t+1)i = xi(t)+ α ⊕ Lévy(λ ) 3.8 Onde:  x (t) i : solução atual,  x (t+1)

i : nova solução produzida,

 α : tamanho do passo para explorar novas e potenciais soluções. É ajustado de acordo com a escala do problema, sendo em geral igual a um. Às vezes um valor menor, como por exemplo 0.01, é utilizado para evitar que os voos sejam muito grandes, o que faria com que novas soluções fossem geradas fora do domínio do problema. Além disso, a cada iteração, as piores soluções podem ser descartadas e substituídas por novas soluções, de acordo com a probabilidade de abandonar o ninho pa definida como

parâmetro do algoritmo. Se a nova solução produzida aleatoriamente a partir de duas outras soluções aleatoriamente selecionadas é melhor do que a solução atual, ela substitui a solução atual no ninho. Este comportamento está definido na Equação (3.9):

vi=    Xi+ rand × (Xr1− Xr2), randi< pa Xi, caso contrário  3.9 Onde:

 pa: probabilidade do ninho ser abandonado,  rand: número aleatório gerado entre 0 e 1,

 Xi: solução atual cuja substituição está sendo avaliada,  Xr1e Xr2: soluções aleatoriamente selecionadas.

Os parâmetros utilizados neste algoritmo são: o tamanho da população (N) e a probabili- dade de descobrir o ovo do cuco e a solução ser abandonada (pa). Seu pseudocódigo pode ser

3.7. ALGORITMO DO MORCEGO (BAT) 44

Documentos relacionados