• Nenhum resultado encontrado

Algoritmo de Monteiro, Goldbarg e Goldbarg (2010)

4.4 Revisão da literatura da AGMO

4.4.2 Algoritmos heurísticos

4.4.2.3 Algoritmo de Monteiro, Goldbarg e Goldbarg (2010)

A transgenética computacional tem obtido excelentes resultados na resolução de problemas mono e multiobjetivo. Particularmente, a literatura da AG-Bi é rica em algorit- mos transgenéticos, tais como aqueles propostos por Rocha, Goldbarg e Goldbarg (2007), Monteiro, Goldbarg e Goldbarg (2009) e Monteiro, Goldbarg e Goldbarg (2010), cujos resultados mostraram-se significativamente competitivos frente aos algoritmos clássicos. O algoritmo de Monteiro, Goldbarg e Goldbarg (2010), chamado T-LP, além de ser o mais recente, apresentou o melhor desempenho computacional e encontrou as melhores soluções. Esta seção descreve este algoritmo. Porém, antes de descrevê-lo, faz-se necessário fundamentar a contextualização da transgenética computacional.

Durante muitos anos, a Teoria de Evolução de Darwin se baseou na ideia de seleção natural para explicar a evolução dos seres vivos. Nesta teoria, indivíduos mais adaptados ao ambiente em que vivem tendem a ter mais chances de sobreviver, pois estão mais aptos a conseguir recursos necessários à sobrevivência, bem como mais capacidade de procriar. Da teoria de Darwin surgiram diversas outras ao logos dos anos, e também eram baseadas na ideia de seleção natural. Os algoritmos evolucionários clássicos, como genéticos, inspiram- se nesta teoria, onde o conceito de adaptação, reprodução e mutação são fundamentais. Contudo, a Teoria de Darwin apresentou dificuldades de explicar a evolução de seres microscópicos, como células eucariontes e estruturas intracelulares como mitocôndrias. Assim, nasceu a Teoria Serial da Endossimbiose (MARGULIS, 1992; MARGULIS, 2004) que explica o surgimento e evolução de novas espécies através do cenário endossimbiótico intracelular mutualista. Diz-se endossimbiótico porque o cenário envolve uma espécie chamada de hospedeiro que abriga em seu interior indivíduos de outra espécie (chamados de endossimbionte). Geralmente, os endossimbiontes buscam algum benefício ao abrigar-se no interior do hospedeiro. Caso o benefício seja para ambas as partes, chama-se o cenário de mutualista. Se o processo simbiótico ocorre no interior das células do hospedeiro, convenciona-se chamá-lo, pois, de intracelular. Vale ressaltar que, segundo Goldbarg e Goldbarg (2013), embora o cenário mutualista não seja o mais comum na natureza, existe

a possibilidade de ambos, hospedeiro e endossimbiontes, beneficiarem-se mutuamente neste processo simbiótico, contribuindo para evoluir e formar uma nova espécie, por sua vez, mais integrada e especializada funcionalmente. Relações entre hospedeiro e endossimbiontes contribuem para a troca de genes entre eles, evoluindo para sua fusão, isto é, sua completa e definitiva associação e, consequentemente, para o surgimento de um novo ser vivo com genoma próprio.

Goldbarg e Goldbarg (2013) definiram a Transgenética computacional como uma meta-heurística evolucionária baseada fundamentalmente sobre os conceitos da evolução en- dossimbiótica intracelular mutualista. Ao contrário dos algoritmos evolucionários clássicos, os Algoritmos Transgenéticos não estão baseados em processos de reprodução e mutação. Por outro lado, tais algoritmos, a fim de simular o processo de evolução endossimbiótica serial, implementam o conceito de transferência horizontal de genes, sugerindo uma família de Vetores Transgenéticos. Diz-se horizontal porque não há aqui uma relação hierárquica em que os pais passam material genético aos seus descendentes (vertical). Ao contrário, a transferência é feita entre indivíduos que participam de relações simbióticas (como hospedeiro e endossimbiontes). Os vetores podem realizar, entre outras, ações como ataque e transcrição. O ataque é uma sondagem em que o vetor verifica se o endossimbionte é sensível à sua manipulação. Por exemplo, o ataque pode consistir em verificar se a transcrição de genes no cromossomo melhora seu fitness. Sua atuação é inibida caso o resultado da sondagem obtenha resultado negativo. Transcrição tem lugar quando os genes do vetor transgenético são encaixados na cadeia genética do cromossomo, alterando, portanto, seu DNA.

