• Nenhum resultado encontrado

1: AE  ; t 0

2: Gerar uniformemente N vetores de pesos λi= (λi1, λ i 2,.... λ

i

T), i = 1,....,N

3: Calcule a distância Euclidiana entre todos os pares de vetores de pesos e então encontre os C vetores mais próximos (λi1, ..., λiC) para cada vetor de pesos λi. Para cada i = 1, ..., N, B(i) = {i1, ..., iC}

4: Gerar aleatoriamente uma população inicial x1,...,xN 5: Para (i = 1, ...,N) VFi F(xi)

{Cada indivíduo xi e vetor objetivo VFi são associados a um vetor de pesos λi}

6: Inicializar z: zj = minobjetivoj(VFi), i = 1,...,N, j = 1,..., B

7: Inicializar nadir: nadirj = maxobjetivoj(VFi), i = 1,...,N, j = 1,..., B

8: Repita

9: Para (i = 1, ...,N)

10: Gerar rand de U[0, 1]. Então:

B(i), se rand <

Ne  {1,...,N}, caso contrário

11: Selecione aleatoriamente dois índices r, s de Ne, e então gere uma nova solução

x’ de xr e xs usando operadores genéticos.

12: Se necessário, aplique o procedimento de reparação em x’ para produzir x’’ senão

x’’  x’.

13: Para cada j = 1,..., T

14: Se zj > Fj(x’’) então zj Fj(x’’)

15: Para cada j = 1,..., T

16: Se nadirj < Fj(x’’) então nadirj Fj(x’’)

17: contador  0

18: Enquanto (contador < maxAtualizações e existir índices não selecionados de Ne) 19: Selecione aleatoriamente um índice k de Ne

20: Se gte(x’’|λk, z, nadir) ≤ gte(xkk, z, nadir) então 21: xk x’’

22: VFk F(x’’)

23: contador  contador + 1 24: Fim Se

25: Fim Enquanto

26: Se nenhum indivíduo no E domina x’’ então remova do E todos os indivíduos dominados por x’’ e adicione x’’ ao E

27: Fim Para 28: t  t + 1

48

Após as inicializações, o algoritmo entra em seu laço principal (passos de 8 a 29). O primeiro passo do laço seleciona Ne para cada cromossomo. Ne corresponde a um conjunto de índices de cromossomos usados durante os passos de reprodução e atualização. Ele é composto por índices dos cromossomos da vizinhança (B(i)), com probabilidade , ou por índices de cromossomos de toda a população, com probabilidade 1,0 − .

Os indivíduos aos quais os operadores genéticos serão aplicados são selecionados aleatoriamente de Ne. Os operadores de recombinação e mutação são os mesmos utilizados na implementação do SPEA2 e irão gerar o cromossomo modificado

x’. Se x’ é infactível, o cromossomo modificado é reparado resultando em x’’.

Se o novo cromossomo tem um valor para alguma função objetivo que é melhor do que aquele armazenado no ponto ideal, então o ponto z é atualizado com este valor. Analogamente, se o cromossomo tem um valor para alguma função objetivo que seja pior que o valor armazenado no ponto nadir então nadir é atualizado com este valor.

De acordo com a seleção do passo 10 (Ne), a vizinhança ou a população como um todo é atualizada. Para evitar a proliferação de x’’ na maior parte da população é utilizado um número máximo de atualizações (maxAtualizacoes). A atualização acontece conforme a seguir: enquanto o número de atualizações é menor que o número máximo de atualizações e existem índices de Ne não selecionados um índice é escolhido aleatoriamente de Ne. Se x’’ tem um melhor valor para a função de Tchebycheff normalizada (Li; Zhang, 2009) do que xk (ambos fazendo uso do k-ésimo vetor de pesos

- λk) então ele substitui xk, VFk é atualizado com o valor do vetor objetivo de x’’ e o

número de cromossomos atualizados é incrementado.

Na função de Tchebycheff normalizada (Li; Zhang, 2009), os subproblemas são tratados da seguinte forma:

Minimize

 

             j j j j j T j te z nadir z s F nadir z s g   1 max , , | (4.8)

onde gte é a função de Tchebycheff normalizada para um problema de

minimização, F(x) = (F1(x),...,FB(x)) é uma função multiobjetivo que deve ser

minimizada, B é o número de objetivos, λ =(λ1,...,λB) é o vetor de pesos considerado, z

=(z1,...,zB) é o ponto de referência (aproximação do ponto ideal), Ω é o conjunto de

soluções factíveis e nadir = (nadir1,...,nadirB) é a aproximação do ponto nadir.

Sob certas condições, é possível afirmar que para cada ótimo de Pareto existe um vetor de pesos que corresponde ao ótimo da Equação 4.8 e cada solução ótima da Equação 4.8 é uma solução Pareto ótima. Entretanto, utilizando a função de Tchebycheff normalizada, é possível obter diferentes soluções Pareto ótimas alterando o vetor de pesos (λ), então esta função é um bom indicador da qualidade das soluções na

49

região próxima à λ. A função de Tchebycheff normalizada minimiza a influência das diferentes escalas entre os objetivos.

Na sequência, o algoritmo tenta inserir x’’ no arquivo externo (E), removendo todas as soluções armazenadas que são dominadas por x’’. Finalmente, o critério de parada é testado, o qual geralmente corresponde a um número máximo de iterações (gerações) do laço principal.

