• Nenhum resultado encontrado

Métodos Heurísticos

3.6 Otimização Multiobjetivo Evolutiva

A qualificação das metodologias de busca de soluções eficientes depende do co-nhecimento de dificuldades de solução usualmente encontradas nos problemas mul-tiobjetivo. Assim como na otimização mono-objetivo, as dificuldades de resolução de problemas multiobjetivo se devem à presença de restrições e do comportamento das funções objetivo.

As principais dificuldades encontradas na otimização de problemas multiobjetivo são:

• não-convexidade;

• descontinuidades; e

• multimodalidade ou existência de múltiplos ótimos locais ou globais.

Além destas dificuldades, pode-se citar a não uniformidade das soluções no espaço dos objetivos. Certos métodos de resolução podem apresentar características que concentram as soluções em determinadas áreas. Se estas regiões não forem próximas às soluções Pareto ou se elas contemplarem apenas uma parte da fronteira ótima, a caracterização de todo o conjunto Pareto-ótimo pode ser comprometida.

O objetivo deste trabalho é desenvolver um método de otimização multiobjetivo à posteriori, baseado em algoritmos evolutivos aplicados ao Problema de Corte e Empacotamento Bidimensional. Os métodos evolutivos para otimização multiobje-tivo são detalhados na seção a seguir.

3.6 Otimização Multiobjetivo Evolutiva

Os métodos evolutivos, ou métodos de busca por populações, trabalham com um conjunto de soluções corrente simultaneamente. Além disso, a população sub-seqüente é baseada nas informações obtidas em mais de um ponto no espaço de soluções. Essas informações dizem respeito aos valores das funções objetivo, as quais permitem determinar quais soluções são melhores. Os métodos de busca por populações são, portanto, os que mais se aproximam do conceito de algoritmos de otimização para problemas genéricos (multimodais, com restrições, convexos e não convexos, etc.).

Os métodos de busca por populações, no entanto, têm suas limitações. Dentre elas, está a dependência do método com relação à distribuição da população inicial. Dificilmente o método convergirá se o ótimo global estiver afastado da região onde se concentra a população inicial. Assim, fica claro que a eficiência desses métodos depende de uma população inicial que explore bem todo o espaço de busca. Outra desvantagem é a velocidade de convergência. Comparando com outros métodos, eles podem ser mais lentos, por necessitar de maior número de avaliações do problema. O esforço computacional desses métodos pode ser maior para atingir os mesmos resultados (quando os outros métodos obtém um resultado).

Os aspectos apresentados, nesta seção, somados às características do problema multiobjetivo aqui tratado, mostram que o grupo mais adequado para sua resolução é o de busca por população.

3.6 Algoritmos Multiobjetivos baseados em AG’s 42

3.6.1 Algoritmos Multiobjetivos baseados em Algoritmos

Gé-neticos

O surgimento dos Algoritmos Genéticos Multiobjetivos é recente. O primeiro trabalho foi proposto por Schaffer (1984). Após este trabalho nenhum estudo rele-vante foi apresentado por quase uma década, com exceção de um esboço apresentado no livro de Goldberg (1989), de um novo procedimento de ordenamento de soluções não-dominadas. Este livro tornou-se um marco dos algoritmos evolutivos e alavan-cou o tratamento de problemas de otimização multiobjetivo. Baseados nas idéias conceituais apresentadas por Goldberg, diversos pesquisadores passaram a desenvol-ver diferentes desenvol-versões de algoritmos de otimização multiobjetivos.

Desde Goldberg, o número de publicações nesta área tem crescido muito (estão disponíveis atualmente em Coello (1999) mais de 2500 referências). Coello (1999) apresenta uma revisão, que classifica e avalia inúmeras técnicas de otimização mul-tiobjetivos. Esse trabalho ainda mostra que a maioria dos métodos utilizados é baseado nos AG mono-objetivo.

A principal diferença entre os AG mono-objetivo e multiobjetivo está, basica-mente, na maneira como a seleção beneficia as soluções não-dominadas e as soluções mais dispersas (situadas em regiões menos povoadas). De acordo com autores já citados, os principais métodos propostos e suas estratégias para a seleção são:

