vinícius rosa máximo · aos meus amigos de turma pelos bons momentos de descontração e às...

92
Detecção de Network Motifs Vinícius Rosa Máximo

Upload: others

Post on 06-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Detecção de Network Motifs

Vinícius Rosa Máximo

Page 2: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 3: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Detecção de Network Motifs

Vinícius Rosa Máximo

Trabalho de conclusão de curso apresentado aoInstituto de Ciência e Tecnologia – UNIFESP,como parte das atividades para obtenção dotítulo de Bacharel em Ciência da Computação.

Orientador: Prof. Dr. Arlindo Flavio da ConceiçãoCo-orientador: Prof. Dr. Luis Augusto Angelotti Meira

São José dos Campos – SPmarço, 2013

Page 4: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 5: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Detecção de Network Motifs

Vinícius Rosa Máximo

Trabalho de conclusão de curso apresentado aoInstituto de Ciência e Tecnologia – UNIFESP,como parte das atividades para obtenção dotítulo de Bacharel em Ciência da Computação.

Orientador: Prof. Dr. Arlindo Flavio da ConceiçãoCo-orientador: Prof. Dr. Luis Augusto Angelotti Meira

Banca Examinadora:

——————————————Prof. Dr. Arlindo Flavio da Conceição

——————————————Prof. Dr. Luis Augusto Angelotti Meira

——————————————Prof. Dr. Reginaldo Massanobu Kuroshu

Aprovado em:

Page 6: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 7: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

À minha esposa e aos meus pais.

Page 8: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 9: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Agradecimentos

Agradeço a Deus por ter me dado saúde, paz e força para lutar.

Aos meus pais por todo amor, carinho e pelos exemplos de perseverança e de garra que foram

essenciais para a minha formação.

À minha esposa pela compreensão e pelo imenso apoio durante toda a graduação.

Ao meu irmão pelo companheirismo e amizade.

Aos meus orientadores pela confiança, paciência e boa convivência.

Aos professores pela educação que com grande sabedoria me foi transmitida.

Aos meus amigos de turma pelos bons momentos de descontraçãoe às infindáveis horas de

estudo.

Page 10: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 11: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Resumo

NEtwork Motifs se tornou um tópico de pesquisa após Milo et al.publicarem seu resultados na revista Science no ano de 2002.Sua descoberta permitiu caracterizar uma rede por meio de Mo-

tifs que são blocos elementares de redes complexas. O problema de De-tecção de Network Motifs é uma tarefa de elevado custo computacional.Neste trabalho são abordadas algumas estratégias utilizadas pelos me-lhores algoritmos disponíveis atualmente, bem como suas vantagens edesvantagens. Também será apresentado o acc-Motif que é um novo al-goritmo para enumeração exata de padrões isomorfos implementado paraMotifs de tamanho 3 e 4. Este algoritmo utiliza técnicas de otimizaçãocombinatória e seu desempenho é bastante expressivo em comparaçãoaos outros algoritmos.

Palavras-chave: Network Motifs, Redes Complexas, Enumeração deSubgrafos, Detecção de Motifs, Motifs, Subgrafos isomorfos, Problemade Isomorfismo em Grafos, acc-Motif.

i

Page 12: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 13: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Abstract

NEtwork Motifs has become a research topic after Milo et al. pu-blish their results in the journal Science in 2002. His disco-very led to characterize a network through Motifs that are Sim-

ple Building Blocks of Complex Networks. The problem Detection ofNetwork Motifs is a task of high computational cost. This paper discussessome strategies used by the best algorithms currently available, as well asits advantages and disadvantage.Also featured will be acc-Motif is a newalgorithm for exact enumeration of isomorphic patterns implemented forMotifs of size 3 and 4. This algorithm uses combinatorial optimizationtechniques and their performance is quite expressively compared to otheralgorithms.

Keywords: Network Motifs, Complex Networks, Counting Motifs, Enu-merating subgraphs, Detection Motifs, Motifs, Subgraphs isomorphic,Graph isomorphism problem, acc-Motif.

iii

Page 14: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 15: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Sumário

Resumo i

Abstract iii

1 Introdução 11.1 Definição do Problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Solução para o Problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Organização do texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Network Motifs 92.1 Frequência de subgrafos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Classificação dos algoritmos. . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 Enumeração de subgrafos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1 Algoritmo de Força Bruta. . . . . . . . . . . . . . . . . . . . . . . . 112.3.2 Algoritmo Elementar. . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4 Classificação quanto ao isomorfismo. . . . . . . . . . . . . . . . . . . . . . . 142.4.1 Algoritmo de Força Bruta. . . . . . . . . . . . . . . . . . . . . . . . 162.4.2 Algoritmo de Força Bruta com Refinamento Estrutural. . . . . . . . . 162.4.3 Isomorfismo Polinomial. . . . . . . . . . . . . . . . . . . . . . . . . 192.4.4 Primeira Função dehash: Assinatura de Grau. . . . . . . . . . . . . . 212.4.5 Assinatura de Grau com Permutação. . . . . . . . . . . . . . . . . . . 232.4.6 Gradiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5 Geração de Grafos Aleatórios. . . . . . . . . . . . . . . . . . . . . . . . . . . 292.5.1 Primeira Abordagem. . . . . . . . . . . . . . . . . . . . . . . . . . . 292.5.2 Segunda Abordagem. . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.6 Identificação deMotifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3 Algoritmo acc-Motif para k=3 353.1 Grafos não direcionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 Grafos direcionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

v

Page 16: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

3.3 Resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.3.1 Avaliação em grafos aleatórios. . . . . . . . . . . . . . . . . . . . . . 48

4 Algoritmo acc-Motif para k=4 514.1 Grafos não direcionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2 Grafos direcionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.3 Resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5 Conclusão 675.1 Comparativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.2 Contribuições. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.3 Trabalhos Futuros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Referências Bibliográficas 71

A Tabela de Resultados 75

vi

Page 17: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

CAPÍTULO

1Introdução

Network Motifsganhou notoriedade após Milo et al. [15] publicarem seus resultados na revista

Science no ano de 2002. De lá até os dias de hoje, o conceito vemsendo utilizado em muitas

áreas da ciência, em especial em biologia e bioinformática [9, 10, 12, 19].

O uso deMotifs não se reduz a bioinformática. Em [25], Yang et al. usam o conceito de

Network Motifspara remover ambiguidade na busca de informações de uma pessoa na Web.

A informação utilizada para construir a rede é formada pela estrutura da página e pelos seus

links. Em outro trabalho, Lin, Guanqun e Li [11] utilizam o conceito deMotifs em programas

de computadores. Após comparar 110 programas desenvolvidos segundo o modelo de software

livre, os autores detectaram três tipos distintos de rede, criando um agrupamento dos programas

em três blocos. Em [1], Allan et al. usam o conceito deNetwork Motifspara analisar tráfego

em uma rede de computadores.

No que se refere a resolução do problema e não à sua aplicação,Network Motifsé um

tema de pesquisa. Em [13], Marcus et al. mostraram métodos para contarMotifs de maneira

eficiente. Em [22], Wang et al. apresentaram um algoritmo paralelo para encontrar Motifs

usando umclusterparalelo.

Este tema tem muita aplicação na área biológica, principalmente nas redes regulatórias de

genes ou interações entre as proteínas também chamando de PPI (protein–protein interaction)

[15, 24]. Milo mostrou que tanto em redes biológicas quanto não biológicas existem peque-

nos padrões topológicos que são tão frequentes que seria improvável que acontecessem com a

1

Page 18: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

2

mesma frequência em grafos aleatórios. Diferentes tipos deredes tendem a ter diferentes con-

juntos de estruturas básicas chamadas deNetwork Motifs. Estes padrões são considerados como

“blocos elementares de redes complexas”.

Redes complexas ocorrem em diversas áreas do conhecimento.Por exemplo, uma rede pode

representar uma cadeia alimentar, onde cada vértice é uma espécie e uma aresta direcionada de

a parab significa que a espéciea se alimenta da espécieb, por exemploa→ b.

Dentro de uma rede podemos contar o número de ocorrências de cada padrão. Por exemplo,

sea se alimenta deb e b se alimenta dec temos o padrãoa → b → c, também chamado de

Cadeia de Três, conforme mostra a Figura1.1. Por outro lado, sea se alimenta deb e dec, eb ec

se alimenta ded, temos um padrão conhecido comoDois em Paralelo, conforme ilustra a Figura

1.1. Em uma cadeia alimentar, esperamos encontrar muito o padrão a→ b→ c, pois representa

uma transferência de energia e de nutriente, cada nível trófico passa para o nível seguinte parte

da energia que adquiriu. A presença do padrãoDois em Paraleloindica que duas espécies que

são presas do um mesmo predador ambas tendem a compartilhar amesma presa. Com base em

sete ecossistemas distintos incluindo habitats aquáticose terrestres, Milo [15] identificou que

os padrões descritos na Figura1.1 ocorreram com uma frequência extremamente alta. Estes

padrões indicam comportamentos e tendências em uma cadeia alimentar.

a b c

a

b c

d

Cadeia de Três Dois em Paralelo

Figura 1.1: Representação dos padrões mais comuns em cadeias alimentares.

Outro exemplo de redes complexas ocorre na representação deconexões neurais. Os vér-

tices são representados pelos neurônios e as arestas pelas conexões sinápticas. Nestas redes

ocorrem com maior frequência os padrõesCircuito de Alimentação Diretae Duplo Ventilador

conforme ilustrado na Figura1.2. Redes neurais tendem a funcionar como meio de transporte

para informações entre os componentes sensoriais. O padrãoCircuito de Alimentação Direta

desempenha uma função importante no processamento da informação. Geralmente os nós de

entrada são neurônios sensoriais, assim as informações só serão propagadas se a entrada se

manter constante. Por exemplo, suponhamos quea receba uma informação e a repasse parab e

Page 19: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 1. Introdução 3

b a repasse parac, o neurônioc só transmitirá a informação sea continuar constante, caso con-

trário podemos considerar que a informação recebida porc foi apenas um ruído. Esta estrutura

tem a finalidade de filtrar possíveis flutuações de entrada ou variações no ambiente.

a

b c

a b

cd

Circuito de Alimentação Direta Duplo Ventilador

Figura 1.2: Representação dos padrões que ocorrem com maior frequênciaem redes neurais.

Em uma redeWorld Wide Web, podemos representar os vértices como sendo ossitese as

arestas representando oslinks. Neste tipo de rede, por exemplo, ocorre uma alta frequênciade

padrões de três vértices onde existe um link ligando todos osvértices nos dois sentidos conforme

Figura1.3. Este padrão é chamado deTriângulo Completamente Conectadoe representa uma

forte conexão entre nós adjacentes. Se este padrão fosse encontrado numa cadeia alimentar,

poderia representar uma anomalia na rede, pois este comportamento não é comum para este

tipo de rede.

a

b c

Triângulo Completamente Conectado

Figura 1.3: O padrão mais encontrado em redeWorld Wide Web.

Podemos concluir que osMotifs representam algumas funcionalidades da rede, ou seja,

podem indicar tendências de comportamento e podem caracterizar uma rede qualquer. Deste

modo, podemos analisar uma rede complexa desconhecida e classificá-la a partir de seusMotifs.

Por exemplo, se numa rede desconhecida ocorrer oMotif a → b → c, podemos dizer

que ela se aproxima de uma cadeia alimentar. Já se ocorrer oMotif Triângulo Completamente

Page 20: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

4 1.1. Definição do Problema

Conectadoconforme Figura1.3, então esta pode ter um comportamento parecido com o de uma

rede social ou WWW.

De pouco vale receber um genoma com milhões de genes e observá-lo de maneira direta,

ou seja, sem um tratamento computacional. Agora, a partir deMotifs, podemos classificar tais

genes e suas relações de semelhança ou de proximidade em relação a outros genomas.

Genomas, cadeias alimentares, redes sociais, redes neuronais, redes de informação e redes

obtidas da web podem ser representadas como grafos direcionados e analisados a luz da teoria

sobreNetwork Motifs.

Neste sentido,Motifsconsistem em uma ferramenta com amplo espectro de aplicações.

1.1 Definição do Problema

O problema deNetwork Motifsvisa analisar um grafo direcionado qualquer e identificar osseus

componentes básicos. A detecção dosNetwork Motifsé uma tarefa de elevado custo compu-

tacional. Nos últimos anos diversas ferramentas foram implementadas, visando a otimização e

permitindo analisar redes cada vez maiores [7, 16, 17, 20, 21]. Podemos dividir o problema em

quatro partes, conforme sugerido por [7]:

1. Enumeração de todos os subgrafos de tamanhok.

2. Classificação do subgrafo quanto ao isomorfismo.

3. Geração de grafos aleatórios.

4. Análise estatística dos padrões para identificar os possíveisMotifs.

Entrada: Um grafoG.Saída: OsMotifs identificados.

1 para cada grafo∈ (G ∪ Aleatrios(G)) faça2 Enumeração de todos os subgrafos de tamanhok.3 para cada subgrafo de tamanhok faça4 Classificação quanto ao isomorfismo.5 fim6 fim7 Análise estatística dos padrões para identificar os possíveis Motifs [7].

Algoritmo 1: Definição genérica para o Problema deNetwork Motifs.

Basicamente, podemos definir o problema de forma genérica conforme o Algoritmo1.

Page 21: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 1. Introdução 5

Motifs ocorrem tanto em grafos não orientados como em dígrafos. Como dígrafos é um

caso mais geral e abrange os grafos sem orientação, neste trabalho, o foco será voltado para

encontrarNetwork Motifsem dígrafos.

1.2 Solução para o Problema

Figura 1.4: Representação do resultado gerado pelo gerador de subgrafos tendo como entradao grafo da Celebridade.

Vamos iniciar a apresentação do problema com um exemplo prático. Na Figura1.4temos a

representação de uma rede social onde o elemento central é uma celebridade e a sua adjacência

os fãs. Network Motifssão representados por subgrafos conexos de uma rede qualquer. Para

contabilizar os padrões precisamos gerar todos os subgrafos conexos induzidos de tamanhok.

No exemplo do grafo da celebridade parak = 3 temos os subgrafosA,B,C,D,E eF , descritos

na Figura1.4. É necessário agora classificá-los quanto ao isomorfismo.

Considere os subgrafosA eB, descritos na Figura1.4, em queA possui os vértices{a0, a1, a2}eB os vértices{b0, b1, b3}. Se existe uma mudança dos rótulos, de forma queA eB possuam

o mesmo conjunto de vértices e arestas, dizemos queA e B, são isomorfos. Neste exemplo,

A eB, são isomorfos, rotulando(b0, b1, b3) ← (a0, a1, a2). Outro exemplo pode ser visto nos

subgrafosC eD que são isomorfos por meio da permutação(c0, c1, c4)← (d0, d2, d3).

É interessante observar que existem 13 padrões de dígrafos conexos parak = 3. Para

k = 4 e k = 5 são respectivamente 199 e 9364 padrões distintos [23]. O número de subgrafos

possíveis cresce de modo exponencial conforme o tamanho dek aumenta. Na Figura1.5temos

a representação dos 13 padrões de tamanho 3.

Neste processo, o classificador precisa identificar se dois subgrafos são isomorfos ou não

e em seguida contabilizar os padrões idênticos e separar os distintos. O exemplo ilustrado

Page 22: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

6 1.2. Solução para o Problema

Figura 1.5: Lista dos 13 dígrafos conexos parak = 3 numerados de 1 a 13.

na Figura1.6, os padrões{A,B,E, F} são agrupados como um único padrão isomorfo e os

subgrafos{C,D}, são agrupados em um padrão diferente. Conforme ilustrado na Figura1.6

temos apenas dois padrões distintos, o primeiro ocorre2 vezes e o segundo4. Para representar

esta distinção, podemos utilizar um histograma com os padrões isomorfos no eixoX e o número

de ocorrências no eixoY .

Figura 1.6: Representação dos subgrafos passando por um classificador quanto ao isomor-fismo.

Para identificar osMotifs é necessário comparar o histograma gerado a partir do grafo ori-

ginal com os histogramas dos grafos aleatórios. Conforme Milo et al. [15], o número total de

grafos aleatórios é variável, mais tipicamente estão entre100 a 1000 grafos aleatórios. Então,

os dois passos anteriores, que são: gerar todos os subgrafosde tamanhok e classificá-los quanto

ao isomorfismo, deverão ser aplicados 1 vez no grafo originale pelo menos 100 vezes em grafos

aleatórios. Este é o grande gargalo do problema deNetwork Motifs. A tarefa mais custosa é

a geração de subgrafos, mas como o processo de classificação será aplicado a cada subgrafo,

Page 23: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 1. Introdução 7

podemos concluir que as duas primeiras etapas do processo detém a maior parcela de relevância

no custo computacional.

Os padrões do grafo original que ocorrerem com uma frequência incomumente maior que

a dos padrões dos grafos aleatórios serão classificados comoMotifs [15]. A relevância do

Motif na rede será indicado pelo número de desvios padrões contidos na diferença entre o grafo

original e a média dos grafos aleatórios. Por exemplo se o número de ocorrências no grafo

original for igual a 10, o valor médio nos grafos aleatórios for 2, e o desvio padrão dos grafos

aleatórios for 1, então este padrão ocorre 8 desvios padrõesacima da média.

1.3 Objetivos

O principal objetivo deste trabalho é propor um novo algoritmo para identificação deNetwork

Motifs, demostrar seu funcionamento e comparar seu desempenho em relação aos demais. O

grande gargalo deste problema é a enumeração de todos os padrões de tamanhok [24]. A

classificação dos padrões por meio do isomorfismo cresce exponencialmente com relação ao

tamanho do grafo.

A estratégia pretendida é enumerar os padrões não um a um e simem bloco. Deste modo

conseguiremos analisar vários padrões ao mesmo tempo. Estaabordagem será apresentada pelo

algoritmo acc-Motif (Accelerated Motif) [14].