4.4 Algoritmos Transgenéticos

Os Algoritmos Transgenéticos mimetizam a evolução de endossimbiontes em uma célula hospedeira. Essa abordagem enfatiza a cooperação que pode ser traduzida por meio de ações coordenadas e troca de informação genética (Goldbarg et al., 2008). Nesse contexto, os endossimbiontes são interpretados como os indivíduos da população de soluções candidatas, as quais constituem a população de cromossomos endossimbiontes.

Nos Algoritmos Transgenéticos são considerados três contextos de informação: os endossimbiontes, o hospedeiro e os vetores transgenéticos. Os endossimbiontes, também chamados simplesmente de cromossomos, são à base do processo estocástico de busca, uma vez que eles representam (codificam) soluções candidatas para o problema investigado. Contexto do hospedeiro (repositório do hospedeiro) armazena a informação a ser utilizado durante a busca. É composto por informação sobre o problema (a priori) e informação sobre a busca heurística (a posteriori). A informação é dita a priori se existir independentemente da busca que o algoritmo realiza. Este tipo de informação é, em geral, inerente ao problema ou aos casos testes que está sendo tratado, tais como: limites superiores e inferiores, soluções heurísticas ou informações decorrentes de análise estatística da estrutura de casos específicos do problema. Informação a posteriori é obtida durante a execução do algoritmo e está relacionada à busca, por exemplo, soluções de elite, informações sobre a análise da amostra do espaço de busca contida na população ou estatísticas do processo evolucionário. Informações a

priori e a posteriori são armazenadas em um repositório chamado repositório do

hospedeiro.

Nesta abordagem evolutiva, o material genético (informações do hospedeiro) não é compartilhado entre os endossimbiontes do crossover ou recombinação, mas pela ação dos vetores transgenéticos. Estes últimos são responsáveis pela manipulação dos endossimbiontes de acordo com a informação que eles carregam, modificando as soluções, a fim de cobrir o espaço de busca. A bio-inspiração dos vetores transgenéticos vem de mecanismos naturais de transferência horizontal de genes, tais como plasmídeos, plasmídeos recombinados, transposons e vírus (Goldbarg e Goldbarg, 2009). Os vetores transgenéticos são responsáveis pela troca de informações entre o hospedeiro e os endossimbiontes, agentes esses que são inspirados nos mecanismos de transferência horizontal de genes que ocorrem na natureza. Sua função é modificar as

50

soluções representadas nos cromossomos endossimbiontes, gerando a variação necessária para efetuar a busca. Os vetores transgenéticos são as únicas ferramentas que realizam as tarefas de intensificação e diversificação nos algoritmos transgenéticos.

O processo de evolução de um algoritmo transgenético se dá mediante a interação de uma população de cromossomos e um grupo de vetores transgenéticos, consideradas as possibilidades de interferência de um dado meio ambiente. Um vetor transgenético, λ, é uma dupla = (I, ϕ), onde I é uma cadeia de informação e ϕ é o método de manipulação, ϕ = (p1,...,ps), onde pj, j = 1,..., s, são procedimentos que

definem a atuação do vetor. A ação de um vetor transgenético sobre um cromossomo, provavelmente alterará este cromossomo e sua adequação. Em uma analogia à terminologia empregada pela microbiologia são nomeados os vários tipos de vetores transgenéticos. A Tabela 4.1 resume os procedimentos que compõem o método de manipulação dos vetores transgenéticos (Goldbarg et al., 2009).

Tabela 4.1 - Procedimentos dos Vetores Transgenéticos. (Goldbarg et al., 2009)

Procedimento Nome Caracterização

p1 Ataque (A) Define o critério de avaliação que estabelece

quando um cromossomo é suscetível à manipulação do vetor. A: Si ← falso,

verdadeiro i=1,2,...,n.

p2 Operador de Transcrição Se A(Si) = “verdadeiro”, o procedimento

define como a informação I, transportada pelo vetor, será transferida para o cromossomo.

p3 Bloqueio Torna o resultado da manipulação inviolável

por um determinado período de tempo (isto é, um número de iterações).

p4 Operador de Identificação Identifica posições que serão utilizadas para

limitar a operação do vetor.

Um vetor é dito um plasmídeo quando sua cadeia de informação I é traduzida no formato genético - uma subcadeia de DNA - e seu método utiliza somente os procedimentos p1 e p2.

A cadeia de informação de um transposon apresenta regras para rearranjo de genes no cromossomo do endossimbionte. Por exemplo, estas regras podem refletir uma ação do transposon no sentido de permutar os genes de um determinado intervalo do cromossomo. Além dos procedimentos p1 e p2, os transposons têm também o

procedimento p3 e um procedimento de identificação (p4), que identifica a parte do

código do endossimbionte, que será manipulado.

No processo evolucionário transgenético três contextos interagem (Goldbarg et

51 1. A população de cromossomos;

2. A população de vetores transgenéticos que são representados pelos plasmídeos e transposons; e

3. O hospedeiro.

Figura 4.6 - Contextos da Transgenética Computacional (Goldbarg; Goldbarg; Bagi,

2009b).

O banco de informações ambientais é o repositório geral de informações do hospedeiro. Ele pode conter informações obtidas a priori e a posteriori.

O Algoritmo 6 apresenta os passos de um algoritmo transgenético genérico.

Documentos relacionados