• Nenhum resultado encontrado

T-BT : Hibridização da transgenética com Busca Tabu

A presente pesquisa investigou potenciais hibridizações da transgenética computa- cional com outras meta-heurísticas. Desta investigação foi produzido o algoritmo chamado T-BT : uma hibridização da transgenética com busca tabu aplicada à AG-Bi. A parte da transgenética foi inspirada no trabalho de Monteiro, Goldbarg e Goldbarg (2010) (com vários aperfeiçoamentos que serão descritos a seguir) e a busca tabu é idêntica a de Rocha, Goldbarg e Goldbarg (2006), conforme detalhada no Algoritmo 2.

O T-BT mantém um arquivo externo de soluções não dominadas, chamado de global_arc, limitado a trezentas soluções e implementado segundo a técnica de grid adaptativo. Diferente de todos os algoritmos estudados ou propostos por esta dissertação, o T-BT mantém um cesto (ou lixeira) para reciclagem de soluções, conforme proposto por Medeiros (2016). De fato, quando o limite do global_arc é atingido, o procedimento de inserção no arquivo global tende a descartar alguma solução contida na região mais populosa do grid adaptativo. Porém, a solução descartada pode possuir DNA promissor em iterações futuras do processo evolucionário. Assim, o T-BT conserva em uma lista (isto é, em uma lixeira) as soluções que foram removidas do arquivo global. O procedimento de inserção na lixeira não verifica dominância em relação às soluções que nela existem. Periodicamente, o T-BT utiliza as soluções desta lista a fim de renovar a população de endossimbiontes: a este processo dá-se o nome de reciclagem. O objetivo da reciclagem é conferir diversidade à população. Medeiros (2016) investigou diversas técnicas de reciclagem e constatou, em seus estudos, que tal estratégia tem grande impacto na qualidade final das soluções, sem elevar significativamente o tempo final do algoritmo.

Algoritmo 12: Procedimento de reciclagem do algoritmo T-BT

1 Procedimento reciclagem(𝑃 𝑜𝑝, 𝑙𝑖𝑥𝑒𝑖𝑟𝑎)

2 Seja 𝐿𝑋𝑅 o conjunto de soluções incomparáveis da lixeira; 3 para cada 𝑠 ∈ 𝐿𝑋𝑅 faça

4 se 𝑓 𝑙𝑜𝑎𝑡_𝑟𝑎𝑛𝑑𝑜𝑚(0, 1) < 0, 5 então

5 𝑙𝑜𝑐𝑎𝑙_𝑎𝑟𝑐 = {𝑠| 𝑠∈ 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐 ∧ 𝑠̸≺ 𝑠};

6 s = tabuRGG(s, 𝑙𝑜𝑐𝑎𝑙_𝑎𝑟𝑐);

7 fim 8 fim

9 Calcule a distância de aglomeração das soluções em 𝐿𝑋𝑅;

10 Ordene as soluções em 𝐿𝑋𝑅 em ordem decrescente da distância de aglomeração;

11 Preencha 𝑃 𝑜𝑝 com as primeiras #𝑝𝑜𝑝𝑆𝑖𝑧𝑒 soluções em 𝐿𝑋𝑅;

O procedimento de reciclagem, descrito pelo Algoritmo 12, é parcialmente baseado em Medeiros (2016). Primeiramente, toma-se o conjunto LXR de soluções incomparáveis da lixeira. Para cada solução em LXR, executa-se a busca tabu (ROCHA; GOLDBARG; GOLDBARG, 2006) com uma probabilidade fixa de 50%. A aplicação da busca tabu em apenas parte do conjunto LXR visa obter um conjunto com material genético heterogêneo, isto é, com soluções que foram submetidas à busca tabu e outras soluções que não foram. Experimentos preliminares executados por esta pesquisa constataram que esta característica condizia a melhores resultados sem sofrer aumento significativo do tempo computacional. A Linha 9 do Algoritmo 12 calcula a distância de aglomeração das soluções em LXR. Esta métrica foi apresentada no trabalho de Deb et al. (2002) e utilizada originalmente no algoritmo NSGA-II. A partir da distância de aglomeração, o T-BT escolhe as soluções que serão recicladas. Esta estratégia contribui para obter um bom espalhamento e diversidade das soluções. O algoritmo escolhe as #𝑝𝑜𝑝𝑆𝑖𝑧𝑒 soluções de LXR com as maiores distâncias de aglomeração e as insere na população 𝑃 𝑜𝑝, renovando toda a população. Diferentemente do que fora proposto por Medeiros (2016), a Linha 2 não une a população à lixeira. Assim, toda a população é substituída pela reciclagem. De fato, segundo experimentos prévios efetuados por esta pesquisa, a estratégia de desconsiderar a união da população à lixeira antes do processo de reciclagem, no contexto do T-BT, conduzia estatisticamente a soluções de melhor qualidade e consumia menor tempo computacional.

