• Nenhum resultado encontrado

Técnicas de Otimização de Problemas Multiobjetivo Esta seção tem por objetivo ilustrar os principais métodos utilizados para prover a otimiza-

4 Otimização Multiobjetivo

4.2 Técnicas de Otimização de Problemas Multiobjetivo Esta seção tem por objetivo ilustrar os principais métodos utilizados para prover a otimiza-

ção multiobjetivo. Especificamente, serão discutidos os algoritmos evolutionários e adaptações de metaheurísticas.

1Neste caso pode-se ter a fronteira de pareto ótima ou uma fronteira formada por unir todas as soluções não dominadas dos conjuntos considerados.

2O fitness é uma forma de qualificar um indivíduo, ou seja, dar um valor de mérito. O valor de fitness de um indivíduo pode ser usados em vários operações de um algoritmo multiobjetivo

4.2.1 Algoritmos Evolucionários

Os algoritmos evolucionários são intensamente empregados na solução de otimização mul- tiobjetivo. Eles são caracterizados pelo uso de operadores de recombinação e mutação, em mimetização aos métodos de evolução natural. Além disso, estes métodos mantém uma popu- lação de indivíduos (soluções para o problema tratado) desde o início de sua execução até sua conclusão.

Os principais algoritmos da literatura são ilustrados nesta seção. O objetivo é fazer uma descrição geral das abordagens utilizadas. Os algoritmos que tem relação direta com a pesquisa tem seus detalhes de implementação descritos nos apêndices A, B e C.

Abordagem não Elitista

O primeiro algoritmo multiobjetivo chamado Vector Evaluated Genetic Algorithm (VEGA) foi proposto por Schaffer (1984). A ideia do algoritmo é fazer a seleção de indivíduos para recombinação levando em consideração cada objetivo. Deste modo, cada parcela do conjunto de indivíduos selecionados está guiando a busca em uma direção específica da fronteira de pareto.

O trabalho pioneiro no uso da relação de dominância foi realizado por Fonseca e Fleming (1993) que propuseram o MOGA. A ideia principal é associar um rank para os indivíduos com base no conceito de dominância. Este rank consiste em 1 + n, onde n representa o número de soluções que dominam o indivíduo. Os indivíduos não dominados são selecionados para recombinação.

Outro trabalho utilizando a abordagem puramente multiobjetivo foi proposto por Srinivas e Deb (1994), o Nondominated Sorting Genetic Algorithm (NSGA). Este trabalho apresenta um importante aspecto relacionado a avaliação de fitness, onde se busca preservar a diversidade na fronteira de pareto e também maior aproximação à fronteira de pareto ótima. O procedimento classifica as soluções da população corrente em classes de fronteiras. A primeira classe recebe todos os indivíduos não-dominados da população, os indivíduos recebem valor de rank igual a 1. As classes seguintes são definidas com a avaliação da população sem considerar os indivíduos já classificados anteriormente e o valor de rank para cada classe vai sendo incrementado em 1.

Abordagem Elistista

O primeiro procedimento que surgiu na literatura seguindo a ideia de elitismo foi proposto por Zitzler e Thiele (1998), o Strength Pareto Evolutionary Algorithm (SPEA). Uma contri- buição interessante deste trabalho foi a ideia de manter uma população externa de soluções não-dominadas, os indivíduos presentes na população externa também são incluídos no pro- cesso de recombinação. O procedimento de avaliação de fitness dos indivíduos consiste em unir a população corrente e os indivíduos presentes na população externa. Deste modo, os indivíduos não dominados que estão presentes na união da população corrente com a população externa formarão a nova população externa. Não há controle no tamanho da população.

Algumas mudanças foram realizadas no SPEA gerando uma nova versão do algoritmo (ZITZLER; LAUMANNS; THIELE, 2001), SPEA2. Este procedimento difere da versão an- terior em três aspectos. Primeiro, a atribuição de fitness de um indivíduo é determinada por três fatores: número de indivíduos dominados - strength; soma dos valores de strength de cada indivíduo que o domine; informação de densidade baseado no k-ésimo vizinho mais próximo. Esta última informação visa diferenciar indivíduos que possuam as duas primeiras informações semelhantes. Segundo, o tamanho do arquivo é fixo, diferentemente da primeira versão. Por fim, é empregado um mecanismo de truncamento quando o número de soluções excede o limite de tamanho do arquivo ao invés de usar um arquivo com tamanho ilimitado (esta estratégia pri- vilegia soluções mais afastadas entre si). Mais detalhes sobre a implementaçao são discutidas no apendice B.