Serão apresentadas também algumas estratégias utilizadaspelos melhores algoritmos exis-

tentes na literatura e iremos comparar seus desempenhos comrelação ao acc-Motif.

1.4 Organização do texto

No Capítulo2, apresentamos uma visão mas detalhada do problema deNetwork Motifs. Serão

apresentados algumas classificações dos algoritmos que resolvem o problema e os tipos de

frequências que podem ser adotadas para gerar os subgrafos.Também apresentaremos as quatro

etapas necessárias para resolver o problema descritas na Seção1.1de forma mais detalhada.

Os Capítulos3 e 4 apresentam a descrição do acc-Motif [14], que é um algoritmo desen-

volvido para resolver o problema deNetwork Motifs. Este algoritmo possui uma característica

bastante peculiar e inovadora, pois as duas primeiras etapas do problema são resolvidas de uma

única vez, diminuindo bastante o custo computacional. Estaabordagem está modelada para

k = 3 e k = 4, contudo esta metodologia pode ser utilizada para resolverproblemas maiores.

Neste trabalho será tratado apenas estes tamanhos devido à elevada sofisticação do algoritmo.

Por fim, o Capítulo5 contém nossas considerações finais.

Page 24: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 25: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

CAPÍTULO

2Network Motifs

Existem diversos algoritmos voltados à identificação deNetwork Motifs, alguns deles são: FAN-

MOD [21], MFinder[16], MAVisto[20], Kavosh[7], MODA[17], Grochow[6], entre outros.

Cada algoritmo possui uma peculiaridade com relação às tarefas necessárias para resolver o

problema. A maior parte das diferenças estão relacionadas àenumeração de todos os subgrafos

de tamanhok.

2.1 Frequência de subgrafos

Existem 3 tipos de frequência de subgrafosF1, F2, F3, conforme citado por Elisabeth [24]. F1

permite que vértices e arestas sejam sobrepostos, ou seja, ao gerar os subgrafos conexos de

tamanhok, será permitido que vértices e arestas sejam contados em mais de um subgrafo. Con-

tudo os conjuntos de vértices não devem ser idênticos. A frequênciaF2 permite que apenas os

vértices sejam sobrepostos, deste modo uma aresta só poderápertencer a um único subgrafo.

Esta frequência permite que diferentes conjuntos de subgrafos sejam construídos, podendo va-

riar de acordo com a ordem de varredura. Isto ocorre pelo fatode que as arestas não podem

ser sobrepostas. ParaF3 restou o requisito mais forte, ou seja, não permitir qualquer sobrepo-

sição de vértices e de arestas. O exemplo de gerador de subgrafo descrito na Seção1.2 utiliza

a frequênciaF1, ou seja, os padrões{A,B,C,D,E, F} serão criados. Utilizando-seF2 pode-

mos ter 3 conjuntos de subgrafos diferentes{A, F} ou {B,E} ou {C,D}. ParaF3 teremos

9

Page 26: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

10 2.2. Classificação dos algoritmos

apenas um dos conjuntos:{A}, {B}, {C}, {D}, {E}, {F}. A maioria dos algoritmos utilizam

a frequênciaF1, pois o resultado será o mesmo em todas as varreduras.

2.2 Classificação dos algoritmos

Existem duas estratégias utilizadas para fazer a varredurado grafo, os algoritmos centrados no

Grafo e os algoritmos centrados noMotif [24]. Os algoritmos centrados no Grafo iniciam as

buscas a partir da rede. Uma das vantagens é que subgrafos quenão existem na rede não se-

rão processados. Estes algoritmos necessitam gerar todos os subgrafos para poderem computar

as suas respectivas frequências. Os algoritmos centrados no Motif são capazes de calcular a

frequência de determinado padrão no grafo de forma isolada,deste modo ao calcular a mé-

dia deste padrão nos grafos aleatórios, já podemos dizer se este padrão é umMotif ou não.

Se o pesquisador tiver interesse em encontrar um padrão específico, então esta abordagem é

a mais apropriada, pois não será necessário gerar todos os subgrafos de tamanhok. Para cal-

cular todas as ocorrências de padrões na rede, os algoritmoscentrados noMotif tem como

pré-processamento a enumeração de todos os subgrafos isomórficos de tamanhok.

Outra abordagem é com relação à enumeração dos subgrafos, podendo ser exata ou por

amostragem. A enumeração exata, como o nome já diz, calcula todos os subgrafos tendo como

resultado a enumeração exata dos subgrafos. Já a enumeraçãopor amostragem utiliza uma

abordagem probabilística e com uma boa quantidade de amostras pode-se chegar perto do re-

sultado esperado, mas alguns subgrafos podem ser perdidos.A grande vantagem da abordagem

por amostragem consiste no fato de que o algoritmo fica insensível ao tamanho do grafo. Na

Tabela2.1 indicamos alguns algoritmos presentes na literatura e sua classificação conforme

características descritas acima.

Tabela 2.1:Classificação dos algoritmos deNetwork Motifs[24]

Centrado no Grafo Centrado noMotif

ExataMAVisto[20] Grochow[6]Kavosh[7]

AmostragemFANMOD [21] MODA[17]MFinder[16]

Page 27: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 11

2.3 Enumeração de subgrafos

Para executar esta tarefa, alguns requisitos devem ser respeitados. O primeiro deles é que o

subgrafo gerado precisa ser conexo. No problema deNetwork Motifs, padrões desconexos não

trazem nenhuma informação relevante com relação aos vértices desconexos. Também o número

de subgrafos possíveis aumentaria ainda mais se o requisitode conexidade fosse retirado.

SejaG(V,E) o grafo a ser analisado en = |V |. Desprezando a conexidade do grafo

podemos combinar todos osn vértices em conjuntos de tamanhok. Sabemos que(

n

k

)

=n!

k!(n− k)!

Outra importante característica é que cada subgrafo isomórfico deve ser contado apenas

uma vez. Suponha agorak = 3 e um subgrafo conexo formado pelos vértices{a, b, c} esta

combinação só poderá ser contabilizada uma única vez.

2.3.1 Algoritmo de Força Bruta

Para introduzir o assunto pode-se apresentar um método que,apesar de baixa eficiência, é elu-

cidativo e resolve o problema de forma intuitiva. Como osMotifs são representados pelos

subgrafos conexos, as combinações que não forem serão desprezadas. No exemplo do grafo da

Celebridade descrito na Seção1.2, como o grafo possui 5 vértices e o tamanho do subgrafo é

3, teríamos 10 combinações, mas destas 10 apenas 6 são utilizadas. A complexidade de gerar

todas as combinaçõesk ak éΘ(nk), ou seja, combinar todos os vértices sem analisar se o sub-

grafo gerado será conexo ou não, possui um elevado custo computacional. Para grafos densos

pode ser que a abordagem seja eficiente, mas na maioria dos casos diversas combinações serão

desprezadas devido à falta de conexidade.

No Algoritmo 2 pode-se observar um algoritmo recursivo para o método de Força Bruta

descrito acima.

2.3.2 Algoritmo Elementar

Uma abordagem interessante seria uma varredura que gerasseapenas combinações de vértices

conexos. A vantagem consiste em não ter que chamar o método que verifica a conexidade. O

fato de não gerar combinações desnecessárias aumenta a eficiência do gerador. Para ter este

comportamento, o algoritmo precisa varrer os vértices do grafo tendo como base os seus vizi-

nhos. Se a combinação for gerada respeitando a relação de adjacência, teremos um algoritmo

que terá uma complexidade bem mais interessante do que o método apresentado na Seção2.3.1.

Page 28: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

12 2.3. Enumeração de subgrafos

Dados: As variáveisindex e t iniciam em0. O k é o tamanho do subgrafo gerado en é onúmero de vértices do grafo.R é um vetor de tamanhok contendo a sequênciade vértices que será gerada.

Entrada: int R[k], int index, int t, int n, int kSaída: Histograma contendo todos os subgrafos

1 Combinacao(R, index, t, n, k)2 sek == index então3 Gerar uma matriz com os vértices contidos emR.4 se O subgrafo for conexoentão5 Adiciona a matriz ao Histograma6 fim7 fim8 senão9 para i = 0 ; i < (n− k − t) ; i++ faça

10 R[index] = index+ t + i11 Combinacao(R, index + 1, t+ i, n, k)

12 fim13 fim

Algoritmo 2: Exemplo de algoritmo gerador de subgrafos para tamanhok

A implementação deste algoritmo, para o caso geral, possui um elevado nível de dificuldade

devido à sofisticação do algoritmo. Neste caso o requisito mais difícil de ser respeitado é o de

gerar cada combinação apenas uma vez.

Devido à dificuldade de implementação será apresentado um algoritmo parak = 3 e outro

parak = 4. A abordagem que iremos descrever se assemelha a uma busca emlargura. Para

facilitar a implementação do algoritmo, ele foi dividido emníveis de iteração. O primeiro nível

será uma iteração por todos os vértices do grafo e os níveis seguintes apenas os vizinhos do

nível anterior e assim sucessivamente.

Algoritmo para k=3

Definição 2.3.1.SejaG(V,E) um grafo simples, ondeV é o conjunto de vértices do grafo eE o

conjunto de arestas. Quando oportuno, utilizaremos a notaçãoVG para representar o conjunto

de vértices do grafoG. Definimosδ(v) como sendo o conjunto de vértices adjacentes av ∈ V ,

tanto para grafos direcionados quanto para grafos não direcionados. Ou seja, parae ∈ E tal

quee = a→ b, b ∈ δ(a) ea ∈ δ(b). Definimos também o grau do vérticev como sendo|δ(v)|.

Para subgrafos de 3 vértices utilizaremos os vértices,i, j e k tal quei ∈ V e j ∈ δ(i) e

k ∈ δ(j).

Page 29: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 13

Analisando padrões com 3 vértices existem 2 configurações que precisamos varrer para

que todos os subgrafos possíveis sejam gerados. A primeira delas é quando temos um vértice

em cada nível de adjacência, por exemplo, um subgrafo formado pelos vértices{i, j, k}. Esta

configuração poderá formar um caminho de tamanho 3. Outra configuração seria um subgrafo

formado pelos vértices{i, j1, j2}. Neste caso podemos encontrar um ciclo de tamanho 3. Na

Tabela2.2, temos a descrição das 2 configurações necessárias.

Tabela 2.2:Descrição das 2 configurações necessárias para o geradork = 3.

1o Configuração 2o Configuração

i

u u

j

u

k i

uPPPPPP u

j

������

u

j

Entrada: GrafoG(V,E) e δ(v) ∀v ∈ V .Saída: Histograma contendo todos os subgrafos.

1 para cadai ∈ V faça2 para cadaj ∈ δ(i) & j > i faça3 para cadak ∈ δ(j)\δ(i) & k > i faça

4Gera um subgrafo com os vérticesi, j ek.Adiciona o subgrafo ao Histograma.

}

1o Configuração

5 fim6 fim7 para cada j1, j2 ∈ δ(i) & j1 6= j2 & j1, j2 > i faça

8Gera um subgrafo com os vérticesi, j1 e j2.Adiciona o subgrafo ao Histograma.

}

2o Configuração

9 fim10 fim

Algoritmo 3: Exemplo de algoritmo gerador de subgrafos de tamanho 3.

Podemos visualizar a implementação do Algoritmo3. Para que as combinações não gerem

vértices repetidos, a intersecção entre os conjuntos de níveis diferentes deve ser vazia. Por este

motivo na 1o configuração do Algoritmo3, o vérticek ∈ δ(j)\δ(i) tal quek > i.

Para que não haja repetição das combinações geradas é necessário verificar que vértices per-

tencentes aos níveis seguintes, sejam estritamente maiores que os vértices dos níveis anteriores.

Page 30: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

14 2.4. Classificação quanto ao isomorfismo

Algoritmo para k=4

Para o gerador de tamanho 4 utilizaremos os vérticesi, j, k, p. Para este algoritmo teremos 5

configurações necessárias para que todas as combinações sejam geradas. Na Tabela2.3, temos

a descrição das 5 configurações.

Tabela 2.3:Descrição das 5 configurações necessárias para o geradork = 4.

1o Configuração 2o Configuração

i

u u

j

u

k

u

p i

u u

jPPPP

PP u

k

����

��u

k

3o Configuração 4o Configuração 5o Configuração

i

uPPPPPP u

j

������

u

ju

k

i

uPPPPPP u

ju

k

������

u

j

i

uHHHHHH u

j

������

u

j

u

j

Podemos visualizar a implementação do algoritmo por meio doAlgoritmo 4.

2.4 Classificação quanto ao isomorfismo

Identificar se dois grafos são isomórficos é um dos poucos problemas que estão em NP, mas

não se sabe se está na classe NP-Completo ou se é solúvel em tempo polinomial [8]. Algumas

técnicas utilizadas para reduzir o tempo de processamento analisa cada grafo separadamente

e tenta distinguir diferenças estruturais nos vértices do grafo. Assim podemos agrupá-los de

acordo com as suas semelhanças, diminuindo o espectro de possibilidades de permutação, que

no caso geral én!.

Quando dizemos que dois grafos são isomórficos quer dizer queeles possuem a mesma

forma, ou seja, são estruturalmente equivalentes. Para analisarmos a estrutura do grafo devemos

ignorar os seus rótulos, pois estes podem estar permutados.

Definição 2.4.1.Um isomorfismo entre dois grafosG eH é uma bijeçãob deVG emVH tal que

dois vérticesu ev são adjacentes emG se e somente seb(u) e b(v) são adjacentes emH.

Teorema 2.4.2.Se A e B, são isomórficos, então A e B, devem possuir o mesmo número de

vértices e de arestas.

Page 31: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 15

Entrada: GrafoG(V,E) e δ(v) ∀v ∈ V .Saída: Histograma contendo todos os subgrafos.

1 para cadai ∈ V faça2 para cadaj ∈ δ(i) & j > i faça3 para cadak ∈ δ(j)\δ(i) & k > i faça4 para cadap ∈ δ(k)\(δ(j) ∪ δ(i)) & p > i faça

5Gera um subgrafo com os vérticesi, j, k ep.Adiciona o subgrafo ao Histograma.

}

1o Configuração

6 fim7 fim8 para cadak1, k2 ∈ δ(j) & k1 6= k2 & k1, k2 > i faça

9Gera um subgrafo com os vérticesi, j, k1 ek2.Adiciona o subgrafo ao Histograma.

}

2o Configuração

10 fim11 fim12 para cadaj1, j2 ∈ δ(i) & j1 6= j2 & j1, j2 > i faça13 para cadak ∈ δ(j1)\δ(i) & k > i faça

14Gera um subgrafo com os vérticesi, j1, j2 ek.Adiciona o subgrafo ao Histograma.

}

3o Configuração

15 fim16 para cadak ∈ δ(j2)\δ(i) & k > i faça

17Gera um subgrafo com os vérticesi, j1, j2 ek.Adiciona o subgrafo ao Histograma.

}

4o Configuração

18 fim19 fim20 para cadaj1, j2, j3 ∈ δ(i) & j1 6= j2, j2 6= j3, j1 6= j3 & j1, j2, j3 > i faça

21Gera um subgrafo com os vérticesi, j1, j2 e j3.Adiciona o subgrafo ao Histograma.

}

5o Configuração

22 fim23 fim

Algoritmo 4: Exemplo de algoritmo gerador de subgrafos de tamanho 4.

Demonstração.Suponhamos por absurdo que dois grafosA e B, isomórficos e que possuem

o número de vértices diferentes, ou seja,|VA| 6= |VB|. Como a cardinalidade dos conjuntos é

diferente então não é possível estabelecer uma bijeção entre VA e VB. Suponhamos agora que

|VA| = |VB| e que|EA| 6= |EB|. Sem perda de generalidade podemos dizer que existe uma

arestauv ∈ EA tal queb(u) e b(v) não são adjacentes emB.

Conforme Figura2.1 podemos perceber que esta condição não é suficiente para garantir o

isomorfismo, pois|VA| = |VB| e |EA| = |EB|, contudoA não é isomórfico aB.

Page 32: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

16 2.4. Classificação quanto ao isomorfismo

2.4.1 Algoritmo de Força Bruta

Este método foi desenvolvido para resolver o isomorfismo em grafos de qualquer tamanho.

Para saber se dois grafos são isomórficos, basta testar todasas permutações dos vértices de

um dos grafos e comparar com o segundo. Se ficarem iguais para alguma permutação, então

são isomórficos. Se após todas as permutações possíveis dos vértices os grafos não ficarem

iguais, então eles definitivamente não são isomórficos. A identificação da igualdade é feita por

meio da matriz de adjacência. Neste caso as matrizes dos doisgrafos deverão ficar idênticas.

Este método tem complexidadeΘ(n2n!), onden! é o número de permutações en2 o tempo de

comparação das duas matrizes. Este método resolve o problema do isomorfismo, mas seu custo

computacional é elevado. O Algoritmo5 apresenta o método.

Entrada: m1[][], m2[][] e P , ondeP é o conjunto de todas as permutações possíveis.Saída: Resposta se os grafos são isomórficos ou nãoDados: aux[][] é uma matriz auxiliar

1 para cadap ∈ P faça2 aux=Permutação dem2 por meio dep.3 sem1 == aux então4 retorna verdadeiro5 fim6 fim7 retorna falso

Algoritmo 5: Algoritmo de identificação de isomorfismo por meio de Força Bruta.

Este método não faz uso de nenhuma propriedade de teoria dos grafos, apenas testa exaus-

tivamente todas as possibilidades de permutação dos vértices. Existem muitas informações

disponíveis a partir de uma análise mais detalhada dos grafos de modo a eliminar permutações

desnecessárias.

2.4.2 Algoritmo de Força Bruta com Refinamento Estrutural

Este método visa refinar o espectro de busca com o intuito de diminuir o número de permutações

necessárias para identificar o isomorfismo.

Definição 2.4.3.Definimos assinatura de grau como sendo um vetor contendo todos os graus