• Vector Evaluated Genetic Algorithm − VEGA (Schaffer, 1984): o operador genético de seleção é modificado de forma a criar populações separadas para cada objetivo. Com isso, são geradas especializações, ou seja, cada população tende ao ponto ótimo para aquele objetivo e não para a fronteira Pareto-ótima associada ao problema;

• Multiobjective Genetic Algorithm−MOGA (Fonseca e Fleming, 1993): a idéia do MOGA é estabelecer uma ordem entre os indivíduos: os não-dominados têm classificação igual, já os dominados são penalizados de acordo com sua dominância. A dificuldade está em encontrar uma forma de intercalar estes dois grupos, de modo a permitir uma boa disposição da fronteira Pareto-ótima;

• Nondominated Sorting Genetic Algorithm − NSGA I (Srinivas e Deb, 1993), NSGA II (Deb et al., 2002): neste método, somente as soluções não-dominadas são selecionadas. Por todas serem eficientes, terão a mesma probabilidade para se reproduzir. Nesta metodologia, a desvantagem é a dificuldade em conseguir manter a diversidade da população. A falta de diversidade pode gerar uma fronteira incompleta, ou seja, a concentração de soluções em algumas regiões;

• Niched Pareto Genetic Algorithm − NPGA (Horn e Nafpliotis, 1993): uma das técnicas de seleção para AG mono-objetivo é o torneio entre os indivíduos (Goldberg, 1989). Os autores implementaram um torneio no qual a regra de competição é a idéia de dominância por Pareto. Neste método, existe a dificuldade de determinar quais e quantos indivíduos participarão do torneio;

• Método das Populações Intermediárias (Viennet e Marc, 1996): o método segue três passos básicos: a determinação dos pontos mínimos de cada objetivo; a procura de uma população intermediária (baseada na escolha denindivíduos

3.6 Algoritmos Multiobjetivos baseados em AG’s 43 para cada objetivo) e, a partir desta população, a definição da fronteira Pareto-ótima. A principal restrição desta metodologia é que em cada objetivo deve haver um único ótimo no espaço de estudo (função unimodal);

• Strength Pareto Evolutionary Algorithm − SPEA I (Zitzler e Thiele, 1998), SPEA II (Zitzler, 1999) e (Zitzler et al., 2001): um escalar indicando uma medida de força para cada indivíduo é criado para o processo de seleção. Os indivíduos não-dominados devem possuir maior força.

Diversos trabalhos apresentam comparações feitas entre os vários algoritmos de-senvolvidos: Zitzler (1999), Dias (1999) e Régnier (2003). De acordo com estes trabalhos, os algoritmos SPEA−II e NSGA−II parecem ser os métodos mais sóli-dos.

Entretanto, para escolher ou desenvolver um algoritmo evolutivo, é necessário conhecer seus mecanismos básicos e sua interação com a busca multiobjetivo. Em geral, um algoritmo evolutivo é caracterizado por um conjunto de soluções candi-datas que, após serem submetidas a um processo de seleção, são manipuladas por operadores genéticos, com o intuito de melhorar o conjunto.

Em razão de seu paralelismo, os métodos baseados em AG’s têm o potencial de encontrar múltiplas soluções em uma única iteração. No entanto, nem sempre é possível encontrar soluções ótimas, sendo menos provável ainda encontrar o Pareto-ótimo completo. Em conseqüencia disso, as metas para a otimização multiobjetivo passam a ser:

(i) Minimizar a distância entre a fronteira não-dominada obtida e a fronteira Pareto-ótima;

(ii) Manter uma boa distribuição das soluções encontradas.

Além dos aspectos apresentados acima, existem duas questões importantes na resolução de um problema de otimização multiobjetivo através de métodos baseados em AG:

(i) Como atribuir a função de aptidão às soluções, sendo esta a principal diferença entre um AG multiobjetivo e um AG mono-objetivo. Devido à indiferença en-tre as soluções dominantes de um problema multiobjetivo, é necessário definir algumas estratégias para calcular a função de aptidão e para selecionar as soluções com maior probabilidade de reprodução.

(ii) Como manter a diversidade da população, evitando uma convergência prema-tura, e garantindo a obtenção de uma fronteira bem distribuída.

