• Nenhum resultado encontrado

NONDOMINATED SORTING GENETIC ALGORITHM (NSGA) - -II

No documento UNIVERSIDADE DE BRASÍLIA (páginas 67-72)

OTIMIZAÇÃO DE PROBLEMAS MULTI-OBJETIVO

5.3 NONDOMINATED SORTING GENETIC ALGORITHM (NSGA) - -II

A ideia por trás do processo de ordenação não dominada é utilizar o método de classifica-ção para enfatizar pontos que são considerados bons, ou seja, que se aproximam do objetivo do problema, junto a um método de nicho, que mantém subpopulações de bons pontos unidas em um mesmo conjunto. Esta é a base doNondominated Sorting Genetic Algorithm(NSGA) [84].

O algoritmo NSGA-II é uma derivação do NSGA. A versão mais antiga recebeu diver-sas críticas por sua complexidade,O(mN3), em que N é o tamanho da população e m o número de objetivos, falta de elitismo [85] e necessidade de especificação do parâmetro de compartilhamento δshare [84]. Dentre outros recursos, fazendo uso do recurso de elitismo, que acelera significativamente o desempenho de algoritmos genéticos [86], o NSGA-II é ca-paz de resolver problemas reais de maneira mais rápida e eficiente que o seu antecessor [87].

O algoritmo é descrito a seguir.

5.3.1 Ordenação rápida de soluções não dominadas

Para ordenar uma população N em acordo com o nível de não dominância de forma rápida, faz-se [3]:

1. Para cada solução, calcular duas entidades: (1)np - o número de soluções que domi-nam a solução p e (2) Tp, um conjunto de soluções dominadas por i (Complexidade O(mN2)). Todas as soluções na primeira fronteira de dominância terão o primeiro contador de dominância=0.

2. Para cada soluçãoi comni=0, visitar todos os membros q do conjuntoTi e reduzir o contador de dominância para 1 (um).

3. Se algum membro q no contador de dominância se tornar zero, ele será colocado em uma lista separadaQ e pertencerá à segunda fronteira não dominada.

4. O processo anterior é continuado com cada membro deQ e uma terceira fronteira é identificada.

Para cada solução a partir da segunda fronteira, o contador de dominânciani pode ser, no máximo,N−1, então cada soluçãoi vai ser visitada pelo menos N-1 vezes antes de seu contador de dominância se tornar nulo, quando a solução recebe um nível de dominância e nunca mais é visitada. A existência de N-1 leva a uma complexidadeO(N2), resultando em um totalO(M N2).

Pseudo código de ordenação rápida de soluções não dominadas Adaptado de [87]

Como foi visto anteriormente neste capítulo, testar diversas soluções distintas é uma forma de aumentar a probabilidade de obter melhores resultados, tendo em vista que diver-sificar reduz as chances de o algoritmo ficar preso em um ponto ótimo local. O NSGA-II propõe o uso de dois recursos com o objetivo de preservar a diversidade: a estimativa de densidade e o operador de comparação de multidão (crowded-comparison operator).

5.3.2.1 Estimativa de densidade

Para estimar a densidade de soluções em torno de um ponto em particular da população, toma-se a distância média de dois pontos (duas soluções), um em cada lado deste ponto de referência em cada um dos objetivos [87].

Essa distância id i st ance é chamada distância de multidão (crowding distance) e serve como uma estimativa do tamanho do maior cubóide que cerca um ponto i sem incluir ne-nhum outro ponto da população (crowding distance) [87], como visto na Figura 5.2.

O cálculo deid i st ance requer ordenar a população em ordem ascendente de acordo com cada função objetivo. Depois disto, é atribuído o valor∞às soluções extremas (soluções com função objetivo de maior e menor valor). As soluções intermediárias recebem um valor de distância igual à diferença entre o valor normalizado da funções de duas soluções adjacentes

Figura 5.2 – Ilustração da distância de multidão. Adaptado de [3]

a elas e o processo é repetido para todos os objetivos [3].

O valor global da distância de multidão é calculado como uma soma dos valores indivi-duais correspondentes a cada objetivo e cada objetivo é normalizado antes que o cálculo seja realizado. O pseudo-código apresentado abaixo mostra como se calcularid i st ance.