dos vértices ordenados em ordem crescente.

No contexto de emparelhamento isomórfico, se analisarmos osgraus dos vértices, podemos

identificar que não é possível emparelhar vértices cujos graus sejam distintos, ou seja, não tem

como emparelhar um vértice de grau 2 com outro de grau 3 na permutação.

Page 33: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 17

A B

Figura 2.1: Exemplo de dois grafos que possuem o mesmo número de vérticese arestas masnão são isomórficos.

No exemplo descrito na Figura2.1temos dois grafosA eB que possuem o mesmo número

de vértices e de arestas, respeitando os requisitos do Teorema2.4.2. Podemos perceber que o

grafoA possui uma estrutura diferente deB. Analisando as suas assinaturas de graus perce-

bemos que o grafoA possui um vértice de grau 3 eB não. Então não existe possibilidade de

emparelhar os vértices deA de modo queA eB, possuam a mesma matriz de adjacência. Neste

caso podemos dizer queA eB não são isomórficos.

Teorema 2.4.4.Se A e B, são isomórficos, então A e B, devem possuir assinaturade graus

idênticas, mas esta condição não é suficiente para garantir oisomorfismo.

Demonstração.Suponhamos por absurdo que dois grafosG eH sejam isomórficos e que pos-

suam assinaturas de grau distintas. Sejamu ∈ VG e v ∈ VH dois vértices que possuem graus

distintos, ou seja, este par de vértices não pode ser emparelhado, pois a relação de adjacência

não será mantida devido a cardinalidade dos vértices adjacentes. Deste modo não poderá existir

uma bijeção entreu ev, e portanto,G eH não são isomórficos.

Por outro lado, uma mesma assinatura de graus não garante o isomorfismo. Um exemplo

pode ser visto nos grafosC e D da Figura2.2, pois ambos possuem a mesma assinatura de

graus mas não são isomórficos.

Nosso algoritmo verifica se os dois grafos atendem ao Teorema2.4.4antes de fazer qualquer

permutação, pois se as assinaturas de graus forem diferentes já podemos dizer que os grafos não

são isomórficos.

Como não é possível emparelhar vértices que possuam graus distintos, podemos diminuir o

espectro de permutações. Este procedimento acelera o método, pois será necessário permutar

apenas vértices cujos graus sejam iguais.

Page 34: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

18 2.4. Classificação quanto ao isomorfismo

c1 c2

c3

c4 c5 d1 d2

d3d4

d5

C D

Figura 2.2: Exemplo de dois grafos que possuem o mesmo número de vértices, arestas e assi-natura de grau mas não são isomórficos.

Na Figura2.2 temos os grafosC e D que possuem a mesma assinatura de grau, mas que

não são isomórficos. Para o grafoC vamos definir os respectivos graus comod(ci) e para o

grafoD comod(di). Podemos representar a assinatura de graus dos grafos descritos na Figura

2.2como:

d(c1) = 2 d(c2) = 3 d(c3) = 2 d(c4) = 2 d(c5) = 1

d(d1) = 2 d(d2) = 3 d(d3) = 2 d(d4) = 2 d(d5) = 1

O algoritmo de Refinamento Estrutural faz uso destas características e só permuta vértices

que possuam o mesmo grau.

Para testar o isomorfismo precisamos emparelhar(c1, c3, c4) com uma permutação de(d1, d3, d4)

que possuem grau 2. O vérticec2 só pode ser permutado comd2 pois são os únicos que possuem

grau 3 ec5 só pode ser emparelhado ao vérticed5, ambos com grau 1. Com este refinamento,

passamos a fazer3!1!1! = 6 permutações ao invés de5! = 120 permutações.

Este método é uma especialização do Método de Força Bruta. A única diferença é que serão

permutados apenas vértices que possuam os graus idênticos.Assim sua complexidade estará

diretamente ligada à estrutura do grafo. No pior caso, onde todos os graus são idênticos, sua

complexidade éΘ(n2n!). No melhor caso, onde todos os vértices são distintos, sua complexi-

dade éΘ(n2). Este método é completo, ou seja, resolve o problema do isomorfismo para grafos

comn vértices.

Para o problema deNetwork Motifsnão basta saber se dois grafos são isomórficos ou não, é

necessário identificar a qual padrão isomórfico este grafo pertence. Assim, se existirem muitos

padrões isomórficos, teremos que fazer o teste de isomorfismocom todos os padrões existentes

no histograma, até que seja encontrado o padrão a qual este grafo pertence.

Page 35: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 19

Tabela 2.4:Número de padrões em relação ak [23]

Número de Padrões distintosno de vértices Quantidade de Padrões

2 23 134 1995 9.3646 1.530.8437 880.471.1428 1.792.473.955.306

Na Tabela2.4temos o número de padrões isomórficos existentes para determinado valor de

k. Por exemplo parak = 3 temos 13 padrões isomórficos. O histograma gerado a partir do

classificador terá 13 barras, indicando o número de ocorrências de cada padrão. Se quisermos

utilizar o método descrito anteriormente na Seção2.4.2, para adicionar um subgrafo ao histo-

grama teremos que testar o isomorfismo com 13 padrões, ou seja, se este subgrafo que queremos

adicionar for isomórfico ao 13o padrão da lista teremos feito no final 13 teste de isomorfismo.

Conforme descrito na Tabela2.4, se tivermosk = 6 e acontecesse o mesmo episódio descrito

anteriormente teríamos feito 1,5 milhões de testes quanto ao isomorfismo. Este procedimento é

extremamente custoso, pois a complexidade para cada teste no pior caso éΘ(n2n!).

2.4.3 Isomorfismo Polinomial

Seria interessante que a complexidade do teste fosse polinomial e que não fosse necessário testar

todos os padrões isomórficos para saber a qual padrão um determinado subgrafo pertence. Para

contornar este problema criamos o conceito dehashaplicado a identificação de isomorfismo.

Uma função dehashf(x) recebe como entrada um valorx e devolve como saída um inteiro

f(x), que é um número com menos dígitos. A função dehashfaz uma diminuição do domínio

facilitando operações de busca. Por outro lado, podem ocorrer colisões, ou seja,f(x1) = f(x2),

parax1 6= x2.

No problema deNetwork Motifs, calcularemos uma funçãof(x) ondex será a representa-

ção binária da matriz de adjacência do grafo. Nestas condições, espera-se o seguinte comporta-

mento:

Propriedade 2.4.5.Sex1 ex2 correspondem a grafos isomórficos, entãof(x1) = f(x2).

Page 36: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

20 2.4. Classificação quanto ao isomorfismo

Desta forma, ao calcularf(x1) 6= f(x2) já sabemos quex1 ex2 não são isomórficos. Dese-

jamos entretanto a seguinte propriedade:

Propriedade 2.4.6.f(x1) = f(x2) se e somente sex1 ex2 são grafos isomórficos.

Neste segundo caso, mais forte, a função dehashé suficiente para detectar o isomorfismo

entre dois grafos.

Os métodos de identificação de isomorfismo em grafos, descritos abaixo, utilizam o valor

de saída da funçãohash, que será chamado de chave, para identificar o isomorfismo.

Teste de Completude

Para auxiliar no processo de descoberta dos padrões isomórficos, foi desenvolvido um algoritmo

que gera todos os grafos de tamanhok. Considerando, para tanto, uma matriz de adjacência

k × k e todas as suas possibilidades de preenchimento binário, desta forma teremos2k2

grafos

gerados. Assim os algoritmos utilizados para identificar o isomorfismo poderão ser testados

quanto a sua completude. Aplicando este método em conjunto com os algoritmos abaixo, ire-

mos identificar quantos padrões existem e qual a quantidade de matrizes possíveis para cada

padrão. Podendo assim, auxiliar na certificação dos métodosmais elaborados.

O Algoritmo6 apresenta a implementação do método.

Dados: A variávelini é inicializada em0 efimemn2. O valork é o tamanho do subgrafogerado e(i, j) é a posição da matriz em função dek, entre(0, 0) e (k − 1, k − 1).

1 Gerador(intini, int fim, int k, booleanmatriz[k][k])2 i = ⌊ini/k⌋3 j = ini modk4 seini = fim e o subgrafo for conexoentão5 Adiciona o subgrafo ao Histograma6 fim7 senão8 matriz[i][j]=falso9 Gerador(ini+1, fim, k, matriz)

10 sei 6= j então11 matriz[i][j] = verdadeiro12 Gerador(ini+ 1, f im, k,matriz)13 fim14 fim

Algoritmo 6: Algoritmo para o Teste de Completude.

Agora iremos descrever alguns métodos utilizados para identificar o isomorfismo.

Page 37: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 21

2.4.4 Primeira Função de hash: Assinatura de Grau

v1 v2

v3v4

Figura 2.3: Exemplo de subgrafo cujos graus são distintos.

Este método utiliza a assinatura de grau do grafo como funçãodehash. Como o foco deste

trabalho é o grafo direcionado, um determinado vértice podeter arestas que saem e que chegam.

Nesse caso, o grau será composto por um índice positivo que representa o número de arestas

que saem do vértice e um índice negativo que representa as quechegam. Cada vértice do grafo

irá possuir um par de graus e os graus deverão ser ordenados nafunção dehash.

Agora vamos exemplificar o método de acordo com o grafo da Figura2.3. Vamos denominar

os seus respectivos graus comod(vi) = (d+(vi), d−(vi)). Neste casod+(vi) será o número de

arestas que saem do vértice ed−(vi) as que entram. Para este exemplo teremos:

d(v1) = (0, 2) d(v2) = (3, 0) d(v3) = (1, 1) d(v4) = (1, 2)

Para facilitar, vamos juntar esses dois dados em um inteiro,positivo à esquerda e negativo à

direita. Assim temos:

d(v1) = 02 d(v2) = 30 d(v3) = 11 d(v4) = 12

Ordenando os vértices de acordo com a ordem crescente dos graus, temos:

d(v1) = 02 d(v3) = 11 d(v4) = 12 d(v2) = 30

A chave pode ser representada pelo inteiro2111230, resultante da concatenação dos graus.

Um grafo isomórfico com vértices permutados gerará a mesma chave dehash. Este método

é utilizado como base para vários outros métodos. Sua aplicação é eficaz, devido à facilidade e

o baixo custo computacionalΘ(n2). Quanto a completude, este método resolve o isomorfismo

para grafos com até 3 vértices. Para testar sua eficiência foram gerados todas as matrizes de

adjacência para subgrafos conexos de tamanho 3, conforme o Teste de Completude apresentado

na Seção2.4.3.

Page 38: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

22 2.4. Classificação quanto ao isomorfismo

Teorema 2.4.7.Parak = 3, f(x1) = f(x2) se e somente sex1 for isomórfico ax2. Ou seja, o

cálculo desta função é suficiente para resolver o isomorfismopara grafos com 3 vértices.

Demonstração.Na Figura2.4temos a representação de todos os padrões isomórficos parak =

3 e suas respectivas assinaturas.

Figura 2.4: Lista dos 13 padrões isomórficos de dígrafos conexos numerados de 1 a 13.

O histograma é representado por uma tabelahash. Quando um valorf(x) aparece pela

primeira vez, colocamos na tabela uma nova coluna passando(f(x), 1) indicando sua chave e

valor. Casof(x) já esteja na tabela, basta incrementar o valor inteiro. O custo por subgrafo

será o cálculo da chave e a inserção no histograma. O procedimento de adição esta descrito no

Algoritmo 7.

Entrada: Uma matriz[k][k] booleana.Dados: Hash <Long,Integer> histograma

1 chave=hash(matriz)2 seO histograma contém a chaveentão3 ocorrencias = histograma.get(chave)4 histograma.put(chave,ocorrencias+1)5 fim6 else7 histograma.put(chave,1)8 end

Algoritmo 7: Algoritmo que adiciona um subgrafo ao histograma.

Page 39: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 23

2.4.5 Assinatura de Grau com Permutação

É esperado que a função dehashimplementada pela assinatura de grau não resolva o problema

para todos os valores dek. Parak = 4 já percebemos algumas colisões, ou seja, grafos não

isomórficos com mesma assinatura de grau.

Para identificar estas colisões foi utilizado o algoritmo deteste de completude parak = 4. A

Figura2.5ilustra uma das 46 colisões existentes no método de Assinatura de Grau para tamanho

4.

v1 v2

v3v4

d = 13 d = 12

d = 20d = 21

v1 v2

v3v4

d = 13 d = 12

d = 20d = 21

Figura 2.5: Grafos que não são isomórficos mas possuem as assinaturas iguais e todos os graussão distintos.

Este método consiste em:

1. Permutar os vértices garantindo uma ordem crescente dos graus.

2. Converter a matriz em um número inteiro.

Caso os vértices possuam graus distintos, após a ordenação ocorrerá um casamento entre

os vértices deG e G′. Assim, se a matriz de adjacência for igual, eles são isomórficos, caso

contrário eles não são.

Aplicando o procedimento descrito no método da Força Bruta com Refinamento Estrutural,

ou seja, permutando apenas vértices com mesmo grau, temos apenas uma forma de casar os

vértices. SuponhamosG eG′ dois grafos a serem analisados quanto ao isomorfismo. Conside-

remos que os graus deG sejam:

d(v1) = 01 d(v2) = 10 d(v3) = 11 d(v4) = 12

E deG′:

Page 40: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

24 2.4. Classificação quanto ao isomorfismo

d(v1) = 01 d(v2) = 10 d(v3) = 11 d(v4) = 12

SeG′ for isomórfico aG, então a matriz de adjacência deG deve ser idêntica a matriz de

G′. Agora, casoG′ possua os graus:

d(v1) = 10 d(v2) = 01 d(v3) = 11 d(v4) = 12

Mesmo queG seja isomórfico aG′ suas matrizes de adjacência serão diferentes. Então para

identificar o isomorfismo devemos permutar a matriz deG′ com relação aos vérticesv1 e v2

para que sua matriz fique idêntica à matriz deG.

Este método visa permutar a matriz de adjacência de acordo com a ordem crescente dos

graus. Desta forma, se um grafo for isomórfico a outro e os graus forem distintos suas matrizes

deverão ser idênticas. Como o isomorfismo só é garantido por meio da matriz, temos que passar

este valor para a chave.

Para fazer esta conversão podemos escrever o valor da matrizde adjacência convertida em

um inteiro e usá-lo como chave. Vamos demonstrar a utilização do método por meio de um

exemplo.

SejaH o grafo representado pela Figura2.3eA sua matriz de adjacência:

A =

0 0 0 0

1 0 1 1

0 0 0 1

1 0 0 0

Sejam os graus deH:

d(v1) = 02 d(v2) = 30 d(v3) = 11 d(v4) = 12

Ordenando pela ordem crescente dos graus, temos:

d(v1) = 02 d(v3) = 11 d(v4) = 12 d(v2) = 30

Agora devemos permutar a matriz de acordo com a ordem:v1, v3, v4, v2. Temos agora uma

nova matriz de adjacênciaA′:

A′ =

0 0 0 0

0 0 1 0

1 0 0 0

1 1 1 0

Page 41: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 25

Uma vez obtida a matriz de adjacência permutada, precisamostransformar esta informação

em uma chave.

Como os valores da diagonal são sempre zero, então estes não precisam ser inseridos. Para

processar esta operação utilizaremos a funçãoI(A′) ondeaij são os elementos da matriz.

I(A′) =

n−1∑

i=0

n−1∑

j=0

2ni+ja(n−1−i)(n−1−j) (2.1)

A funçãoI(A′) é implementada pelo Algoritmo8 descrito abaixo para gerar a chave.

Entrada: Uma matriz[k][k] booleana.Saída: O valor do subgrafo convertido num inteiro.

1 long chave=12 para int i=0; i<k ; i++ faça3 para int j=0; j<k ; j++ faça4 sei 6= j então5 seMatriz[i][j] então6 chave*=2+17 fim8 senão9 chave*=2

10 fim11 fim12 fim13 fim14 retorna chave

Algoritmo 8: Algoritmo que converte uma matriz binária num número inteiro.

Ao passarmos a matrizA′ para o Algoritmo8 teremos no final o valor inteiro 4263 e este

valor será igual para todos os subgrafos isomórficos aH.

Teorema 2.4.8.SejaG e H dois grafos com todos os graus dos vértices distintos.I(A′G) =

I(A′H) se e somente seG for isomórfico aH.

Demonstração.O isomorfismo é identificado por meio de uma função bijetora. Para encon-

trar esta bijeção conforme o método de Refinamento Estrutural precisamos apenas emparelhar

vértices que possuem graus iguais. Como para cada grafo os graus são distintos então existe

apenas uma escolha para fazer o emparelhamento.

Este método resolve o problema do isomorfismo para grafos quenão possuem repetição

nos graus dos vértices, pode ser combinado também com outrosmétodos e sua complexidade

Page 42: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

26 2.4. Classificação quanto ao isomorfismo

éΘ(n2). Para grafos não orientados, a priori, não é possível aplicar este método pois como os

graus variam no intervalo[1, n − 1], então sempre teremos pelo menos dois graus iguais, mas

algumas informações podem ser inseridas nos valores dos graus de modo a deixá-los distintos.

2.4.6 Gradiente

Este método também é uma especialização do método Assinatura de Grau. Sua aplicação inicial

tinha o intuito de distinguir graus iguais. Por este motivo ométodo só é aplicado nestes vértices.

A distinção dos graus é obtida por meio das informações de seus vizinhos que podem ser, os

graus dos vizinhos e a relação entre eles. Para ser vizinho basta que exista uma aresta entre

eles, independente de sua orientação. Estes dados podem seradicionados ao vértice em questão

de várias formas, por exemplo, soma, subtração, multiplicação etc. Agora vamos ilustrar a

aplicação do método adotando a soma.

v1 v2

v3v4

Figura 2.6: Exemplo de grafo que possui dois graus iguais

Vamos primeiramente analisar o grafo da Figura2.6. Temos inicialmente os graus:

d(v1) = 01 d(v2) = 20 d(v3) = 11 d(v4) = 01

Após a ordenação temos:

d(v1) = 01 d(v4) = 01 d(v3) = 11 d(v2) = 20

Neste caso aplicaremos o método aos vérticesv1 e v4. O v1 tem com adjacente ov2, então

d(v1) = d(v1) + d(v2) = 01 + 20 = 21. E v4 tem como adjacentev3, entãod(v4) = d(v4) +

d(v3) = 01 + 11 = 12.

O intuito deste método é tornar todos os graus distintos paraque o método de Permutação

apresentado na Seção2.4.5, possa ser utilizado. Assim conseguimos distinguir os doisgraus que

eram iguais. Este método possui um poder de distinção interessante, no entanto, a soma sofre

uma perda de generalidade. Por exemplo11 + 11 = 22 e10 + 12 = 22. Para evitar o ocorrido

Page 43: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 27

mudaremos a forma de inserção. O uso apenas da concatenação para este caso já resolveria,

pois11.11 = 1111 e 10.12 = 1012, mas o problema da concatenação é que a quantidade de

informação no grau vai aumentar muito, em consequência, a chave ficará maior ainda. Neste

caso, o uso da funçãohashé uma boa opção, pois independentemente do tamanho do grau,

passando por uma funçãohash, este valor poderá ser reduzido para uma determinada faixa de

variação e a dispersão será a mesma.

Com a funçãohash, podemos inserir ainda mais informações como, por exemplo,que tipo

de ligação existe entre o vértice e o seu adjacente. Se a relação for uma aresta de entrada então

adicione1, se for de saída2 e se for de entrada e saída3. A função dehashpode ser:

h(k) = 50 + ⌊m(kc− ⌊kc⌋)⌋

ondem = 900 e c =

√5− 1

2. Esta função retorna valores entre 50 e 950, ou seja, um valor

inteiro com no máximo 3 dígitos. A constantec é a mesma sugerida por Cormen et al. [5], pois

possui grande capacidade de dispersão dos dados.

Agora vamos demonstrar a utilização do método para o grafo apresentado na Figura2.6.

Após a Assinatura de Grau temos:

d(v1) = 01 d(v4) = 01 d(v3) = 11 d(v2) = 20

Para aplicar o método emv1, primeiro precisamos identificar seus vizinhos e qual a sua

relação com cada um. Ov1 relaciona-se comv2 por meio de uma aresta de entrada, então a

relação é1. Assim, passaremos para a funçãohash, k = grau.relação. No caso dev1 para

k = 201, temos queh(201) = 252.

Para ov4, temos como vizinho ov3 e relação 1. Parak = 111, entãoh(111) = 591.

d(v3) = 11 d(v2) = 20 d(v1) = 252 d(v4) = 591

Após a ordenação dos graus a chave passa a ser o inteiro1120252591.

Este método tem complexidadeΘ(n2). Combinado com o método de Permutação descrito

na Seção2.4.5, ele consegue resolver o isomorfismo por meio de umhashperfeito para grafos de

até 4 vértices. A quantidade de informação armazenada é pequena perto do poder de distinção

dos grafos.

Ao fazer uma análise detalhada deste método para grafos de 5 vértices, foi identificado

que o método chegava muito perto da completude total. Os grafos que não eram identificados

possuíam apenas uma diferença nos graus que eram distintos dos demais. Por esse motivo, o

Page 44: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

28 2.4. Classificação quanto ao isomorfismo

método foi modificado para que seja aplicado em todos os vértices e não apenas nos graus que

eram iguais. Sua complexidade permaneceu emΘ(n2) e a distinção dos grafos aumentou ainda

mais.

Mesmo assim, alguns grafos de 5 vértices não eram resolvidos, então identificamos que

uma passagem do grafo no método não era suficiente, pois quando os graus eram todos iguais,

uma passagem distinguia apenas alguns vértices dos demais.Então foi criado um método de

gradiente genérico, que possibilita sua aplicaçãon vezes. O valorn foi estabelecido como sendo

o número de graus que eram iguais. Essa modificação resolveu oproblema do isomorfismo para

grafos de até 5 vértices. Sua complexidade no pior caso éΘ(n3), que ocorre quando todos os

graus são iguais. O melhor caso ocorre quando todos os graus são distintos e sua complexidade

é Θ(n2). O Algoritmo 9 apresenta a função dehashutilizada para identificar o isomorfismo

eficientemente parak 6 5.

Entrada: Uma matriz[k][k] booleana.Saída: A chave da função de HashDados: assinaturaGraus é um vetor contendo todos os graus dos vértices

1 Inicializa aassinaturaGraus por meio da matriz2 se|matriz| > 3 então3 seO número de graus iguais for 0então4 A chave recebe a conversão da matriz para inteiro5 fim6 else7 assinaturaGraus=gradiente(matriz)8 seO número de graus iguais for 0então9 A chave recebe a conversão da matriz para inteiro

10 fim11 else12 A chave recebe a conversão daassinaturaGraus para inteiro13 end14 end15 fim16 else17 A chave recebe a conversão daassinaturaGraus para inteiro18 end19 retorna chave

Algoritmo 9: Função dehash.

Este algoritmo foi testado quanto a completude parak = 6. Infelizmente ocorreram em

torno de trezentas colisões, ou seja, grafos que possuem a mesma assinatura mas que não são

isomórficos. Contudo, este método conseguiu distinguir1, 5 milhões de padrões, diminuindo

muito o número de testes.

Page 45: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 29

Para instâncias maiores existem colisões que não permitem que o algoritmo resolva o pro-

blema de isomorfismo por completo, mas o poder de distinção dométodo é muito bom e sua

complexidade é baixa. Este algoritmo pode ser utilizado pelo algoritmo de Refinamento Estru-

tural descrito na Seção2.4.2evitando assim a necessidade de testes excessivos. Assim, para

k > 5 apenas a Propriedade2.4.5será respeitada. Deste modo, o algoritmo de Refinamento Es-

trutural só fará o teste de isomorfismo para padrões que possuam a mesma chave e que possam

ser isomórficos.

2.5 Geração de Grafos Aleatórios

No problema deNetwork Motifsé necessário que sejam gerados diversos grafos aleatórios para

que o algoritmo compare os resultados do grafo original com os resultados dos grafos aleatórios.

Existem várias formas para se gerar grafos aleatórios, cadaproblema utiliza uma abordagem

diferente. As diferenças entre uma abordagem e outra, são osrequisitos exigidos por cada uma.

Um requisito fundamental para gerar grafos aleatórios é manter as propriedades básicas do

grafo, tais como o número de vértices e arestas.

2.5.1 Primeira Abordagem

Agora iremos descrever o algoritmo mais simples para gerar grafos aleatórios.

Definição 2.5.1.SejaG(V,E) o grafo aleatório que iremos construir. Fixemosn = |V | em =

|E|. Podemos iniciar a construção do grafo a partir de uma matrizde adjacêncian× n vazia.

As arestas podem ser inseridas aleatoriamente em qualquer posição respeitando o tamanho da

matriz. O Algoritmo10apresenta a implementação do método.

2.5.2 Segunda Abordagem

Para o problema deNetwork Motifsos grafos aleatórios são criados com a finalidade de com-

paração com o grafo original. Sendo assim, não é interessante um grafo aleatório com uma

estrutura muito diferente da existente no grafo original. Deste modo, a primeira abordagem não

é interessante pelo fato de que os grafos gerados podem ser completamente diferentes do grafo

original. Conforme Milo [15], é interessante que os grafos aleatórios possuam a mesma sequên-

cia gráfica do grafo original, ou seja, o grau dos vértices devem ser mantidos. Os algoritmos

que resolvem oNetwork Motifsgeralmente fazem uso desta propriedade.

Page 46: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

30 2.5. Geração de Grafos Aleatórios

Entrada: booleanmatriz[n][n], número de vérticesn e arestasmSaída: A matriz preenchidaDados: x, y indica as posições a serem setadas namatriz

1 para int i=0 ; i<m ; i++ faça2 x ey recebem um inteiro aleatório entre0 en3 enquantomatriz[x][y] faça4 x ey recebem outro inteiro aleatório entre0 en5 fim6 matriz[x][y]=verdadeiro7 fim8 retorna matriz

Algoritmo 10: Primeira abordagem para geração de Grafos Aleatórios.

A abordagem mais eficiente para atender este requisito consiste em trocar diversos pares de

arestas pertencentes ao grafo original de modo a deixá-lo aleatório. Com isto, o algoritmo não

precisa construir um grafo novo, pode simplesmente utilizar o grafo original.

Existem várias situações possíveis quando pretende-se trocar duas arestas, neste trabalho

veremos duas delas.

Requisito mais fraco

Podemos escolher aleatoriamente duas arestas, por exemploe1 = u1 → v1 e e2 = u2 → v2, e

trocar a ponta das arestas, de modo quee1 = u1 → v2 ee2 = u2 → v1. A Figura2.7exemplifica

esta troca.

u1 v1

v2u2

u1 v1

v2u2

Figura 2.7: Caso básico de troca.

Antes de fazer a troca precisamos verificar se tais arestas jánão existem, para que não

tenhamos duas arestas idênticas. Nesta abordagem, arestasbidirecionais podem ser perdidas ou

criadas conforme mostra as Figuras2.8e2.9.

Page 47: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 31

u1 v1

v2u2

u1 v1

v2u2

Figura 2.8: Exemplo no qual uma aresta bidirecional se perde.

u1 v1

v2u2

u1 v1

v2u2

Figura 2.9: Exemplo onde uma aresta bidirecional é criada.

Requisito mais forte

Este algoritmo é mais restritivo, pois evita que o número de arestas bidirecionais sejam diferen-

tes do grafo original. Este método é o mais utilizado pelos pesquisadores da área [21]. Para que

o número de arestas bidirecionais seja mantido, as trocas devem certificar que quando existir

uma aresta bidirecional esta só seja trocada por outra aresta bidirecional.

Nesta abordagem é comum o uso de dois parâmetros: o número de trocas por aresta e o

número de tentativas. O númerototal de trocas = k.m ek é o número de trocas por aresta. O

número de tentativas é necessário pois quando o grafo é muitodenso fica difícil permutar arestas

respeitando todos os requisitos. Para fazer uma troca simples, temos que certificar que a nova

aresta não exista, como o grafo é denso, encontrar esta aresta pode ser difícil. Este parâmetro

evita que o algoritmo fique indefinidamente tentando encontrar uma possível troca.

2.6 Identificação de Motifs

Para identificar osMotifs é necessário encontrar os padrões que ocorrem com uma frequência

incomumente alta em relação aos grafos aleatórios. A comparação pode ser feita por meio da

média das ocorrências dos grafos aleatórios com os respectivos valores no grafo original. Como

existem diversos padrões, é necessário que a comparação seja feita com valores percentuais,

Page 48: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

32 2.6. Identificação deMotifs

pois a média de subgrafos gerados a partir dos grafos aleatórios é diferente do total gerado a

partir do grafo original. Se o percentual de ocorrências de um determinado padrão for maior que

o percentual da média então dizemos que este padrão é umMotif. Para identificar a relevância

do Motif utilizamos o número de desvios padrões ocorridos entre a média e o valor real.

Tabela 2.5:Dados para a identificação deMotifs

Dados para a identificação deMotifsPadrão chave Grafo Original Grafos Aleatórios (Valor Médio) DP No de DP

1 11011 365887 16,97% 1127569,70 35,37% 1398,33 -419,602 1120 165661 7,68% 517159,50 16,22% 263,19 -1034,603 21010 1115548 51,73% 1532649,50 48,08% 1147,39 101,304 111111 561 0,03% 372,90 0,01% 18,90 24,105 11121 152105 7,05% 1806,30 0,06% 280,22 795,906 21120 26104 1,21% 2765,70 0,09% 84,46 424,107 101112 208174 9,65% 5348,10 0,17% 1156,34 261,508 22121 12406 0,58% 2,80 0,00% 2,15 8527,909 111221 1886 0,09% 8,70 0,00% 4,69 592,3010 121220 25490 1,18% 11,00 0,00% 5,14 7324,5011 111122 58077 2,69% 9,00 0,00% 5,46 15729,5012 122122 6574 0,30% 0,10 0,00% 0,32 30727,5013 222222 18161 0,84% 0,00 0,00% 0,00 0,00

A Tabela2.5contém todos os dados necessários para a identificação deMotifs de tamanho

3. Estes dados foram gerados a partir do grafo Foldoc [3] que possui13356 vértices e109092

arestas. Como o intuito foi demonstrar os dados, foram gerados apenas10 grafos aleatórios.

A Figura2.10mostra as diferenças ocorridas no número de padrões do grafooriginal com

relação ao valor médio dos grafos aleatórios. Ela representa graficamente os dados da Tabela

2.5e os padrões seguem a mesma ordem dos padrões descritos na Figura2.4.

Page 49: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 2.Network Motifs 33

Figura 2.10: Número de padrões no grafo original com relação à média.

Page 50: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 51: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

CAPÍTULO

3Algoritmo acc-Motif para k=3

A ideia central deste algoritmo é contabilizar todos os subgrafos existentes a partir de uma

estrutura básica analisando apenas a sua adjacência imediata, ou seja, para cada estrutura, cal-

cular os possíveis subgrafos analisando um determinado número de vizinhos. Cada estrutura

deve ser única para evitar duplicidade na enumeração dos subgrafos. Por exemplo, paraMotifs

de tamanho 3 podemos partir de uma estrutura básica compostapor um vértice e analisar a sua

adjacência combinando seus vizinhos 2 a 2. Deste modo, teremos um vértice centralv como

referência e por meio de otimização combinatória os subgrafos serão contabilizados. Se este

procedimento for aplicado av, ao final teremos calculado todos os subgrafos existentes com v

em sua posição central.

É importante esclarecer que neste Capítulo serão tratados apenas os procedimentos neces-

sários para desempenhar a tarefa de enumeração, ou seja, gerar todos os subgrafos de tamanho

k e classificá-los quanto ao isomorfismo. As demais etapas necessárias para identificação de

Network Motifsforam implementados conforme a Seção2.5.

3.1 Grafos não direcionados

Para iniciar a demostração do método utilizado pelo acc-Motif [ 14] para enumerar os subgrafos

de tamanho 3, vamos definir algumas notações.

35

Page 52: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

36 3.1. Grafos não direcionados

Definição 3.1.1.SejaG(V,E) um grafo simples não direcionado onden = |V | em = |E|. A

adjacência do vérticev ∈ V será descrita comoδ(v). Para facilitar os cálculos vamos definir

nv = |δ(v)| emv o número de arestas(x, y) ∈ E | x, y ∈ δ(v).

A B

Figura 3.1: Os dois padrões conexos existentes parak = 3 num grafo não direcionado.

Para um grafo não direcionado existem apenas 2 subgrafos conexos parak = 3, conforme

ilustra a Figura3.1. Para compreendermos a origem do algoritmo vamos analisar um grafo

simples não direcionado descrito na Figura3.2comoEstrela. Neste grafo podemos facilmente

contabilizar os padrões parak = 3 de forma intuitiva. Como este grafo não possui nenhum

ciclo, então só teremos como subgrafo o padrãoA, descrito na Figura3.1.

Partindo do vértice central podemos combinar toda a sua adjacência 2 a 2 de modo a formar

padrões do tipoA. Deste modo, com apenas uma operação, calculamos todos os subgrafos do

grafoEstrela. Qualquer outro vértice só possui um vizinho que é o vérticev e não permitirá

fazer a combinação de sua adjacência 2 a 2.

v

Estrela

v

(

nv

2

)

=

(

8

2

)

= 28

Frequência

Figura 3.2: Representação do GrafoEstrela e o cálculo para a sua enumeração.

Para generalizar a solução temos que possibilitar a ocorrência do padrãoB. Deste modo

podemos gerar todos os subgrafos conexos de tamanho 3 num grafo simples não direcionado.

O padrãoB é semelhante ao padrãoA, a única diferença é uma aresta(x, y) ∈ E | x, y ∈ δ(v).

Então se existir tal aresta, o subgrafo deixa de ser do tipoA e passa a ser do tipoB. Quanto

Page 53: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 37

a combinação, esta aresta só interfere na combinação dos vérticesx, y, qualquer outra combi-

nação não terá interferência desta aresta. Neste caso temosque diminuir em uma ocorrência o

padrãoA e acrescentar uma ocorrência ao padrão B. Deste modo o númerode ocorrências dos

padrõesB pode ser descrito pormv. Já o padrãoA deve ser contabilizado o decréscimo dos

padrõesB.

Padrões Frequência

(

nv

2

)

−mv

mv

Figura 3.3: Cálculo da frequência para os padrões descritos na Figura3.1.

Para finalizar a enumeração temos que contornar um pequeno problema. Como o proce-

dimento de combinação será aplicado a todos os vértices do grafo, então para cada padrãoB

teremos a sua ocorrência multiplicada por 3. Para corrigir oproblema basta dividir o número

de ocorrências do padrãoB por 3. A implementação do método que executa a enumeração de

todos os subgrafos, pode ser visualizada no Algoritmo11.

Entrada: Um grafoG(V,E).Saída: O Histograma Preenchido.

1 Inicializa oHistograma com valor 0.2 Calculanv emv para∀ v ∈ V .3 para cadav ∈ V faça

4 Adiciona ao padrãoA o valor

(

nv

2

)

−mv.

5 Adiciona ao padrãoB o valormv.6 fim7 Divide o valor total computado para o padrãoB por 3.8 retorna Histograma

Algoritmo 11: Procedimento de Enumeração parak = 3 num grafo não direcionado.

Como o Algoritmo11 possui apenas um laço alinhado, então sua complexidade, excluindo

o procedimento da linha 2, éO(n). Agora vamos analisar os cálculos para os valores denv e

mv. No Algoritmo 12 temos a representação do procedimento para cálculo dos conjuntos de