O T-BT implementa três plasmídeos, plas1, plas2 e plas3, cujo tamanho 𝑝𝑙𝑠𝑖𝑧𝑒 da

cadeia genética é sorteado entre [2,𝑛−12 ], onde 𝑛 é a quantidade de vértices do grafo. Esta faixa de valores foi fixada visando construir plasmídeos cujas cadeias genéticas possam ter tamanhos variados (podendo possuir de duas até metade da quantidade de arestas de uma solução).

Os plasmídeos plas1 e plas2 foram definidos na seção 4.4.2.3: o primeiro é um plasmídeo recombinado que obtém sua informação genética com o auxílio do rmcPrim (KNOWLES, 2002), enquanto o segundo é um plasmídeo simples que obtém sua informação

Algoritmo 13: Algoritmo T-BT Entrada: Grafo 𝐺(𝑉, 𝐸)

Saída: Arquivo 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐 de soluções não dominadas

1 𝑃 𝑜𝑝 = 𝑝𝑜𝑝𝑢𝑙𝑎𝑐𝑎𝑜𝐼𝑛𝑖𝑐𝑖𝑎𝑙(#𝑝𝑜𝑝𝑆𝑖𝑧𝑒, 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐); 2 para 𝑔 = 1, ..., #𝑚𝑎𝑥_𝑔𝑒𝑛 faça

3 criar o conjunto com #𝑛𝑢𝑚𝑃 𝑙𝑎𝑠 plasmídeos; 4 para 𝑗 = 1, ..., #𝑝𝑜𝑝𝑆𝑖𝑧𝑒 faça 5 𝑝𝑟𝑜𝑏 = 𝑓 𝑙𝑜𝑎𝑡_𝑟𝑎𝑛𝑑𝑜𝑚(0, 1); 6 se 𝑝𝑟𝑜𝑏 < #𝑝𝑟𝑜𝑏𝑃 𝑙𝑎𝑠𝑚 então 7 𝑝𝑙 = 𝑔𝑒𝑡𝑃 𝑙𝑎𝑠𝑚(#𝑛𝑢𝑚𝑃 𝑙𝑎𝑠); 8 𝑠 = 𝑝𝑙𝑎𝑠𝑚𝑖𝑑(𝑝𝑙, 𝑃 𝑜𝑝[𝑗]); 9 se 𝑏𝑒𝑡𝑡𝑒𝑟(𝑠, 𝑃 𝑜𝑝[𝑗]) então 10 𝑃 𝑜𝑝[𝑗] = 𝑠; 11 fim 12 senão 13 𝑠 = 𝑝𝑟𝑖𝑚𝑇 𝑟𝑎𝑛𝑠𝑝(𝑃 𝑜𝑝[𝑗]); 14 se 𝑏𝑒𝑡𝑡𝑒𝑟(𝑠, 𝑃 𝑜𝑝[𝑗]) então 15 𝑃 𝑜𝑝[𝑗] = 𝑠; 16 fim 17 fim 18 𝑢𝑝𝑑𝑎𝑡𝑒(𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐, 𝑃 𝑜𝑝[𝑗]); 19 fim 20 se 𝑔 𝑚𝑜𝑑 #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 = 0 então 21 reciclagem (𝑃 𝑜𝑝, 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐.𝑔𝑒𝑡𝐿𝑖𝑥𝑒𝑖𝑟𝑎()); 22 ajuste_probabilidades(); 23 fim 24 fim

genética a partir da cadeia de DNA de uma solução do hospedeiro (aqui representado pelo arquivo 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐). O plas3, por sua vez, é proposto pelo presente trabalho. Este é um plasmídeo simples que obtém sua informação genética a partir de duas cadeias de DNA do hospedeiro. Sejam 𝑠1 e 𝑠2 duas cadeias de DNA. O 𝑝𝑙𝑎𝑠3 considera apenas as arestas em (𝐸(𝑠1) ∪ 𝐸(𝑠2)) − (𝐸(𝑠1) ∩ 𝐸(𝑠2)). Destas arestas, 𝑝𝑙𝑠𝑖𝑧𝑒 são escolhidas com probabilidade

uniforme de modo a formar uma árvore parcial, obtendo, assim, a cadeia genética do 𝑝𝑙𝑎𝑠3, cuja esquematização pode ser vista na Figura 8. A inspiração da proposta deste plasmídeo reside em tentar unir arestas que, possivelmente, ainda não se uniram pra formar uma árvore.

Todos os plasmídeos implementam a mesma estratégia de manipulação. Um plasmídeo, a fim de construir uma solução 𝑠 a partir da manipulação de 𝑠, insere toda sua cadeia genética em 𝑠, complementando-a com as arestas de 𝑠 que não formam ciclo. Caso necessário, arestas aleatórias da instância são inseridas em 𝑠 de modo a formar uma árvore final. A manipulação de um plasmídeo é aceita a partir do critério implementado pela sub-rotina better, tal como proposto por Monteiro, Goldbarg e Goldbarg (2010). A

sub-rotina better retorna verdadeiro se, e somente se, 𝑠 dominar 𝑠 ou se 𝑠 não for dominada pelas soluções do arquivo global.

Figura 8 – Esquematização do 𝑝𝑙𝑎𝑠3

O T-BT utiliza apenas o transponson primTrans (MONTEIRO; GOLDBARG; GOLDBARG, 2010), o qual foi descrito na seção 4.4.2.3. Experimentos preliminares executados com o T-BT constataram pouca eficiência do remTransp quando comparado ao primTrans. O critério de aceitação da manipulação efetuada por um transponson é idêntico ao dos plasmídeos e é implementando pela sub-rotina better.

O procedimento geral do T-BT é exibido pelo Algoritmo 13. O procedimento de criação da população inicial é idêntico ao de Monteiro, Goldbarg e Goldbarg (2010). O T-BT executa #𝑚𝑎𝑥_𝑔𝑒𝑛 iterações. A cada iteração cria-se um conjunto de plasmídeos cuja quantidade total é definida pelo parâmetro #𝑛𝑢𝑚𝑃 𝑙𝑎𝑠. A sub-rotina 𝑢𝑝𝑑𝑎𝑡𝑒 atualiza o arquivo global: insere a solução caso esta não seja dominada, e, em caso afirmativo, remove possíveis dominadas por ela. A sub-rotina 𝑢𝑝𝑑𝑎𝑡𝑒 também se encarrega de inserir na lixeira as soluções que foram descartadas do arquivo global. A cada #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 iterações consecutivas do T-BT, a população é renovada inteiramente pela reciclagem das soluções da lixeira. Em seguida, é efetuado o ajuste das probabilidades. Assim como em Monteiro, Goldbarg e Goldbarg (2010), a probabilidade #𝑝𝑟𝑜𝑏𝑃 𝑙𝑎𝑠𝑚 do vetor escolhido ser um plasmídeo é incrementada por um fator #𝑝𝑟𝑜𝑏𝐹 𝑎𝑡𝑜𝑟. A probabilidade do transponson atacar é 1 − #𝑝𝑟𝑜𝑏𝑃 𝑙𝑎𝑠𝑚. Assim, o transponson tem mais chances de ser utilizado nas primeiras iterações, enquanto os plasmídeos atuam mais comumente nas últimas. O critério de sucesso do ataque de um vetor transgenético é o mesmo adotado pelo T-LP.

Diferente de Monteiro, Goldbarg e Goldbarg (2010), quando o condicional da linha 6 é ativado, a probabilidade de sortear um dado plasmídeo não é uniforme. O T-BT implementa uma estratégia de patamares entre os plasmídeos plas1, plas2 e plas3, que se ajustam mediante a eficiência (número de vezes que promovem melhoria). Na primeira sequência de #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 iterações, todos os plasmídeos têm a mesma probabilidade de serem escolhidos pela sub-rotina 𝑔𝑒𝑡𝑃 𝑙𝑎𝑠𝑚. Ao fim de cada sequência de #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡

iterações, o ajuste dos patamares atribui a cada tipo de plasmídeo uma probabilidade proporcional às suas eficiências. Assim, nas iterações subsequentes, até que um novo ajuste seja efetuado, o tipo de plasmídeo mais eficiente terá maiores chances de ser escolhido pela sub-rotina 𝑔𝑒𝑡𝑃 𝑙𝑎𝑠𝑚.

O T-BT é classificado, consoante a taxonomia de Talbi (2015), como uma hibridi- zação de baixo nível e co-evolucionária, pois a busca tabu está embutida na reciclagem, que, por sua vez, está embutida no algoritmo transgenético. A busca tabu tem, portanto, papel co-evolucionário no processo de otimização. Finalmente, o T-BT apresenta diversas diferenças face ao T-LP, como a adoção da reciclagem, da busca tabu, de um novo tipo de plasmídeo e de patamares entre tipos de plasmídeo.

6 Experimentos dos algoritmos para a

AG-Bi

Este capítulo relata e discute os experimentos referentes aos algoritmos baseados em Pareto: GRPR, TAPAS e T-BT. O objetivo é comparar tais algoritmos entre si a fim de investigar qual deles apresenta os melhores resultados e, em seguida, compará-los com o estado da arte.

Todos os experimentos foram realizados numa máquina Intel Xeon W3520, 2.67 GHz, Sistema Operacional Ubuntu 14.04 LTS, 64 bits, 8GB de memória RAM. Os algoritmos foram implementados em linguagem C++ e compilados com compilador GNU g++ versão 4.8.4.

A seção 6.1 apresenta o conjunto de instâncias utilizado; a seção 6.2 discorre sobre a metodologia dos experimentos; a seção 6.3 compara os algoritmos GRPR, TAPAS e T-BT entre si; a seção 6.4 disserta sobre experimentos complementares entre o TAPAS e T-BT ; e, finalmente, a seção 6.5 os compara com o estado da arte.