Elementary Circuits Enumeration in Graphs

Post on 18-Jul-2015

190 views 4 download

Transcript of Elementary Circuits Enumeration in Graphs

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

56

Obrigado!

Luiz Killme@lzkill.com

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