vizinhos de todos os vértices do grafo. A complexidade desteAlgoritmo éO(m).

Page 54: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

38 3.1. Grafos não direcionados

Entrada: Um grafoG(V,E).Saída: Os conjuntosδ(v) para∀v ∈ V

1 para cada aresta(x, y) ∈ E faça2 Adicionax à δ(y).3 Adicionay à δ(x).4 fim

Algoritmo 12: Construção dos conjuntos de vizinhos.

O procedimento para cálculo do valormv pode ser efetuado fazendo com que cada aresta

(x, y) ∈ E | x, y ∈ δ(v) incremente sua existência emmv. Conforme a Figura3.4, temos que

incrementar o valor demv para∀ v ∈ δ(x) ∩ δ(y).

δ(x)\δ(y) δ(y)\δ(x)

v2

δ(x) ∩ δ(y)

v1 v3

x y

Figura 3.4: Demostração do cálculo demv.

O Algoritmo 13 descreve o procedimento para cálculo da variávelmv para∀ v ∈ V . A

complexidade para calcular o conjuntoδ(x) ∩ δ(y) éO(min{nx, ny}), assim a complexidade

do algoritmo é dada pelo seguinte somatório∑

(x,y)∈Emin{nx, ny}. Chiba e Nishizek’s [4] com

o objetivo de listar todos os triângulos de um grafo, mostraram quemin{nx, ny} = O(a(G)),

ondea(G) é a arboricidade do grafoG. Por definição, a arboricidade de um grafo é o número

mínimo de árvores necessárias para cobrir todas as arestas de um grafo.

Eles também mostraram que a complexidade dea(G) éO(√m). Deste modo, a complexi-

dade total para o Algoritmo13éO(m√m).

Entrada: Um grafoG(V,E).Saída: O valor demv para∀ v ∈ V

1 mv inicializa em 0.2 para cada aresta(x, y) ∈ E faça3 mv++ para∀ v ∈ δ(x) ∩ δ(y).4 fim

Algoritmo 13: Procedimento para cálculo do valor demv.

Page 55: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 39

A Complexidade do Algoritmo11, sem análise da linha 2, éO(n). O custo para calcularnv

éO(m), visto que conforme Algoritmo12, nv = |δ(v)|. Para calcularmv temos a complexidade

deO(m√m), deste modo, a complexidade total para o Algoritmo11 éO(m

√m).

3.2 Grafos direcionados

Para fazer a Enumeração em um grafo direcionado, o procedimento é bastante semelhante ao

caso não direcionado. A principal diferença entre os dois é que no caso direcionado existem 3

tipos de vizinhos conforme mostra a Figura3.5. O conjuntoAv representa os vizinhos dev por

meio de uma aresta com dupla direção, já o conjuntoBv representa os vizinhos por meio de

uma aresta de saída e o conjuntoCv representa os vizinhos cujas arestas entram emv.

Bv Cv

Av

v

Figura 3.5: Definição dos três tipos de vizinhos no caso direcionado.

Para facilitar a demostração dos cálculos vamos definir algumas notações.

Definição 3.2.1.SejaG(V,E) um grafo simples e direcionado.

∀ u ∈ V

Av, se(u, v) ∈ E e (v, u) ∈ E

Bv, se(v, u) ∈ E e (u, v) 6∈ E

Cv, se(u, v) ∈ E e (v, u) 6∈ E

Definimosv-Patternscomo sendo o conjunto de todos os subgrafos de 3 vértices{v, x, y},ondev é o vértice de referência ex, y ∈ δ(v) são 2 vizinhos do vérticev.

Para facilitar a indicação de arestas bidirecionais(x, y), (y, x) ∈ E, vamos indicá-las

como(x, y)∗. Definimos também comonvA = |Av|, nv

B = |Bv| envC = |Cv|.

SejamvAB o número de arestas(x, y) ∈ E|x ∈ Av e y ∈ Bv e m∗vAB o número de arestas

bidirecionais(x, y)∗ ∈ E|x ∈ Av e y ∈ Bv. O mesmo se segue para as outras combinações

possíveis para os conjuntosAv, Bv eCv. Vamos continuar indicandoδ(v) como a vizinhança

dev, só que no caso direcionado,δ(v) = Av ∪Bv ∪Cv. SejaV izv = {Av, Bv, Cv} o conjunto

contendo todas as classes de conjuntos de vizinhos dev.

Page 56: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

40 3.2. Grafos direcionados

Outra diferença entre o problema para grafos direcionados enão direcionados é que a quan-

tidade de padrões sobe de 2 para 13 subgrafos possíveis. Assim os cálculos para a enumeração

ficam mais complexos, pois o número de variáveis do problema aumentam. Antes tínhamos

apenas um conjunto de vizinhos para combinar 2 a 2, como agoratemos 3 tipos de vizinhos, é

necessário combinar com repetição todos os 3 conjuntos 2 a 2.Neste caso teremos 6 combi-

nações possíveis:AvAv, AvBv, AvCv, BvBv, BvCv, CvCv. Estas combinações são necessárias

pois qualquer um dos dois vérticesx e y, podem pertencer aos conjuntosAv, Bv eCv.

A partir destas combinações formamos os 6 padrões de subgrafos acíclicos. Os 7 subgrafos

restantes são variações destes 6 primeiros com acréscimo deuma aresta, gerando assim os

padrões cíclicos. Para calcular a enumeração dos padrões acíclicos quando os dois vizinhos são

do mesmo tipo, é necessário fazer a combinação destes 2 a 2, caso os vizinhos sejam de tipos

diferentes, então fazemos o produto entre eles. Na Figura3.6 temos a indicação dos padrões e

suas respectivas frequências.

Combinações Padrões Frequência

AvAv

v (

nvA

2

)

AvBv

v

nvAn

vB

AvCv

v

nvAn

vC

Combinações Padrões Frequência

BvBv

v (

nvB

2

)

BvCv

v

nvBn

vC

CvCv

v (

nvC

2

)

Figura 3.6: Cálculo da frequência para os 6 padrões acíclicos.

A Frequência descrita na Figura3.6 estaria correta se não existissem os padrões cíclicos.

Acontece que cada padrão desta tabela pode se tornar um padrão cíclico com a existência de

uma aresta(x, y) ∈ E|x, y ∈ δ(v). Neste caso, temos que considerar a existência desta aresta

e deduzir a sua ocorrência do padrão acíclico. Existem 3 possibilidades de arestas para fechar

o ciclo, ou seja, podemos ter uma aresta(x, y) ou (y, x) ou (x, y)∗. Para completar o cálculo

de enumeração temos que analisar a existência dos 3 tipos de arestas e fazer a dedução dos

possíveis novos padrões formados. Este procedimento é idêntico ao que foi feito no caso não

direcionado, a diferença é que agora temos mais variáveis a analisar. Na Figura3.7 temos a

análise do acréscimo dos 3 tipos de arestas. As arestas que estão sendo acrecidas ao padrão

Page 57: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 41

acíclico estão em vermelho. Podemos perceber que nem sempretemos a formação de um

novo padrão, pois alguns subgrafos acabam ficando idênticos. Na primeira linha da Figura3.7

podemos verificar que o padrão composto pela combinaçãoAvAv, ao adicionarmos uma aresta

(x, y) temos um padrão isomórfico ao subgrafo formado com a adição deuma aresta(y, x).

Neste caso, só fazemos a subtração demvAA uma única vez. Se ao adicionarmos uma aresta

(x, y) o padrão se tornar diferente dos já analisados então devemossubtrair a sua frequência do

padrão acíclico.

Padrão Padrões e suas Equivalências Frequência

v

xAv y Av

⇐⇒v

xAv y Av

−v

xAv y Av

(

nvA

2

)

−mvAA −m∗vAA

v

xAv y Bv

−v

xAv y Bv

−v

xAv y Bv

nvAn

vB−mv

AB−mvBA−m∗vAB

v

xAv y Cv

−v

xAv y Cv

−v

xAv y Cv

nvAn

vC−mv

AC−mvCA−m∗vAC

v

xBv y Bv

⇐⇒v

xBv y Bv

−v

xBv y Bv

(

nvB

2

)

−mvBB −m∗vBB

v

xBv y Cv

−v

xBv y Cv

−v

xBv y Cv

nvBn

vC−mv

BC−mvCB−m∗vBC

v

xCv y Cv

⇐⇒v

xCv y Cv

−v

xCv y Cv

(

nvC

2

)

−mvCC −m∗vCC

Figura 3.7: Representação de como é feito o cálculo da frequência para ospadrões acíclicos.

Fazendo as deduções necessárias, conforme Figura3.7completamos as operações necessá-

rias para a enumeração dos padrões acíclicos.

Conforme já apresentado, podemos perceber que quandox e y pertencem ao mesmo con-

junto, sempre teremos o mesmo padrão formado com a adição da aresta(x, y) e (y, x). Deste

Page 58: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

42 3.2. Grafos direcionados

modo podemos padronizar a frequência para quando a combinação for composta por conjuntos

de vizinhos iguais ou quando estes forem diferentes. Para a combinaçãoTT comT ∈ V izv

teremos a seguinte frequência

(

nvT

2

)

−mvTT −m∗vTT , quando tivermos a combinaçãoT1T2 com

T1, T2 ∈ V izv|T1 6= T2 teremos a frequêncianvT1nvT2−mv

T1T2−mv

T2T1−m∗vT1T2

. Estas fórmu-

las padronizam o cálculo da frequência para as combinações onde não temos aresta entre os

vérticesx ey.

Padrão Padrões e suas Equivalências Frequência

v

xAv y Av

⇐⇒x Av

v y Av

⇐⇒xAv

yAv v

m∗vAA

v

xAv y Av

+x Av

v y Bv

+xAv

yCv v

mvAA +m∗vAB +m∗vAC

v

xAv y Bv

⇐⇒x Av

v y Bv

+xCv

yCv v

mvAB +m∗vCC

v

xAv y Cv

+y Av

v x Bv

+xBv

yCv v

mvAC +mv

BA +m∗vBC

v

yAv x Cv

⇐⇒y Av

v x Cv

+xBv

yBv v

mvCA +m∗vBB

v

xBv y Bv

+x Cv

v y Bv

+xCv

yCv v

mvBB +mv

CB +mvCC

v

xBv y Cv

⇐⇒y Cv

v x Bv

⇐⇒xBv

yCv v

mvBC

Figura 3.8: Representação de como é feito o cálculo da frequência para ospadrões cíclicos.

Page 59: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 43

Agora precisamos calcular a frequência para os outros 7 padrões cíclicos. Do mesmo modo

aplicado ao caso não direcionado, os padrões cíclicos podemser contabilizados por meio das

arestas(x, y) ∈ E|x, y ∈ δ(v). Quando analisamos o vérticev ocupando as 3 posições do ciclo

no caso não direcionado, obtínhamos as mesmas combinações de conjuntos de vizinhos, pois

este era umk3, agora no caso direcionado podemos obter combinações diferentes. Para contor-

nar esta possibilidade temos que analisar as 3 posições possíveis para o vérticev e verificar a

que grupo a aresta oposta pertence. Se para as 3 posições tivermos arestas de grupos distintos

então temos que acrescentar o valor de suas ocorrências na frequência do padrão. Na Figura

3.8temos a representação dos cálculos das frequências para os padrões cíclicos. Nela, podemos

perceber que mesmo variando o vérticev nas 3 posições alguns padrões continuam idênticos,

neste caso, o padrão terá sua frequência representada por arestas de um único grupo. Nesta

figura a aresta na cor azul é aquela que indicará a frequência daquele padrão quando estivermos

analisando o vérticev. Com as tabelas da Figura3.7e3.8, temos a frequência para todos os 13

padrões existentes em grafos direcionados parak = 3.

O Algoritmo14 representa o método para enumeração dos 13 padrões existentes em grafos

direcionados. Excluindo a complexidade das linhas 2 e 3 podemos verificar que a complexidade

do algoritmo é a mesma do algoritmo não direcionado, ou seja,O(n). Este algoritmo pode

ser facilmente paralelizável, pois o cálculo da frequênciapara um vérticev só depende das

variáveis: {nvA, n

vB, nv

C}, {mvAA, . . . , m

vCC} e {m∗vAA, . . . , m

∗vCC}. Deste modo, cada vértice

pode ser processado separadamente. Por exemplo, na linha 4 de algoritmo, temos um laço que

varre todos os vértices do grafo. Este laço pode ser divididopor váriasthreadse cada núcleo

poderia processar um intervalo diferente de vértices. Ao final podemos fazer ummergedos

histogramas, somando os valores computados em cada padrão em um único histograma.

Entrada: Um grafoG(V,E).Saída: O Histograma Preenchido.

1 Inicializa oHistograma com valor 0.2 Calcula{nv

A, nvB, nv

C} para todov ∈ V .3 Calcula{mv

AA, . . . , mvCC} e{m∗vAA, . . . , m

∗vCC} para todov ∈ V .

4 Inicializa oHistograma com valor 0.5 para cadav ∈ V faça6 Calcula a frequência para os 13 padrões descritas nas Figuras3.7e3.8.7 Para cada padrão adiciona a sua frequência ao histograma.8 fim9 Divide o valor total computado para os padrões da Figura3.8por 3.

10 retorna HistogramaAlgoritmo 14: Procedimento de Enumeração parak = 3 num grafo direcionado.

Page 60: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

44 3.2. Grafos direcionados

Agora vamos analisar o algoritmo para construção dos conjuntos de vizinhos e dos valores

de{mvAA, . . . , m

vCC} e{m∗vAA, . . . , m

∗vCC}.

Entrada: Um grafoG(V,E).Saída: Os conjuntosAv, Bv eCv para∀ v ∈ V

1 para cada arestae ∈ E faça2 see = (x, y)∗ então3 Adicionax àAy.4 Adicionay àAx.5 fim6 see = (x, y) então7 Adicionax àCy.8 Adicionay àBx.9 fim

10 fimAlgoritmo 15: Cálculo dos conjuntosAv, Bv eCv.

Entrada: Um grafoG(V,E).Saída: O valor de{mv

AA, . . . , mvCC} e{m∗vAA, . . . , m

∗vCC} para∀ v ∈ V

1 Inicializa em 0 o valor demvT1T2

para∀ T1, T2 ∈ V izv.2 para cada arestae ∈ E faça

3

Para See = (x, y)∗ See = (x, y)∀ v ∈ Ax ∩ Ay m∗vAA++ mv

AA++∀ v ∈ Ax ∩ Cy m∗vAB++ mv

AB++∀ v ∈ Ax ∩ By m∗vAC++ mv

AC++∀ v ∈ Cx ∩Ay m∗vAB++ mv

BA++∀ v ∈ Cx ∩ Cy m∗vBB++ mv

BB++∀ v ∈ Cx ∩By m∗vBC++ mv

BC++∀ v ∈ Bx ∩ Ay m∗vAC++ mv

CA++∀ v ∈ Bx ∩ Cy m∗vBC++ mv

CB++∀ v ∈ Bx ∩ By m∗vCC++ mv

CC++4 fimAlgoritmo 16: Procedimento para cálculo do valor de{mv

AA, . . . , mvCC} e{m∗vAA, . . . , m

∗vCC}.

O método para construção dos conjuntosAv, Bv eCv, está implementado no Algoritmo15.

Este método difere pouco do Algoritmo12 para o caso não direcionado. A diferença está na

construção dos conjuntos de vizinhos, mas mantém a mesma complexidade, ou seja,O(m).

Já o Algoritmo16representa o procedimento para construção das variáveis{mvAA, . . . , m

vCC}

e {m∗vAA, . . . , m∗vCC}. Neste algoritmo são calculados 9 interseções para cada aresta e ∈ E.

A complexidade para calcular cada interseção éO(√m), conforme apresentado por Chiba e

Page 61: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 45

Nishizek’s [4]. Deste modo a complexidade total do algoritmo éO(m√m). Conforme já espe-

rávamos, a complexidade do Algoritmo14é a mesma do Algoritmo11 , ou seja,O(m√m).

Ax

Bx

Cx

x yAy

By

Cy

v1

mvAA++

v2

mvAB++

v3

mvAC++

v4

mvBA++

v5

mvBB++

v6

mvBC++

v7

mvCA++

v8

mvCB++

v9

mvCC++

Figura 3.9: Demostração do cálculo de{mvAA, . . . , m

vCC}.

Na Figura3.9 temos a representação esquemática das 9 combinações dos conjuntos de vi-

zinhosAv, Bv e Cv. Nela está descrita uma aresta(x, y) ∈ E e as 9 situações possíveis para

v ∈ δ(x)∩ δ(y). Para cada situação temos a indicação da variável a ser incrementada. Podemos

perceber que quando(x, y) é uma aresta direcional a ordem dos conjuntos de vizinhos entrex

ey interfere no resultado, por este motivomvAC 6= mv

CA.

Quando temos(x, y)∗ a ordem dos conjuntos não é relevante, ou seja,m∗vAC = m∗vCA. A

Figura3.10temos a descrição de como as 6 variáveis{m∗vAA, m∗vAB, m

∗vACm

∗vBB, m

∗vBC , m

∗vCC} são

incrementadas.

3.3 Resultados

O acc-Motif foi implementado em JAVA. Seu desempenho se mostrou bastante promissor com

relação ao FANMOD [21] e o Kavosh [7]. Estes dois últimos algoritmos estão implementados

em C++ e são os mais rápidos desenvolvidos até o momento. O acc-Motif foi mais rápido em

todos os grafos testados. Em alguns casos chegou a ser 251 vezes mais rápido que o FANMOD

e 64 vezes mais rápido que o Kavosh. Todos os testes parak = 3 foram feitos rodando o

algoritmo 5 vezes e com 100 grafos aleatórios.

Page 62: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

46 3.3. Resultados

Ax

Bx

Cx

x yAy

By

Cy

v1

m∗vAA++v2

m∗vAB++

v3

m∗vAC++

v4

