• Nenhum resultado encontrado

Seleção por torneio baseado na dominância do pareto 6: Se (Somente candidato 1 dominado){

Estudos Preliminares

N. Fanouts Corte

5: Seleção por torneio baseado na dominância do pareto 6: Se (Somente candidato 1 dominado){

7: Seleciona candidato 2

8: Senão se ( Somente candidato 2 dominado)

9: Seleciona candidato 1

10: senão (Ambos os candidatos dominados ou ambos não dominados)

11: Executa compartilhamento de aptidão

12: Seleciona candidato com menor contador de nicho

13: }

14: Executa cruzamento de um ponto 15: Executa mutação

16: Calcula valores de aptidão da nova população 17: }

algoritmos, feita em (ZITZLER, DEB e THIELE, 2000), o NPGA foi ranqueado em quinta colocação.

2.4.2.2.

PAES

O algoritmo PAES (Pareto Archived Evolution Strategy) (KNOWLES e CORNE, 2000), inicialmente proposto por Knowles e Corne, surgiu da tentativa de resolver problemas de roteamento de redes de computadores. Eles observaram que uma busca local, em problemas mono-objetivos, apresentava um desempenho melhor do que abordagens baseadas em população. Baseado nisso, foi desenvolvido o algoritmo evolucionário de otimização muti-objetiva, utilizando busca local. O código principal do algoritmo é mostrado na Figura 21.

O PAES é dividido em três partes: a geração da solução candidata, a função de aceitação da solução candidata e o arquivo com soluções não dominadas. Inicialmente é gerada uma solução aleatória e adicionada a um arquivo externo (linha 2). A partir daí, os ciclos se repetem. Em cada ciclo, é gerada uma nova solução m a partir da mutação da solução atual c (linha 3). Em seguida, é feita uma análise para observar se c domina m (linha 5). Caso domine, então m é descartada (linha 6). Caso c seja dominada por m (linha 7), então m é adicionada ao arquivo externo (linha 8). Caso m seja dominada por algum membro do arquivo externo (linha 9) então ela é descartada (linha 10). Se nenhuma dessas condições for verdadeira, então é aplicada a função teste para determinar qual será a nova solução e se m deverá ser adicionada ao arquivo externo (linha 11) . Ao final do algoritmo, o conjunto de soluções contido no arquivo externo representa a frente pareto final encontrado pelo algoritmo.

