relat orio de atividades do projeto de inicia˘c~ao cient ... · de l a at e os dias de hoje, o...

30
Relat´ orio de Atividades do Projeto de Inicia¸c˜ ao Cient´ ıfica sobre Network Motifs Aluno - Vin´ ıcius Rosa M´ aximo Bacharelando em Ciˆ encia da Computa¸c˜ ao Orientador - Prof. Dr. Luis Augusto Angelotti Meira Unifesp - S˜ ao Jos´ e dos Campos 02 de dezembro de 2011 Resumo O objetivo desta pesquisa de Inicia¸c˜ ao Cient´ ıfica ´ e desenvolver um algoritmo que iden- tifique os Network Motifs. O problema em quest˜ ao ´ e um grande desafio devido ` a elevada complexidade e envolve diversas ´ areas da Computa¸ ao como Estruturas de Dados, Projeto e An´ alise de Algoritmos, Probabilidade e Estat´ ıstica, Grafos, Programa¸c˜ ao Concorrente e Distribu´ ıda etc. Neste relat´ orio ser˜ ao descritos diversos m´ etodos de busca e de identifica¸c˜ ao de grafos isomorfos. Tamb´ em ser˜ ao apresentados alguns resultados obtidos at´ e a presente data. Sum´ ario 1 Defini¸ ao do Problema 2 2 Solu¸ ao para o Problema 7 3 Gera¸ ao de subgrafos conexos de tamanho k 8 3.1 Primeiro Algoritmo ................................... 9 3.2 Subgrafos de tamanho 3, segundo Algoritmo ..................... 10 3.3 Subgrafos de tamanho 3, terceiro Algoritmo ..................... 10 3.4 Gerador para k =4 ................................... 11 4 Isomorfismo N˜ ao Polinomial 13 4.1 Teste do Isomorfismo baseado em For¸ca Bruta .................... 14 4.2 Refinamento Estrutural ................................. 14 5 Isomorfismo Polinomial 16 5.1 PrimeiraFun¸c˜aode hash : Assinatura de Grau .................... 17 5.2 Assinatura de Grau com Permuta¸ c˜ao ......................... 18 5.3 umero de Arestas Sim´ etricas ............................. 20 5.4 Liga¸c˜ ao ......................................... 21 1

Upload: trananh

Post on 14-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Relatorio de Atividades do Projeto de Iniciacao Cientıficasobre Network Motifs

Aluno - Vinıcius Rosa MaximoBacharelando em Ciencia da Computacao

Orientador - Prof. Dr. Luis Augusto Angelotti MeiraUnifesp - Sao Jose dos Campos

02 de dezembro de 2011

Resumo

O objetivo desta pesquisa de Iniciacao Cientıfica e desenvolver um algoritmo que iden-tifique os Network Motifs. O problema em questao e um grande desafio devido a elevadacomplexidade e envolve diversas areas da Computacao como Estruturas de Dados, Projetoe Analise de Algoritmos, Probabilidade e Estatıstica, Grafos, Programacao Concorrente eDistribuıda etc. Neste relatorio serao descritos diversos metodos de busca e de identificacaode grafos isomorfos. Tambem serao apresentados alguns resultados obtidos ate a presentedata.

Sumario

1 Definicao do Problema 2

2 Solucao para o Problema 7

3 Geracao de subgrafos conexos de tamanho k 83.1 Primeiro Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Subgrafos de tamanho 3, segundo Algoritmo . . . . . . . . . . . . . . . . . . . . . 103.3 Subgrafos de tamanho 3, terceiro Algoritmo . . . . . . . . . . . . . . . . . . . . . 103.4 Gerador para k = 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Isomorfismo Nao Polinomial 134.1 Teste do Isomorfismo baseado em Forca Bruta . . . . . . . . . . . . . . . . . . . . 144.2 Refinamento Estrutural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 Isomorfismo Polinomial 165.1 Primeira Funcao de hash: Assinatura de Grau . . . . . . . . . . . . . . . . . . . . 175.2 Assinatura de Grau com Permutacao . . . . . . . . . . . . . . . . . . . . . . . . . 185.3 Numero de Arestas Simetricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.4 Ligacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1

5.5 Distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.6 Metodo com Delecao de Vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.7 Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.7.1 4 Vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.7.2 5 Vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6 Resultados 266.1 Busca para subgrafos de 3 vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . 276.2 Busca para subgrafos de 4 vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

7 Conclusoes 28

8 Agradecimentos 29

1 Definicao do Problema

Este problema se tornou de grande interesse da comunidade apos Milo et al. publicarem seusresultados na revista Science no ano de 2002 [7].

De la ate os dias de hoje, o conceito vem sendo utilizado em muitas areas da ciencia, emespecial em biologia e bioinformatica [2, 5, 3, 8].

O uso de motifs nao se reduz a bioinformatica. Em [10], Yang et al. usam o conceito de networkmotifs para remover ambiguidade na busca de informacoes de uma pessoa na Web. A informacaoutilizada e a estrutura da pagina e dos links a outras paginas para criar uma rede. Em outrotrabalho, Lin, Guanqun e Li [4] utilizam o conceito de motifs em programas de computadores.Apos comparar 110 programas desenvolvidos em software livre, os autores detectaram tres tiposdistindos de rede, criando um agrupamento dos programas em tres blocos. Em [1], Allan et al.usam o conceito de Network Motifs para analisar trafego em uma rede de computadores.

No que se refere a resolucao do problema e nao a sua aplicacao, Network Motifs e um temade pesquisa. Em [6], Marcus et al. mostram metodos de para contar motifs de maneira eficiente.Em [9], Wang et al. apresentam um algoritmo paralelo para encontrar motifs usando um clusterparalizado.

Neste projeto de iniciacao cientıfica, nosso objetivo e contar eficientemente os motifs de umarede e gerar grafos aleatorios para a validacao estatıstica.

Redes complexas ocorrem em diversas areas do conhecimento. Por exemplo, uma rede poderepresentar uma cadeia alimentar, onde cada vertice e uma especie e uma aresta direcionada de Apara B significa que a especie A se alimenta da especie B conforme Figura 1.

Figura 1: Nesta rede a especie A se alimenta de B.

Para ilustrar a transformacao de uma cadeia alimentar em um grafo vamos listar todos oselementos da cadeia representada na Figura 2.

2

Figura 2: Exemplo de cadeia alimentar mais complexa.

1. plantas, frutos e sementes

2. veado-campeiro

3. arara

4. tucano

5. gaviao

6. pica-pau e periquito

7. macaco

8. tuiuiu

9. sapo

10. insetos

11. coruja-do-campo

12. roedores

13. sucuri

14. piranha

15. peixe (dourado)

16. onca-pintada

17. capivara

18. anta

19. colhereiro

20. jacare

21. ema

3

Figura 3: Representacao da cadeia alimentar da Figura 2 por meio de um grafo.

Na Figura 3 temos a representacao da cadeia alimentar descrita na Figura 2 por meio de umgrafo direcionado com 21 vertices e 40 arestas.

Dentro de uma rede podemos contar o numero de ocorrencias de cada padrao. Por exemplo,se A se alimenta de B e B se alimenta de C temos o Padrao 1, A→ B → C. Por outro lado, se Ase alimenta de B e de C, e B se alimenta de C, temos o Padrao 2, conforme Figura 4.

Figura 4: Padrao 2.

Finalmente, se A se alimenta de B, B se alimenta de C e C se alimenta de A, temos o Padrao3 representado pela Figura 5.

Em uma cadeia alimentar, esperamos encontrar muito o padrao A→ B → C. Ja o Padrao 3,que e um ciclo, deve ocorrer raras vezes em uma cadeia alimentar.

Um padrao isomorfico, quando ele ocorre com uma frequencia incomumente alta dentro deum grafo, serve para caracterizar uma rede qualquer. Nosso trabalho consiste em encontrar taispadroes. Padroes que ocorrem numa frequencia muito alta em relacao a grafos aleatorios e chamadoMotif. Nosso trabalho consiste em descobrir tais Motifs.

Padroes de tamanho 2 sao poucos. Existem apenas 3 padroes distintos, conforme a Figura 6.O primeiro padrao (A) nao e do nosso interesse, pois nao e conexo. Em nosso trabalho,

4

Figura 5: Padrao 3.

Figura 6: Padroes de tamanho 2.

buscamos apenas padroes conexos. O padrao A→B e o padrao B→A na verdade sao apenas um,bastando rotular os vertices novamente.

Considere dois grafos A e B onde A possui os vertices {a1, . . . , an} e B possui os vertices{b1, . . . , bn}. Se existe uma mudanca dos rotulos de b1 ate bn com os rotulos de a1 ate an de formaque A e B possuam o mesmo conjunto de vertices e arestas, dizemos que A e B sao isomorfos,conforme Exemplo 1 descrito na Figura 7.

Figura 7: Exemplo 1

Sao isomorfos, rotulando (b1, b2, b3)← (a2, a1, a3). Para elucidar, vamos demonstrar o Exemplo2 com 4 vertices conforme Figura 8.

Sao isomorfos, rotulando (b1, b2, b3, b4)← (a1, a4, a3, a2).Para detectarmos os Motifs de tamanho k de um grafo G(V,E), nosso algoritmo possui 3 etapas.

1. Gerar todos os subgrafos conexos de tamanho k.

2. Descobrir seus padroes isomorfos e contabiliza-los.

3. Comparar as ocorrencias em grafos aleatorios.

Como ja vimos, um padrao A → B → C e comum em cadeias alimentares, ja padroes comona Figura 9 sao raros, por possuırem ciclos.

5

Figura 8: Exemplo 2

Figura 9: Padrao 4

Ja numa rede social, outros padroes sao mais comuns. E esperado, por exemplo, uma altaocorrencia do Padrao 4, ou seja, grupo de tres pessoas que se conhecem mutuamente. Nestesentido, Network Motifs e de grande interesse.

Ao receber uma rede complexa desconhecida, podemos classifica-la a partir de seus Motifs.Tais Motifs agregam conhecimento de uma maneira que o ser humano pode buscar inferencia.

Por exemplo, se numa rede desconhecida ocorrer o Motif A→ B → C, ela se aproxima de umarede de cadeia alimentar. Ja se ocorrer o Motif da Figura 9, esta rede se aproxima de uma redesocial.

De pouco vale receber um genoma com milhoes de gens e observa-lo de maneira direta, ou seja,sem um tratamento computacional. Agora, a partir de motifs, podemos classificar tais gens e suasrelacoes. Tais relacoes podem ser semelhanca ou proximidade com relacao a outros genomas.

Sem nenhuma informacao previa, podemos inferir coisas das redes. Genomas, cadeias alimen-tares, redes sociais, redes neuronais, redes de informacao, redes obtidas da web; tudo que pode serrepresentado como um grafo direcionado, pode ser analisado via Network Motifs.

Neste sentido, Motifs tem se tornado um problema chave num amplo espectro de aplicacoes.

Em nosso trabalho nao estamos interessados em uma rede especıfica, e sim, a partir de umgrafo direcionado qualquer, fazer um programa que descubra seus Motifs.

O problema de identificacao de Motifs e de interesse, por exemplo, do grupo do ProfessorPaulo Paiva, que pesquisa uma rede que representa as reacoes proteicas da levedura utilizada nafermentacao da cerveja chamada Saccharomyces cerevisiae, tal grafo possui 5091 vertices e 19.945arestas. Nosso programa sera uma ferramenta para o grupo do Professor Paulo Paiva, mas seraum programa de uso geral, recebendo um grafo direcionado como entrada, e devolvendo os Motifscomo saıda.

6

2 Solucao para o Problema

Como ja vimos anteriormente, a entrada do nosso problema e um grafo direcionado. Num primeiromomento, desejamos contar quantas vezes um determinado padrao ocorre.

A Figura 10 traz o numero de ocorrencias dos padroes isomorficos no grafo da cadeia alimentarda Figura 2.

Figura 10: Numero de ocorrencias dos padroes de tamanho 2 para o exemplo da cadeia alimentar.

Na Figura 11, temos a descricao do numero de ocorrencias de padroes de tamanho 3. Einteressante observar que, para Motifs de tramanho 3, o numero de padroes conexos e limitadoa 13 padroes distintos. Na cadeia alimentar da Figura 2 temos a ocorrencia de 7 padroes dos 13existentes.

Figura 11: Numero de ocorrencias dos padroes de tamanho 3 para o exemplo da cadeia alimentar.

Numerando todos padroes existentes de 1 a 13, ver Figura 13, podemos criar um histogramacom o numero de ocorrencia de cada padrao, ver Figura 12.

Vemos que o problema cresce muito em complexidade ao se aumentar o tamanho do Motifsbuscados. Nosso objetivo e resolver Motifs de tamanho 3, 4, 5, 6 e 7, sendo 6 e 7 problemasdesafiadores e de grande complexidade. Abaixo temos uma tabela indicando o numero de padroesdistintos existentes com relacao ao numero de vertices do subgrafo.

Um grafo direcionado tıpico de interesse tem milhares de vertices e dezenas de milhares dearestas.

Nosso trabalho consiste em receber um grafo direcionado como entrada e produzir um histo-grama como na Figura 12 como saıda.

Para obtermos o histograma, nosso programa divide-se em duas partes distintas.

7

Figura 12: Histograma gerado a partir da busca por padroes de tamanho 3 do grafo da cadeiaalimentar descrita na Figura 2

Tabela 1: Numero de padroes em relacao a k

Numero de Padroes distintosno de vertices Quantidade de Padroes

2 23 134 1995 93646 15308437 8804711428 1792473955306

1. Geracao de todos os subgrafos conexos de tamanho k.

2. Deteccao do padrao isomorfo e posterior contabilizacao se sua ocorrencia no histograma.

3 Geracao de subgrafos conexos de tamanho k

A primeira parte de deteccao de Network Motifs consite em gerar todos os subgrafos conexos detamanho k de um grafo G(V,E). A geracao iniciou com subgrafos de tamanho k=3. Nosso objetivoe aumentar k gradualmente, chegando a valores com 6 ou 7 vertices.

Em seguida serao apresentados alguns metodos de busca por Motifs. Ao longo da pesquisaforam surgindo varias ideias. Analisaremos tais ideias a seguir.

8

Figura 13: Os treze padroes isomorfos de tamanho 3.

3.1 Primeiro Algoritmo

O primeiro algoritmo consiste em gerar todas as combinacoes dos n vertices em grupos de tamanhok. Sabemos que (

n

k

)=

n!

k!(n− k)!

Ou seja, este algoritmo gera subgrafos isomorfos. A complexidade sera Θ(nk.f(k)) onde f(k)e o tempo de calcular e contabilizar o padrao isomorfo do subgrafo com k vertices. Observe queo algoritmo Θ(n3), Θ(n4) ou com complexidade mais alta tendem a ter um uso bastante restrito,por utilizarem muito tempo. Vale ressaltar que, em um grafo denso, a maioria dos subgrafosde tamanho k serao conexos, e este algoritmo sera o melhor possıvel. Entretanto como os casospraticos podem ser esparsos, vale a pena investir em algoritmos mais eficientes para estes grafos.

Pseudocodigo do metodo acima:R[] e um vetor de tamanho k contendo a sequencia de vertices que sera gerada.V[] e um vetor contendo todos os vertices.index e t iniciam em 0.k e o tamanho do subgrafo gerado.n e o numero de vertices do grafo.

Combinacao(int R[k],int V[n],int index,int t,int n,int k)

SE(k == index)

Gerar uma matriz com os vertices contidos em R[].

SE(Conexo(matriz))

9

AdicionaHistograma(matriz)

SENAO

PARA i = 0 ate n-k-t FACA

R[index]=V[index+t+i]

Combinacao(R,V,index + 1,t+i,n,k)

3.2 Subgrafos de tamanho 3, segundo Algoritmo

A primeira geracao de subgrafos implementada possuıa 3 lacos for encadeados, para gerar todas ossubgrafos de tamanho 3. Este metodo tem um custo elevado devido a geracao de grafos desconexos,que serao descartados no termino dos lacos. Este metodo recebe como parametro um valor inteiron que representa a quantidade de vertices do grafo a ser analisado. A seguir o pseudocodigo quedescreve a implementacao feita para o algoritmo.

Busca3(int n)

boolean matriz[3][3]

PARA i = 0 ate n-3 FACA

PARA j = i+1 ate n-2 FACA

PARA k = j+1 ate n-1 FACA

Gerar uma matriz com os vertices i, j e k.

SE(Conexo(matriz))

AdicionaHistograma(matriz)

3.3 Subgrafos de tamanho 3, terceiro Algoritmo

Em seguida, foi sugerido uma geracao de subgrafos baseada em uma busca em largura. O pri-meiro nıvel seria uma iteracao por todos os vertices, e os nıveis seguintes apenas os vizinhos donıvel anterior, e assim sucessivamente. Feito isto todas as combinacoes geradas serao validas, ouseja, nao sera necessario checar a conexidade do subgrafo gerado. Assim nenhuma iteracao seradesnecessaria.

Vamos mostrar a implementacao do metodo. Para subgrafos de 3 vertices utilizaremos 3iteradores, i, j e k. O i sera utilizado para iterar todos os vertices do grafo. O j para iterar oConjunto Adj[i ] e k para iterar o Conjunto Adj[j ].

Definicao: Adj[v ] sao os vertices adjacentes a v em G(V,E) ignorando-se a orientacao dasarestas.

Para o tamanho 3 temos duas configuracoes possıveis.

1. i

u uj

uk

10

2. i

uPPPPPP uj

����

��uj

Pseudocodigo do metodo descrito a acima:

Gerador3()

boolean matriz[3][3]

PARA i = 0 ate |G(V,E)| - 1 FACA

PARA j = 0 ate |Adj[i]| - 1 FACA

SE(Adj[i][j]>i) N~ao conta aresta ja visitadas

Adj[i]=Adj[i]\{i}

PARA k = 0 ate |Adj[j]| - 1 FACA

SE(Adj[j][k]>i)

Gerar uma matriz com os vertices i, j e k.

AdicionaHistograma(matriz) 1o Configurac~ao

PARA cada j1 e j2 em Adj[i], com j1 diferente j2 FACA

SE(Adj[i][j1]>i e Adj[i][j2]>i)

Gerar uma matriz com os vertices i, j1 e j2.

AdicionaHistograma(matriz) // 2o Configurac~ao

A tabela abaixo representa o tempo gasto na execucao de cada metodo para o grafo da leveduraSaccharomyces cerevisiae que possui 5091 vertices e 19.945 arestas.

Todos os testes analisados neste relatorio foram executados utilizando-se um nucleo do proces-sador Intel(R) Core(TM)2 Duo CPU E750 @ 2.93GHz.

Tabela 2: Tempo de execucao para cada metodo

Tempo de execucao de cada metodo para k=3Metodos Tempo

Primeiro Algoritmo 58 minSegundo Algoritmo 53 minTerceiro Algoritmo 2 segundos

3.4 Gerador para k = 4

Para a busca por padroes de 4 vertices serao utilizados 4 iteradores, i, j, k e p. Esta busca tera 5configuracoes possıveis, seguindo os mesmos moldes da busca descrita no item 3.3.

11

1. i

u uj

uk

up

2. i

u ujPPPPPP u

k

����

��uk

3. i

uPPPPPP uj

����

��uj

uk

4. i

uPPPPPP uj

uk

������

uj

5.

i

u@@@@@@ u

j

������

uj

uj

Codigo Fonte do metodo:Gerador4(int n)

{

boolean matriz[4][4]

PARA i = 0 ate |G(V,E)| - 1 FACA

PARA j = 0 ate |Adj[i]| - 1 FACA

SE(Adj[i][j]>i)

Adj[j]=Adj[j]\{i}

PARA k = 0 ate |Adj[j]| - 1 FACA

SE(Adj[j][k]>i)

Adj[k]=Adj[k]\Adj[j]\Adj[i]\{i}

PARA p = 0 ate |Adj[k]| - 1 FACA

SE(Adj[k][p]>i)

Gerar uma matriz com os vertices

i, j, k e p.

12

AdicionaHistograma(matriz)

1o Configurac~ao

PARA cada k1 e k2 em Adj[j], com k1 6=k2 FACA

SE(Adj[j][k1]>i e Adj[j][k2]>i)

Gerar uma matriz com os vertices

i, j, k1 e k2.

AdicionaHistograma(matriz) 2o Configurac~ao

PARA cada j1 e j2 em Adj[i], com j1 6=j2 FACA

SE(Adj[i][j1]>i e Adj[i][j2]>i)

Adj[j1]=Adj[j1]\Adj[i]\{i}

Adj[j2]=Adj[j2]\Adj[i]\{i}

PARA k = 0 ate |Adj[j1]| - 1 FACA

SE(Adj[j1][k]>i)

Gerar uma matriz com os vertices i, j1, j2 e k.

AdicionaHistograma(matriz) 3o Configurac~ao

PARA k = 0 ate Adj[j2] - 1 FACA

SE(Adj[j2][k]>i)

Gerar uma matriz com os vertices i, j1, j2 e k.

AdicionaHistograma(matriz) 4o Configurac~ao

PARA cada j1, j2 e j3 em Adj[i], com j16=j2, j2 6=j3 e j3 6=j1 FACA

SE(Adj[i][j1]>i, Adj[i][j2]>i e Adj[i][j3]>i)

Gerar uma matriz com os vertices i, j1, j2 e j3.

AdicionaHistograma(matriz) 5o Configurac~ao

4 Isomorfismo Nao Polinomial

A primeira fase do problema e a geracao dos subgrafos e foi tratada na secao 3. A segunda parteconsiste em identificar os subgrafos isomorfos, para posterior contabilizacao em uma coluna dohistograma.

Cada subgrafo de tamanho k precisa incrementar o valor do respectivo subgrafo isomorfo nohistograma. A primeira estrategia para identificar o isomorfismo consiste em comparar o subgrafoe todos os padroes isomorfos do histograma.

Para auxiliar no processo de descoberta dos padroes isomorfos, desenvolvemos um algoritmoque gera todos os grafos de tamanho k. Considerando, para tanto, uma matriz de adjacencia k× ke todas as suas possibilidades de preenchimento binario, teremos 2k2

grafos gerados. Assim osalgoritmos utilizados para identificar o isomorfismo poderao ser testados quanto a sua completude.Aplicando este metodo em conjunto com os algoritmos abaixo, iremos identificar quantos padroesexistem e qual a quantidade de matrizes possıveis para cada padrao. Podendo assim auxiliar nacertificacao dos metodos mais elaborados.

Codigo Fonte do metodo:ini inicializa em 0.fim inicializa em n2.k e o tamanho do subgrafo gerado.(i, j) e a posicao da matriz em funcao de k, entre (0, 0) e (k − 1, k − 1).

Gerador(int ini,int fim,int k,boolean matriz[k][k])

13

int i=ini/k

int j=ini%k

SE(ini==fim&&Conexo(matriz))

AdicionaHistograma(matriz)

SENAO

m[i][j]=falso

Gerador(ini+1,fim,k,m)

SE(i!=j)

matriz[i][j]=verdadeiro

gerador(ini+1,fim,k,m)

4.1 Teste do Isomorfismo baseado em Forca Bruta

Este metodo foi desenvolvido para resolver o isomorfismo em grafos de qualquer tamanho. Parasaber se dois grafos sao isomorfos, basta testar todas as permutacoes dos vertices de um dos grafos ecomparar com o segundo. Se ficarem iguais para alguma premutacao, entao sao isomorfos. Se apostodas as permutacoes possıveis dos vertices os grafos nao ficarem iguais, entao eles definitivamentenao sao isomorfos. A identificacao da igualdade e feita por meio da matriz de adjacencia. Nestecaso as matrizes dos dois grafos deverao ficar identicas. Este metodo tem complexidade Θ(n2n!),onde n! e numero de permutacoes e n2 o tempo de comparar as duas matrizes. Este metodoresolve por completo o problema do isomorfismo, mas seu custo computacional e muito elevado. Ademonstracao do conteudo do metodo e direta, pois ele varre todas as possibilidades do domınio.

4.2 Refinamento Estrutural

Uma primeira melhoria no Forca Bruta e o seguinte: Podemos supor, sem perda de generalidade,que os vertices sao considerados em ordem crescente de grau. Ou seja, um vertice com grau 3nunca vai casar com um de grau 4 na permutacao.

Para o grafo A vamos denominar os vertices 1, 2, 3, 4 como a1, a2, a3, a4 e os seus respectivosgraus como δ(ai). E o grafo B como b1, b2, b3, b4 e os seus respectivos graus como δ(bi).

Figura 14: Exemplo A

Isso acelera muito o processo. Considere o grafo descrito na Figura 14 que possui os seguintesgraus:

δ(a1) = 1 δ(a2) = 3 δ(a3) = 2 δ(a4) = 2

Considere outro grafo da Figura 15 que possui os graus:

14

Figura 15: Exemplo B

δ(b1) = 1 δ(b2) = 2 δ(b3) = 2 δ(b4) = 1

Podemos dizer que o Exemplo A e B nao sao isomorfos observando apenas os graus dos vertices.O grafo A possui um vertice de grau 3 e o grafo B nao. Logo nao existe uma permutacao quetorne A e B iguais.

Teorema 4.1. Se A e B sao isomorfos, entao A e B devem possuir assinatura de graus identicas,mas esta condicao nao e suficiente para garantir o isomorfismo.

Demonstracao. Suponhamos por absurdo que dois grafos G e H isomorfos e que possuem assina-tura de grau distinta. Seja u ε VG e v ε VH dois vertices que possuem graus distintos, ou seja, estepar de vertices nao pode ser emparelhado, pois a relacao de adjacencia nao sera mantida devidoa cardinalidade dos vertices adjacentes. Deste modo nao podera existir uma bijecao entre u e v.Portanto G e H nao sao isomorfos. Por outro lado, uma mesma assinatura de graus nao garante oisomorfismo. Um exemplo sao os grafos da Figura 16 e Figura 17 que possuem a mesma assinaturade graus mas nao sao isomorfos.

A partir deste Teorema, se todos os graus forem distintos fica facil identificar o isomorfismo,basta ordenar as matrizes de adjacencia em relacao ao grau dos vertices e verificar se elas saoidenticas.

Deste modo, para identificar o isomorfismo precisa-se apenas permutar os vertices com o mesmograu.

Figura 16: Exemplo A

δ(a1) = 1 δ(a2) = 1 δ(a3) = 3 δ(a4) = 2 δ(a5) = 2 δ(a6) = 1

δ(b1) = 1 δ(b2) = 1 δ(b3) = 3 δ(b4) = 2 δ(b5) = 2 δ(b6) = 1

Os grafos A e B nao sao isomorfos, mas os graus sao iguais. Para testar o isomorfismo preci-samos casar (a1, a2, a6) com uma permutacao de (b1, b2, b6) que possuem grau 1. Nao e necessariorelacionar a1 com b3, pois estes possuem graus diferentes, b3 so pode casar com a3 e (a4, a5) comuma permutacao de (b4, b5), ambos com grau 2.

15

Figura 17: Exemplo B

Ao inves de tentarmos 6! = 720 permutacoes, fizemos apenas 3!2!1! = 12.

Este metodo e uma especializacao do Metodo de Forca Bruta. A unica diferenca e que seraopermutados apenas vertices que possuam os graus identicos. Assim sua complexidade estaradiretamente ligada a estrutura do grafo. No pior caso, onde todos os graus sao identicos, suacomplexidade e Θ(n2n!). No melhor caso, onde todos os vertices sao distintos, sua complexidadee Θ(n2). Este metodo e completo, ou seja, resolve o problema do isomorfismo para grafos com nvertices.

5 Isomorfismo Polinomial

A estrategia de comparar um subgrafo com todos os padroes isomorfos do histograma e bastantecustosa. Para k = 3, sao 13 padroes isomorfos, ou seja, 13 barras do histograma a calcular, comk = 4 sao 199, k = 5, sao 9364 comparacoes de padroes isomorfos.

Para simplificar o processo, usaremos o conceito de hash. Uma funcao de hash f(x) recebecomo entrada um valor x e devolve como saıda um inteiro f(x), que e um numero com menosdıgitos. A funcao de hash faz uma diminuicao do domınio facilitando operacoes de busca. Poroutro lado, podem ocorrer colisoes, ou seja, f(x1) = f(x2), para x1 6= x2.

Em nosso trabalho, calcularemos uma funcao f(x) onde x e a representacao binaria da matrizde adjacencia do grafo. Nestas condicoes, sera exigido o seguinte comportamento.

Se x1 e x2 correspondem a grafos isomorfos, entao f(x1) = f(x2).

Desta forma, ao calcular f(x1) 6= f(x2) ja sabemos que x1 e x2 nao sao isomorfos.

Desejamos entretanto a seguinte propriedade:

f(x1) = f(x2) se e somente se x1 e x2 sao grafos isomorfos.

Neste segundo caso, mais forte, a funcao de hash e suficiente para detectar o isomorfismo entreduas matrizes.

Todos os metodos para identificacao do isomorfismo em grafos, que serao descritos abaixo,utilizam o valor de saıda da funcao hash que sera chamado de chave. Agora iremos descrever algunsmetodos utilizados para identificar o isomorfismo. Vale ressaltar que todos os metodos descritosabaixo podem ser combinados entre si para aumentar o poder de distincao das assinaturas. O quedeve ser levado em conta e o aumento da complexidade das possıveis combinacoes. O aumento dacompletude oferecido pelas juncoes nao e proporcional ao aumento da complexidade.

16

Figura 18: Grafo 1

5.1 Primeira Funcao de hash : Assinatura de Grau

Este metodo utiliza o grau dos vertices como funcao de hash. Observe que grafos isomorfos possuemmesma assinatura de vertices. Em nosso trabalho o grafo e direcionado, assim um determinadovertice pode ter arestas que saem e que chegam. Nesse caso, o grau sera composto por umındice positivo que representa o numero de arestas que saem do vertice e um ındice negativo querepresenta as que chegam. Cada vertice do grafo ira possuir um par de graus e os graus deveraoser ordenados na funcao de hash.

Agora vamos exemplificar o metodo de acordo com o grafo da Figura 18. Vamos denominaros vertices 1, 2, 3, 4 como v1, v2, v3, v4 e os seus respectivos graus como δ(vi) = (δ+(vi), δ

−(vi)).Neste caso δ+(vi) sera o numero de arestas que saem do vertice e δ−(vi) as que entram. Para esteexemplo teremos:

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

Para facilitar, vamos juntar esses dois dados, positivo a esquerda e negativo a direita. Assimtemos:

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

Esta simplificacao implicara em um estouro de capacidade de representacao para vertices comgrau maior do que 9. Como trabalharemos com grafos menores que 7, isto nao e problema. Paragrafos maiores podemos usar uma base hexadecimal ou maior, ou usar uma separacao entre osgraus.

Ordenando os vertices de acordo com a ordem crescente dos graus, temos:

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

Ao fim, a chave = 2111230.

Um grafo isomorfo com vertices permutados gerara a mesma chave de hash. Este metodo eutilizado como base para varios outros metodos. Sua aplicacao e eficaz devido a facilidade e o baixocusto computacional Θ(n2). Quanto a completude, este metodo resolve o isomorfismo para grafoscom ate 3 vertices. Para o teste foram gerados todas as matrizes de adjacencia para subgrafosconexos de tamanho 3 sem auto-loops. Notamos que, para k=3, f(x1) = f(x2) se e somente se x1

for isomorfo a x2. Ou seja, o calculo desta funcao e suficiente para resolver o isomorfismo paragrafos com 3 vertices.

17

O histograma e representado por uma tabela hash. Quando um valor f(x) aparece pela primeiravez, colocamos na tabela uma nova coluna passando (f(x),1). Caso f(x) ja esteja na tabela, bastaincrementar o valor inteiro. O custo por subgrafo sera o calculo da chave e a insercao no histograma.

5.2 Assinatura de Grau com Permutacao

E esperado que a funcao de hash nao resolva o problema para todos os valores de k. Para k=4 japercebemos algumas colisoes, ou seja, grafos nao isomorfos com mesma assinatura de grau. Paraidentificar estas colisoes foram geradas todas as matrizes de adjacencias de tamanho 4. A Figura19 ilustra 10 das 46 colisoes existentes no metodo de Assinatura de Grau para tamanho 4.

Figura 19: Grafos que nao sao isomorfos mas possuem as assinaturas iguais e os graus distintos

Este metodo tem como caracterıstica distinguir grafos que possuam todos os graus distintos.Este procedimento se faz necessario pois existem grafos que possuem a mesma Assinatura deGrau, e nesta assinatura todos os graus sao distintos, mas os grafos nao sao isomorfos. A Figura19 ilustra esta ocorrencia. Devido a finalidade do metodo, a sua aplicabilidade fica restrita aosgrafos cujos graus sao distintos.

Este metodo consiste em:

1. Permutar os vertices garantindo uma ordem crescente de grau.

2. Converter a matriz em um numero inteiro.

Aplicando agora o procedimento descrito no metodo da Forca Bruta com Refinamento Estru-tural, ou seja, permutando apenas vertices com mesmo grau, temos apenas uma forma de casaros vertices. Suponhamos G e G′ dois grafos a serem analisados quanto ao isomorfismo.

Consideremos que os graus de G sejam:

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

E de G′:

18

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

Se G′ for isomorfo a G, entao a matriz de adjacencia de G deve ser identica a matriz de G′.Agora, caso G′ possua os graus:

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

Mesmo que G seja isomorfo a G′ suas matrizes de adjacencia serao diferentes. Entao paraidentificar o isomorfismo devemos permutar a matriz de G′ com relacao aos vertices v1 e v2 paraque sua matriz fique identica a matriz de G.

Este metodo visa permutar a matriz de adjacencia de acordo com a ordem crescente dos graus.Desta forma, se um grafo for isomorfo a outro suas matrizes deveram ser identicas. Como oisomorfismo so e garantido por meio da matriz, temos que passar este valor para a chave.

Para fazer esta conversao podemos escrever o valor da matriz de adjacencia convertida em uminteiro e usa-lo como chave. Para isso usaremos a funcao:

Esta funcao ira converter uma sequencia de numeros binarios em um numero inteiro. Vamosdemonstrar a utilizacao do metodo por meio de um exemplo.

Seja H o grafo representado pela Figura 18 e A sua matriz de adjacencia:

A =

0 0 0 01 0 1 10 0 0 11 0 0 0

Sejam os graus de H:

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

Ordenando pela ordem crescente dos graus, temos:

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

Agora devemos permutar a matriz de acordo com a ordem: v1, v3, v4,v2. Temos agora umanova matriz de adjacencia A′:

A′ =

0 0 0 00 0 1 01 0 0 01 1 1 0

Agora que temos a matriz de adjacencia permutada precisamos passar esta informacao para achave. Como os valores da diagonal sao sempre zero, entao estes nao precisam ser inseridos. Paraprocessar esta operacao utilizaremos a funcao I(A′) onde aij sao os elementos da matriz.

I(A′) =n−1∑i=0

n−1∑j=0

2mi+ja(n−1−i)(n−1−j) (1)

A funcao I(A′) e implementada pelo algoritmo BinarioParaInteiro descrito abaixo para gerara chave.

19

BinarioParaInteiro(int Matriz[k][k])

chave=1;

PARA i = 0 ate k FACA

PARA j = 0 ate k FACA

SE(i!=j)

SE(Matriz[i][j]=1)

chave*=2+1;

SEN~AO

chave*=2;

Ao passarmos a matriz A′ para o algoritmo BinarioParaInteiro teremos no final o valor inteiro4263 e este valor sera igual para todos os subgrafos isomorfos a H.

Teorema 5.1. Seja G e H dois grafos com todos os graus dos vertices distintos. I(A′G) = I(A′H)se e somente se G for isomorfo a H.

Demonstracao. O isomorfismo e identificado por meio de uma funcao bijetora. Para encontraresta bijecao conforme o metodo de Refinamento Estrutural precisamos apenas casar vertices quepossuem graus iguais. Como para cada grafo os graus sao distintos temos apenas uma escolhapara fazer o emparelhamento.

Este metodo resolve o problema do isomorfismo para grafos cujos graus sao distintos e podeser combinado tambem com outros metodos e sua complexidade e Θ(n2).

5.3 Numero de Arestas Simetricas

Figura 20: Exemplo de arestas simetricas.

Este metodo contabiliza o numero de ocorrencia de arestas simetricas. A Figura 20 ilustra estaocorrencia. Arestas simetricas ocorrem quando exitem duas arestas ligando dois vertices, ou seja,uma aresta de v1 para v2 e de v2 para v1.

Para exemplificar seu uso vamos utiliza-lo em conjunto com o metodo de Assinatura de Grau.

Figura 21: Grafo 2

Tomando como exemplo o grafo da Figura 21 temos os seguintes graus:

20

δ(v1) = 11 δ(v2) = 11 δ(v3) = 21 δ(v4) = 12

Ordenando os vertices de acordo com a ordem crescente dos graus, temos:

δ(v1) = 11 δ(v2) = 11 δ(v4) = 12 δ(v3) = 21

Neste grafo existe uma ocorrencia entre v1 e v4 e outra entre v2 e v3. Como o numero de arestassimetricas e 2, ao inserir este valor ao final da chave temos entao que a chave = 111112212.

Esta informacao adicionada a chave, aumenta o poder de distincao do metodo de Assinatura deGrau. Sua complexidade e Θ(n2). Com relacao a completude do metodo, a juncao da Assinaturade Grau com o numero de ligacoes duplas mantem a mesma completude do metodo de Assinaturade Grau.

5.4 Ligacao

O metodo de Ligacao e uma especializacao do metodo de Assinatura de Grau. Alem das in-formacoes dos graus, cada vertices recebera as informacoes dos graus de seus vizinhos. Vamosestabelecer que para ser vizinho de um vertice A, um determinado vertice b deve receber umaaresta de A. Neste caso, cada vertice tera um vetor de vizinhos. Este vetor sera denominado comoδviz(vi) e sera ordenado de acordo com a ordem crescente dos graus.

Para ilustrar a utilizacao do metodo tomaremos como base o grafo da Figura 21. Os graus dosvertices sao:

δ(v1) = 11δ(v2) = 11δ(v3) = 21δ(v4) = 12

δviz(v1) = {12}δviz(v2) = {21}δviz(v3) = {11, 12}1δviz(v4) = {11}

Para fazer a ordenacao dos vertices devemos primeiramente levar em consideracao o grau dovertice e os graus dos vizinhos como desempate. Apos a ordenacao dos graus temos:

δ(v1) = 11δ(v2) = 11δ(v4) = 12δ(v3) = 21

δviz(v1) = {12}δviz(v2) = {21}δviz(v4) = {11}δviz(v3) = {11, 12}

Inserindo estes valores na chave, δ(vi) seguido de δviz(vi), teremos:chave = 111211211211211112.Este metodo requer uma chave com maior capacidade de armazenamento, pois o numero de

informacao inserido e grande. Sua complexidade e Θ(n2). O poder de distincao e maior que ometodo anterior, mas a completude e a mesma, ou seja, resolve o problema do isomorfismo paragrafos com no maximo 3 vertices.

5.5 Distancia

Este metodo pode ser aplicado em conjunto com outros metodos. Neste caso o utilizaremos emconjunto com o de Assinatura de Grau. Para utiliza-lo devemos identificar um vertice que tenha

1lembrando de ordenar os graus vizinhos do v3.

21

Figura 22: Grafo 3

o grau distinto dos demais, caso contrario nao e possıvel aplicar o metodo. Encontrando estevertice, entao calculamos a distancia deste vertice com relacao aos demais. Em nosso trabalhovamos definir a distancia como sendo o menor caminho entre dois vertices e nao deve ser levadoem consideracao o sentido das arestas. A ordem das distancias devera seguir a ordem dos graus.

Caso exista graus iguais as suas distancias deverao ser ordenadas. O valor gerado pode ser uminteiro contendo todas as distancias.

Para exemplificar o uso do metodo vamos analisar o grafo da Figura 22.Este grafo possui os seguintes graus:

δ(v1) = 10 δ(v2) = 10 δ(v3) = 02 δ(v4) = 11

Apos a sua ordenacao temos:

δ(v3) = 02 δ(v1) = 10 δ(v2) = 10 δ(v4) = 11

Na procura de um grau distinto dos demais o δ(v3) ja e escolhido. Assim calcularemos adistancia de v3 com relacao a todos os outros vertices do grafo. Seguindo a ordem apos a ordenacaotemos:

δ(v3) = 02 e distancia do v3 = 0δ(v1) = 10 e distancia do v3 = 2δ(v2) = 10 e distancia do v3 = 1δ(v4) = 11 e distancia do v3 = 1

Como o δ(v1) e δ(v2) sao iguais entao suas distancias serao ordenadas.

δ(v3) = 02 e distancia do v3 = 0δ(v2) = 10 e distancia do v3 = 1δ(v1) = 10 e distancia do v3 = 2δ(v4) = 11 e distancia do v3 = 1

Agrupando as distancias temos, 0121. Este valor pode ser convertido em um inteiro e inserido nachave. A complexidade deste metodo, utilizando o Algoritmo de Dijkstra para calcular a distancia,e Θ(n3). Este metodo nao e completo e possui algumas caracterısticas que os outros nao exploram.Existem outros meios de aplicar a distancia de um vertice com relacao aos demais. Mas nestapesquisa apenas este foi implementado.

22

Figura 23: Grafo 4

5.6 Metodo com Delecao de Vertices

Este metodo visa inserir na chave alem da Assinatura de Grau do grafo, a Assinatura de Grau dossubgrafos gerados a partir da delecao de determinados vertices. Estes serao escolhidos a partirda seguinte regra. Caso o grau do vertice seja distinto dos demais, entao o subgrafo sera geradoapenas com a sua delecao. Se o grau do vertice for igual a algum outro, ambos serao removidos.Para exemplificar o uso do metodo vamos analisar o grafo da Figura 23. Vamos denomina-lo comografo principal e para este teremos os seguintes graus:

δ(v1) = 01 δ(v2) = 11 δ(v3) = 11 δ(v4) = 21

Como δ(v1) e distinto dos demais entao um subgrafo gerado a partir de sua delecao sera criado.Sem o v1, temos o subgrafo1 formado por v2, v3 e v4 cujos os graus sao:

δ(v2) = 11 δ(v3) = 11 δ(v4) = 11

Dando sequencia, tendo em vista que δ(v2) = δ(v3), entao ambos devem fazer parte da delecao.Assim temos o subgrafo2 formado por v1 e v4 apenas, gerando os graus:

δ(v1) = 01 δ(v4) = 10

Por fim removemos o v4, gerando o subgrafo3 a partir dos vertices v1, v2 e v3, com os seguintesgraus:

δ(v1) = 00 δ(v2) = 01 δ(v3) = 10

Neste caso o subgrafo gerado nao e conexo.Juntando a Assinatura de Graus dos grafos: grafo principal, subgrafo1, subgrafo2 e subgrafo3,

assim teremos a chave = 11111211111110110000110.Uma das conclusoes obtidas foi que, ao remover vertices de um grafo, as informacoes sobre

adjacencia sao perdidas. Para identificar o isomorfismo e necessario utilizar toda informacaodisponıvel.

Este metodo requer um grande espaco de armazenamento para a chave devido a quantidadede informacoes e possui um poder de distincao razoavel, mas nao e completo para k = 4.

O custo computacional e elevado, pois para grafos maiores este procedimento sera aplicadode forma recursiva. No exemplo acima o algoritmo foi aplicado um vez, mas por exemplo, paragrafos com 5 vertices, ao remover um vertice teremos um subgrafo com 4 vertices e para esteaplicaremos o procedimento descrito acima. Ou seja, para cada vertice removido do grafo de 5

23

vertices sera necessario aplicar o metodo, com isso teremos uma chave muito grande e um elevadocusto computacional.

5.7 Gradiente

Este metodo tambem e uma especializacao do metodo Assinatura de Grau. Sua aplicacao inicialtinha o intuito de distinguir graus iguais. Por este motivo o metodo so e aplicado nestes vertices.A distincao dos graus e obtida por meio das informacoes de seus vizinhos que podem ser, osgraus dos vizinhos e a relacao entre eles. Para ser vizinho basta que exista uma aresta entre eles,independente de sua orientacao.

Estes dados podem ser adicionados ao vertice em questao de varias formas, por exemplo, soma,subtracao, multiplicacao, etc. Agora vamos ilustrar a aplicacao do metodo adotando a soma.

Figura 24: Grafo 5

Vamos primeiramente analisar o grafo da Figura 24. Temos inicialmente os graus:

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

Apos a ordenacao temos:

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

Neste caso aplicaremos o metodo aos vertices v1 e v4. O v1 tem com adjacente o v2, entaoδ(v1) = δ(v1) + δ(v2) = 01 + 20 = 21.E v4 tem como adjacente v3, entaoδ(v4) = δ(v4) + δ(v3) = 01 + 11 = 12.Assim conseguimos distinguir os dois graus que eram iguais. Este metodo possui um poder de

distincao muito interessante. Sua complexidade e Θ(n2). No entanto tambem nao e completo, soresolve o isomorfismo para grafos com no maximo 3 vertices. A Figura 25 representa as colisoesocorridas para k = 4 e k = 5.

5.7.1 4 Vertices

Agora vamos descrever um gradiente um pouco diferente, pois a soma sofre uma perda de genera-lidade. Por exemplo 11 + 11 = 22 e 10 + 12 = 22. Para evitar o ocorrido mudaremos a forma deinsercao. O uso apenas da concatenacao para este caso ja resolveria, pois 11.11 = 1111 e 10.12 =1012, mas o problema da concatenacao e que a quantidade de informacao no grau vai aumentarmuito, em consequencia, a chave ficara maior ainda. Neste caso, o uso da funcao hash e uma boa

24

Figura 25: Tabela descrevendo o numero de chaves e colisoes ocorridas no metodo descrito nasecao 5.7.

opcao, pois independente do tamanho que fique o grau, passando por uma funcao hash, este valorpodera ser reduzido para uma determinada faixa de variacao e a dispersao sera a mesma.

Com a funcao hash, podemos inserir ainda mais informacoes como por exemplo, que tipo deligacao existe entre o vertice e o seu adjacente. Se a relacao for uma aresta de entrada entaoadicione 1, se for de saıda 2 e se for de entrada e saıda 3.

A funcao hash utilizada neste projeto e:

h(k) = 50 + bm(kc− bkcc)c

onde m = 900 e c =

√5− 1

2.

esta funcao retorna valores entre 50 e 950, ou seja, um valor inteiro com no maximo 3 dıgitos.Agora vamos demonstrar a utilizacao do metodo para o Grafo 5.Apos a Assinatura de Grau temos:

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

Para aplicar o metodo em v1, primeiro precisamos identificar seus vizinhos e qual a sua relacaocom cada um. O v1 relaciona-se com v2 por meio de uma aresta de entrada, entao a relacao e 1.Assim, passaremos para a funcao hash, k = grau.relacao. No caso de v1 k = 201 temos que h(201)= 252.

Para o v4, temos como vizinho o v3 e relacao 1. Entao k = 111 entao h(111) = 591.

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

Apos a ordenacao dos graus temos que a chave = 1120252591.Este metodo tem complexidade Θ(n2) e quanto a completude, se destaca dos demais pois,

combinado com o metodo de Permutacao, consegue resolver o isomorfismo para grafos de ate 4vertices. A quantidade de informacao armazenada e pequena perto do poder de distincao dosgrafos. A Figura 26 representa as colisoes ocorridas para k = 4 e k = 5. Mostra tambema completude do metodo para os dois tamanhos. Note que para k = 4 as colisoes que nao saotratadas pelo metodo de Permutacao sao iguais a zero. Ou seja, nao precisa de nenhuma heurıstica

25

para resolver o isomorfismo para subgrafos de tamanho 4, mas para k = 5 ainda existem 10 colisoesque nao sao tratadas pelo metodo de Permutacao.

Figura 26: Tabela descrevendo o numero de chaves e colisoes ocorridas no metodo descrito nasecao 5.7.1.

5.7.2 5 Vertices

Ao fazer uma analise detalhada deste metodo para grafos de 5 vertices, percebemos que o metodochegava muito perto da completude total. Os grafos que nao eram identificados possuıam apenasuma diferenca nos graus que eram distintos dos demais. Por esse motivo, o metodo foi modifi-cado para que seja aplicado em todos os vertices e nao apenas nos graus que eram iguais. Suacomplexidade permaneceu em Θ(n2), e a distincao dos grafos aumentou ainda mais.

Mesmo assim, alguns grafos de 5 vertices nao eram resolvidos, entao identificamos que umapassagem do grafo no metodo nao era suficiente, pois quando os graus eram todos iguais, umapassagem distinguia apenas alguns vertices dos demais. Entao foi criado um metodo de gradientegenerico possibilitando sua aplicacao n vezes. O valor n foi estabelecido que seria o numero degraus que eram iguais.

Essa modificacao resolveu o problema do isomorfismo para grafos de ate 5 vertices. Sua com-plexidade no pior caso e Θ(n3) que e quando todos os graus sao iguais e no melhor caso Θ(n2) queocorre quando todos os graus sao distintos. Este metodo nao foi testado para instancias maioresdevido ao elevado custo computacional. A Figura 27 representa as colisoes ocorridas para k = 4e k = 5. Mostra tambem a completude do metodo para os dois tamanhos. Note que para k = 4 ek = 5 as colisoes que nao sao tratadas pelo metodo de Permutacao sao iguais a zero.

6 Resultados

Foram implementados diversos metodos de buscas por subgrafos, e tambem varias solucoes parao problema do isomorfismo. Os diversos metodos desenvolvidos para o problema do isomorfismoforam implementados visando diminuir o tempo de busca e utilizar de forma justa os recursoscomputacionais. Os metodos representam ideias sugeridas para resolver o problema, portanto elespodem ser combinados, pois cada um acrescenta diferentes tipos de informacoes. Os metodos quenao foram utilizados para k = 3 ,4 e 5, podem ser utilizados no futuro, buscando resolver o problema

26

Figura 27: Tabela descrevendo o numero de chaves e colisoes ocorridas no metodo descrito nasecao 5.7.2.

para instancias maiores. Apos diversos teste utilizando varias combinacoes de metodos para geraruma chave, chegamos a conclusao que para k = 3, o metodo de Assinatura de Grau e o mais rapido.Para k = 4 e 5, a melhor assinatura e gerada pelos metodos de Permutacao combinado com ode Gradiente descrito no item 5.7.2. Nesta analise foram considerados o consumo de memoria etempo gasto para gerar uma chave a partir de uma matriz de adjacencia. A Figura 28 demostraa completude atingida pela combinacao de alguns metodos.

Figura 28: Tabela descrevendo algumas combinacoes de metodos

6.1 Busca para subgrafos de 3 vertices

O metodo de busca utilizado foi o metodo Busca 3 descrito na subsecao 3.3 (pagina 10). Pararesolver o isomorfismo foi utilizado o metodo Assinatura de Grau descrito na subsecao 5.1 (pagina

27

17).Foram encontrados 13 padroes, gerando um total de 3370365 subgrafos. Tempo total para

gerar a busca e de 2 segundos. A Figura 29 mostra o numero de ocorrencia de cada padrao.

Figura 29: Numero de ocorrencias dos padroes de tamanho 3 para o grafo do Professor PauloPaiva

O histograma da Figura 30 mostra a diferenca no numero de incidencia do padrao 2 comrelacao aos demais.

6.2 Busca para subgrafos de 4 vertices

O metodo de busca utilizado foi o Busca 4 descrito na subsecao 3.4 (pagina 11). Para resolver oisomorfismo foram utilizados os metodos Gradiente e Permutacao descritos nas subsecoes 5.7.2 e5.2.

Foram encontrados 181 padroes, gerando um total de 658655630 subgrafos. Tempo total paragerar a busca e de 15 minutos.

7 Conclusoes

As buscas tem um papel relevante na complexidade do problema. Para k = 4 a quantidade desubgrafos gerados chegou perto de 650 milhoes, neste caso sera necessario aplicar o processamentopararelo, ou seja, teremos que paralelisar o problema. Para identificar os Motifs e necessario gerargrafos aleatorios e para cada um destes fazer uma busca, ou seja, o metodo de busca sera chamadomuitas vezes. Como a busca ja esta na ordem de minutos, concluımos que para identificar osMotifs gerando em torno de 100 grafos aleatorios, o custo computacional sera de dias, com o

28

Figura 30: Histograma gerado a partir da busca por padroes de tamanho 3 para o grafo doProfessor Paulo Paiva.

paralelismo podemos reduzir este custo. E importante esclarecer que para o problema de NetworkMotifs, a complexidade do metodo utilizado para identificar o isomorfismo e muito importante,pois dependendo do tamanho da busca que for feita, o metodo de assinatura, que neste casoira retornar uma chave, sera chamado muitas vezes. Sendo necessario entao levar em conta aconstante da complexidade. O uso de memoria deve ser racionalizado devido a quantidade desubgrafos gerados. O Histograma armazena todos os padroes gerados, sendo necessario entaoreduzir a quantidade de informacao contida em cada padrao.

8 Agradecimentos

Gostaria de agradecer ao meu orientador Prof. Dr. Luis Augusto Angelotti Meira, por ter meconvidado para participar desta pesquisa, ao Prof. Dr. Paulo Bandiera Paiva, ao Prof. Dr. AlvaroLuiz Fazenda, ao Prof. Dr. Arlindo Flavio da Conceicao por terem me ensinado durante o perıododa Iniciacao Cientıfica.

Referencias

[1] Edward G. Allan, Jr., William H. Turkett, Jr., and Errin W. Fulp. Using network motifsto identify application protocols. In Proceedings of the 28th IEEE conference on Globaltelecommunications, GLOBECOM’09, pages 4266–4272. IEEE Press, 2009.

[2] Celine Lefebvre, Wei Keat Lim, Katia Basso, Riccardo Dalla Favera, and Andrea Califano. Acontext-specific network of protein-dna and protein-protein interactions reveals new regula-tory motifs in human b cells. In Proceedings of the joint 2006 satellite conference on Systemsbiology and computational proteomics, RECOMB’06, pages 42–56, Berlin, Heidelberg, 2007.Springer-Verlag.

29

[3] 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.

[4] Zhang Lin, Qian Guanqun, and Zhang Li. Clustering analysis of motif significance pro-file in software networks. In Proceedings of the 10th WSEAS International Conference onMathematical Methods and Computational Techniques in Electrical Engineering, pages 145–147, Stevens Point, Wisconsin, USA, 2008. World Scientific and Engineering Academy andSociety (WSEAS).

[5] Michael Lones and Andy Tyrrell. Regulatory motif discovery using a population clusteringevolutionary algorithm. IEEE/ACM Transactions on Computational Biology and Bioinfor-matics, 4:403–414, 2007.

[6] Dror Marcus and Yuval Shavitt. Efficient counting of network motifs. In Proceedings ofthe 2010 IEEE 30th International Conference on Distributed Computing Systems Workshops,ICDCSW ’10, pages 92–98, Washington, DC, USA, 2010. IEEE Computer Society.

[7] R. Milo, S. Shen-Orr, S. Itzkovitz, N. Kashtan, D. Chklovskii, and U. Alon. ”network motifs:Simple building blocks of complex networks. Science, 298:824–887, 2002.

[8] Nadia Pisanti, Maxime Crochemore, Roberto Grossi, and Marie-France Sagot. Bases of mo-tifs for generating repeated patterns with wild cards. IEEE/ACM Trans. Comput. Biol.Bioinformatics, 2:40–50, January 2005.

[9] Tie Wang, Jeffrey W. Touchman, Weiyi Zhang, Edward B. Suh, and Guoliang Xue. Aparallel algorithm for extracting transcription regulatory network motifs. In Proceedings ofthe Fifth IEEE Symposium on Bioinformatics and Bioengineering, BIBE ’05, pages 193–200,Washington, DC, USA, 2005. IEEE Computer Society.

[10] Kai-Hsiang Yang, Kun-Yan Chiou, Hahn-Ming Lee, and Jan-Ming Ho. Web appearancedisambiguation of personal names based on network motif. In Proceedings of the 2006IEEE/WIC/ACM International Conference on Web Intelligence, WI ’06, pages 386–389,Washington, DC, USA, 2006. IEEE Computer Society.

30