Seguindo esta linha de abordagens elitistas Deb et al. (2002) propuseram uma versão elitista do NSGA chamado, simplesmente, de NSGA2. O procedimento consiste em unir os membros da população com os filhos gerados em uma única população. Em seguida classificam-se os indivíduos em classes como é feito no NSGA. Os indivíduos das classes definidas vão sendo adicionados a nova população. Caso a última classe que esteja sendo considerada tenha mais pontos que a população ainda suporte (população não atingiu seu limite de indivíduos), então aplica-se um mecanismo de seleção para decidir que pontos vão para população. Tal mecanismo consiste em ordenar os pontos pelos valores de distância de crowding (escolhe-se os indivíduos com maior valor de crowding dando privilégio as soluções de regiões da fronteira de pareto menos populosas). Mais detalhes sobre a implementação são discutidas no apêndice A

Foram apresentados nesta seção alguns importantes algoritmos para resolução de problemas multiobjetivo. O grande número de diferentes algoritmos evolucionários dedicados à solução de problemas multiobjetivo torna inviável uma revisão mais detalhada, de forma que a presente revisão focou os principais trabalhos. Alem disso, se deu prioridade as abordagens relacionadas

a presente pesquisa.

4.2.2 Outras Técnicas

Há outros mecanismo utilizados em otimização multiobjetivo que consistem de adaptações de metaheurísticas aplicadas à otimização monoobjetivo. Um detalhe interessante destas abor- dagens é o fato de elas não manterem uma população de solução que evolui durante o processo de busca. Alguns exemplos são listados

Busca Tabu : (HANSEN; HANSEN, 1997);

Simulated Annealing : (BANDYOPADHYAY et al., 2008);

Particle Swarm : (PARSOPOULOS; VRAHATIS, 2002; COELLO; LECHUGA, 2002; PARSOPOULOS; VRAHATIS, 2008)

Colônia de Formigas : (MARIANO; M., 1999; LOPEZ-IBANEZ; PAQUETE; STUTZLE, 2004; DOERNER et al., 2006).

GRASP

Outra metaheurística que é amplamente utilizada para problemas monoobjetivo e vem sendo adaptada para problemas multiobjetivo é o GRASP (MARTí et al., 2011; ARROYO; VIEIRA; VIANNA, 2008).

De modo geral, o funcionamento do GRASP consiste em construir uma solução através de um procedimento semi-guloso e, em seguida, aperfeiçoá-la através de uma busca local. Ao longo das iterações o procedimento semi-guloso pode ser adaptado para obter melhores solu- ções.

A aplicação do GRASP para problemas de otimização multiobjetivo, em geral, faz uso de soma ponderada. Em (HIGGINS; HAJKOWICZ; BUI, 2008) utiliza-se soma ponderada com o vetor de peso sendo escolhido aleatoriamente, além disso uma população externa é mantida. A busca local é aplicada a indivíduos selecionados aleatoriamente da população externa.

Arroyo, Vieira e Vianna (2008) aplicam uma GRASP multiobjetivo para Árvore Geradora Mínima Multicritério. A construção é guiada por um combinação ponderada dos objetivos.

Em (LI; LANDA-SILVA, 2009) o GRASP multiobjetivo apresenta um recurso interessante na fase de construção. Os indivíduos são construídos com a utilização de elementos de indi-

víduos não dominados já conhecidos. Para obter diversidade na fronteira de pareto utiliza-se vetores de fatores distintos.

Outra abordagem interessante foi desenvolvida por (REYNOLDS; IGLESIA, 2009). Na fase de construção os autores utilizam uma ponderação dos objetivos através de um vetor de pe- sos gerado aleatoriamente. Após a fase de contrução os autores tem um conjunto de indivíduos não dominados. Em seguida, aplica-se a busca local aos indivíduos não-dominados.

Neste trabalho, uma algoritmo baseado na ideia do GRASP foi implementado (os detalhes da implementação serão discutidos no apêndice C).