A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal do Espírito Santo – UFES Mestrado em Informática Projeto e análise de algoritmo Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti.

Apresentações semelhantes


Apresentação em tema: "Universidade Federal do Espírito Santo – UFES Mestrado em Informática Projeto e análise de algoritmo Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti."— Transcrição da apresentação:

1 Universidade Federal do Espírito Santo – UFES Mestrado em Informática Projeto e análise de algoritmo Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

2 Isomorfismo de grafos é um problema que pode ser aplicado a diversas áreas como: Química Biologia Computacional Papiloscopia Aplicações Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

3 Dois grafos G1=(V1,E1) e G2=(V2,E2) são ditos isomorfos, se existir uma função bijetora f : V1 V2 onde as seguintes condições são satisfeitas: Para cada aresta (a, b) de E1, temos uma aresta (f(a), f(b)) em E2; Toda aresta de E2 tem a forma (f(a), f(b)) para alguma aresta (a, b) de E1. Função: { (1 1), (2 2), (3 4), (4 5), (5 3) } Isomorfismo de grafos 1 5 2 3 4 13 2 5 4 Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

4 Algoritmo - Definições Grafo Colateral: é o grafo G\uv (isso significa grafo G sem a aresta uv). Grafo Par: é formado por vértices do grafo colateral, que estão presentes nos caminhos mínimais entre u e v e por arestas formadas por estes vértices, também presentes em G. Matriz de códigos (matriz sinal): Cada célula é preenchida conforme a seguinte formula: Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

5 +-: Se existe uma resta ligando u e v diretamente, então usamos o sinal +. Caso não exista essa aresta, usamos o sinal -. d: mínima distância entre u e v no grafo colateral, se o vértice origem e destino são os mesmos, (caminho mínimo, Dijkstra). n uv : número de vértices do grafo par Guv m uv : é o número de arestas do grafo par Guv Vetor de freqüência de códigos: é um vetor relativo a um código, que armazena a freqüência que cada código aparece em uma coluna da matriz de códigos. Classe: se dois vértices, linhas ou colunas, de uma matriz forem iguais eles pertencem a mesma classe. Forma canônica: é uma permutação da matriz de código conforme a permutação dos vetores de freqüência de códigos. Algoritmo - Definições Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

6 Algoritmo - Matriz de Códigos/Vetor de Freqüências 13 2 5 4 G2 (Matriz de código) 12345 1+2.3.3-2.3.2 2+2.3.3-0.1.0+2.3.3+3.4.4 3+2.3.3 -0.1.0-2.4.4+3.4.4 4-2.3.2+3.4.4-2.4.4-0.1.0 5-2.3.2-2.4.4+3.4.4 -0.1.0 32541 3 +2.3.3+3.4.4-2.4.4+2.3.3 2 -0.1.0-2.4.4+3.4.4+2.3.3 5+3.4.4-2.4.4-0.1.0+3.4.4-2.3.2 4-2.4.4+3.4.4 -0.1.0-2.3.2 1+2.3.3 -2.3.2 -0.1.0 G2 (Vetor de freqüência de código) 12345 -2.3.20011 -2.4.41111 -0.1.01111 +2.3.32200 +3.4.41122 32541 -2.3.200112 -2.4.411110 -0.1.011111 +2.3.322002 +3.4.411220 Forma canônica Ordenado G2 (Vetor de freqüência de código) 32145 -2.3.300211 -2.4.411011 -0.1.011111 +2.3.322200 +3.4.411022 Classe11223 Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

