• Nenhum resultado encontrado

DIVERSIFICAÇÃO E INTENSIFICAÇÃO EM ALGORITMOS

No documento wesleyperes (páginas 70-75)

POPULACIONAIS MONO-OBJETIVOS

2.7.1 Conceituação

Um dos principais requisitos para a obtenção de soluções de boa qualidade utilizando- se os métodos de otimização baseados em população é que exista um equilíbrio entre as estratégias de diversificação e intensificação durante o processo de busca. Conforme (BLUM e ROLI, 2003), tem-se as seguintes definições:

Diversificação (Diversification): também referenciada na literatura como Exploration, consiste na estratégia de exploração global do espaço de busca;

Intensificação (Intensification): também referenciada na literatura como Exploitation, consiste em intensificar a busca através de uma exploração local ao redor das melhores soluções.

Sabe-se que uma das métricas para medir a qualidade de um algoritmo de otimização é a sua característica de convergência. Conforme (CHENG e SHI, 2012), no caso de algoritmos baseados em população, "Convergência não significa que todos os indivíduos devem se manter próximos em uma pequena região do espaço de busca, mas sim que a função de aptidão do melhor indivíduo seja a melhor possível". Essa definição é importante para a minimização de funções multimodais (com múltiplos pontos de mínimos), onde a manutenção da diversidade da população deve ser garantida. Algumas técnicas para a manutenção da diversidade da população serão apresentadas adiante.

Outra característica é a etapa de intensificação ao redor das melhores soluções, presente na maioria dos algoritmos populacionais (RAIDL, 2006). De forma geral, tais algoritmos realizam um somatório randômico de baixa escala à melhor solução corrente, conforme apresentado na equação (2.22).

𝑥𝑡+1= 𝑔+ 𝜀. 𝑑 (2.22)

onde 𝑔 é a melhor solução corrente, 𝜀 é um número randômico e 𝑑 é um fator de escala. Entretanto, explorações locais mais eficientes podem ser realizadas através da hibridização de algoritmos conforme será visto adiante: uma vez que a busca global tenha posicionado os

47

indivíduos em bacias de atração favoráveis, técnicas que requerem um menor esforço computacional e são mais eficientes podem ser aplicadas.

Um exemplo do balanceamento entre as estratégias de diversificação e intensificação é apresentado em (DO BOMFIM, TARANTO e FALCAO, 2000) (CÁRDENAS, 2011), onde um algoritmo genético é utilizado para resolver o problema de ajuste coordenado de controladores de sistemas de potência: a busca é realizada através de conceitos de redução, deslocamento e expansão do espaço de busca visando a obtenção de soluções de boa qualidade.

2.7.2 Técnicas para a Manutenção da Diversidade da População

A manutenção da diversidade da população é importante para evitar que os indivíduos se aglomerem prematuramente em pontos do espaço de busca caracterizados por soluções de má-qualidade. Quando os indivíduos se aglomeram prematuramente em uma região, o esforço computacional nas gerações (ou iterações) seguintes será para explorar somente uma região limitada, fazendo com que o método populacional perca sua característica exploratória (o que degrada sua eficiência) (OJIMA e THEODORO, 2002).

Para contornar esse problema, existem algumas estratégias específicas na literatura para garantir a diversidade da população, tais como as técnicas de Niching (entre as quais cita- se Fitness Sharing e Crowding ) e os algoritmos cooperativos.

i. Fitness Sharing (Compartilhamento de Fitness): proposto no campo dos Algoritmos Genéticos este método é baseado na premissa de compartilhamento de recursos, onde o objetivo é reduzir o valor de aptidão dos indivíduos que são similares dentro da população13. A modificação ocorre no cálculo da função de aptidão: cada indivíduo possui o seu valor de aptidão reduzido de acordo com a quantidade de indivíduos idênticos ou similares na população. Assim, o algoritmo possui uma menor probabilidade de que muitos

13 Essa similaridade pode ser medida tanto no espaço solução de otimização (comparação das variáveis)

48

indivíduos do mesmo nicho sejam selecionados. Entretanto, existe uma grande dificuldade na escolha da função de escala (que penaliza a função aptidão dos indivíduos similares) (GOLDBERG e RICHARDSON, 1987).

ii. Crowding (Aglomeração): proposto para manter a diversidade da população em Algoritmos Genéticos (DE JONG, 1975), a técnica Crowding insere novos indivíduos na população no lugar de elementos que apresentam alto grau de similaridade. A comparação de similaridade é feita através de medidas no espaço solução ou objetivo e tenta espalhar os indivíduos pelos pontos de ótimo da função.

