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 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 G2 (Matriz de código) G2 (Vetor de freqüência de código) Forma canônica Ordenado G2 (Vetor de freqüência de código) Classe11223 Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

7 Algoritmo - Matriz de Códigos/Vetor de Frequências G1 (Matriz de código) G1 (Vetor de freqüência de código) Forma canônicaOrdenado G2 (Matriz de código) G2 (Vetor de freqüência de código) Forma canônicaOrdenado Classe 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 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 ISSN 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:


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