7 Algoritmo - Matriz de Códigos/Vetor de Frequências 1 5 2 3 4 13 2 5 4 G1 (Matriz de código) 12345 1-0.1.0+2.3.3-2.3.2 +2.3.3 2-2.3.3-0.1.0+3.4.4-2.4.4+2.3.3 3-2.3.2+3.4.4-0.1.0+3.4.4-2.4.4 4-2.3.2-2.4.4+3.4.4-0.1.0+3.4.4 5+2.3.3 -2.4.4+3.4.4-0.1.0 52341 5 +2.3.3-2.4.4+3.4.4+2.3.3 2 -0.1.0+3.4.4-2.4.4+2.3.3 3-2.4.4+3.4.4-0.1.0+3.4.4-2.3.2 4+3.4.4-2.4.4+3.4.4-0.1.0-2.3.2 1+2.3.3 -2.3.2 -0.1.0 G1 (Vetor de freqüência de código) 12345 -2.3.320110 -2.4.401111 -0.1.011111 +2.3.322002 +3.4.401221 52341 -2.3.300112 -2.4.411110 -0.1.011111 +2.3.322002 +3.4.411220 Forma canônicaOrdenado G2 (Matriz de código) 12345 1-0.1.0+2.3.3 -2.3.2 2+2.3.3-0.1.0+2.3.3+3.4.4-2.4.4 3+2.3.3 -0.1.0-2.4.4+3.4.4 4-2.3.2+3.4.4-2.4.4-0.1.0+3.4.4 5-2.3.2-2.4.4+3.4.4 -0.1.0 32541 3 +2.3.3+3.4.4-2.4.4+2.3.3 2 -0.1.0-2.4.4+3.4.4+2.3.3 5+3.4.4-2.4.4-0.1.0+3.4.4-2.3.2 4-2.4.4+3.4.4 -0.1.0-2.3.2 1+2.3.3 -2.3.2 -0.1.0 G2 (Vetor de freqüência de código) 12345 -2.3.220011 -2.4.401111 -0.1.011111 +2.3.322200 +3.4.401122 32541 -2.3.200112 -2.4.411110 -0.1.011111 +2.3.322002 +3.4.411220 Forma canônicaOrdenado Classe11223 11223 Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

8 Algoritmo 1 - Calcular MC A e MC B dos grafos G A e G B dados; 2 - Calcular VFC A e VFC B ; 3 - Ordenar lexicograficamente VFC A e VFC B, e obter S A * e S B * ; 4 - Se VFC A <> VFC B, então os grafos não são isomorfos; 5 - Senão, para cada k = 1.. n, faça: 6 - A = S A * e B = S B * ; 7 - Troque as linhas (1,k) e as colunas (1,k) de B; 8 - Se possível, reordene B para que fique igual a A; 9 - Se A = B, pare pois os grafos são isomorfos; 10 - Se A <> B, então os grafos não são isomorfos. Senão, os grafos são isomorfos e a reordenação dos vértices de G_B para se obter B = A fornece uma função explícita de isomorfismo. Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

9 Algoritmo - Complexidade O algoritmo usa Dijkstra, que está em P, para calcular d(u,v) e as quantidades de vértices e arestas em G uv. Logo, precisamos de um tempo polinomial para obtermos os códigos: s uv = +- d uv.n uv.m uv ; Para obtermos uma MC precisamos calcular n² códigos, como para calcular um código levamos um tempo polinomial, temos que este passo termina em tempo polinomial; A ordenação de VFC's leva um tempo polinomial, pois para isto basta usarmos um método de ordenação qualquer. Portanto, a obtenção da forma canônica de uma MC é polinomial; O procedimento de mapeamento dos vértices de G A e G B, também é polinomial. São no máximo n² comparações entre células de A = S * A e B = S * B para encontrarmos uma ocorrência de células distintas. Durante este procedimento precisamos de um tempo polinomial para encontrar as células que devem assumir os lugares das células em B que forem distintas das células em A. Esse procedimento é feito em no máximo n² iterações e, portanto, o tempo é polinomial; Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

10 Algoritmo - Complexidade O item anterior é executado em no máximo n vezes; Portanto, o tempo total de execução do algoritmo é polinomial; Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

11 Referências J.W. Raymond e P. Willett. Maximum common subgraph isomorphism algorithms for the matching of chemical structures. Journal of Computer-Aided Molecular Design, 16(7):521–533, July 2002. H. H. Gan, S. Pasquali, e T. Schlick. Exploring the repertoire of RNA secondary motifs using graph theory; implications for RNA design. Nucleic Acids Res, 31(11):2926–2943, June 2003. ISSN 1362-4962. R. C. Nandi (2006). Isomorfismo de Grafos Aplicado à Comparação de Impressões Digitais. Dissertação de mestrado, Universidade Federal do Paraná. Ashay Dharwadker, John-Tagore Tevet. The Graph Isomorphism Algorithm. Acessado em: 21/06/2009. Disponível em: http://www.geocities.com/dharwadker/tevet/isomorphism/


Carregar ppt "Universidade Federal do Espírito Santo – UFES Mestrado em Informática Projeto e análise de algoritmo Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti."

Apresentações semelhantes


Anúncios Google