• Nenhum resultado encontrado

MOTA/D MULTIOBJECTIVE TRANSGENETIC ALGORITHM BASED ON DECOM POSITION

O MOTA/D é um novo algoritmo que corresponde a uma implementação do frame- work baseado em decomposição MOEA/D com operadores transgenéticos. Algumas modifi- cações do algoritmo original do MOEA/D, que trabalha originalmente com operadores genéti- cos (ZHANG; LI, 2007), foram necessárias para acomodar a iniciação e atualização dos vários repositórios do hospedeiro e o uso destas informações através dos vetores transgenéticos (ope- radores). No Algoritmo 5 é apresentado o pseudocódigo do MOTA/D.

O primeiro passo do algoritmo corresponde às inicializações das várias estruturas uti- lizadas. O Algoritmo 6 apresenta os passos da etapa de iniciação do MOTA/D. O arquivo externo (AE), que armazena o conjunto de soluções não dominadas encontrado pelo algoritmo e é implementado por um Arquivo de Grade Adaptativa (ver Subseção 4.2.1), é inicialmente vazio. Então, são gerados Sp vetores de pesos (λλλ ) de maneira uniforme, sendo que cada um destes vetores de pesos está associado a uma solução a ser evoluída pelo MOTA/D. A seguir, o raio da vizinhança dos vetores de pesos é definido. Este raio pode ser determinado por qualquer medida de distância entre estes vetores. Neste trabalho a medida utilizada foi sempre a distância Euclidiana. A vizinhança B(i) do i-ésimo vetor λλλiii é composta pelos C vetores mais próximos de λλλiii. Para cada vetor de pesos é gerada uma solução (cromossomo) e são calculados os valores das funções (VVV FFF) objetivo de cada solução, para o i-ésimo cromossomo VVV FFFiii = FFF(((xxxiii))). Ou seja, cada cromossomo com seu respectivo VVV FFF é associado a um vetor de pesos λλλiii. Os pontos de referência, nnnaaadddiiirrr e zzz, utilizados no cálculo da função Tchebycheff (ZHANG; LI, 2007), são iniciados empiricamente com os valores máximos e mínimos encontrados para cada objetivo na população inicial, respectivamente - Passos 6 e 7 do Algoritmo 6.

Algoritmo 5 Pseudocódigo Genérico do MOTA/D

1: Inicializações (ver Algoritmo 6)

2: Repetir:

3: Para i = 1, . . . , Sp faça

4: Selecionar o repositório do hospedeiro e Escopo de Atualização: gerar um número rand de [0, 1],a partir de uma distribuição uniforme. Então:

Repositório = 

Repositório Local serand < δ Repositório Global caso contrário Ne =



B(i) i f rand < δ {1, ..., Sp} caso contrário

5: /*Vetores Transgenéticos:*/

6: Selecionar o repositório do hospedeiro a ser utilizado - a priori ou a posteriori

7: Selecionar melhor(CI) /* avaliada com base no vetor λλλiii */

8: Se (random(0,100) < probPlasmídio) então

9: xxx000 ← Plasmídio(Cromossomo[j], melhor(CI))

10: Senão

11: xxx000 ← Transponson(Cromossomo[j], melhor(CI))

12: Fim Se

13: /*Fim dos Vetores Transgenéticos*/

14: Reparar: Se necessário aplicar a reparação em xxx000 para produzir xxx000000 Senão xxx000000= xxx000 Fim Se

15: /*Atualizações*/

16: Atualizar o repositório do hospedeiro utilizado

17: Remover melhor(CI) do repositório selecionado

18: Gerar uma nova CI para o repositório selecionado

19: Atualizar z: Para cada j = 1, ..., T Se zj> Fj(xxx000000) então

Para cada j = 1, ..., T , Se zj> Fj(xxx000000) então zj= Fj(xxx000000) Fim Se 20: Atualizar nadir:

Para cada j = 1, ..., T , Se nadirj< Fj(xxx000000) então nadirj= Fj(xxx000000) Fim Se 21: Atualizar as soluções da Vizinhança/População: count = 0.

Enquanto(count < maxAtualizações e houver índices não selecionados de Ne) faça

Selecione aleatoriamente um índice k de Ne

Se gte(xxx000000|λλλkkk, zzz, nnnaaadddiiirrr) ≤ gte(xxxkkk|λλλkkk, zzz, nnnaaadddiiirrr) então xxxkkk= xxx000000

VVV FFFkkk= FFF(((xxx000000)))

count = count + 1 Fim Se Fim Enquanto

22: Atualizar o AE: Se nenhum indivíduo de EA domina xxx000000então remover de EA todos os indivíduos dominados por xxx000000e inserir xxx000000em EA Fim Se

23: geração = geração +1

24: Atualizar as Probabilidades: Se (geração % β = 0) então probPlasmídio é decrementada e probTransponson é incrementada Fim Se

25: Fim Para

26: /*Fim das Atualizações*/

Algoritmo 6 Pseudocódigo do procedimento de inicialização do MOTA/D