Pseudo-códigocrowding distanceadaptado de [87]

l = |I|

para cada i, faça I[i] = 0 para objetivo m

I = ordenar(I,m)

I[1]d i stânci a=I[l]d i stânci a= ∞ para i = 2 a (l-1)

I[1]d i stânci a=I[1]d i stânci a+(I[i+1]m−I[i−1]m)

Em que I[i]m se refere ao m-ésimo valor da função objetivo do i-ésimo indivíduo no conjuntoI. No pior caso, ou seja, quando todas as soluções estão na mesma fronteira, esta ordenação requerO(M N l og N)etapas de cálculo.

Após a atribuição de distância a todos os membros da população, é possível comparar duas soluções a partir do quanto elas se aproximam de outras. Quem tiver menor valor tem mais soluções por perto [3]. Essa comparação é feita pelo operador de comparação de multidão, apresentado a seguir.

5.3.2.2 Operador de Comparação de Multidão

O operador de comparação de multidão é o recurso utilizado para levar os estágios do algoritmo à fronteira de Pareto. Supondo que cada indivíduo i da população tenha dois atributos 1) rank de não dominância (ir ank) e 2) distância de multidão (id i stânci a) é possível

definir uma ordem parcial<ncomo [3]:

i<n j se (ir ank<jr ank) ou ((ir ank=jr ank) e ((id i stânci a>id i stânci a)

(5.5)

Isto significa que, entre duas soluções com diferentes ranks de não dominância, a solução com menor rank deve ser a escolhida. Por outro lado, se as duas soluções estão na mesma fonteira, então, dá-se preferência a uma que esteja localizada em uma região de maior dis-tância de aglomeração [3]. Isto encerra os recursos utilizados no NSGA-II, sendo possível apresentar o laço principal do NSGA-II.

5.3.3 Laço Principal do NSGA-II

O laço principal do NSGA-II é ilustrado pela Figura 5.3 e começa com a criação de uma população aleatóriaP0. A solução de cada função objetivo é calculada para cada indivíduo, processo este que é seguido pela atribuição do nível de dominância às soluções (1 é o melhor nível, 2 o próximo e assim por diante [3] quando se trata de um objetivo de minimização).

Essa população gera uma proleQ0 de tamanho N por meio dos processos tradicionais de recombinação e mutação, seguindo pelas fases de elitismo introduzido pelo NSGA-II e des-tacadas em azul na Figura 5.3.

Primeiro, uma populaçãoRt=PtQt é formada, em queRt possui2N indivíduos. Esta população é ordenada em acordo com a não-dominância de seus membros e, já que tanto os membros atuais quanto os passados da população estão presentes em Rt, o elitismo é garantido [3].

Depois deste processo, as soluções que pertencem ao conjunto de soluções não domina-dasF1são as principais soluções dentre os membros da população combinada. Se F1<N, todos os seus membros são selecionados para a nova população Pt+1, por outro lado, ou-tros membros vão sendo selecionados das fronteiras inferiores até quePt+1também tenhaN indivíduos [3].

A populaçãoPt+1 passa pelo processo de seleção (com base na distância de multidão), recombinação e mutação, gerando a prole Pt+1 de tamanho N. O processo se repete até que a geração máxima seja alcançada [3]. Este limite pode ser dado por uma quantidade pré-definida de iterações ou por critérios de convergência.

O pseudo-código do laço principal pode ser visto a seguir, concluindo a apresentação do algortimo.

Figura 5.3 – Ilustração do Laço Principal do NSGA-II

Pseudo-código laço principal NSGA-II adaptado de [3]

Rt=RtQt

F = Ordenação Rápida de Soluções Não Dominadas (Rt) Pt+1= ; e i=1

Enquanto|Pt+1| + |Fi| ≥N crowding distance(Fi) Pt+1=Pt+1Fi i = i+1

Ordene(Fi,<n)

Pt+1=Pt+1Fi[1 : (N− |Pt+1|)]Qt+1=nov aPopul ac ao(Pt+1)

PROPOSTA DE FRAMEWORK PARA

No documento UNIVERSIDADE DE BRASÍLIA (páginas 67-72)