Neste trabalho, foi utilizado um algoritmo evolutivo multiobjetivo baseado no NSGA-II, descrito a seguir.

3.6 Algoritmos Multiobjetivos baseados em AG’s 44 3.6.1.1 Nondominated Sorting Genetic Algorithm - NSGA-II

O algoritmo NSGA, proposto por Srinivas e Deb (1995) é uma das diversas implementações baseadas nas sugestões de Goldberg (1989). Nesse algoritmo, é utilizado um procedimento de seleção por ordenamento, que prioriza as soluções não-dominadas correntes, além de um método voltado para a manutenção da diversidade da população.

A única diferença desta implementação em relação a um algoritmo genético sim-ples está na maneira como o operador de seleção é empregado. Tanto o operador de recombinação quanto o operador de mutação são os usuais da técnica.

O NSGA foi um dos primeiros algoritmos evolutivos multiobjetivo desenvolvido. No entanto, ao longo dos anos, esse algoritmo recebeu críticas no que se referia a:

(i) Alta complexidade computacional, o que torna o método computacionalmente caro para populações grandes;

(ii) Ausência de uma estratégia de elitismo: Rudolph (1999) e Zitzler et al. (2000). mostraram que o elitismo é capaz de melhorar significativamente o desempenho de um algoritmo genético, além de prevenir a perda de boas soluções;

(iii) Dificuldade em especificar o parâmetro de compartilhamento σshare, utilizado na função de compartilhamento, que mantém a diversidade da população. Este parâmetro está relacionado com a distância métrica escolhida para calcular a medida da proximidade de dois membros da população.

Em vista dessas limitações, os autores do NSGA propuseram, em (Deb et al., 2002), uma versão melhorada, chamada de NSGA-II . Nos resultados encontrados para diversos problemas difíceis, em termos de encontrar um conjunto diversificado de soluções e convergir para soluções próximas do verdadeiro Pareto-ótimo, o NSGA-II superou os resultados de dois algoritmos multiobjetivos contemporâneos: o PAES (Knowles e Corne, 1999) e o SPEA (Zitzler, 1999).

Nas próximas seções, são descritos o algoritmo de ordenação de soluções não-dominadas, que cria as fronteiras de soluções no algoritmo, e o algoritmo crowding distance, responsável por manter a diversidade no NSGA-II.

Fast Non-Dominated Sort

O procedimento Fast Non Dominated Sort atribui um valor de aptidão às soluções da população de acordo com o seu nível de não-dominância. Inicialmente, o Fast Non Dominated Sort encontra, para cada solução p:

(i) O contador de dominâncianp, que mostra o número de soluções que dominam a solução p.

(ii) O conjunto Sp, formado pelas soluções dominadas por p.

Todas as soluções da primeira fronteira não-dominada (soluções da população que dominam todas as outras) têm o contador de dominância np igual a zero. Para cada solução p com np = 0, são visitadas as q soluções pertencente ao conjunto Sp, e o contador de dominância nq é decrementado em uma unidade. As soluções q que

3.6 Algoritmos Multiobjetivos baseados em AG’s 45 tiverem seu contador de dominância nq reduzido a zero são, então, separadas em uma lista Q. Estas soluções formam a segunda fronteira. O procedimento acima é repetido para cada membro de Q, sendo identificada assim a terceira fronteira. O processo continua até que todas as fronteiras sejam identificadas.

Ao fim do procedimentoFast Non Dominated Sort, as soluções estão agrupadas em diferentes fronteiras, conforme a Fig. 3.9, e possuem um atributo, chamado de nondomination rank, que corresponde ao número da fronteira a qual pertencem. O pseudocódigo do procedimento Fast Non Dominated Sort é apresentado na Fig. 3.10. f2 F3 F2 f1 F1

Figura 3.9: Fronteiras geradas pelo método Fast-non-dominated-sort.

Crowding Distance

As soluções que pertencem a uma mesma fronteira, identificada com o procedimento Fast Non Dominated Sort, possuem, obviamente, o mesmo nível de dominância, ou seja, são indiferentes. Portanto, para classificá-las, torna-se necessário um outro parâmetro. No NSGA-II, é utilizada a proximidade das soluções indiferentes. Nesse caso, as soluções que estão mais distantes de suas soluções vizinhas são favorecidas. Para isso, é calculada, para cada solução, uma estimativa do número de soluções que a rodeiam no espaço objetivo.

