1 / 11

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. Aplicações.

fergus
Download Presentation

Algoritmo polinomial para o problema de isomorfismo de grafos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 3 2 2 4 5 1 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. Algoritmo - Matriz de Códigos/Vetor de Freqüências 1 3 2 5 4 Ordenado Forma canônica Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

  7. Algoritmo - Matriz de Códigos/Vetor de Frequências 1 3 3 2 2 4 5 1 5 4 Forma canônica Ordenado Forma canônica Ordenado 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. 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. “Maximumcommonsubgraphisomorphismalgorithms for thematchingofchemicalstructures”. JournalofComputer-Aided Molecular Design, 16(7):521–533, July 2002. • H. H. Gan, S. Pasquali, e T. Schlick. “Exploringtherepertoireof RNA secondarymotifsusinggraphtheory; implications for RNA design”. NucleicAcidsRes, 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á. • AshayDharwadker, John-TagoreTevet. “TheGraphIsomorphismAlgorithm”. Acessado em: 21/06/2009. Disponível em: http://www.geocities.com/dharwadker/tevet/isomorphism/ Diego Barcelos Rodrigues / Kamila Ribeiro Ghidetti

More Related