CHAPITRE 4 : Optimisation du positionnement
4.4. L’optimisation par colonies de fourmis (ACO)
Desse modo, para conceber um MOPSO efetivo, basicamente duas questões devem ser resolvidas [ZQL+11, RSC06]. A primeira delas é como manter as soluções não-dominadas encontradas ao longo das iterações do MOPSO. Como já foi exposto, em problemas mul- tiobjetivos não existe um conceito de otimalidade bem definido. Entretanto, nos MOPSOs mais promissores a otimalidade de Pareto é comumente utilizada como critério de otimali- dade. Desse modo, em cada iteração do algoritmo, é necessário armazenar as soluções não- dominadas encontradas no decorrer da busca do MOPSO. Para esse fim, os MOPSOs mais promissores geralmente utilizam um arquivo externo (AE) responsável por manter essas solu- ções no decorrer do processo de busca, de modo que as soluções presentes nessa população são sempre não-dominadas com respeito à todas as soluções encontradas desde do inicio do al- goritmo [MS08, ZQL+11]. Explicando melhor, considere que W(t)seja um conjunto formado por todas as soluções encontradas pelo MOPSO desde o início da busca até o instante t. Então o AE no instante t denotado por AE(t)contém apenas as soluções localmente não-dominadas com respeito a W(t). Por meio desse procedimento, a busca em um MOPSO pode progredir em direção à Frente de Pareto.
A segunda questão a ser resolvida é como selecionar o líder social e o líder cognitivo de cada partícula, uma vez que existem várias soluções consideradas ótimas [ZQL+11, RSC06]. A abordagem frequentemente usada para determinar esses líderes é, primeiramente, dar priori- dade às soluções não-dominadas em relação àquelas que são dominadas, assim como ocorre em alguns MOEAs. Nesse sentido, o AE pode ser utilizado como fonte de potenciais líderes para as partículas do enxame. Entretanto, no AE existe apenas soluções incomparáveis, de modo que é necessário definir outros critérios e mecanismos para se impor algum tipo de preferência sobre essas soluções e assim atribuir um líder social para cada partícula do enxame. Uma das formas de alcançar esse objetivo é definir uma medida de qualidade que de algum modo quan- tifique a qualidade de uma solução. Como ao se projetar um MOPSO, um dos objetivos é a preservação da diversidade das soluções, um modo natural de se impor uma preferência entre duas soluções incomparáveis é usar um estimador de densidade. Nesse caso, uma solução é superior a outra se ela se localiza em uma região de baixa densidade no espaço objetivo. Na literatura, o crowding distance é utilizado em alguns MOPSOs como estimador de densidades, tais como o MOPSO-CDR [SPBF09], o SMPSO [DGNN+09], e o MOPSO-CD [RN05].
No que se refere a definição do líder cognitivo, a dominância de Pareto geralmente é utili- zada [RSC06]. Assim, se a nova posição da partícula domina seu líder cognitivo, essa posição da partícula se torna seu novo líder cognitivo. Caso o líder cognitivo domine a atual posição, o líder cognitivo permanece inalterado. Entretanto, caso eles sejam incomparáveis, algum outro mecanismo deve ser utilizado para decidir quem é o novo líder cognitivo.
Um ponto importante a ser enfatizado a respeito do AE, é que devido à restrições compu- tacionais ele tem um tamanho limitado [RSC06]. Desse modo, é importante eliminar soluções do AE quando este excede um número máximo de soluções. Como todas as soluções no AE são incomparáveis, uma questão que surge é quais soluções devem ser mantidas e quais devem ser eliminadas. Novamente, em alguns algoritmos, o requisito de diversidade é levando em consideração. Com isso, soluções em regiões de baixa densidade são preferidas em relação àquelas em áreas densas. Em alguns algoritmos, o mesmo operador de densidade utilizado na escolha dos líderes sociais é utilizado para decidir quais soluções serão preservadas no AE e
quais serão descartadas. O processo de eliminação de soluções no AE quando um determinado número de soluções é excedido é denominado de poda do AE.
Como já foi mencionado, um dos problemas inerentes aos MOPSOs é a convergência pre- matura [RSC06]. A convergência prematura é decorrente da rápida perda de diversidade do enxame. Desse modo a promoção da diversidade em um MOPSO é uma questão importante do projeto de um MOPSO efetivo [RSC06]. Isso é alcançado de dois modos. Um deles já foi men- cionado e consiste em preservar soluções no espaço objetivo que estejam em áreas esparsas. O outro modo é por meio da preservação da diversidade das soluções no espaço de decisão. Isso é alcançado por meio de um operador de turbulência, também denominado de mutação [RSC06]. Esse operador tem o objetivo de fazer com que regiões inexploradas do espaço de busca sejam alcançadas por meio da modificação aleatória da posição das partículas do enxame.
Por fim, como já foi exposto, existem muitas variações possíveis para o MOPSO, cada uma com suas vantagens e desvantagens. Nesse trabalho, dois MOPSOs estado da arte foram esco- lhidos como base para o desenvolvimento desta dissertação: o SMPSO [NDG+09, DGNN+09] e o MOPSO-CDR [SPBF09]. Esses algoritmos apresentam muitas características em comum, de modo que os dois apresentam o mesmo funcionamento geral apresentado no pseudo-código do Algoritmo 8. A diferença entre eles está no modo como eles definem os líderes sociais e cognitivos, na forma como a poda é realizada e no operador de turbulência utilizado. Tendo isso em vista, ambos os algoritmos começam inicializando as posições das partículas no espaço de busca de acordo com uma função de distribuição de probabilidade uniforme, como é usual em algoritmos evolucionários. Todas as partículas começam com velocidade igual a zero, e os líderes cognitivos das partículas são iguais as suas posições atuais. Em seguida, após a inicia- lização, o SMPSO e o MOPSO-CDR entram em um ciclo em que as seguintes operações são realizadas até que seja atingido um número máximo de iterações (tmax). Primeiro, os líderes cognitivos são determinados. Novamente, o SMPSO e o MOPSO-CDR apresentam maneiras diferentes de fazer essa escolha. Depois da seleção dos líderes cognitivos, os líderes sociais são determinados. O SMPSO e o MOPSO-CDR utilizam esquemas diferentes para isso. O SMPSO utiliza torneio binário para selecionar os líderes, enquanto o MOPSO-CDR utiliza se- leção por roleta. Após a escolha dos líderes sociais e cognitivos, ambos atualizam a velocidade e a posição das partículas e logo em seguida aplicam um operador de turbulência sobre elas. Posteriormente, as partículas são avaliadas usando o problema multiobjetivo sendo resolvido. As novas soluções não-dominadas encontradas pelo enxame são então inseridas no AE e o me- canismo de poda é acionado se necessário. Os detalhes sobre cada um dos algoritmos são dados na Seção 4.2.1 para o SMPSO a na Seção 4.2.2 para o MOPSO-CDR.
4.2.1 SMPSO: Algoritmo Baseado em Enxame de Partículas com Constrição de Velocidade
Em 2009, Durillo et al. [DGNN+09] realizaram um estudo comparativo de seis MOPSOs, a saber: NSPSO, SigmaMOPSO, OMOPSO, AMOPSO, MOPSOpd e o MOCLPSO. A partir dessa análise comparativa, eles constataram que todos os MOPSOs eram incapazes de resolver satisfatoriamente alguns problemas com multimodalidade, ou seja, problemas com múltiplas Frentes de Pareto locais nos quais um algoritmo pode estagnar. A partir dessa observação, Durillo et al. [DGNN+09] perceberam que esse problema ocorria devido ao fato de que, nos
4.2 ALGORITMOS MULTIOBJETIVOS BASEADOS EM ENXAME DE PARTÍCULAS 65
Algoritmo 8: Pseudo-código do SMPSO e MOPSO-CDR.
1 Inicializa partículas no espaço de busca; 2 Inicialize o arquivo externo AE;
3 Qualifique soluções em AE; 4 para t de 1 a tmaxfaça
5 Atualize líderes sociais das partículas; 6 Atualize velocidade das partículas; 7 Atualize posição das partículas; 8 Aplique operador de turbulência;
9 Avalie as partículas usando o problema multiobjetivo; 10 Atualize líderes cognitivos das partículas;
11 Atualize arquivo externo AE; 12 Qualifique soluções em AE;
13 Realize poda do arquivo externo AE se necessário;
algoritmos estudados, as velocidades das partículas atingiam valores muito altos, resultando em um fenômeno conhecido como "explosão do enxame". Esse fenômeno consiste em movi- mentos errôneos das partículas para além dos limites do espaço de busca. Ou seja, as partículas escapavam do espaço de busca. Como foi mencionado anteriormente sobre o PSO, uma das abordagens utilizadas para tratar o caso em que as partículas escapam do espaço de busca é re- verter a suas velocidades. Com isso, algumas partículas do enxame oscilam entre esses limites do espaço de busca ao longo das iterações, e, portanto, regiões do espaço de busca deixavam de ser exploradas.
Para contornar essa situação, Durillo et al. [DGNN+09] realizaram uma adaptação no OMOPSO, o algoritmo que apresentou melhores resultados em termos de convergência e di- versidade dentre os algoritmos comparados. A adaptação realizada consistiu em utilizar um mecanismo de constrição de velocidade para evitar que a velocidade das partículas assumissem valores muito altos ao longo das iterações. Esse mecanismo levou o surgimento de um novo al- goritmo chamado Algoritmo Baseado em Enxame de Partículas com Constrição de Velocidade (SMPSO, Speed-constrained Multi-objective PSO) [NDG+09].
Como já foi mencionado, o SMPSO segue o mesmo fluxo de execução, que o Algoritmo 8. No SMPSO, a atualização dos líderes cognitivos ocorre de um modo bastante simples. Pri- meiramente, cada partícula compara, em termos de dominância de Pareto, seu líder cognitivo presente em sua memória com a sua posição atual. Se a posição atual domina o líder cognitivo, então a posição atual se torna o novo líder cognitivo da partícula. Caso a posição atual seja dominada pelo líder cognitivo da partícula, nada acontece. Por fim, caso essas soluções sejam incomparáveis, a posição atual se torna o novo líder cognitivo (regra da solução mais recente). No SMPSO, a atualização do líder social é também muito simples. Basicamente, a seleção do líder social para cada partícula consiste na realização de um torneio binário entre as soluções do arquivo externo. Isto é, para se determinar o líder social de uma partícula i a seguinte operação é realizada. Duas soluções são escolhidas aleatoriamente do arquivo externo e são então comparadas entre si usando o crowding distance como aptidão. A solução com maior
crowding distance(menor densidade) é então escolhida como o líder social da partícula i. Esse procedimento é repetido para todas as partículas do enxame.
A atualização da velocidade, por sua vez, é definida como segue. Primeiramente, a veloci- dade de cada partícula é determinada conforme a equação (4.13):
vi j(t + 1) = χ ω · vi j(t) + c1· r1(t) · [yi j(t) − xi j(t)]
+c2· r2(t) · [ ˆyi j(t) − xi j(t)] . (4.13) Nessa equação, χ é o coeficiente de constrição obtido do fator de constrição originalmente proposto em [CK02]. No SMPSO esse termo é calculado como:
χ = ( 2 2−ϕ− √ ϕ2−4ϕ , se ϕ > 4, 1, se ϕ ≤ 4, (4.14)
em que ϕ é dado pela equação (4.15)
ϕ = c1+ c2. (4.15)
Como se pode observar por essa equação, o SMPSO utiliza tanto o peso de inércia ω como o fator de constrição χ para determinar a velocidade das partículas. Isso é uma diferença em particular com outros MOPSOs. Além disso, no SMPSO os coeficientes de aceleração c1e c2 não são fixos. Em cada iteração do SMPSO, os valores de c1e c2são amostrados de uma função de distribuição de probabilidade uniforme. Ou seja, c1∼ U(cmin1 , cmax1 ) e c2∼ U(cmin2 , cmax2 ) em que cmin1 e cmax1 são os valores mínimos e máximos para o coeficiente c1, enquanto cmin2 e cmax2 são os valores mínimos e máximos para o coeficiente c2. Após o calculo da velocidade, o SMPSO limita a velocidade vi j de cada partícula i em cada dimensão j ∈ {1, 2, . . . n} por meio da seguinte equação (4.16): vi j(t) = ∆j, se vi j(t) > ∆j −∆j, se vi j(t) ≤ −∆j vi j(t), caso contrário, , (4.16) com ∆j= (xmax, j− xmin, j) 2 , ∀ j ∈ {1, 2, . . . , n}, (4.17)
em que xmin, j é o limite inferior do espaço de busca na dimensão j e xmax, j é o limite superior. O operador de turbulência no SMPSO consiste em aplicar a mutação polinomial sobre um percentagem pré-definida α de partículas com uma probabilidade pm.
Por fim, o mecanismo de poda do SMPSO é realizado do seguinte modo. As soluções do enxame são inseridas uma de cada vez no arquivo externo (AE). Ao se tentar inserir uma solução, as soluções do AE dominadas por essa solução são removidas. Ou, caso alguma solução do AE domine a solução em questão, essa solução (a solução que está sendo inserida) é descartada e a próxima solução do enxame tenta ser inserida. Supondo que a solução seja inserida no AE, verifica-se se o número máximo de soluções permitidas no AE foi ultrapassado
4.2 ALGORITMOS MULTIOBJETIVOS BASEADOS EM ENXAME DE PARTÍCULAS 67
ou não com a inclusão da solução. Em caso afirmativo, o crowding distance (CD) de todas as soluções presentes no AE é calculado (incluindo a solução recentemente inserida). Em seguida, a solução com menor CD é eliminada do AE. A Figura 4.2 apresenta um exemplo de execução do mecanismo de poda. A Figura 4.2(a) apresenta o AE com quatro soluções, que nesse exemplo corresponde ao número máximo de soluções. A Figura 4.2(b) ilustra o processo em que uma nova solução é inserida no AE. A solução inserida está indicada pela seta. Ao se inserir essa solução, o CD de cada uma das soluções é calculado e a solução com menor CD é removida. Na Figura 4.2(b), a solução removida possui contornos tracejados. Ao se incluir outra solução, o mesmo procedimento é repetido. Isso é repetido até que todas as soluções do enxame tenham tentado ser inseridas no AE.
(a) Estado inicial do arquivo externo. (b) Estado do arquivo externo após um solução ser inserida.
(c) Estado do arquivo externo após a inserção de uma outra solução.
Figura 4.2 Exemplo de execução do mecanismo de poda no SMPSO.
4.2.2 Otimização Multiobjetiva por Enxame de Partículas por Análise de Densidade e Seleção por Roleta
Também em 2009, Santana et al. [SPBF09] propuseram um algoritmo que apresentou resulta- dos promissores em relação à quatro abordagens de enxames, a saber: CSS-MOPSO, MOPSO- CDLS, MOPSO e m-DNPSO. O algoritmo foi denominado de Otimização Multiobjetiva por Enxame de Partículas utilizando Análise de Densidade e Seleção por Roleta (MOPSO-CDR, Multiple Objective Particle Swarm Optimization Approach using Crowding Distance and Rou- lette Wheel). Basicamente, o diferencial desse algoritmo com respeito às abordagens desenvol- vidas até em então foi o uso de um mecanismo de seleção por roleta para seleção dos líderes sociais das partículas do enxame. Além disso, essa abordagem apresenta uma nova forma da atualização do líder cognitivo de cada partícula em que o arquivo externo é utilizado. Cada uma das etapas de MOPSO-CDR é descrita nas próximas subseções.
4.2.2.1 Seleção dos Líderes Sociais
O MOPSO-CDR também utiliza um arquivo externo para armazenar soluções não-dominadas com relação as todas as soluções encontradas do início do processo de busca até o instante atual, e os líderes sociais são escolhidos desse arquivo. Diferentemente do SMPSO, que utiliza o torneio binário para selecionar uma solução do arquivo como líder para cada partícula, o
MOSPO-CDR utiliza a seleção por roleta. Nesse caso, a aptidão de cada solução do arquivo externo, que é utilizado na seleção por roleta, é o crowding distance da solução calculado com base em todas soluções do arquivo externo.
4.2.2.2 Seleção dos Líder Cognitivo
O mecanismo de seleção dos líderes cognitivos no MOPSO-CDR é um pouco mais complexo que no SMPSO. No MOPSO-CDR, se a posição (solução) atual da partícula domina o seu líder cognitivo, então a posição atual é definida como o novo líder cognitivo. Por outro lado, quando as soluções são incomparáveis, o arquivo externo é utilizado para decidir entre as duas soluções. Assim, primeiramente se localiza as soluções no arquivo externo que são mais próximas da posição atual da partícula e do líder cognitivo atual em termos de distância Euclidiana. Se a solução mais próxima da posição atual da partícula estiver em um região menos densa que a solução mais próxima do atual líder cognitivo então a posição atual da partícula é definida como o novo líder cognitivo da partícula. Caso contrário, o líder cognitivo permanece inalterado.
A Figura 4.3 apresenta um exemplo de execução do procedimento de atualização do líder cognitivo de uma partícula em particular. Essa figura ilustra apenas o caso em que o líder cognitivo e a posição atual da partícula são incomparáveis. Nesse figura, as soluções do arquivo externo estão envolvidas por uma curva tracejada. Como a partícula e seu atual líder cognitivo são soluções incomparáveis, o arquivo externo é usado para decidir entre as duas. As soluções do arquivo externo mais próximas da partícula e do líder cognitivo atual estão envolvidas por elipses. Nesse exemplo, a solução mais próxima da partícula está em uma região menos densa, isto é, ela possui um maior crowding distance que a solução mais próxima do líder cognitivo atual. Dessa forma, essa partícula (posição atual) se torna o novo líder cognitivo da partícula. Como se pode notar por esse exemplo, o objetivo desse mecanismo se torna claro: atrair as partículas para regiões menos densas do arquivo externo.
Figura 4.3 Seleção do líder cognitivo de um partícula para o caso em que o líder cognitivo e a posição atual da partícula são incomparáveis.
4.2 ALGORITMOS MULTIOBJETIVOS BASEADOS EM ENXAME DE PARTÍCULAS 69
4.2.2.3 Atualização da Velocidade das Partículas
O MOPSO-CDR atualiza a posição das partículas conforme a equação (4.8) usando um peso de inércia adaptativo que diminui linearmente com o tempo como apresentado na equação (4.10). A velocidade máxima no MOPSO-CDR é dada pela equação (4.5) com δ = 1. A equação (4.3) é usada para limitar a velocidade das partículas. Após a atualização da velocidade das partícu- las, suas posições são modificadas conforme equação (4.2). As partículas que ultrapassam os limites do espaço de busca são tratadas pela equação (4.6) e pela equação (4.7).
4.2.2.4 Operador de Turbulência
O operador de turbulência do MOPSO-CDR é o mesmo que o utilizado no MOPSO [CPL04]. O pseudo-código do operador de turbulência do MOPSO é apresentado no Algoritmo 9.
Algoritmo 9: Operador de turbulência.
/* x: partícula na qual o operador de mutação está sendo
aplicado */
/* n é o número de variáveis de decisão */
/* t é a iteração atual */
/* tmax número total de iterações */
/* pm é a taxa de mutação */
/* xmax é o vetor com os limites superiores do espaço de decisão. Cada componente do vetor é denotado por xmax, j
para ∀ j ∈ {1, 2, . . . , n} */
/* xmin é o vetor com os limites inferiores do espaço de decisão. Cada componente do vetor é denotado por xmin, j
para ∀ j ∈ {1, 2, . . . , n} */
1 se U (0, 1) < (1 − t/tmax)5/pmentão
/* Seleciona aleatoriamente uma dimensão do espaço de
decisão em que a mutação será aplicada */
2 j= U [1, n] ;
3 intervalo_mutacao = (xmax, j− xmin, j)(1 − t/tmax)5/pm ; 4 ub= xj+ intervalo_mutacao ;
5 lb= xj− intervalo_mutacao ;
/* Controla os limites do intervalo de mutação para
evitar que as partículas deixem o espaço de busca */
6 se lb < xmin, j então
7 lb= xmin, j; 8 se ub > xmax, j então
9 ub= xmax, j;
/* Retira um número aleatório entre lb e ub de uma
distribuição de probabilidade uniforme */
O operador de turbulência é aplicado em cada iteração do algoritmo. No início do algo- ritmo, esse operador age sobre todas as partículas e em seguida o número de partículas afetadas por ele é rapidamente diminuído. A Figura 4.4 apresenta o gráfico da percentagem do número de partículas afetadas pelo operador de mutação pela percentagem do número de iterações. Como se pode observar por essa figura, o efeito do operador de mutação é inexistente antes mesmo do algoritmo atingir metade do número de iterações.
O operador de mutação basicamente realiza uma pertubação em somente uma dimensão em cada partícula. A dimensão da variável de decisão que será afetada pela mutação é escolhida aleatoriamente (U [1, n]). Como se pode observar pelo Algoritmo 9, o intervalo de pertubação também diminui com o passar das iterações. Desse modo, no início do algoritmo, o operador de turbulência permite que as partículas atinjam regiões inexploradas do espaço de busca e, à medida que as iterações passam, as alterações provocadas são cada vez menores até que, no fim, elas são inexistentes.
Figura 4.4 Percentagem de partículas nas quais o operador de turbulência é aplicado ao longo das iterações (adaptado de [CPL04]).
4.2.2.5 Atualização do Arquivo Externo
No MOPSO-CDR, todas as soluções não-dominadas do enxame e que são não-dominadas pelas soluções do arquivo externo são inseridas nele. Em seguida, as soluções no arquivo externo dominadas por essas soluções inseridas são removidas do arquivo externo. Todas essas soluções são incluídas simultaneamente. O arquivo externo no MOPSO-CDR tem um número máximo de soluções. Se esse número é excedido, o mecanismo de poda é utilizado. O mecanismo de poda funciona do seguinte modo. Inicialmente, o crowding distance de todas as soluções é calculado. Em seguida, as soluções do arquivo externo são classificadas de acordo com o