Plasmídeos são exemplos de vetores que realizam ataque e transcrição. Um vetor é dito plasmídeo caso ele carregue consigo uma sub-cadeia de DNA codificada no mesmo formato dos endossimbiontes e seus procedimentos de atuação sejam unicamente ataque e transcrição. A sub-cadeia é geralmente obtida do material genético do hospedeiro. Assim, torna-se possível a troca de genes entre o material genético do hospedeiro e aquele dos cromossomos. Goldbarg e Goldbarg (2013) classificaram os plasmídeos como simples ou recombinados: os primeiros carregam um fragmento de uma cadeia de DNA do hospedeiro; enquanto os segundos mesclam genes de várias cadeias do hospedeiro, utilizando procedimentos construtivos ou heurísticos para formar sua sub-cadeia ou parte dela. Transponsons são vetores que identificam, na cadeia de genes do cromossomo alvo, um intervalo no qual eles realizam alguma busca ou verificação de vizinhança, através de rearranjos sistemáticos dos genes pertencentes ao intervalo.

O T-LP de Monteiro, Goldbarg e Goldbarg (2010) é apresentado no Algoritmo 5. O algoritmo mantém um arquivo global, baseado na estratégia de grid adaptativo de Knowles (2002), aqui denominado 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐, limitado a trezentas soluções não dominadas. O arquivo global é considerado como o hospedeiro. As árvores são representadas pela lista direta de arestas que a compõem (RAIDL; JULSTROM, 2003). A população inicial de

Algoritmo 5: Algoritmo T-LP de Monteiro, Goldbarg e Goldbarg (2010) Entrada: Grafo 𝐺(𝑉, 𝐸)

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

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

3 se 𝑔 − 1 𝑚𝑜𝑑 #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 = #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 − 1 então

4 ajuste_probabilidades();

5 fim

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

#𝑝𝑜𝑝𝑆𝑖𝑧𝑒 endossimbiontes é obtida em duas fases: 90% das soluções são obtidas com o método rmcPrim (KNOWLES, 2002) e o restante com o método Random Walk (RAIDL; JULSTROM, 2003). O procedimento rmcPrim constrói uma solução adicionando arestas à solução parcial, as quais são escolhidas entre aquelas pertencentes ao corte formado pelos vértices contidos na solução parcial e os vértices não contidos. Porém, diferente de Prim (1957), a escolha do rmcPrim é randômica (probabilidade uniforme) e feita numa lista restrita de arestas candidatas (LRC ). A cada iteração, o procedimento toma a aresta 𝑒 (do corte) que seria escolhida pelo Prim clássico. A lista LRC será composta pelas arestas cujo custo escalarizado seja, no máximo, 0, 03% maior que 𝑒. Se a solução gerada com rmcPrim não for dominada em relação àquelas do arquivo 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐, então a mesma é

aceita na população; caso contrário, a aceitação ocorre com 60% de probabilidade. Os vetores propostos pelo T-LP são plasmídeos e transponsons. Uma nova es- tratégia de atuação dos vetores dá ao referido algoritmo transgenético destaque face aos precedentes. O parâmetro #𝑚𝑎𝑥_𝑔𝑒𝑛 indica a quantidade total de iterações. A cada iteração, um tipo de vetor é escolhido para manipular os endossimbiontes, com base em níveis (ou patamares) de probabilidade que se ajustam a cada #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 iterações consecutivas. Isto é, a probabilidade de escolher um plasmídeo, #𝑝𝑟𝑜𝑏𝑃 𝑙𝑎𝑠𝑚, permanece fixa por #𝑖𝑛𝑡𝐺𝑒𝑟𝑆𝑒𝑡 iterações consecutivas e, logo após, é incrementada por um fator definido pelo parâmetro #𝑝𝑟𝑜𝑏𝐹 𝑎𝑐𝑡𝑜𝑟. Se for escolhido que os plasmídeos devem atacar, então seleciona-se um plasmídeo com probabilidade uniforme. A probabilidade do ataque ser efetuado por um transponson é 1 − #𝑝𝑟𝑜𝑏𝑃 𝑙𝑎𝑠𝑚.