1: Inicialização:

2: AE = iniciar o arquivo externo

3: Gerar uniformemente Sp vetores de pesos (λλλiii, i=1,...,Sp).

4: Calcular a distância euclidiana entre todos os pares de vetores de pesos e encontrar os Cvetores de pesos mais próximos (λλλi1,,, ...,,, λλλiC) de cada vetor de pesos (λλλi). Para cada i= 1, ..., Sp, B(i) ={i1, ..., iC}

5: Gerar a população inicial aleatoriamente com distribuição uniforme xxx111, ..., xxxSp V

V

V FFFiii= FFF(((xxxiii)))

Cada indivíduo xxxiii e vetor objetivo VVV FFFiii são associados com um vetor de pesos λλλiii

6: Iniciar zzz: zj= minob jetivoj(VVV FFF

iii), i = 1, ..., Sp, j = 1, ..., T 7: Iniciar nnnaaadddiiirrr: nadirj= maxob jetivoj(VVV FFF

iii), i = 1, ..., Sp, j = 1, ..., T 8: Iniciar os repositórios de informação Globais a priori e a posteriori

9: Iniciar o repositório Local a posteriori

10: probPlasmideo ← probInicial /*maior valor*/

11: probTransponson ← 1.0 - probPlasmídio

O MOTA/D pode ser composto por diferentes repositórios de informação do hos- pedeiro, os quais contêm informações que são manipuladas pelos vetores (operadores) trans- genéticos. Estes repositórios podem ser compostos por informações a priori ou informações a posterioriassim como por informações originárias somente das soluções que fazem parte da vizinhança do vetor (repositório local) ou informações vindas de toda a população de cromosso- mos (repositório global). O repositório local de informações representa uma inovação na TC e é incluído no MOTA/D pelo fato do framework tornar possível e encorajar o uso de informações locais aos vetores de pesos. Este aninhamento de repositórios de informações do hospedeiro é benéfico para o processo de busca, especialmente em problemas multiobjetivo onde a infor- mação pertencente a cada região da fronteira de Pareto pode ser acumulada em repositórios de informações locais. Os repositórios de informações do hospedeiro são iniciados nos Passos 8 e 9 do Algoritmo 6. O repositório de informações a priori é iniciado com informações sobre o problema obtidas antes mesmo do início da evolução das soluções. Já o repositório de infor- mações a posteriori é iniciado com informações encontradas na população de soluções iniciais, gerada no Passo 5 do Algoritmo 6. No caso dos repositórios a posteriori, as informações corre- spondem aos melhores cromossomos. No caso do repositório global, os melhores cromossomos são escolhidos de acordo com as menores somas dos valores das funções objetivo (minimiza- ção) e, no caso dos repositórios locais, os melhores cromossomos são escolhidos de acordo com os menores valores para a função Tchebycheff considerando o vetor de pesos associado ao repositório. As informações armazenadas nos repositórios são utilizadas na geração das cadeias de informação, as quais são - geralmente - fragmentos de soluções (ou seja, soluções parciais). Neste trabalho a quantidade de cadeias de informação é igual e fixa para todos os repositórios. O

tamanho de cada cadeia de informação é aleatório obedecendo um tamanho máximo e mínimo dependentes do problema sendo abordado.

A última etapa de iniciação do MOTA/D corresponde às inicializações das probabil- idades de aplicação dos vetores transgenéticos a cada iteração do algoritmo. Assim como um algoritmo transgenético tradicional o MOTA/D pode fazer uso de diferentes vetores manipu- ladores de informações genéticas. Neste trabalho, o MOTA/D foi implementado utilizando os vetores plasmídio e transponson. Conforme demonstrado em Goldbarg et al. (2009) o uso de patamares para a variação das probabilidades dos vetores transgenéticos é benéfico para os algoritmos transgenéticos. Portanto, o MOTA/D também faz uso de patamares para a atual- ização das probabilidades de aplicação dos vetores. Um patamar corresponde a um período evolucionário (uma quantidade de gerações) onde as probabilidades de aplicação dos vetores se mantêm inalteradas, seguindo o conceito de que as alterações genéticas ocorrem em saltos (patamares) (GOLDBARG et al., 2007).

Após as inicializações o algoritmo entra em seu laço principal (Passos de 2 a 24 do Al- goritmo 5) onde os repositórios de informações são selecionados, as soluções são manipuladas pelos vetores transgenéticos e diversas atualizações baseadas nos novos cromossomos gerados são realizadas.

O primeiro passo do laço principal (Passo 4 do Algoritmo 5) determina se a melhor cadeia de informação a ser utilizada na manipulação dos cromossomos será originada de um repositório de informações local ou global, de acordo com uma probabilidade. Este passo também determina, com a mesma probabilidade, se os cromossomos manipulados irão influ- enciar/atualizar um repositório de informações a posteriori local ou global. Em outras palavras o Passo 4 do Algoritmo 5 seleciona para cada cromossomo, o repositório do hospedeiro que será usado e se o cromossomo modificado será utilizado para atualizar apenas os cromossomos da vizinhança do cromossomo manipulado (B(i)) ou toda a população (Ne).

