• Nenhum resultado encontrado

2.3 Algoritmos Evolutivos Multiobjetivo

2.3.3 Strength Pareto Evolutionary Algorithm 2

O modelo Strength Pareto Evolutionary Algorithm 2 (SPEA2) [62] surgiu para melho- rar seu predecessor (SPEA) principalmente em três aspectos. Primeiramente, provendo uma atribuição mais completa de aptidão, na qual a informação de dominância entre membros da população P passa a ser considerada, uma vez que no SPEA a aptidão de membros da população depende apenas da strength de seus dominadores, o que pode levar possivelmente a uma redução da pressão seletiva. Em segundo lugar, para cada indivíduo, uma estimativa de densidade é usada para guiar a busca mais ecientemente, especial- mente quando há muitos indivíduos não-dominados na geração corrente, podendo ser usada para diferenciá-los. Finalmente, outro procedimento para reduzir a cardinalidade de E é usado, onde soluções extremas são preservadas.

46 Capítulo 2. Otimização Evolutiva Multiobjetivo

Algoritmo 5 Esquema geral do SPEA

Entrada: T p: tamanho da população. L: tamanho máximo do arquivo.

Saída: E: um conjunto representativo de soluções não-dominadas encontradas du- rante a busca evolutiva.

1: Gere uma população inicial P0

2: E0 ← ∅

3: t ← 0

4: while true do

5: Calcule o valor de aptidão para os indivíduos de Pt∪ Et (Eq. 2.3)

6: Atribua a Et+1 os indivíduos não-dominados de Pt∪ Et

7: if |Et+1| > L then

8: Reduza Et+1 por meio do procedimento de clusterização (Alg. 4)

9: if um critério de término é atingido then 10: return Et+1

11: Faça uma seleção por torneio binário sobre Et+1∪ Pt para selecionar pares para o

cruzamento

12: Aplique os operadores de cruzamento e de mutação nos pares a m de gerar uma

população de lhos Pt+1

13: t ← t + 1

valor de strength é computado para cada indivíduo de P ∪ E. A strength de um indivíduo icorresponde ao número de indivíduos em tal conjunto que são dominados por i, ou seja,

s(i) = | {j : j ∈ P ∪ E ∧ i ≺ j} | (2.4) Em seguida, a cada indivíduo é atribuído um valor de raw tness, denido como a soma das strengths de seus dominadores:

r(i) =Xs(j), ∀j ∈ P ∪ E : j ≺ i (2.5) Pode-se notar que indivíduos não-dominados terão r(i) = 0.

Finalmente, uma estimativa de densidade d(i) baseada no método do k-ésimo vizinho mais próximo é denida:

d(i) = 1 σk

i + 2

(2.6) onde σk

i é a k-ésima menor distância de i aos seus indivíduos, sendo k = p|P | + |E|. O

valor dois é adicionado ao denominador para garantir que d(i) estará no intervalo (0, 1). Finalmente, o valor de aptidão é denido como:

f (i) = r(i) + d(i) (2.7)

Isto garantirá que indivíduos não-dominados sempre terão f(i) < 1, ao passo que indivíduos dominados terão f(i) ≥ 1. Um exemplo de cálculo de aptidão pode ser visto

2.3. Algoritmos Evolutivos Multiobjetivo 47

na Fig. 2.8.

Figura 2.8: Um exemplo comparativo, em um problema de maximização de dois objetivos, entre o SPEA (lado esquerdo) e o SPEA2 (lado direito). Os indivíduos dominados estão marcados com círculos cheios, ao passo que os não-dominados estão como círculos vazios. Os valores para os indivíduos indicam a aptidão (caso SPEA) e o raw tness (caso SPEA2) [62].

Após a computação de aptidão para cada membro de Pte Et, em Et+1serão atribuídos

os indivíduos não-dominados destes dois conjuntos. Diferentemente de seu predecessor, no SPEA2 o tamanho de E sempre possui um tamanho xo L. Assim, após a atualização do arquivo, três situações podem ocorrer:

(i) |Et+1| = L: nada a fazer.

(ii) |Et+1| < L: os L − |Et+1| indivíduos dominados mais aptos de Et∪ Pt são copiados

para Et+1.

(iii) |Et+1| > L: um procedimento de truncamento é aplicado sobre Et+1 para reduzir a

sua cardinalidade para L.

Como pode ser visto, é possível que existam indivíduos dominados em E, diferente- mente do SPEA.

No procedimento de truncamento de arquivo proposto pelo SPEA2, no começo de cada iteração um indivíduo i é selecionado para ser removido, tal que i ≤dj, ∀j ∈ Et+1, onde

i ≤dj sse: ∀0 < k < |Et+1| : σik = σ k j ∨ ∃0 < k < |Et+1| : [(∀0 < l < k : σil = σ l j) ∧ σ k i < σ k j] (2.8) em que σk

i denota a distância do indivíduo i ao seu k-ésimo vizinho mais próximo em Et+1.

Em outras palavras, após encontrar o par (a, b) de indivíduos cuja distância euclidiana dist(a, b)no espaço de objetivos seja a menor dentre todos os pares de indivíduos de Et+1,

48 Capítulo 2. Otimização Evolutiva Multiobjetivo