m∗vBB++v5

m∗vBC++

v6

m∗vCC++

Figura 3.10: Demonstração do cálculo de{m∗vAA, . . . , m∗vCC} .

Tabela 3.1:Tempo de Enumeração parak = 3 em milissegundos para alguns grafos.

Grafos (n,m) FANMOD Kavosh acc-MotifE.coli [2] (418, 519) 8, 00± 0, 26 4, 6± 0, 02 0, 14± 0, 01CSphd [3] (1882, 1740) 9, 70± 0, 12 5, 66± 0, 05 0, 74± 0, 05Levedura [2] (688, 1079) 22, 91± 0, 15 11, 71± 0, 12 0, 30± 0, 04Roget [3] (1022, 5074) 53, 54± 0, 78 30, 29± 0, 28 2, 25± 0, 23Epa [3] (4271, 8965) 392, 16± 0, 96 211, 82± 0, 64 4, 39± 0, 08California [3] (6175, 16150) 638, 26± 1, 31 328, 23± 1, 21 12, 70± 0, 21Facebook [18] (1899, 20296) 1489, 78± 1, 14 604, 51± 3, 73 19, 30± 0, 14ODLIS [3] (2900, 18241) 3260, 12± 5, 05 985, 67± 2, 52 20, 89± 0, 56PairsFSG [3] (5018, 63608) 3981, 49± 11, 77 1991, 94± 6, 44 97, 72± 1, 69Airport [18] (1574, 28236) 6013, 60± 2, 40 1314, 18± 3, 04 32, 83± 1, 63Foldoc [3] (12905, 109092) 7806, 14± 22, 94 2207, 32± 10, 94 182, 74± 0, 89Words E. [2] (7381, 46281) 24558, 38± 71, 99 6328, 85± 65, 02 81, 89± 1, 38

Na Tabela3.1, temos o tempo gasto por grafo para fazer a enumeração de alguns grafos

disponíveis na rede. O tempo na Tabela3.1 foi medido em milissegundos e está acompanhado

de seu desvio padrão. Os testes foram feitos utilizando apenas umathreade a máquina onde

foi rodado os testes, possuía as seguintes configurações: Intel(R) Core(TM)2 Duo CPU T6600,

2.20 GHz, 3 GB RAM.

Page 63: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 47

(a) Grafos pequenos. (b) Grafos médios.

(c) Grafos grandes.

Figura 3.11: Gráfico contendo o tempo de Enumeração em milissegundos parak = 3 nosgrafos descritos na Tabela3.1.

Na Figura3.11temos os gráficos dos tempos de enumeração para os grafos da Tabela3.1.

Os grafos foram separados por ordem de grandeza, para que os tempos dos grafos menores não

fiquem achatados no gráfico em função dos grafos maiores. Nestes gráficos podemos perceber

que o acc-Motif possui um custo computacional bem inferior aos outros algoritmos.

Podemos fazer um comparativo do ganho computacional entre os 3 algoritmos. SejaTa, Tk

e Tf o tempo de Enumeração respectivamente do acc-Motif, Kavosh, e FANMOD. O ganho

computacional será representado pelo número de vezes que umalgoritmo foi mais rápido que

outro. Neste caso, teremosTk/Ta indicando o número de vezes que o acc-Motif foi mais rápido

que o Kavosh, paraTf/Ta temos o número de vezes que o acc-Motif foi mais rápido que o

FANMOD eTf/Tk indica o número de vezes que o Kavosh foi mais rápido que o FANMOD.

Na Figura3.12 temos a indicação dos valores deTk/Ta, Tf/Ta e Tf/Tk calculados para

os tempos indicados na Tabela3.1. Neste gráfico o conjunto de teste foi ordenado de forma

crescente com relação aos valores deTf/Ta. Calculando a média dos valores deTk/Ta, temos

Page 64: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

48 3.3. Resultados

que em média, o acc-Motif é 32 vezes mais rápido que o Kavosh. Para os valores deTf/Ta,

temos que em média, o acc-Motif foi 91 vezes mais rápido que o FANMOD e paraTf/Tk,

temos que o Kavosh é 2,5 vezes mais rápido que o FANMOD.

Com este resultado temos a proporção do ganho computacionalapresentado pelo acc-Motif.

Figura 3.12: Gráfico contendo os valores deTk/Ta, Tf/Ta e Tf/Tk para o conjunto de testeindicados na Tabela3.1.

3.3.1 Avaliação em grafos aleatórios

Foram feitos testes também com grafos aleatórios conforme oAlgoritmo 10. Os grafos foram

construídos com 5000 vértices e com o número de arestas variando de 5000 em 5000. O pri-

meiro iniciou com 5000 arestas, gerando um grafo com grau médio igual a 1 e o último continha

100 mil arestas dando origem a um grafo com uma média de 20 arestas por vértice.

A Figura3.13representa os gráficos do tempo de enumeração para os grafos aleatórios des-

critos acima. Pela curva do gráfico podemos perceber que o custo computacional do algoritmo

cresce de maneira aproximadamente linear com relação ao número de arestas, confirmando as-

sim a complexidadeO(m√m). Os tempos registrados neste teste estão descritos na TabelaA.1.

Utilizando os resultados do teste anterior, podemos analisar o custo para fazer a enumeração

por subgrafo. Deste modo podemos saber se o custo para enumerar cada subgrafo aumenta ou

diminui conforme o grafo fica mais denso ou esparso.

Na Figura3.14temos um gráfico que mostra a desempenho dos 3 algoritmos com relação

ao número de subgrafos. Nela, podemos perceber que no FANMODo custo para contabilizar

Page 65: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 3. Algoritmo acc-Motif para k=3 49

Figura 3.13: Gráfico contendo o tempo de Enumeração em milissegundos parak = 3 em gra-fos aleatórios.

um subgrafo aumenta conforme o grafo fica mais denso. Este comportamento acarreta um

crescimento exponencial do tempo de execução do algoritmo conforme o número de arestas no

grafo aumenta.

O acc-Motif e o Kavosh possuem uma curva semelhante, indicando que o custo para conta-

bilizar um subgrafo diminui conforme o grafo fica mais denso.A diferença entre os dois é que o

acc-Motif possui uma constante menor, ou seja, o custo computacional para cada subgrafo é in-

ferior. Também constatamos que no acc-Motif, o custo diminui mais aceleradamente conforme

o grafo fica mais denso em comparação ao Kavosh. Por exemplo, ocusto inicial no acc-Motif

foi de 356 nanossegundos por subgrafo. Ao final chegamos ao custo de 68 nanossegundos por

subgrafo, representando uma diminuição de 81%. O Kavosh iniciou com 1094 nanossegundos

por subgrafo e terminou com 885 nanossegundos por subgrafo,incorrendo numa diminuição de

19%. Já o FANMOD apresentou um aumento de 62% com relação ao custo inicial.

Page 66: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

50 3.3. Resultados

Figura 3.14: Gráfico contendo o tempo de Enumeração por subgrafo em nanossegundos parak = 3 em grafos aleatórios.

Page 67: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

CAPÍTULO

4Algoritmo acc-Motif para k=4

Antes de apresentar o algoritmo parak = 4 utilizado pelo acc-Motif [14], faremos uma análise

da estrutura a ser utilizada. Para subgrafos de tamanho 4 é necessário que tenhamos uma es-

trutura maior do que a utilizada parak = 3, pois para calcularmos o padrão descrito na Figura

4.1, também conhecido como caminho de comprimento 4, partindo do vérticev, teríamos que

analisar 3 vértices adjacentes sendo que um destes teria queestar a distância 2 dev.

v

Figura 4.1: Caminho de comprimento 4.

Os cálculos seriam mais complexos se partíssemos da mesma base utilizada parak = 3.

No entanto, utilizando como estrutura básica uma aresta, aoinvés de um vértice, precisaríamos

apenas calcular a combinação de 2 vértices adjacentes a estaestrutura. Além disto, estes 2

vértices estariam numa vizinhança imediata, facilitando assim, os cálculos de frequência para

cada padrão.

51

Page 68: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

52 4.1. Grafos não direcionados

4.1 Grafos não direcionados

Para calcularmos as frequências de todos os subgrafos de 4 vértices que contenham a arestae

em sua posição central temos que analisar todos os possíveissubgrafos formados a partir de

dois vizinhos desta aresta.

Definição 4.1.1.Sejae-Patternso conjunto de todos os subgrafos de 4 vértices{u, v, x, y},ondee = (u, v) é a aresta central ex, y ∈ δ(e) = δ(u) ∪ δ(v) \ {u, v} são os dois vértices

vizinhos a arestae.

Vamos definir tambémXe = δ(u) \ (δ(v)∪u), Y e = δ(v) \ (δ(u)∪ v) eZe = δ(u)∩ δ(v) \{u, v}. Os conjuntosXe, Y e eZe estão descritos na Figura4.2.

Para facilitar os cálculos vamos estabelecerneX = |Xe|, ne

Y = |Y e| e neZ = |Ze|. Do

mesmo modo aplicado ak = 3, vamos representar o número de arestas(x, y) ∈ E∗|x ∈ Xe e

y ∈ Ze comomeXZ e assim sucessivamente para todas as combinações deXe, Y e eZe. Como

temos 3 tipos de vizinhos, ao combinarmos estes 2 a 2 com repetição teremos 6 pares possíveis

formando as variáveis{meXX , m

eXY , m

eXZ , m

eY Y , m

eY Z , m

eZZ}.

Xe Y e

Ze

u ve

Figura 4.2: Definição dos 3 tipos de vizinhos para a arestae.

Como temos 3 tipos de vizinhos e precisamos analisar a arestae com adição de 2 vizinhos,

é necessário fazer a combinação destes 3 conjuntos 2 a 2. Deste modo teremos as combinações

XeXe, XeY e, XeZe, Y eY e, Y eZe, ZeZe. A combinaçãoXeZe representa quex ∈ Xe e y ∈Ze, e o mesmo se segue para as outras combinações.

Para que o cálculo da frequência dos padrões esteja completaprecisamos analisar duas situa-

ções possíveis. A primeira delas é a frequência dos padrões formados pelos 6 pares de combina-

ções dos conjuntos de vizinhos sem aresta entre os vérticesx, y, ou seja,(x, y) 6∈ E|x, y ∈ δ(e).

A segunda análise seria levando em consideração esta aresta(x, y). Deste modo estaremos var-

rendo todos os pares de vizinhos possíveis com ou sem aresta entre eles, ou seja, estaremos

levando em consideração todos os padrões possíveis.

Page 69: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 53

Apresentaremos, inicialmente, o primeiro caso em que(x, y) 6∈ E. Como não estamos

levando em consideração a aresta(x, y), então a frequência será dada pela combinação de seus

vizinhos, ou seja, quando os dois vizinhos forem do mesmo conjunto, a frequência para este

padrão será indicada pela combinação deste 2 a 2, caso contrário a frequência será o produto

entre eles. Este procedimento é idêntico ao aplicado parak = 3. Contudo, devemos deduzir a

frequência da aresta(x, y), pois neste caso os padrões analisados não terão esta aresta.

Tabela 4.1:Representação dos subgrafos formados pelas 6 combinações dos conjuntos de vi-zinhos sem a aresta(x, y).

Par Padrões Frequência

XeXe u v

x

y

e(

neX

2

)

−meXX

XeY e

u v

x y

eneXne

Y −meXY

XeZe

u v

y

x

eneXne

Z −meXZ

Par Padrões Frequência

Y eY e u v

x

y

e(

neY

2

)

−meY Y

Y eZe

u v

y

x

eneY n

eZ −me

Y Z

ZeZe

u v

x y

e

(

neZ

2

)

−meZZ

Conforme descrito na Tabela4.1, temos os 6 subgrafos formados pelas combinações des-

critas acima e suas respectivas frequências. Nela, podemosverificar que os subgrafos forma-

dos pela combinaçãoXeXe e Y eY e são isomorfos. Desta forma é necessário somar as suas

frequências, pois representam um único padrão. O mesmo se aplica as combinaçõesXeZe e

Y eZe. Contudo ainda temos que analisar a frequência dos padrões formados pelos 6 pares de

combinações dos conjuntos de vizinhos levando em consideração a existência da aresta(x, y).

A frequência dos padrões que possuem a aresta(x, y), será indicada pelo valor deme. Esta

abordagem é idêntica a apresentada no problema parak = 3.

Desta forma a Tabela4.2ilustra os 6 subgrafos formados pela combinação de dois vizinhos

incluindo a aresta(x, y) e suas respectivas frequências.

A partir das Tabelas4.1 e 4.2 podemos identificar que ocorre isomorfismo em diversos

subgrafos. Para contornar o problema basta representar os subgrafos num único padrão e somar

as suas frequências, pois elas representam todas as situações em que o padrão poderá ocorrer.

Para identificar os padrões isomorfos temos os seguintes agrupamentos:

Page 70: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

54 4.1. Grafos não direcionados

Tabela 4.2:Representação dos subgrafos formados pelas 6 combinações dos conjuntos de vi-zinhos com a aresta(x, y).

Par Padrões Frequência

XeXe u v

x

y

eme

XX

XeY e

u v

x y

eme

XY

XeZe

u v

y

x

eme

XZ

Par Padrões Frequência

Y eY e u v

x

y

eme

Y Y

Y eZe

u v

y

x

eme

Y Z

ZeZe

u v

x y

eme

ZZ

1. {XeXe, Y eY e} ⊂ Tabela4.1.

2. { XeZe, Y eZe} ⊂ Tabela4.1 ∪ {XeXe, Y eY e} ⊂ Tabela4.2.

3. {ZeZe} ⊂ Tabela4.1 ∪ {XeZe, Y eZe} ⊂ Tabela4.2.

Fazendo as devidas junções, somando as frequências dos padrões isomórficos, podemos

verificar na Tabela4.3, a frequência final para os 6 padrões de tamanho 4 existentes em grafos

não direcionados.

Contudo, a frequência ainda não representa na integra o número de subgrafos dee-Patterns,

pois do mesmo modo que ocorre ambiguidade parak = 3, aqui também temos que contornar

este inconveniente. No caso anterior, tínhamos que dividirpor 3 os padrões cíclicos, pois este é

o número de vértices pelo qual podemos enumerar o padrão. Para k = 4, a enumeração é feita

por arestas, então temos que dividir a frequência do padrão pelo número de arestas que podem

enumerar aquele padrão.

A Tabela4.4 temos um exemplo das arestas que enumeram o padrão e a combinação que

gerou a frequência para aquela arestae. Assim podemos saber quais as arestas que podem

enumerar determinado padrão e identificar o valor do divisor.

Na Tabela4.5temos a indicação das possíveis posições para a arestae mostrando o número

de ambiguidades na frequência do padrão. O divisor é o fator que ao fim da enumeração dividirá

o valor da frequência.

Page 71: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 55

Tabela 4.3:Representação da frequência para os 6 padrões de tamanho 4 emgrafos não direci-onados.

Padrões Frequência

(

neX

2

)

+

(

neY

2

)

−meXX −me

Y Y

(

neZ

2

)

−meZZ +me

XZ +meY Z

(neX + ne

Y )neZ −me

XZ −meY Z +

meXX +me

Y Y

Padrões Frequência

neXne

Y −meXY

meXY

meZZ

Tabela 4.4:Exemplo de padrão indicando as arestas que enumeram o padrão.

Posições para aAresta e e e

e

Combinações XeXe eY eY e da Tabela4.2 XeZe eY eZe da Tabela4.1

Tabela 4.5: Indicação do número de arestas que enumeram o padrão.

Padrões Divisor Padrões Divisor Padrões Divisor

e

e

e3

e

e eee 5

e

e

e3

e1

e

e e

e

4

e

e eeee

6

Page 72: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

56 4.1. Grafos não direcionados

Entrada: Um grafoG(V,E).Saída: O Histograma Preenchido.

1 Inicializa oHistograma com valor 0.2 Calcula{ne

X , neY , n

eZ} para∀ e ∈ E.

3 Calcula{meXX , m

eXY , m

eXZ , m

eY Y , m

eY Z , m

eZZ} para∀ e ∈ E.

4 para cadae ∈ E faça5 Calcula a frequência para os 6 padrões descrita Tabela4.3.6 Para cada padrão adiciona a sua frequência ao histograma.7 fim8 Divide o valor total computado para os padrões, conforme divisor da Tabela4.5.9 retorna Histograma

Algoritmo 17: Procedimento de Enumeração parak = 4 num grafo não direcionado.

O Algoritmo17 implementa o método de enumeração para subgrafos de tamanho4 em gra-

fos não direcionados. Sua complexidade excluindo a linha 2 e3 éO(m). Agora vamos analisar

a complexidade para gerar os conjuntosXe, Y e, Ze e as variáveis{meXX , m

eXY , m

eXZ , m

eY Y ,

meY Z , me

ZZ}.

Entrada: Um grafoG(V,E).Saída: Os conjuntosXe, Y e eZe para∀ e ∈ E

1 para cada arestae = (u, v) ∈ E∗ faça2 Ze = δ(u) ∩ δ(v) \ {u, v}3 Xe = δ(u) \ (δ(v) ∪ u)4 Y e = δ(v) \ (δ(u) ∪ v)

5 fimAlgoritmo 18: Cálculo dos conjuntosXe, Y e eZe.

O Algoritmo 18 representa o método para construção dos conjuntosXe, Y e, Ze. Conside-

rando o custo computacional para calcularδ(u)∩δ(v) = O(min{nu, nv}), podemos representar

a complexidade do algoritmo pelo somatório∑

(u,v)∈E∗

min{nu, nv}. Conforme apresentado por

Chiba e Nishizek’s [4], a complexidade deste agoritmo éO(m√m).

O método para construção das variáveis{meXX , m

eXY , m

eXZ , m

eY Y , m

eY Z , m

eZZ} está imple-

mentado no Algoritmo19. A complexidade do método, conforme as linhas 1 e 2, éO(m2).

