vinícius rosa máximo · aos meus amigos de turma pelos bons momentos de descontração e às...
TRANSCRIPT
Detecção de Network Motifs
Vinícius Rosa Máximo
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
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:
À minha esposa e aos meus pais.
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.
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
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
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
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
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
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
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
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.
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
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,
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.
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
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]
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.
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).
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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′:
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
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
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
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
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.
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.
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.
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,
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.
Capítulo 2.Network Motifs 33
Figura 2.10: Número de padrões no grafo original com relação à média.
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
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
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).
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.
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.
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
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
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.
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.
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
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.
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.
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
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
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.
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.
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
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.
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:
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.
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
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).
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.
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.
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
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 .
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
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
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.
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,
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
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.
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
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.
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.
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
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.
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.
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
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