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

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

Algoritmo polinomial para o problema de isomorfismo de grafos

Apresentações semelhantes


Apresentação em tema: "Algoritmo polinomial para o problema de isomorfismo de grafos"— Transcrição da apresentação:

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

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

3 Isomorfismo de grafos 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) } 1 3 2 3 2 1 5 4 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 Algoritmo - Definições
+-: 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). nuv : número de vértices do grafo par Guv muv : é 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. Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

6 G2 (Vetor de freqüência de código) G2 (Vetor de freqüência de código)
Algoritmo - Matriz de Códigos/Vetor de Freqüências 1 3 2 5 4 G2 (Vetor de freqüência de código) 3 2 1 4 5 -2.3.3 -2.4.4 -0.1.0 +2.3.3 +3.4.4 G2 (Matriz de código) 1 2 3 4 5 +2.3.3 -2.3.2 -0.1.0 +3.4.4 -2.4.4 G2 (Vetor de freqüência de código) 1 2 3 4 5 -2.3.2 -2.4.4 -0.1.0 +2.3.3 +3.4.4 Ordenado Forma canônica 3 2 5 4 1 -0.1.0 +2.3.3 +3.4.4 -2.4.4 -2.3.2 3 2 5 4 1 -2.3.2 -2.4.4 -0.1.0 +2.3.3 +3.4.4 Classe 1 2 3 Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

7 G1 (Vetor de freqüência de código) G2 (Vetor de freqüência de código)
Algoritmo - Matriz de Códigos/Vetor de Frequências 1 3 2 3 2 1 5 4 5 4 G1 (Matriz de código) 1 2 3 4 5 -0.1.0 +2.3.3 -2.3.2 -2.3.3 +3.4.4 -2.4.4 G1 (Vetor de freqüência de código) 1 2 3 4 5 -2.3.3 -2.4.4 -0.1.0 +2.3.3 +3.4.4 G2 (Matriz de código) 1 2 3 4 5 -0.1.0 +2.3.3 -2.3.2 +3.4.4 -2.4.4 G2 (Vetor de freqüência de código) 1 2 3 4 5 -2.3.2 -2.4.4 -0.1.0 +2.3.3 +3.4.4 Forma canônica Ordenado Forma canônica Ordenado 5 2 3 4 1 -0.1.0 +2.3.3 -2.4.4 +3.4.4 -2.3.2 5 2 3 4 1 -2.3.3 -2.4.4 -0.1.0 +2.3.3 +3.4.4 3 2 5 4 1 -0.1.0 +2.3.3 +3.4.4 -2.4.4 -2.3.2 3 2 5 4 1 -2.3.2 -2.4.4 -0.1.0 +2.3.3 +3.4.4 Classe 1 2 3 Classe 1 2 3 Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

8 Algoritmo 1 - Calcular MCA e MCB dos grafos GA e GB dados;
2 - Calcular VFCA e VFCB; 3 - Ordenar lexicograficamente VFCA e VFCB , e obter SA* e SB*; 4 - Se VFCA <> VFCB , então os grafos não são isomorfos; 5 - Senão, para cada k = 1 .. n, faça: 6 - A = SA* e B = SB*; 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 Guv. Logo, precisamos de um tempo polinomial para obtermos os códigos: suv = +- duv.nuv.muv ; 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 GA e GB, 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 O item anterior é executado em no máximo n vezes;
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 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: Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti


Carregar ppt "Algoritmo polinomial para o problema de isomorfismo de grafos"

Apresentações semelhantes


Anúncios Google