Na sequência, ocorre a manipulação do cromossomo por um vetor transgenético. Para isto, uma cadeia de informação é selecionada do repositório a priori ou a posteriori (com igual probabilidade) e descartada após o seu uso. É utilizado o repositório local (com probabilidade δ %) ou global (com probabilidade (100 - δ )%). Uma contribuição do MOTA/D está associada à seleção da melhor cadeia de informação (melhor(CI)) que é utilizada na manipulação dos cromossomos. Diferentemente do que acontece no NSTA (definido na Seção 5.2), o MOTA/D identifica a melhor cadeia de informação através da infiltração desta cadeia no cromossomo a ser manipulado e do cálculo do valor da função de Tchebycheff normalizada considerando o vetor de pesos associado com o cromossomo que será manipulado pelo vetor transgenético

(λλλiii). A cadeia de informação que resultar no menor valor da função é intitulada melhor(CI) e utilizada na manipulação.

Após isso, um vetor transgenético é escolhido para ser aplicado. A seleção entre um plasmídio e um transponson é aleatória e depende do estágio evolucionário do algoritmo: em estágios iniciais a probabilidade de aplicação do vetor plasmídio é maior enquanto a probabili- dade de aplicação do transponson torna-se maior nos estágios finais da evolução do algoritmo. A opção por iniciar os patamares com maior probabilidade para o vetor plasmídio foi feita com base em experimentos que demonstraram ser esta a melhor opção. Esta variação de probabili- dade acontece após um número fixo de gerações chamado de β . Tal variação simula patamares evolucionários, sendo cada patamar composto por β gerações.

A implementação dos vetores transgenéticos varia de acordo com a aplicação, mas to- dos devem minimizar (considerando um problema de minimização) a função de Tchebycheff normalizada durante a manipulação do cromossomo; o que, sob certas condições, é equivalente à guiar os cromossomos manipulados para perto da fronteira de Pareto do problema de otimiza- ção multiobjetivo considerado (MIETTINEN, 1999). Isto é equivalente ao procedimento de ataque do AT (p1 - descrito na Seção 2.1).

Em caso de infactibilidade, o cromossomo manipulado é reparado resultando em xxx000000. O cromossomo resultante (xxx000000) é usado para atualizar o repositório do hospedeiro de informações a posteriori. Se o repositório for local, xxx000000 substitui o pior cromossomo armazenado no repo- sitório se ele tem um valor melhor para a função de Tchebychef normalizada usando o vetor de pesos λλλiii; caso contrário ele substitui o pior cromossomo se possuir um menor valor para a soma dos objetivos. A seguir, independentemente do tipo de repositório utilizado, a cadeia de informação utilizada na manipulação é removida do repositório selecionado para evitar a con- vergência prematura do algoritmo e uma nova cadeia de informação é gerada aleatoriamente para substituí-la, seguindo o mesmo procedimento aplicado na iniciação dos repositórios.

Os pontos de referência zzz e nnnaaadddiiirrr são atualizados, respectivamente, com os mínimos e máximos valores para cada função objetivo encontrados até o presente momento da evolução. A vizinhança do cromossomo manipulado ou a população como um todo é atualizada (de acordo com a seleção ocorrida no Passo 4 do Algoritmo 5). Para isto, a solução gerada (xxx000000) é comparada com cada uma das soluções na vizinhança (B(i)), caso a vizinhança local tenha sido escolhida no Passo 4, ou toda a população (Ne), caso a população como um todo tenha sido escolhida. A solução gerada (xxx000000) substitui uma solução da vizinhança/população (xxxkkk) caso ela possua um menor valor na função de Tchebycheff utilizando o vetor de pesos associado àquela solução da vizinhança/população (λλλkkk). Para evitar a convergência prematura

da população, existe um limite máximo para o número de soluções que podem ser atualizadas (maxAtualizações). Assim que esse número é atingido a atualização é finalizada para essa solução gerada.

Após isto, o algoritmo tenta inserir xxx000000 no arquivo externo (AE), removendo todas as soluções armazenadas que são dominadas por xxx000000. Se a geração é múltipla de β então as prob- abilidades de aplicação dos vetores transgenéticos (probPlasmidio e probTransponson) são atualizadas, conforme o Passo 23 do Algoritmo 5. Finalmente, o critério de parada é testado.

Os passos do MOTA/D também podem ser observados no fluxograma da Figura 15.

Figura 15: Fluxograma com os passos do MOTA/D.

Para testar o seu potencial, o algoritmo MOTA/D foi implementado e testado em dois diferentes problemas: o Problema do Caixeiro Comprador Biobjetivo (2PCC) e o Problema Quadrático de Alocação Multiobjetivo (mPQA). Estas duas implementações são detalhadas nas Seções 5.4 e 5.5, respectivamente.