Na Figura4.3 as arestas indicadas condicionam os incrementos das variáveismeXX , me

XY ,

meXZ , me

Y Y , meY Z eme

ZZ com relação a arestae.

No Algoritmo 17, a complexidade da linha 2 éO(m√m) e a complexidade da linha 3 é

O(m2). Deste modo a complexidade total do algoritmo éO(m2).

Page 73: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 57

Entrada: Um grafoG∗(V,E∗).Saída: O valor de{me

XX , meXY , m

eXZ , m

eY Y , m

eY Z , m

eZZ} para∀ e ∈ E∗

1 me inicializa em 0.2 para cada arestae = (u, v) ∈ E∗ faça3 para cada aresta(x, y) ∈ E∗ faça

4

Se os vértices Façax ∈ Xe e y ∈ Xe me

XX++x ∈ Xe ey ∈ Y e me

XY ++x ∈ Xe ey ∈ Ze me

XZ++x ∈ Y e e y ∈ Y e me

Y Y ++x ∈ Y e ey ∈ Ze me

Y Z++x ∈ Ze e y ∈ Ze me

ZZ++5 fim6 fimAlgoritmo 19: Procedimento para cálculo do valor de{me

XX , meXY , m

eXZ , m

eY Y , m

eY Z , m

eZZ}.

u vemeXX++ me

Y Y ++

meXZ++ me

Y Z++

meXY ++

meZZ++

Figura 4.3: Definição dos 3 tipos de vizinhos para a arestae.

4.2 Grafos direcionados

A solução para grafos direcionados é bastante semelhante à utilizada em grafos não direciona-

dos. O que difere é o número de variáveis do problema e a quantidade de conjuntos de vizinhos.

Definição 4.2.1.São 15 tipos de vizinhos diferentes conforme mostra a Figura4.4.

Os conjuntosAe1 = Au \ (δ(v) ∪ {v}), Be

1 = Bu \ (δ(v) ∪ {v}) eCe1 = Cu \ (δ(v) ∪ {v}),

representam os conjuntos vizinhos deu mas que não são vizinhos dev.

Os conjuntosAe2 = Av \ (δ(u) ∪ {u}), Be

2 = Bv \ (δ(u) ∪ {u}) eCe2 = Cv \ (δ(u) ∪ {u}),

são os conjuntos de vizinhos dev que não são vizinhos deu.

Page 74: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

58 4.2. Grafos direcionados

Temos também os conjuntosAAe = Au ∩ Av, ABe = Au ∩ Bv, ACe = Au ∩ Cv, BAe =

Bu∩Av,BBe = Bu∩Bv,BCe = Bu∩Cv,CAe = Cu∩Av,CBe = Cu∩Bv,CCe = Cu∩Cv,

que indicam os conjuntos de vizinhos por meio de intersecçãoentreu ev.

Desse modo,V ize = {Ae1, B

e1, C

e1, A

e2, B

e2, C

e2 , AA

e, ABe, ACe, BAe, BBe, BCe, CAe, CBe, CCe}.Dado um conjuntoT ∈ V ize, definimos comone

T = |T |. Definimos comomeT1T2

o número de

arestas(x, y) ∈ E|x ∈ T1 e y ∈ T2, ondeT1, T2 ∈ V ize. Definimos comom∗eT1T2o número de

arestas(x, y)∗ ∈ E|x ∈ T1 ey ∈ T2.

Ae1

Be1

Ce1

u v

Ae2

Be2

Ce2

AAe

ABe

ACe

BAe

BBe

BCe

CAe CBe

CCe

e

Figura 4.4: Representação dos 15 tipos de vizinhos da arestae.

Para computar a frequência de todos os 199 padrões de tamanho4 em grafos direcionados é

necessário analisar todas as combinações de vizinhos 2 a 2 para que todos os padrões existentes

sejam levados em consideração. Este procedimento é idêntico ao que foi utilizado no caso não

direcionado.

Para representar o padrão formado por determinada combinaçãoT1, T2 ∈ V ize, utilizare-

mos a funçãoPadrão(e, T1, T2) que retornará a identificação do padrão formando pela arestae

mais dois vizinhosx, y tal quex ∈ T1 e y ∈ T2. A arestae pode ser direcional ou bidirecional,

por este motivo, ela deve constar na funçãoPadrão, pois dependendo do tipo de arestae tere-

mos a formação de um padrão diferente. Com relação aos vérticesx, y temos quatro situações

possíveis para cada combinação. Podemos ter uma aresta(x, y), ou uma aresta(y, x), ou uma

aresta(x, y)∗, ou não possuir aresta entre os vérticesx, y.

Page 75: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 59

Para ilustrar estas variações vamos exemplificar na Tabela4.6 os padrões formados pela

arestae = (u, v)∗ e x ∈ Ae1 e y ∈ CCe. Como podemos ver, temos 4 funções distintas:

Padrão(e, T1, T2) quando não temos arestas entrex e y, Padrão→(e, T1, T2) quando tivermos a

aresta(x, y), Padrão←(e, T1, T2) quando existir uma aresta(y, x) e Padrão↔(e, T1, T2) para os

padrões que possuem uma aresta(x, y)∗.

Na Figura4.7temos a representação de todos os padrões formados pela funçãoPadrão(e, T1, T2)

comT1, T2 ∈ V ize. A aresta na cor azul representa a relação entre os vérticesx e y, podendo

esta assumir 4 situações conforme mostra a Figura4.6. A arestae pode ser igual a(u, v) ou

(u, v)∗.

Tabela 4.6:Exemplo de retorno para as funções:Padrão(e, T1, T2), Padrão→(e, T1, T2),Padrão←(e, T1, T2) ePadrão↔(e, T1, T2).

Padrão Formado Função Correspondente Característica

u v

x y

ePadrão(e, Ae

1, CCe) Sem a aresta entrex ey.

u v

x y

ePadrão→(e, Ae

1, CCe) Possui uma aresta(x, y).

u v

x y

ePadrão←(e, Ae

1, CCe) Possui uma aresta(y, x).

u v

x y

ePadrão↔(e, Ae

1, CCe) Possui uma aresta(x, y)∗.

Devido à quantidade de padrões a frequência de cada padrão será feita termo a termo, ou

seja, para cada par de combinação dos conjuntos de vizinhos será feito o incremento no respec-

tivo padrão formado por aquela combinação.

Para que possamos fazer o cálculo da frequência por partes é necessário que o número

de ocorrências para cada termo esteja padronizado. Para analisar todas as combinações de

vizinhos temos que tratar duas situações distintas. A primeira delas é quando a combinação

é composta por um único conjunto, ou seja,x, y ∈ T | T ∈ V ize. Neste caso a frequência

Page 76: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

60 4.2. Grafos direcionados

Tabela 4.7:Representa todos os padrões formados pela funçãoPadrão(e, T1, T2) paraT1, T2 ∈V ize.

Ae1 Be

1 Ce1 Ae

2 Be2 Ce

2 AAe ABe ACe BAe BBe BCe CAe CBe CCe

Ae1

Be1

Ce1

Ae2

Be2

Ce2

AAe

ABe

ACe

BAe

BBe

BCe

CAe

CBe

CCe

para oPadrão(e, T, T ) desprezando as arestas entrex, y é

(

neT

2

)

. Como este padrão não possui

arestas entre os vérticesx, y então é necessário deduzir a ocorrência destas arestas. No caso

direcionado temos 3 tipos de arestas possíveis:(x, y), (y, x) e (x, y)∗. Comox e y pertence ao

mesmo conjunto, o número de ocorrências de arestas(x, y) é o mesmo de ocorrências de arestas

(y, x). Neste caso a frequência para oPadrão(e, T, T ) =

(

neT

2

)

−meTT −m∗eTT .

Para oPadrão→(e, T, T ) temos que a sua ocorrência será dada pormeTT . Como este padrão é

idêntico aoPadrão←(e, T, T ) então só faremos o computo uma única vez. OPadrão↔(e, T, T )

será representado porm∗eTT .

Page 77: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 61

A segundo caso trata as combinações cujos vizinhos são diferentes, ou seja, quandox ∈ T1

ey ∈ T2 | T1 6= T2 eT1, T2 ∈ V ize. Neste caso a frequência para oPadrão(e, T1, T2) = neT1neT2

,

fazendo as deduções em função de não possuir aresta entrex, y temos que a frequência para

o Padrão(e, T1, T2) = neT1neT2− me

T1T2− me

T2T1− m∗eT1T2

. Já oPadrão→(e, T1, T2) terá sua

frequência indicada pormeT1T2

.

O Padrão←(e, T2, T1) será representado pormeT2T1

e por último temos oPadrão↔(e, T1, T2)

que será indicado pelo valor dem∗eT1T2.

A partir do cálculo da frequência estabelecido para cada combinação podemos computar o

número de ocorrência para todos os padrões de tamanho 4 em grafos direcionados.

Entrada: Um grafoG(V,E).Saída: O Histograma Preenchido.

1 Inicializa oHistograma com valor 0.2 Calculane

T para∀ e ∈ E e para∀ T ∈ V ize.3 Calculame

T1T2em∗eT1T2

para∀ e ∈ E e para∀ T1, T2 ∈ V ize.4 para cadaarestae ∈ E faça5 para cadaT ∈ V ize faça

6 Frequência [Padrão(e, T, T )]+ =

(

neT

2

)

−meTT −m∗eTT .

7 Frequência [Padrão→(e, T, T )]+ = meTT .

8 Frequência [Padrão↔(e, T, T )]+ = m∗eTT .9 fim

10 para cadaT1, T2 ∈ V ize faça11 Frequência [Padrão(e, T1, T2)]+ = ne

T1neT2−me

T1T2−me

T2T1−m∗eT1T2

.12 Frequência [Padrão→(e, T1, T2)]+ = me

T1T2.

13 Frequência [Padrão←(e, T1, T2)]+ = meT2T1

.14 Frequência [Padrão↔(e, T1, T2)]+ = m∗eT1T2

.15 fim16 fim17 Divide o valor total computado para cada padrão pelo seu respectivo divisor, cuja a

estrutura é equivalente aos padrões da Tabela4.5.18 retorna Histograma

Algoritmo 20: Procedimento de Enumeração parak = 4 num grafo direcionado.

O Algoritmo 20 implementa o método de enumeração parak = 4. Sua complexidade

excluindo a linha 2 e 3 éO(m). Podemos perceber que para cada aresta do grafo calcularemos

a frequência para os 199 padrões, ou seja, mesmo que um padrãonão exista, este será calculado

pelo algoritmo. A diferença é que neste caso o cálculo da frequência para este padrão em todas

as arestas será zero. Deste modo podemos concluir que quantoa classificação, o algoritmo é

centrado noMotif. Se quisermos encontrar um padrão específico podemos fazer um filtro no

laço da linha 5 e ao invés de calcularmos todos os 199 padrões,podemos especificar um único

Page 78: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

62 4.3. Resultados

padrão. Mesmo calculando a frequência para um único padrão,a complexidade do algoritmo

será a mesma.

Entrada: Um grafoG(V,E).Saída: Os conjuntosT ∈ V ize para∀ e ∈ E

1 para cada arestae = (u, v) ∈ E faça2 Ae

1 = Au \ (δ(v) ∪ {v})3 Be

1 = Bu \ (δ(v) ∪ {v})4 Ce

1 = Cu \ (δ(v) ∪ {v})5 Ae

2 = Av \ (δ(u) ∪ {u})6 Be

2 = Bv \ (δ(u) ∪ {u})7 Ce

2 = Cv \ (δ(u) ∪ {u})8 AAe = Au ∩ Av

9 ABe = Au ∩ Bv

10 ACe = Au ∩ Cv

11 BAe = Bu ∩ Av

12 BBe = Bu ∩ Bv

13 BCe = Bu ∩ Cv

14 CAe = Cu ∩Av

15 CBe = Cu ∩Bv

16 CCe = Cu ∩ Cv

17 fimAlgoritmo 21: Cálculo do conjuntoV ize para∀ e ∈ E.

O Algoritmo 21 implementa a construção do conjuntoV ize. Sua complexidade é idêntica

ao do Algoritmo18, ou seja,O(m√m), a diferença é que neste caso temos 15 conjuntos de

vizinhos.

O Algoritmo22 implementa a construção das variáveismeT1T2

em∗eT1T2| T1, T2 ∈ V ize para

∀ e ∈ E. A complexidade do método, conforme linha 1 e 2, éO(m2), ou seja, é a mesma do

Algoritmo 19.

Podemos concluir que a a complexidade total do Algoritmo20 éO(m2), conforme linha 3.

4.3 Resultados

Nesta seção serão apresentados os resultados quanto ao desempenho computacional para execu-

tar o processo de Enumeração parak = 4 em grafos direcionados. O acc-Motif foi comparado

em relação ao FANMOD [21] e o Kavosh [7] que são os algoritmos mais rápidos atualmente

para detectarMotifs.

O acc-Motif se mostrou mais rápido em todos os grafos testados, em alguns casos chegou a

ser 249 vezes mais rápido que o FANMOD e 85 vezes mais rápido que o Kavosh, como foi o

Page 79: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 63

Entrada: Um grafoG(V,E).Saída: O valor deme

T1T2em∗eT1T2

| T1, T2 ∈ V ize para∀ e ∈ E1 para cada arestae ∈ E faça2 para cada aresta(x, y) ∈ E faça3 se x ∈ T1 ey ∈ T2 | T1, T2 ∈ V ize então4 se(x, y) é bidirecional &x < y então5 m∗eT1T2

++6 fim7 se(x, y) é direcionalentão8 me

T1T2++

9 fim10 fim11 fim12 fimAlgoritmo 22: Procedimento para cálculo do valor deme

T1T2e m∗eT1T2

| T1, T2 ∈ V ize para∀ e ∈ E.

Tabela 4.8:Tempo de Enumeração parak = 4 em segundos para alguns grafos.

Grafos (n,m) FANMOD Kavosh acc-MotifE.coli [2] (418, 519) 0, 221± 0, 002 0, 131± 0, 001 0, 002± 0, 000CSphd [3] (1882, 1740) 0, 105± 0, 001 0, 062± 0, 001 0, 006± 0, 000Levedura [2] (688, 1079) 0, 576± 0, 002 0, 290± 0, 001 0, 006± 0, 000Roget [3] (1022, 5074) 0, 949± 0, 001 0, 546± 0, 002 0, 055± 0, 005Epa [3] (4271, 8965) 26, 719± 0, 037 14, 532± 0, 111 0, 184± 0, 006California [3] (6175, 16150) 37, 365± 0, 053 20, 064± 0, 050 0, 698± 0, 021Facebook [18] (1899, 20296) 151, 935± 0, 108 61, 342± 0, 172 2, 062± 0, 022ODLIS [3] (2900, 18241) 640, 538± 3, 611 218, 071± 0, 473 2, 563± 0, 051PairsFSG [3] (5018, 63608) 324, 703± 0, 506 193, 873± 0, 842 7, 409± 0, 127Airport [18] (1574, 28236) 592, 960± 0, 057 171, 115± 0, 361 10, 095± 0, 084Foldoc [3] (12905, 109092) 1219, 255± 8, 125 276, 869± 1, 660 8, 591± 0, 076

caso do grafo ODLIS [3]. Todos os testes parak = 4 foram feitos rodando o algoritmo 5 vezes

e com 10 grafos aleatórios. O tempo na Tabela4.8foi medido em segundos e está acompanhado

de seu desvio padrão. Os testes foram feitos nos mesmo moldesdos descritos na Seção3.3.

Na Figura4.5, temos o gráfico dos tempos descritos na Tabela4.8. Os grafos foram agru-

pados por ordem de tamanho. Conforme descrito na Seção3.3 podemos representar o ganho

computacional como sendo o número de vezes que um algoritmo foi mais rápido do que outro.

SejaTa, Tk eTf o tempo de Enumeração respectivamente do acc-Motif, Kavosh, e FANMOD.

Page 80: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

64 4.3. Resultados

(a) Grafos pequenos. (b) Grafos médios.

(c) Grafos grandes.

Figura 4.5: Gráfico contendo o tempo de Enumeração em segundos parak = 4 nos grafosdescritos na Tabela4.8.

Na Figura4.6 temos o gráfico do ganho computacional indicado pelos valores deTk/Ta,

Tf/Ta eTf/Tk. Este gráfico é similar ao da Figura3.12, só que neste temosk = 4.

Para os valores médios dos ganhos temos o seguinte resultado. Média(Tk/Ta) = 38,

Média(Tf/Ta) = 91 e Média(Tf/Tk) = 2, 3. Este resultado mostra que o acc-Motif man-

teve seu desempenho com relação ao FANMOD tanto parak = 3 quanto parak = 4. Com

relação ao Kavosh, o acc-Motif aumentou esta proporção saindo de 32 parak = 3 e indo para

38 parak = 4. Assim podemos inferir que a extensão deste algoritmo para subgrafos maiores

pode trazer ótimos resultados.

Também foram feitos testes em grafos aleatórios conforme Algoritmo10. Os grafos pos-

suem 5000 vértices e as arestas variam de 10 mil a 100 mil aumentando o número de arestas

gradativamente de 10 mil. O acc-Motif foi mais rápido em todos os grafos testados conforme,

Page 81: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 4. Algoritmo acc-Motif para k=4 65

Figura 4.6: Gráfico contendo os valores deTk/Ta, Tf/Ta e Tf/Tk para o conjunto de testeindicados na Tabela3.1.

demonstra a Figura4.7. Este teste mostra o comportamento dos algoritmos com o aumento do

grau médio dos grafos. Os tempos registrados neste teste estão descritos na TabelaA.2.

Figura 4.7: Gráfico contendo o tempo de Enumeração em segundos parak = 4 em grafosaleatórios.

A Figura4.8apresenta o percentual de tempo gasto no processo de enumeração. Os testes

foram feitos utilizando os mesmos grafos aleatórios do teste anterior, a diferença é que neste