Inicialmente as soluções são ordenadas em forma crescente do primeiro objetivo, ou seja, z1, . . . , zn, em que n é o número de soluções na fronteira considerada. Para cada ponto zi, calcula-se a distância:

dj(fi) =fj(zi+1)−fj(zi−1) (3.3) Este procedimento é repetido para j = 1, . . . , m, considerando-se que existam m

objetivos a serem satisfeitos.

A estimativa das soluções em volta de uma determinada solução é, então, dada por: cd(zi) = m X j=1 dj (3.4)

3.6 Algoritmos Multiobjetivos baseados em AG’s 46 Procedimento Fast Non Dominated Sort

1 Para Cada p∈P

2 Sp =∅

3 np = 0

4 Para Cada q∈P

5 Se (p≺q) faça(Se p dominaq)

6 Sp =Sp ∪ {q} (Adicione q ao conjunto de soluções dominadas por p) 7 Senão se (q≺p)faça

8 np = np + 1

9 Se (np = 0) faça (p pertence à primeira fronteira)

10 prank = 1

11 F1= F1 ∪ {p}

12 i= 1 (Inicializa o contador de fronteiras) 13 Enquanto Fi 6=∅

14 Q=∅ ( Armazena os membros da próxima fronteira) 15 Para Cada p ∈ Fi

16 Para Cada q ∈ Sp

17 nq = nq − 1

18 Se (nq = 0)faça ( q pertence à próxima fronteira)

19 qrank =i+ 1

20 Q=Q ∪ {q}

21 i=i+ 1

22 Fi =Q

fim Fast Non Dominated Sort;

Figura 3.10: pseudocódigo do procedimento Fast Non Dominated Sort. Esta medida é conhecida como Crowding distance, também citada na literatura com o nome de distância de agrupamento, e indica o valor do perímetro do cubóide criado a partir de uma solução e tendo, como vértices, suas soluções vi-zinhas. Às soluções extremas z1 e zn são atribuídos valores de Crowding distance arbitrariamente grandes (e, portanto, sempre são priorizadas no método elitista).

Após atribuir um valor de Crowding distance a cada uma das soluções de uma determinada fronteira, torna-se possível comparar duas soluções através de suas medidas de proximidade com as demais soluções. A Fig. 3.11 ilustra a crowding distance para dois objetivos.

A solução com menor valor dessa medida de distância tem, portanto, mais so-luções em sua volta, quando comparada às outras soso-luções. Essa é a medida usada pelo operador de comparação Crowded-Comparison Operator, descrito a seguir.

O algoritmo para cálculo da crowding distance das n soluções de uma fronteira

3.6 Algoritmos Multiobjetivos baseados em AG’s 47 f2 f1 i i+1 i-1 Cubóide

Figura 3.11: Crowding distance.

Algoritmo Crowding distance

1 para cada pontozi ∈f(Sf ront) faça 2 dist(zi) = 0

3 para cada objetivoj faça

4 Ordene os pontos em Sf ront de acordo com o objetivo j

obtendo z1, ..., zn; 5 dist(z1)= α

6 dist(zn) =α (α é um valor suficientemente grande) 7 para i= 2 até (n−1)faça

8 dist(zi) =dist(zi) + (fj(zi+ 1)−fj(zi−1))

(fj(zi) é o valor da j-ésima função objetivo em zi)

9 fim-para

10 fim-para 11 fim-para

Figura 3.12: Pseudocódigo do procedimento crowding distance. Crowded-Comparison Operator

Ocrowded-comparison operator (≺n) guia o processo de seleção nos diferentes está-gios do algoritmo, em direção a uma fronteira Pareto-ótima uniformemente distri-buída.

Assim, assumindo que todo indivíduoi da população tem dois atributos: (i) nondomination rank (irank);

(ii) crowding distance (idist);

pode-se definir a seguinte ordem parcial (≺n):