menor distância (observe que a primeira menor distância é a própria dist(a, b)). Se as segundas menores distâncias forem iguais, as terceiras menores distâncias serão vericadas e assim por diante, até que uma das condições da Eq. 2.8 seja satisfeita. Este processo mantém as soluções extremas. Indivíduos serão removidos até que se obtenha |Et+1| = L.

Assim como no SPEA, após a avaliação dos indivíduos e atualização de E, verica-se se algum critério de término é atingido; caso positivo, os indivíduos não-dominados do arquivo são retornados e a execução é encerrada. Caso contrário, pares para cruzamento são formados utilizando somente E, diferentemente do SPEA. Em seguida, os operadores de cruzamento e mutação são aplicados para gerar a população de lhos, a qual substitui a população corrente. Todo este processo é repetido por um número de gerações, como mostrado pelo Alg. 6.

Algoritmo 6 Esquema geral do SPEA2

Entrada: T p: tamanho da população. L: tamanho máximo do arquivo.

Saída: E: um conjunto representativo de soluções não-dominadas encontradas du- rante a busca evolutiva.

1: Gere uma população inicial P0

2: E0 ← ∅

3: t ← 0

4: while true do

5: Calcule o valor de aptidão para cada indivíduo de Pt∪ Et (Eq. 2.7)

6: Atribua a Et+1 os indivíduos não-dominados de Pt∪ Et

7: if |Et+1| < L then

8: Preencha Et+1 com os L − |Et+1| indivíduos dominados mais aptos de Pt∪ Et

9: else if |Et+1| > Lthen

10: Reduza Et+1 utilizando o procedimento de truncamento (Eq. 2.8)

11: if algum critério de término for atingido then 12: return os indivíduos não-dominados de Et+1

13: Faça uma seleção por torneio binário sobre Et+1 para criar pares de pais para

cruzamento

14: Aplique os operadores de cruzamento e mutação sobre os pares de pais selecionados

para gerar uma população de lhos Pt+1

Capítulo 3

Problema do Roteamento Multicast

Um importante componente em protocolos de roteamento são os algoritmos para cál- culo de rotas, os quais usualmente consideram um ou mais requisitos que afetam a qual- idade destas, com base em uma especicação do usuário ou do serviço. Protocolos para multicast, como MOSPF [37] e DVMRP [55], utilizam algoritmos ecientes tais como aqueles propostos por Dalal & Metcalfe [17] e Dijkstra [14] para calcular rotas que podem garantir a otimalidade de métricas (funções objetivos) m-a-m. Porém, tal otimalidade não pode ser garantida quando a métrica é relacionada ao custo da árvore, por exemplo. Neste caso, o problema se tornaria o conhecido Problema da Árvore de Steiner, o qual sabe-se estar na classe NP-difícil [31].

Além disso, tem sido observado que múltiplas métricas simultâneas podem ser necessárias para o cálculo de rotas, como custo, delay e hops count, as quais estão também rela- cionadas com a Qualidade de Serviço. Sob a perspectiva da Engenharia de Tráfego, também surgem requisitos relacionados à largura de banda e à otimização da utilização dos enlaces. Assim, diferentes objetivos conitantes são estabelecidos e o cálculo de rotas pode ser visto como um problema multiobjetivo [22].

Inicialmente, diversos autores trataram alguns objetivos como restrições denidas a priori, e técnicas para otimização de um único objetivo foram bastante utilizadas com uma função que combinava vários objetivos, tipicamente através de uma soma ponderada [45], [60], [39], [24], [3]. Por outro lado, se um problema é formulado num contexto multiobjetivo, não se torna necessário estabelecer pesos para os objetivos a priori, podendo ser considerados separadamente sob a relação matemática de dominância de Pareto.

Neste capítulo são descritas as formulações mono e multiobjetivo adotadas. Ao nal, apresenta-se uma revisão de trabalhos relacionados.

50 Capítulo 3. Problema do Roteamento Multicast

3.1 Formulações para o Problema do Roteamento Mul-

ticast

No contexto do Problema do Roteamento Multicast, a topologia de rede pode ser mod- elada como uma grafo direcionado conectado ponderado G = (V, E), onde V representa o conjunto de vértices ou nós (roteadores na rede, p.ex.), e E o conjunto de arestas (enlaces para comunicação entre roteadores, p.ex.). Um nó {r} ⊂ V é chamado de vértice fonte ou raiz. Um conjunto de vértices D ⊂ V é denido como o grupo multicast, no qual cada vértice é chamado de destino ou terminal. Para cada aresta e em G, denimos os pesos c(e), d(e), z(e) e t(e), correspondendo ao custo, delay, capacidade e tráfego corrente de cada aresta, respectivamente. Tais valores estão denidos em R. Convém observar que, para uma dada formulação do PRM, nem todos os pesos podem ser utilizados, como será apresentado ao longo desta seção.

Dois tipos de formulação para o PRM foram adotadas neste trabalho: mono-objetivo, em que há apenas uma função objetivo a ser otimizada sujeito a uma restrição; e multiob- jetivo, em que mais de uma função objetivo deve ser otimizada. A abordagem para o caso multiobjetivo segue as idéias de dominância de Pareto, apesar de outras formas serem possíveis, como uma soma ponderada dos objetivos (p.ex., Garrozi & Araujo em [24]). A razão para adotar formulações mono e multiobjetivo é para possibilitar uma avaliação experimental mais detalhada dos métodos propostos no presente trabalho.