caso o número de arestas dos grafos variam de mil até 100 mil. Este gráfico mostra o percentual

de tempo gasto no procedimento de construção dos conjuntos de vizinhos, referenciado no

gráfico porV ize, que corresponde a execução da linha 2 do Algoritmo20. Temos também o

Page 82: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

66 4.3. Resultados

percentual de tempo gasto na execução da linha 3 do Algoritmo20, representado no gráfico

por meT1T2

. Por fim, temos a indicação da parcela de tempo gasto para computar o número

de ocorrências no Histograma. Esta etapa representa a execução da linha 5 até a linha 12 do

Algoritmo 20 e estão indicadas no gráfico por Set Histograma.

Conforme mostra o gráfico da Figura4.8, podemos verificar que grande parte do tempo

gasto na Enumeração se deve ao Algoritmo22. Confirmando assim a relevância de sua com-

plexidadeO(m2) no Algoritmo20.

Figura 4.8: Gráfico contendo a porcentagem de tempo gasto na Enumeração parak = 4 emgrafos aleatórios.

Page 83: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

CAPÍTULO

5Conclusão

O problema de Detecção de Network Motifs é de propósito gerale sua aplicação envolve diver-

sas áreas do conhecimento. Sua solução envolve 4 etapas [7]:

1. Enumeração de todos os subgrafos de tamanhok.

2. Classificação do subgrafo quanto ao isomorfismo.

3. Geração de grafos aleatórios.

4. Análise estatística dos padrões para identificar os possíveisMotifs.

A primeira delas é a tarefa de maior custo computacional. Neste trabalho foram abordados

alguns métodos para fazer a enumeração. O método de Força Bruta vide Seção2.3.1, por exem-

plo, apesar de resolver o problema para qualquer tamanho de subgrafo possui complexidade

Θ(nk), que é muito elevada, tornando o método ineficiente para grafos grandes.

Também foi apresentado o Algoritmo Elementar vide Seção2.3.2, que possui um desempe-

nho bem interessante pelo fato de não verificar a conexidade do subgrafo gerado. Infelizmente

esta abordagem, da forma como foi concebida, não permite umaextensão automática para sub-

grafos maiores. Ela necessita de uma implementação para cada tamanhok. Como usualmente

o tamanho doMotif é limitado pelo custo computacional, o valor dek geralmente é inferior a 8

tornando possível o uso deste algoritmo.

67

Page 84: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

68 5.1. Comparativo

Quanto a segunda etapa do problema que é a classificação quanto ao isomorfismo foram

apresentados algumas soluções como o Algoritmo de Força Bruta, descrito pelo Algoritmo5,

que resolve o problema para grafos de qualquer tamanho com complexidadeΘ(n2n!). Sua

utilização se tornou um pouco obsoleta após a descoberta de propriedades nos grafos que per-

mitem uma expressiva diminuição no espectro de busca conforme apresentado pelo Algoritmo

de Força Bruta com Refinamento Estrutural vide Seção2.4.2.

No problema deNetwork Motifso tamanho do subgrafo analisado é pequeno, tornando

viável a utilização de métodos que resolvem o problema de Isomorfismo em Grafos em tempo

polinomial. Neste trabalho foi apresentado o Algoritmo9 que resolve o problema em tempo

polinomial para dígrafos com no máximo 5 vértices.

Quanto a geração de grafos aleatórios foram apresentados algumas abordagens que atual-

mente são utilizadas pelos algoritmos voltados para Detecção de Network Motifs.

Por último foi apresentado o acc-Motifs [14] que é um algoritmo que executa as tarefas de

enumeração e classificação quanto ao isomorfismo com complexidadeO(m√m) parak = 3 e

O(m2) parak = 4. Este algoritmo acelera o processo de enumeração por meio deotimização

combinatória e em comparação com outros algoritmos o acc-Motif se mostrou bastante rápido.

5.1 Comparativo

Para entender o motivo pelo qual o acc-Motif é mais rápido queos outros algoritmos, podemos

fazer um comparativo sobre a tarefa de maior custo computacional, que é o processo de enume-

ração dos subgrafos e classificação quanto ao isomorfismo. Analisando o custo computacional

para estas tarefas, podemos comparar as estratégias de cadaetapa conforme Figura5.1.

acc-Motif

• Geração de todos os subgrafos de tama-nhok − 2.

• Estrutura de dados grande para cada sub-grafo.

• Classificação quanto ao isomorfismocom complexidadeO(1).

FANMOD e Kavosh

• Geração de todos os subgrafos de tama-nhok.

• Estrutura de dados pequena para cadasubgrafo.

• Classificação quanto ao isomorfismocom complexidade2O(

√k log k).

Figura 5.1: Comparação no processo de Enumeração entre o acc-Motif e o FANMOD e Ka-vosh.

Page 85: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Capítulo 5. Conclusão 69

O procedimento para gerar todos os subgrafos de determinadotamanho varia conforme o

algoritmo. Esta etapa do processo é a principal diferença entre os algoritmos. A classifica-

ção quanto ao isomorfismo é um problema à parte, cada algoritmo pode utilizar uma estratégia

diferente. O melhor método para classificação quanto ao isomorfismo possui complexidade

2O(√k log k) [24]. Deste modo, os algoritmos que identificam osNetwork Motifs, não se preocu-

pam muito com o problema de isomorfismo e sim com a geração dos subgrafos.

A grande vantagem do acc-Motif está na classificação quanto ao isomorfismo com comple-

xidadeO(1). Outra diferença está relacionada ao número de subgrafos gerados. O acc-Motif

só gera os subgrafos de tamanhok − 2, o restante da enumeração para subgrafos de tamanhok

é feita por meio de Otimização Combinatória. Para atingir este objetivo é necessário um custo

computacional na ordem deO(m) para cada subgrafo gerado.

O acc-Motif também necessita de uma grande estrutura de dados. Por exemplo, a vizinhança

de um subgrafok − 2 é composta por4k−2 − 1 conjuntos de vizinhos. Apesar do custo desta

estrutura, a metodologia de enumeração utilizada pelo acc-Motif é bastante promissora.

5.2 Contribuições

Este trabalho deixa como contribuição para a área de Teoria dos Grafos a análise e descrição

de algoritmos para Enumeração de subgrafos, soluções para oproblema de isomorfismo, abor-

dagens para a construção de grafos aleatórios e análise estatística para o reconhecimento de

padrões. Quanto a área de Otimização Combinatória, este trabalho deixa como contribuição

a descrição do algoritmo acc-Motif que é uma ferramenta paraDetecção de Network Motifs

implementada paraMotifsde tamanho 3 e 4.

5.3 Trabalhos Futuros

Os trabalhos futuros impulsionados a partir deste trabalhode graduação consistem na extensão

do Algoritmo Elementar2.3.2para tamanhos maiores que 4.

A função dehash descrita no Algoritmo9 pode ser utilizada em conjunto com métodos

que façam uso de outras características dos grafos como é o caso da Teoria Espectral, podendo

assim restringir ainda mais o espaço de busca. Este método também pode ser aprimorado para

que a função dehash seja perfeita para grafos maiores do que 5 vértices.

Os trabalhos futuros com relação ao acc-Motif estariam voltados para aumentar o tamanho

dos subgrafos parak ≥ 5. A grande dificuldade no progresso deste algoritmo está relacionada

à elevada complexidade de implementação, contudo o ganho dedesempenho é encorajador.

Page 86: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 87: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Referências Bibliográficas

[1] Edward G. Allan, Jr., William H. Turkett, Jr., and Errin W. Fulp. Using network motifsto identify application protocols. InProceedings of the 28th IEEE conference on Globaltelecommunications, GLOBECOM’09, pages 4266–4272. IEEE Press, 2009.

[2] Uri Alon. Molecular cell biology lab: Dataset.http://www.weizmann.ac.il/mcb/UriAlon/groupNetworksData.html,2012.

[3] Vladimir Batagelj and Andrej Mrvar. Pajek datasets.http://vlado.fmf.uni-lj.si/pub/networks/data/, 2006.

[4] Norishige Chiba and Takao Nishizeki. Arboricity and subgraph listing algorithms.SIAMJ. Comput., 14(1):210–223, February 1985.

[5] Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to algo-rithms. MIT Press and McGraw-Hill, 1990.

[6] Joshua A. Grochow and Manolis Kellis. Network motif discovery using subgraph enu-meration and symmetry-breaking. InProceedings of the 11th annual international con-ference on Research in computational molecular biology, RECOMB’07, pages 92–106,Berlin, Heidelberg, 2007. Springer-Verlag.

[7] Z. Kashani, H. Ahrabian, E. Elahi, A. Nowzari-Dalini, E.Ansari, S. Asadi, S. Moham-madi, F. Schreiber, and A. Masoudi-Nejad. Kavosh: a new algorithm for finding networkmotifs. BMC bioinformatics, 10(1):318, 2009.

[8] Luciana Lee. Reformulação do problema de isomorfismo de grafos como um problemaquadrático de alocação. Departamento de Informática do Centro Tecnológico da Univer-sidade Federal do Espírito Santo, Setembro 2007.

[9] Celine Lefebvre, Wei Keat Lim, Katia Basso, Riccardo Dalla Favera, and Andrea Califano.A context-specific network of protein-dna and protein-protein interactions reveals newregulatory motifs in human b cells. InProceedings of the joint 2006 satellite conferenceon Systems biology and computational proteomics, RECOMB’06, pages 42–56, Berlin,Heidelberg, 2007. Springer-Verlag.

71

Page 88: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

72 Referências Bibliográficas

[10] Tien-ho Lin, Robert F. Murphy, and Ziv Bar-Joseph. Discriminative motif finding for pre-dicting protein subcellular localization.IEEE/ACM Trans. Comput. Biol. Bioinformatics,8:441–451, March 2011.

[11] Zhang Lin, Qian Guanqun, and Zhang Li. Clustering analysis of motif significance pro-file in software networks. InProceedings of the 10th WSEAS International Conferenceon Mathematical Methods and Computational Techniques in Electrical Engineering, pa-ges 145–147, Stevens Point, Wisconsin, USA, 2008. World Scientific and EngineeringAcademy and Society (WSEAS).

[12] Michael Lones and Andy Tyrrell. Regulatory motif discovery using a population clus-tering evolutionary algorithm.IEEE/ACM Transactions on Computational Biology andBioinformatics, 4:403–414, 2007.

[13] Dror Marcus and Yuval Shavitt. Efficient counting of network motifs. In Procee-dings of the 2010 IEEE 30th International Conference on Distributed Computing SystemsWorkshops, ICDCSW ’10, pages 92–98, Washington, DC, USA, 2010. IEEE ComputerSociety.

[14] Luis A.A. Meira, Vinícius R. Máximo, Álvaro L. Fazenda,and Arlindo F. da Concei-ção. Accelerated motif detection using combinatorial techniques.Workshop on ComplexNetworks and their Applications, 2012, Sorrento. 8th International Conference on SIG-NAL IMAGE TECHNOLOGY INTERNET BASED SYSTEMS - SITIS, page 744, 2012.

[15] R. Milo, S. Shen-Orr, S. Itzkovitz, N. Kashtan, D. Chklovskii, and U. Alon. Networkmotifs: Simple building blocks of complex networks.Science, 298:824–887, 2002.

[16] R. Milo N.Kashtan, S.Itzkovitz and U.Alon. Efficient sampling algorithm for esti-mating subgraph concentrations and detecting network motifs. BIOINFORMATICS,20:1746–1758, 2004.

[17] S. Omidi, F. Schreiber, and A. Masoudi-Nejad. Moda: An efficient algorithm for networkmotif discovery in biological networks.Genes Genet. Syst, 84:385–395, 2009.

[18] Tore Opsahl. Datasets tore opsahl.http://toreopsahl.com/datasets/#usairports, 2012.

[19] Nadia Pisanti, Maxime Crochemore, Roberto Grossi, andMarie-France Sagot. Bases ofmotifs for generating repeated patterns with wild cards.IEEE/ACM Trans. Comput. Biol.Bioinformatics, 2:40–50, January 2005.

[20] F. Schreiber and H. Schwöbbermeyer. Mavisto: a tool forthe exploration of networkmotifs. Bioinformatics, 21(17):3572–3574, 2005.

[21] S.Wernicke and F.Rasche. Fanmod: a tool for fast network motif detection.Bioinforma-tics, 22:1152–1153, 2006.

Page 89: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

Referências Bibliográficas 73

[22] Tie Wang, Jeffrey W. Touchman, Weiyi Zhang, Edward B. Suh, and Guoliang Xue. Aparallel algorithm for extracting transcription regulatory network motifs. InProceedingsof the Fifth IEEE Symposium on Bioinformatics and Bioengineering, BIBE ’05, pages193–200, Washington, DC, USA, 2005. IEEE Computer Society.

[23] wolfram. Weakly connected digraph.http://mathworld.wolfram.com/WeaklyConnectedDigraph.html.http://oeis.org/A003085.

[24] Elisabeth Wong, Brittany Baur, Saad Quader, and Chun-Hsi Huang. Biological networkmotif detection: principles and practice.Briefings in Bioinformatics, 13(2):202–215,2012.

[25] Kai-Hsiang Yang, Kun-Yan Chiou, Hahn-Ming Lee, and Jan-Ming Ho. Web appearancedisambiguation of personal names based on network motif. InProceedings of the 2006IEEE/WIC/ACM International Conference on Web Intelligence, WI ’06, pages 386–389,Washington, DC, USA, 2006. IEEE Computer Society.

Page 90: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa
Page 91: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

APÊNDICE

ATabela de Resultados

Na TabelaA.1 temos o tempo de enumeração, em milissegundos, dos grafos aleatórios queforam utilizados para comparar o desempenho do acc-Motif parak = 3.

Os grafos aleatórios utilizados nestes testes foram construídos conforme Algoritmo10.

Na TabelaA.2 temos o tempo de enumeração, em segundos, dos grafos aleatórios que foramutilizados para testar o desempenho do acc-Motif parak = 4.

75

Page 92: Vinícius Rosa Máximo · Aos meus amigos de turma pelos bons momentos de descontração e às infindáveis horas de estudo. Resumo N Etwork Motifs se tornou um tópico de pesquisa

76

Tabela A.1: Tempo de Enumeração parak = 3 em milissegundos para grafos aleatórios.

(n,m) No subgrafos FANMOD Kavosh acc-Motif(5000, 5000) 9.940 16, 30± 0, 23 10, 88± 0, 16 3, 54± 0, 03(5000, 10000) 40.107 62, 22± 0, 22 40, 44± 0, 22 10, 15± 0, 97(5000, 15000) 90.103 139, 29± 0, 28 86, 45± 0, 41 16, 76± 0, 41(5000, 20000) 158.903 248, 77± 0, 60 149, 08± 2, 25 24, 25± 0, 06(5000, 25000) 249.247 396, 36± 0, 55 230, 12± 2, 27 32, 51± 0, 03(5000, 30000) 359.327 589, 25± 6, 61 328, 81± 3, 24 41, 78± 0, 05(5000, 35000) 488.035 815, 07± 2, 12 445, 40± 2, 68 51, 58± 0, 15(5000, 40000) 637.250 1089, 54± 3, 71 578, 97± 2, 89 63, 17± 0, 70(5000, 45000) 806.300 1421, 07± 2, 80 736, 20± 9, 83 75, 97± 0, 46(5000, 50000) 995.801 1796, 40± 6, 24 904, 16± 5, 01 91, 86± 3, 71(5000, 55000) 1.202.269 2236, 91± 9, 02 1084, 76± 8, 04 105, 37± 2, 63(5000, 60000) 1.434.311 2777, 80± 8, 53 1294, 24± 4, 57 117, 50± 0, 64(5000, 65000) 1.680.077 3388, 10± 18, 82 1513, 36± 8, 10 133, 30± 0, 14(5000, 70000) 1.947.312 4083, 98± 25, 54 1755, 14± 13, 57 150, 41± 0, 08(5000, 75000) 2.233.657 4896, 12± 31, 71 1998, 33± 11, 53 168, 27± 1, 28(5000, 80000) 2.541.885 5772, 18± 71, 79 2270, 47± 5, 53 185, 47± 0, 12(5000, 85000) 2.862.776 6631, 58± 52, 86 2557, 38± 10, 29 197, 28± 0, 11(5000, 90000) 3.207.754 7730, 73± 36, 08 2856, 95± 5, 95 225, 43± 5, 27(5000, 95000) 3.575.859 8979, 13± 47, 96 3174, 27± 16, 43 248, 01± 0, 14(5000, 100000) 3.960.874 10513, 84± 191, 28 3504, 24± 9, 03 269, 33± 0, 57

Tabela A.2: Tempo de Enumeração parak = 4 em segundos para grafos aleatórios.

(n,m) No subgrafos FANMOD Kavosh acc-Motif(5000, 10000) 213.740 0, 42± 0, 002 0, 32± 0, 001 0, 11± 0, 004(5000, 20000) 1.679.228 3, 31± 0, 004 2, 33± 0, 004 0, 37± 0, 003(5000, 30000) 5.729.246 11, 87± 0, 003 7, 80± 0, 028 0, 91± 0, 009(5000, 40000) 13.511.302 29, 64± 0, 100 18, 30± 0, 025 1, 85± 0, 020(5000, 50000) 26.381.480 61, 40± 0, 071 36, 12± 0, 367 3, 32± 0, 005(5000, 60000) 45.610.787 114, 10± 0, 152 62, 61± 0, 554 5, 59± 0, 024(5000, 70000) 72.022.684 191, 85± 0, 368 96, 83± 0, 141 8, 86± 0, 028(5000, 80000) 107.374.549 310, 50± 5, 771 144, 46± 0, 695 13, 25± 0, 019(5000, 90000) 151.887.217 465, 36± 2, 749 205, 46± 0, 640 18, 30± 0, 336(5000, 100000) 208.345.757 659, 55± 1, 039 280, 01± 0, 682 25, 87± 0, 895