3.6 Algoritmos Multiobjetivos baseados em AG’s 48 Isso quer dizer que, entre duas soluções com ranks diferentes, tem a preferência aquela com menor rank. Por outro lado, se duas soluções estão na mesma fronteira (mesmo rank), prefere-se aquela que está em uma região menos povoada.

A apresentação dos procedimentos acima permite a descrição do algoritmo NSGA-II, feita a seguir.

Algoritmo NSGA-II

O algoritmo inicia-se com a geração aleatória de uma população inicial, P0, de tamanho N. Esta população é ordenada de acordo o critério de não-dominância.

Em função do seu nível de não-dominância, cada solução recebe um rank, cor-respondente ao índice da fronteira à qual a solução pertence (1 é melhor nível, 2 é o segundo melhor nível, e assim por diante).

Após a classificação das soluções, é gerada uma nova populaçãoQ0, de tamanho

N, através dos mecanismos de seleção, recombinação e mutação. Como o elitismo é introduzido pela comparação da população corrente com a população anterior, o procedimento é diferente após a geração inicial. A seguir, o algoritmo é descrito para a t−ésima geração. O pseudocódigo do algoritmo, para a t−ésima geração, é apresentado na Fig. Procedimento NSGA-II 1 Rt=PtSQt 2 F =fast-nondominated-sort(Rt) 3 Pt+1 = 0 4 i= 1 5 Enquanto |Pt+1|+|Fi|≤N 6 crowding-distance(Fi) 7 Pt+1 =Pt+1SFi 8 i=i+ 1 9 Ordene(Fi,≺n) 10 Pt+1 =Pt+1SFi[1 : (N− |Pt+1|)]

11 Qt+1 =crie−nova−populao(Pt+1)

12 t =t+ 1

Figura 3.13: Pseudocódigo do procedimento NSGA-II.

Inicialmente, com a combinação das populaçõesPt eQt, é formada a população

Rt, de tamanho 2N. A população Rt é então ordenada por não-dominância. Como todas as populações (anteriores e corrente) estão incluídas em Rt, é garantido o elitismo do algoritmo.

As soluções pertencentes aF1 são as melhores soluções na população combinada. Se o tamanho de F1 é menor que N, todas as soluções de F1 são escolhidas para a nova população, Pt+1. Para completar Pt+1, são escolhidos os indivíduos das fronteiras subseqüentes. Deste modo, as próximas soluções a serem escolhidas são

3.6 Algoritmos Multiobjetivos baseados em AG’s 49 aquelas pertencentes à F2, seguidas pelas soluções de F3, e assim por diante. Este procedimento continua, até que não seja mais possível acomodar inteiramente uma fronteira. A última fronteira além da qual não podem mais ser adicionadas novas fronteiras será chamada de FL.

Geralmente, a soma das soluções de todas as fronteiras entre F1 e FL são mai-ores que o tamanho da população. Para que sejam escolhidos, então, não mais que

N indivíduos, as soluções da fronteira FL são ordenadas de acordo com o crowded-comparison operator≺n, em ordem decrescente. Em seguida, para finalizar o preen-chimento da nova população, são escolhidas as soluções com maior valor decrowding distance, seguindo a lista ordenada obtida acima. Um esquema do comportamento do NSGA-II é mostrado na Fig. 3.14.

P

t

Q

t

R

t

F

1

F

2

F

3

P

t+1 Rejeitadas Crowding Distance Non-dominated Sorting

Figura 3.14: Comportamento do NSGA−II.

A nova populaçãoPt+1, de tamanhoN, passa agora pelos processos de seleção, crossover e mutação, dando origem a uma nova população Qt+1, de tamanho N.

Neste trabalho, o método NSGA-II foi adaptado para sua aplicação ao Problema de Corte de Estoque Multiobjetivo. As principais adaptações estão nos operadores de seleção, recombinação e mutação. Além disso, foi necessária a utilização de outras heurísticas e metaheurísticas para a obtenção de soluções que pudessem constituir a população inicial do NSGA-II. O Capítulo 5 apresenta os detalhes da implementação Algoritmo Evolutivo Multiobjetivo (AEMO) aplicado ao PCEB.

Capítulo 4

Algoritmos Evolutivos aplicados ao

Documentos relacionados