3 3 Algoritmos Multi-Objetivo
3.2 Conceitos Básicos
Nessa seção, são descritos alguns dos conceitos básicos presentes na maioria dos algoritmos de otimização multi-objetivo.
3.2.1 Indivíduo
O indivíduo representa uma solução do problema a ser tratado. Ele consiste no conjunto de configurações que define uma possibilidade de solução para o problema. Em técnicas baseadas em algoritmos genéticos, o indivíduo também é chamado de cromossomo. Diz-se que o cromossomo é constituído de um conjunto de genes, onde cada gene representa um parâmetro de configuração da solução. Em abordagem baseada em enxame de partículas, o indivíduo também é chamado de partícula.
3.2.2 População
O conceito de população está presente na maioria dos algoritmos de otimização multi- objetivo. Uma população representa o conjunto atual de indivíduos encontrados em uma determinada iteração do algoritmo. Em abordagens baseadas em algoritmos evolucionários, a população de uma iteração é substituída por novos indivíduos mais interessantes para a solução de um determinado problema, dando a idéia de que a população evolui com o tempo. No entanto, em outras abordagens, tal como enxame de partículas, a população é fixa durante todo o ciclo do algoritmo e os indivíduos da população evoluem com o tempo sem precisar da criação de novos indivíduos ou substituição dos indivíduos existentes. Normalmente a população existente na última iteração do algoritmo é considerada como sendo o conjunto de soluções ótimas encontradas durante a exploração do algoritmo. A população normalmente é iniciada aleatoreamente e tem tamanho fixo ao longo das iterações. O tamanho da população
pode influenciar o desempenho da técnica, influenciando na velocidade de convergência e qualidade dos resultados.
3.2.3 Geração
Uma geração corresponde a uma iteração realizada sobre a população, de forma que realize alguma mudança sobre os indivíduos da população. Muitas vezes o critério de parada do algoritmo é definido pelo número de gerações. O número de gerações necessárias para o algoritmo convergir corresponde ao número de iterações executadas, sendo muitas vezes relacionado com o grau de eficiência do algoritmo. Entretanto, existem outros critérios de parada, como, por exemplo, o algoritmo de otimização interrompe sua execução quando as soluções encontradas atingem uma qualidade mínima.
3.2.4 Cruzamento
A operação de cruzamento é um dos métodos utilizados em abordagens baseadas em algoritmo genético, promovendo assim a evolução genética da população. Ela é uma das formas de possibilitar a criação de novos indivíduos, permitindo a obtenção de novas soluções a partir de outras já existentes. A idéia do operador de cruzamento é criar novos indivíduos combinando as características dos indivíduos de origem. O tipo de cruzamento pode variar dependendo da representação do problema, alternando entre número de pontos de corte e forma como os genes são trocados. Uma das formas mais básicas de cruzamento, que foi a utilizada nesse trabalho, é o cruzamento de n-pontos, onde n representa o número de divisões que o cromossomo terá no momento do cruzamento. O funcionamento de um cruzamento com corte de dois pontos é descrito a seguir. Inicialmente são escolhidos dois indivíduos da população para serem os pais. Após isso, em cada indivíduo escolhido são definidos pontos de corte onde haverá troca de dados entre as características genéticas dos indivíduos. Essa troca é ilustrada na Figura 6.
Figura 6. Operação de cruzamento de dois pontos
Conforme mostrado na figura acima, o indivíduo “a” realiza a operação de cruzamento com o indivíduo “b”, produzindo indivíduos (filhos) “c” e “d”. Os novos indivíduos possuem dados de ambos os indivíduos que iniciaram a operação de cruzamento.
3.2.5 Mutação
A mutação é outro operador importante que visa garantir a diversidade da população. Seu conceito consiste em mutar aleatoriamente um indivíduo existente de forma que um novo indivíduo seja criado. Ao aplicar o operador de mutação em um indivíduo, cada gene (parâmetro de configuração) tem uma probabilidade de ser mutado. Quando um gene é mutado ele pode assumir qualquer valor dentro do intervalo de possíveis valores daquele parâmetro. A mutação permite criar novas soluções com parâmetros não existentes na população atual, permitindo que a população saia de mínimos locais e explore outras regiões. O processo de mutação é ilustrado na Figura 7.
Figura 7. Operação de mutação
Conforme mostrado na figura acima, o indivíduo original sofre mutação, tendo um dos genes alterado. Isso permite que um dos campos de parâmetro de configuração da solução receba um novo valor, modificando aquela solução do problema.
Indivíduo a Filho c
Indivíduo b Filho d
Indivíduo original
3.2.6 Dominância
O conceito de dominância é bastante utilizado em algoritmos multi-objetivos e serve para indicar e comparar o grau de qualidade de uma solução em relação à outra. Diz-se que uma solução a domina b, se, e somente se, para todos os objetivos envolvidos no domínio da função, a não for pior que b em nenhum objetivo e existir pelo menos um objetivo em que a seja melhor que b. A Figura 8 ilustra a relação de dominância entre diferentes pontos do conjunto de solução, para um problema de minimização dos objetivos f1 e f2.
Figura 8. Relação de dominância entre soluções
No exemplo da Figura 8, existem pontos que compõem o conjunto de soluções encontradas: a, b e c. De acordo com a definição, pode-se dizer que a solução b domina a, pois ela é melhor que a em pelo menos um objetivo, no caso o objetivo f1, e também não é pior que em nenhum deles. De forma análoga, não se pode dizer que a solução b domina c, pois a solução b é pior que c em pelo menos um objetivo, no caso f2. Dessa forma, pode-se dizer que
b domina a, mas não domina c. Com esse conceito, pode-se dizer também que a não domina c,
pois existe pelo menos um objetivo em a que é pior que em c. O mesmo vale para afirmar que c não domina a. Esta relação em que uma solução não é dominada por outra é chamada de não- dominância. Normalmente costuma-se dizer que uma solução é não-dominada como sendo aquela que apresenta uma relação de não-dominância com todas as outras soluções do conjunto de soluções.
Outro conceito que envolve dominância é o de se afirmar que uma solução é fracamente dominada por outra, o que pode ser representado pelo termo . Sendo assim, a expressão indica que a solução a é fracamente dominada pela solução b. Isso quer dizer que para todos os objetivos existentes, a solução a não é pior do que b em nenhum deles, podendo ser igual. Uma solução seria fortemente dominada por outra se para todos os objetivos ela apresentasse melhores resultados.
f1 f2
a
b c
3.2.7 Front
Em algumas técnicas de otimização é utilizado o conceito de Fronts. Front é o conjunto de soluções de mesmo nível de não-dominância que compõem um Pareto, ou seja, um Front agrupa soluções que são equivalentes entre si. O Pareto Front representa o conjunto de soluções que compartilham entre si a mesma quantidade de indivíduos pelos quais são dominados. A Figura 9 ilustra a diferença entre níveis de Paretos Front.
Figura 9. Diferença entre níveis de Paretos Front
Como pode ser visto na Figura 9, as soluções do front F1 não são dominados por nenhuma outra solução, se aproximando mais do Pareto Ótimo. Já as soluções do front F2 são dominadas por pelo menos uma solução do front F1, o que representam soluções menos interessantes para a seleção final.
3.2.8 Elitismo
O conceito de elitismo quer dizer que as melhores soluções encontradas em cada iteração do algoritmo serão preservadas para a próxima iteração. Embora essa técnica garanta que as melhores soluções encontradas sejam sempre mantidas, existem técnicas de otimização que não utilizam esse conceito. A vantagem de se usar elitismo é garantir que as melhores características das soluções encontradas são mantidas ao longo das iterações. No entanto em alguns casos isso pode fazer diminuir a diversidade da população, levando o algoritmo a convergir mais rapidamente para um mínimo local. Para prevenir que o algoritmo caia em mínimos locais é importante utilizar operadores que visem aumentar a diversidade da população, tais como os operadores de mutação.
f1 f2
F1 F2
3.2.9 Arquivo Externo
Em algumas abordagens de otimização multi-objetivo é utilizado o conceito de arquivo externo. O arquivo externo é apenas um local onde se armazenam as melhores soluções encontradas pela população. Normalmente, é encontrado nas abordagens elitistas, onde é utilizado o arquivo externo para guardar as melhores soluções encontradas ao longo das iterações. As soluções contidas no arquivo externo são normalmente utilizadas para realizar as etapas de cruzamento e mutação.
3.2.10
Fitness
A função de avaliação, também chamada de função fitness, é utilizada para medir o grau de aptidão das soluções encontradas. Uma vez que soluções encontradas em um mesmo pareto são consideradas equivalentes entre si, o fitness é utilizado como critério de desempate no processo de seleção de soluções contidas em um mesmo front. A função de fitness pode ser baseada na densidade da solução, na menor distância até a solução mais próxima ou em outra métrica, dependendo do algoritmo utilizado. O fitness serve para medir a qualidade da solução e a forma como ele é calculado também pode influenciar na eficiência do algoritmo.