• Nenhum resultado encontrado

NSGA II – (Elitist Non-Dominated Sorting Genetic Algorithm)

4. MÉTODOS EVOLUTIVOS DE OTIMIZAÇÃO MULTIOBJETIVO

4.5 Algoritmos Genéticos (GAs)

4.5.2 NSGA II – (Elitist Non-Dominated Sorting Genetic Algorithm)

O NSGA II tem apresentado uma crescente aplicação, desde o seu desenvolvimento para otimização de problemas multiobjetivo, devido a sua capacidade de retornar resultados satisfatórios. Mitra e Gopinath (2004) aplicaram o método para otimizar um problema de operação de moagem industrial de uma usina de beneficiamento de minério de chumbo-zinco. Foram utilizadas duas funções objetivo e os autores concluem que o método foi capaz de gerar a fronteira de Pareto significativamente densa.

Shafaghat et al. (2008) utilizaram o NSGA II para otimizar dois modelos de redução de cavitação bidimensional em fluxo sujeito a sobrecavitação. Por meio deste estudo, foi possível obter as soluções (parâmetros) ótimos que minimizassem a cavitação conforme proposto. Hajabdollahi et al. (2012) buscaram maximizar a eficiência térmica e minimizar a taxa de custo simultaneamente de uma turbina instalada em uma planta termo econômica utilizando o NSGA II. Os resultados apresentaram certo conflito entre os dois objetivos, porém foi possível obter um aumento de 3,76% na eficiência e redução de 3,84% do custo total, simultaneamente.

Rezende et al. (2015) apresentaram uma comparação entre métodos heurísticos multiobjetivo para a minimização do desbalanceamento de massa de um sistema rotativo. Foi utilizado o NSGA II como um dos métodos, o qual apresentou resultados satisfatórios e

superiores aos outros métodos comparados. DePaula et al. (2015) na mesma linha, utilizaram o NSGA II para otimização da disponibilidade e custo de um sistema redundante e posteriormente realizar a comparação com outros métodos. O método foi capaz de retornar soluções ótimas dentro do esperado, e com melhor distribuição das mesmas sobre a fronteira de Pareto, quando comparado aos demais métodos.

O NSGA II foi proposto por Deb et al. (2001) devido a alguns pontos negativos (alto custo computacional, falta de elitismo e especificação de um parâmetro de partilha) apresentado pelo NSGA. Este método atua da mesma forma que o NSGA, porém incluiu-se o elitismo e uma medida da distância entre o indivíduo e seus vizinhos, o que é chamado de Comparação de Multidão (Crowding Distance).

Assim, o algoritmo trabalha da forma que se inicia a população inicial e a mesma é classificada conforme critério de não dominância e são separadas em fronteiras conforme o processo do NSGA. Em seguida, a população é selecionada por torneiro e reproduzida gerando indivíduos filhos. A população de filhos é, então, comparada com os indivíduos das primeiras fronteiras da população pai, e aqueles indivíduos da primeira fronteira que forem não dominados são, então, inseridos nas primeiras fronteiras da nova população e os indivíduos dominados são removidos. Esse processo é repetido nas gerações subsequentes, e o processo é ilustrado na Figura 4.3.

Figura 4-3 – Estrutura do NSGA II (Adaptado DEB, 2001)

No NSGA II, foi introduzido também o método de seleção conhecido como distância de multidão (crowding distance). Este método aproxima a densidade da vizinhança de um indivíduo, por meio da soma da distância média deste para seus indivíduos vizinhos para cada função objetivo. Desta forma, considera-se a crowding distance como uma forma de estimar o

perímetro do cuboide, no qual os vértices são definidos como os vizinhos mais próximos de um indivíduo. Assim, o valor do crowding distance apresenta uma relação inversa à densidade dos indivíduos (soluções) numa determinada região, ou seja, quanto maior for o seu valor, menor a densidade. A Figura 4.4 ilustra o esquema do operador de distância de multidão.

Figura 4-4 – Esquema do operador de distância de multidão (crowding distance) (Adaptado DEB, 2001)

O valor de crowding distance é calculado apenas para os indivíduos pertencentes a uma mesma fronteira não dominada. As soluções são ordenadas de ordem crescente em função do valor da função objetivo, e o valor da distância entre os indivíduos é calculado pela diferença entre o valor das funções objetivo de ambos, sendo necessária a normalização deste valor posteriormente. Para as soluções cujos valores da função objetivo são máximos e mínimos, é atribuído um valor infinito de distância, desta maneira, esses indivíduos são sempre mantidos na população externa, e obtém-se uma chance maior de participar da operação de cruzamento. Esta regra é válida para os demais indivíduos, ou seja, segundo Barbosa (2012), aqueles que possuírem maior valor de crowding distance irão deter maior chance de serem selecionados para a reprodução, possibilitando favorecer as soluções com localização nas regiões menos populosas.

Devido à atuação do operador de distância de multidão, o NSGA II é capaz de encontrar soluções com maior dispersão na fronteira de Pareto comparado a outros algoritmos. Fato este, que permite o método receber destaque nos estudos ao longo dos anos.

Algoritmo 1 – NSGA II

1: Entrar com os Parâmetros de Entrada. 2: Gerar a população inicial

3: Realizar seleção, cruzamento e mutação e posteriormente gerar população filha 4: Realizar a ordenação por não dominância em

5: Criar = { }

6: Enquanto + ≤ , copiar as soluções de em ;

7: Calcular a distância de multidão em , ordenando conforme as distâncias e copiando as primeiras | | soluções de para ;

8: Aplicar seleção, cruzamento e mutação para gerar a nova população ;

9: Se > , parar e gerar as soluções não dominadas no arquivo de saída, caso contrário, atribuir = + 1 e voltar ao segundo passo.

sendo P e Q, as populações pai e filho respectivamente, , população de não dominados da geração corrente n, , fronteiras de soluções não dominadas, nMax, o número de gerações máxima.

Segundo Deb et al. (2001), a complexidade do algoritmo genético NSGA II é da ordem de O(M N² ), sendo a soma do grau 2N para a ordenação das soluções não dominadas, O(M N

log N) para obter as distâncias de multidão e O(N log N) para passar as melhores soluções para

a população corrente, o que evidencia a redução do custo computacional comparado ao NSGA, o qual possuía ordem de O(M N³ ), sendo M o número de funções objetivo e N o tamanho da população.

Um ponto negativo do NSGA II é que, se o conjunto tem um tamanho maior que N, o processo de escolha de apenas N soluções, usando o crowding distance, faz com que sejam perdidas soluções com bom potencial (LOBATO, 2008).