Este documento discute o problema de enumeração de ciclos elementares em grafos. Primeiro, define o problema e revisa conceitos relevantes como ciclos e componentes fortemente conexos. Em seguida, modela o problema usando um grafo direcionado desconexo representando serviços compostos. Por fim, revisa algoritmos da literatura para resolver o problema e detalha a implementação de um desses algoritmos.
1. Mestrado em Informática
Programa de Pós Graduação em Informática
Universidade Federal do Espírito Santo
Teoria dos Grafos 2014-1
Seminário: enumeração de ciclos elementares
Professora: Maria Claudia Silva Boeres
Luiz Kill
Vitória, Junho de 2014
2. 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
3. Agenda
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
3
4. Agenda
4
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
6. 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
7. 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
8. 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? ???
9. Agenda
9
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
10. Revisão de conceitos
Ciclo
Percurso fechado sem repetição de
arestas, pode repetir vértices.
Ciclo elementar
Percurso fechado sem repetição de
arestas e com repetição apenas do
vértice inicial.
10
Fonte:http://en.wikipedia.org/wiki/Cycle_(graph_theory)
11. 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://en.wikipedia.org/wiki/Strongly_connected_component
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'.
12. Agenda
12
• Definição do problema
• Revisão de conceitos
• Modelagem do problema
• Revisão bibliográfica
• Implementação
• Conclusão
13. 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
20. 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
21. 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
25. 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
26. 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
57. 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
58. 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
59. 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