iii. Algoritmos Cooperativos (ou Colaborativos): esta estratégia consiste em tratar a solução do problema com uma abordagem similar a um ecossistema, consistindo de duas ou mais espécies (subpopulações) que evoluem ao longo do processo iterativo (BLUM e ROLI, 2003) e (RAIDL, 2006). Essas estratégias serão apresentadas adiante.

Em (SORENSEN e SEVAUX, 2006) é proposta uma metodologia para a manutenção da diversidade das partículas no método PSO: para cada nova partícula gerada, a distância no espaço solução é calculada em relação ao conjunto de partículas a ser atualizado. Se a menor distância entre a nova partícula e um determinado indivíduo original da população for maior que uma tolerância, o indivíduo original é substituído (a nova partícula é incluída na população).

Além dessas estratégias, cita-se aquela baseada na decomposição do espaço de busca: nesse caso, diferentes sub-populações são utilizadas para otimizar de forma cooperativa diferentes componentes do vetor de solução. Algumas aplicações dessa estratégia foram propostas para os Algoritmos Genéticos (POTTER e JONG, 2000), PSO (VAN DEN BERGH e ENGELBRECHT, 2004) e Evolução Diferencial (TRUNFIO, 2015).

49 2.7.3 Métodos Cooperativos ou Colaborativos

Conforme anteriormente mencionado, a otimização colaborativa consiste em tratar a solução do problema com uma abordagem similar a um ecossistema, consistindo de duas ou mais espécies (subpopulações) que evoluem ao longo do processo iterativo. Estas subpopulações podem interagir entre si (troca de informações das melhores soluções) ou enviar suas melhores soluções para serem processadas em um domínio (em uma configuração onde o domínio seria o mestre e as subpopulações seriam escravos). As subpopulações podem ser evoluídas por um mesmo algoritmo (utilizando condições iniciais diferentes, por exemplo) ou algoritmos distintos. Aplicações recentes dessa estratégia de manutenção da diversidade da população, foram propostas para o métodos PSO (NIU, ZHU e HE, 2007) e Bat Algorithm (JADDI, ABDULLAH e HAMDAN, 2015).

Em (NIU, ZHU e HE, 2007) é proposta uma metodologia de otimização colaborativa para o método PSO baseada em uma estrutura mestre-escravo. Nesse método, a cada geração, diferentes subpopulações baseadas no método PSO original otimizam a função sob análise (escravos). Após a solução de cada população, os melhores indivíduos de cada uma são passados para uma segunda instância denominada mestre, que é um método PSO modificado que atualiza a posição das partículas com base em quatro componentes: (i) componente de inércia, (ii) componente cognitiva baseada nas suas melhores soluções individuais, (iii) componente social baseada na sua melhor solução global e (iv) componente social baseada na melhor solução dos indivíduos enviados pelos escravos. Essa estratégia é representada na Figura 2.1.

50

Em (JADDI, ABDULLAH e HAMDAN, 2015), diferentes estruturas de algoritmos são aplicadas à Otimização Cooperativa baseada na Eco-localização de Morcegos (Bat Algorithm), sendo utilizadas ferramentas de computação paralela. Algumas dessas estruturas são:

a) Estratégia em Anel (Ring Stategy): nessa configuração, diferentes populações evoluem seus indivíduos em cada geração. Se a melhor solução de todas as populações não melhorar sua qualidade em um determinado número de iterações, as melhores soluções individuais são trocadas entre as populações. Essa estratégia é ilustrada na Figura 2.2 (a).

b) Estratégia Mestre-Escravo: analogamente ao método cooperativo apresentado para o PSO em (NIU, ZHU e HE, 2007), a cada geração, diferentes subpopulações denominadas escravos evoluem seus indivíduos e passam suas melhores soluções para uma segunda instância denominada de mestre. Essa estrutura é ilustrada na Figura 2.2 (b).

Figura 2.2 - Estrutura do algoritmo Cooperativo Bat: (a) Anel, (b) Mestre-Escravo.

c) Estrutura Anel-Mestre-Escravo: consiste em um acoplamento entre as metodologias anteriores: a cada geração, diferentes subpopulações passam suas melhores soluções para o mestre. Caso a melhor solução global não seja melhorada em um número pré- determinado de iterações, ocorre a troca entre as melhores soluções das subpopulações. Essa estrutura é ilustrada na Figura 2.3.

51

Figura 2.3 - Estrutura do algoritmo Cooperativo Bat: Anel-Mestre-Escravo.

Adicionalmente cita-se que é possível reiniciar a subpopulação caso a solução não melhore (convergência pré-matura por perda da diversidade da população).

No documento wesleyperes (páginas 70-75)