Mestrado em InformáticaPrograma de Pós Graduação em Informática
Universidade Federal do Espírito Santo
Teoria dos Grafos 2014-1Seminário: enumeração de ciclos elementares
Professora: Maria Claudia Silva Boeres
Luiz Kill
Vitória, Junho de 2014
Trabalho apresentado na disciplina “Teoria dos Grafos”, integrante do Programa de Pós Graduação em Informática da Universidade Federal do Espírito Santo, período 2014-1.
2
Agenda
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
3
Agenda
4
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
Definição do problemaCadastro de serviços compostos do ERP SAP
5
Definição do problema
Quando o Insumo X tem seu preço atualizado:– Recalcular o preço do Serviço 3– Recalcular o preço do Serviço 2– Recalcular o preço do Serviço 1
6
Cadastro de serviços compostos do ERP SAP
Definição do problema
Quando o Insumo X tem seu preço atualizado:– Recalcular o preço do Serviço 3 -> preço errado!– Recalcular o preço do Serviço 2 -> preço errado!– Recalcular o preço do Serviço 1 -> preço errado!
7
Cadastro de serviços compostos do ERP SAP
Definição do problema
8
Como detectar a existência de ciclos na estrutura?
DFT, ordenação topológica...
Como listar todos os ciclos existentes? ???
Agenda
9
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
Revisão de conceitos
CicloPercurso fechado sem repetição de arestas, pode repetir vértices.
Ciclo elementarPercurso fechado sem repetição de arestas e com repetição apenas do vértice inicial.
10
Fo
nte:
http
://en
.wik
iped
ia.o
rg/w
iki/C
ycle
_(g
rap
h_th
eory
)
Revisão de conceitos
Componente fortemente conexo
Subgrafo onde todos os vértices são acessíveis a partir de qualquer vértice.
11
http
://e
n.w
ikip
edia
.org
/wik
i/Str
ong
ly_c
onne
cted
_com
pone
nt
Subgrafo induzido por vértices
Subgrafo de G cujo conjunto de vértices é V´ e o conjunto de arestas é o conjunto de todas as arestas de G com ambos extremos em V´ é chamado de subgrafo de G induzido por V'.
Agenda
12
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
Modelagem do problema
13
Grafo de serviços compostos:
- Desconexo- Direcionado- Insumos nos vértices
terminais- Número de vértices: 21319- Número de arestas: 115227
Modelagem do problema
14
Grafo de serviços compostos:
Modelagem do problema
15
•
* http://stackoverflow.com/questions/14146165/find-all-the-paths-forming-simple-cycles-on-an-undirected-graph
1019*
Modelagem do problema
16
Número de ciclos elementares em um grafo direcionado completo [1]
Modelagem do problema
17
http://flowproblem.ru/cycles/all-simple-cycles
Número de ciclos elementares em um grid nxn
Modelagem do problema
18
NP-completo [4]
Modelagem do problema
19
http://people.mpi-inf.mpg.de/~mehlhorn/ftp/EriceTalks.pdf
O problema de enumeração de ciclos possui muitas aplicações práticas:
• Reconstrução de superfícies
Modelagem do problema
20
O problema de enumeração de ciclos possui muitas aplicações práticas:
• Prevenção e recuperação de deadlocks em SOs e RDMSs
http://en.wikipedia.org/wiki/Wait-for_graph
Modelagem do problema
O problema de enumeração de ciclos possui muitas aplicações práticas:
• Problema do isomorfismo de grafos [7]
• Análise da estrutura de compostos químicos [8]
• Design e análise de redes de comunicação confiáveis
• Análise de causa em redes de relacionamento celular [9]
• ...
21
Modelagem do problema
22
Ciclos é uma
área ativa da
teoria dos
grafos!
Agenda
23
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
Revisão bibliográfica
Classificação dos algoritmos:
• Search space algorithms• Backtrack algorithms• Adjacency matrix algorithms
24
Search space algorithms
• Nessa abordagem os ciclos são investigados em um espaço de busca apropriado
• Para grafos não direcionados o cycle space vector foi a estrutura mais abordada ao longo do tempo [6]
• Cycle space -> contém todos os ciclos do grafo
• Cycle basis -> contém todos os ciclos elementares a partir dos quais todos os ciclos do espaço podem ser derivados
25Revisão bibliográfica
Search space algorithms• Algoritmo construtivo:
– Gere uma cycle basis
– Gere todos os vetores (ciclos) do cycle space vector a partir da
cycle basis ([21])
• Esses algoritmos são exponenciais no tamanho do espaço de busca, logo são exponenciais em
• No caso especial de grafos planares foi proposto em [10] um algoritmo com tempo
26Revisão bibliográfica
Backtrack algorithms•
27Revisão bibliográfica
Backtrack algorithms
28Revisão bibliográfica
DFT é um algoritmo de backtracking:
Adjacency matrix algorithms•
29Revisão bibliográfica
Adjacency matrix algorithms
30Revisão bibliográfica
O algoritmo de Johnson (1975) [1]
31Revisão bibliográfica
O algoritmo de Johnson (1975) [1]
32Revisão bibliográfica
O algoritmo de Johnson (1975) [1]
33Revisão bibliográfica
O algoritmo de Johnson (1975) [1]
34Revisão bibliográfica
O algoritmo de Hawick & James (2008) [15]
35Revisão bibliográfica
• Estende Johnson’s para laços e arestas múltiplas
O algoritmo de Ferreira (2012) [2]
36Revisão bibliográfica
O algoritmo de Ferreira (2012) [2]
37Revisão bibliográfica
Agenda
38
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
Implementação
39
Implementação
40
• Algoritmo escolhido: Hawick & James [15]
– Queremos identificar a presença de laços e arestas múltiplas no domínio do
problema
• Biblioteca de apoio: JGraphT 0.9.0 (Java)
– DirectedPseudograph
– DefaultDirectedGraph
– addVertex()
– addEdge()
– successorListOf()
– vertexSet()
– edgeSet()
Implementação
41
• Benchmark (usando grafos simples): JGraphT
– Johnson
– Szwarcfiter and Lauer
– Tarjan
– Tiernan
Cenário de teste 1
42
•
Implementação
Cenário de teste 1
43Implementação
Cenário de teste 2
44
•
Implementação
(Hands on)
Cenário de teste 3
45
•
Implementação
* http://mathworld.wolfram.com/Pseudograph.html
Cenário 3
46Implementação
Cenário 3
47Implementação
Benchmark
48
•
Implementação
Benchmark
49Implementação
Benchmark
50Implementação
Benchmark
51Implementação
Agenda
52
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
Conclusão
53
•
Conclusão
54
• O algoritmo implementado deve estar disponível na próxima versão da API
JGraphT
55
Dúvidas
Referências[1] D. B. Johnson. Finding all the elementary circuits of a directed graph. SIAM J. Comput., 4(1):77–84, 1975.
[2] R. Ferreira, R. Grossi, A. Marino, N. Pisanti, R. Rizzi, and G. Sacomoto. Optimal Listing of Cycles and st-Paths in Undirected Graphs. Eprint arXiv:1205.2766, 2012.
[3] M. Safar, F. Mahdi and K. Mahdi. An Algorithm for Detecting Cycles in Undirected Graphs using CUDA Technology. International Journal on New Computer Architectures and Their Applications (IJNCAA) 2(1): 194-213, 2012.
[4] R. M. Karp. Reducibility among combinatorial problems, Complexity of Computer Computations. Plenum, New York, 1972, 85-103.
57
Referências[6] R. Diestel. Graph Theory (Graduate Texts in Mathematics). Springer, 2005.
[7] J. T. Welch, Jr. A mechanical analysis of the cyclic structure of undirected linear graphs. J. ACM, 13:205–210, 1966.
[8] E.H. Sussenguth. A graph-theoretical algorithm for matching chemical structures. J. Chem. Doc., 5:36–43, 1965.
[9] S. Klamt, A. Kamp. Computing paths and cycles in biological interaction graphs. BMC Bioinformatics 2009, 10:181.
[10 M. M. Syslo. An efficient cycle vector space algorithm for listing all cycles of a planar graph. SIAM J. Comput., 10(4):797–808, 1981.
58
Referências[11] J. C. Tiernan. An efficient search algorithm to find the elementary circuits of a graph. Communonications ACM, 13:722–726, 1970.
[12] R. E. Tarjan. Enumeration of the elementary circuits of a directed graph. SIAM J. Comput., 2(3):211–216, 1973.
[13] J. Ponstein. Self-avoiding paths and the adjacency matrix of a graph. SIAM Journal on Applied Mathematics, 14:600–609, 1966.
[14] F. Harary. The Determinant of the Adjacency Matrix of a Graph. SIAM Review, Vol. 4, No. 3. (Jul., 1962), pp. 202-210.
[15] K. A. Hawick, H. A. James. Enumerating Circuits and Loops in Graphs with Self-Arcs and Multiple-Arcs. Computational Science Technical Note CSTN-013, 2008.
59
Top Related