Monteiro, Goldbarg e Goldbarg (2010) implementaram dois tipos de plasmídeos, aqui denominados plas1 e plas2. O primeiro, um plasmídeo recombinado, fora idealizado pelos referidos autores, enquanto o segundo, um plasmídeo simples, fora proposto por Rocha, Goldbarg e Goldbarg (2007). O tamanho da cadeia de informação genética de qualquer plasmídeo é escolhido randomicamente no intervalo [0, 25𝑛; 0, 50𝑛]. A informação genética do plas1 é construída com o auxílio do método rmcPrim (KNOWLES, 2002). Em verdade, neste contexto, os autores utilizaram uma adaptação do rmcPrim capaz de gerar uma árvore parcial (subárvore) cujas arestas constituirão a cadeia genética do plas1. Por sua vez, o plas2 é um plasmídeo simples, cuja informação genética advém da cadeia de DNA de um cromossomo escolhido com probabilidade uniforme dentre as soluções do 𝑔𝑙𝑜𝑏𝑎𝑙_𝑎𝑟𝑐. Dada tal cadeia genética, escolhe-se uma sub-cadeia com probabilidade uniforme, de modo que suas arestas formem um componente conexo, isto é, formem uma árvore parcial. A Figura 4 esquematiza a estratégia de construção do plas2.

Figura 4 – Esquematização do plas2

O T-LP implementa dois transponsons: remTransp e primTransp. Se for esco- lhido que algum transponson deverá atacar, então o primeiro fá-lo-á com probabilidade #𝑝𝑟𝑜𝑏𝑅𝑒𝑚𝑇 𝑟𝑎𝑛𝑠𝑝 e segundo com o complemento deste. Dado um endossimbionte, o remTransp remove, iterativamente, arestas de uma sub-cadeia de DNA do indivíduo. A cada aresta removida, o procedimento completa a árvore com a melhor aresta do grafo cujo custo é definido por um vetor de escalarização. A regra do primTransp consiste em, dado um endossimbionte, remover algumas de suas arestas e completar a solução com

o procedimento rmcPrim (KNOWLES, 2002). As arestas removidas, cuja quantidade é determinada randomicamente entre 90% e 95%, são escolhidas com probabilidade que depende do custo escalarizado obtido pela aplicação de um vetor de escalarização. Quanto maior o custo escalarizado da aresta, maior a probabilidade de ela ser removida da solução. Em sequência, o algoritmo rmcPrim é invocado e, a fim de completar a solução, recebe o mesmo vetor de escalarização utilizado para remover as arestas.

A cada iteração, um conjunto de #𝑛𝑢𝑚𝑃 𝑙𝑎𝑠 plasmídeos é criado e todos os endossimbiontes da população devem ser atacados por algum agente transgenético. O resultado do ataque é uma solução 𝑠′. O critério de aceitação indica o sucesso do ataque e é implementado pela sub-rotina 𝑏𝑒𝑡𝑡𝑒𝑟. Esta sub-rotina retorna verdadeiro se, somente se, 𝑠dominar o endossimbionte original ou se 𝑠′ não for dominada pelas soluções do arquivo global.

Segundo Monteiro (2011), o T-LP foi comparado com os algoritmos transgenéticos de Rocha, Goldbarg e Goldbarg (2007) e Monteiro, Goldbarg e Goldbarg (2009), e com o GRASP de Arroyo, Vieira e Vianna (2008), mostrando-se competitivo em todos os casos, sobre o conjunto de instâncias de Knowles (2002), com base no indicador 𝜖-binário aditivo. Além disso, o tempo computacional do T-LP mostrou-se significativamente inferior. Por estes motivos, o T-LP apresenta potencial na investigação de algoritmos híbridos aplicados à AG-Bi, sendo, portanto, considerado nesta pesquisa.