1: PAES{

2: gera solução inicial c e adiciona ao arquivo 3: Para cada geração faça {

4: m = mutação(c); 5: se (c domina m)

6: descarta m

7: senão se (m domina c)

8: troca c com m e adiciona m ao arquivo

9: senão se ( m é dominado por qualquer membro do arquivo) 10: descarta m

11: senão aplica teste(c, m, arquivo) para determinar qual será a nova solução corrente e se m

será adicionado ao arquivo 12: }

A função de aceitação de m, no caso em que m e as demais soluções do arquivo são incomparáveis, teste(c, m, arquivo), é baseada na densidade da região onde se encontra m para determinar se ela fará parte do arquivo externo. O procedimento é mostrado na Figura 22. O método de cálculo de densidade é baseado na divisão do pareto em hipergrades.

De acordo com a Figura 22, a atualização das soluções no arquivo externo é baseado na densidade das soluções. Caso o arquivo externo não esteja cheio (linha 2), a solução que sofreu mutação é adicionada ao arquivo (linha 3) e a escolha da nova solução atual vai ser baseada em quem tiver menor densidade entre a solução que sofreu mutação e a solução original (linhas 4 a 6). Caso o arquivo externo esteja cheio (linha 7) e a solução que sofreu mutação esteja em uma região menos densa que algum elemento do arquivo externo (linha 8), então ela substituirá o elemento que estiver na região mais densa. Neste caso, a definição da solução atual vai ser baseada em quem tiver menor densidade entre a solução que sofreu mutação e a solução original (linhas 10 a 12). Caso o arquivo externo esteja cheio e a solução que sofreu mutação esteja em uma região mais densa que qualquer elemento do arquivo externo (linha 13), não haverá atualização do arquivo externo, será apenas definida a solução atual baseada em quem tiver a menor densidade entre a solução que sofreu mutação e a solução original.

Como características do PAES, destaca-se o fato do mesmo apresentar um bom desempenho em paisagens que são bem comportadas, isto é, não multimodais, e de não

1: teste (c, m, arquivo){

2: se o arquivo não está cheio 3: adiciona m ao arquivo

4: se ( m está em uma região menos populosa do que c) 5: aceita m como a solução atual

6: senão mantém c como a solução atual 7: senão

8: se (m está em uma região menos populosa do que x para todo membro x do arquivo)

9: adiciona m ao arquivo e remove o membro do arquivo da região mais populosa 10: se (m está em uma região menos populosa do que c)

11: aceita m como a nova solução 12: senão mantém c como solução atual 13: senão

14: se (m está em uma região menos populosa do que c)

15: aceita m como solução atual 16: senão mantém c como solução atual

17: }

Figura 22. Pseudocódigo da função de aceitação de uma solução, função teste (Adaptado de (KNOWLES e CORNE, 2002))

necessitar definir um parâmetro de tamanho de nicho ou de grade na análise da densidade de soluções.

2.4.2.3.

NSGA-II

O NSGA-II (Non-Dominated Sorting Genetic Algorithm) (DEB, PRATAP, et al., 2002) faz parte da classe dos algoritmos genéticos elitistas multiobjetivos. O elitismo é uma técnica que evita a perda dos atuais melhores membros da população e ajuda a alcançar melhores resultados de convergência em MOEAs (ZITZLER, DEB e THIELE, 2000).

O NSGA-II é atualmente um dos mais populares algoritmos evolucionários multiobjetivos que se baseia na comparação da dominância do pareto e se diferencia do seu precursor, o NSGA, pela capacidade de realizar o ordenamento não dominado (construir as frentes pareto) com complexidade de O(MN2), enquanto o algoritmo original requer complexidade O(MN3). Neste caso, M é o número de objetivos e N é o tamanho da população. Os algoritmos baseados em pareto dominância apresentam bons resultados para problemas com até 3 objetivos (WANG, PURSHOUSE e FLEMING, 2013).

Para estimativa da densidade de soluções ao redor de um ponto particular da população, o NSGA-II utiliza uma medida de distância que estima o tamanho do maior cubóide encapsulando em um ponto i sem encapsular nenhum de seus vizinhos. Essa medida é chamada de distância de agrupamento (crowding distance). A distância de agrupamento é calculada para cada frente pareto. A Figura 23 ilustra a distância de agrupamento para a i-ésima solução.

Para realizar o rápido ordenamento, o NSGA-II atribui a cada indivíduo i duas entidades: (1), ni é o número de soluções que dominam a solução i. (2) Si é o conjunto

de soluções que a solução i domina. Desta forma, é fácil identificar os indivíduos da primeira frente pareto ( : são aqueles que possuem o ni igual 0 (zero). Para cada

indivíduo da frente atual (primeira frente) são visitados cada membro j do conjunto Si e

o contador nj é reduzido de 1 (um). Todo membro j cujo contador nj tornar-se 0 (zero),

fará parte de uma lista , e posteriormente constituirá a próxima frente pareto ( que tornar-se-á a frente atual. O processo continua até que todos os indivíduos sejam ordenados. O pseudocódigo do ordenamento não dominado é mostrado na Figura 24.

Figura 24. Pseudocódigo do ordenamento não dominado (DEB, PRATAP, et al., 2002)

O pseudocódigo para a determinação da distância de agrupamento de um conjunto é mostrado na Figura 25. Para cada objeto m, as soluções são ordenadas de acordo com o valor da m-ésima função objetivo. A distância de agrupamento atribuída aos elementos das fronteiras (primeiro e ultimo elementos da lista ordenada) é

1: Ordenamento Rápido Não Dominado (P){