19
Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora: Maria Cláudia Boeres Mestrando: Wilson Guasti Junior

Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Embed Size (px)

Citation preview

Page 1: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Trabalho Computacional I:

Algoritmo de Teste de Planaridade

Professora: Maria Cláudia Boeres

Mestrando: Wilson Guasti Junior

Page 2: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Tópicos

• Descrição do problema

• Abordagem do problema

• Complexidade dos algoritmos

• Comparação dos resultados

• Conclusão

Page 3: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Descrição do Problema

• Teste de Planaridade:

• Determinar se um dado grafo pode ser desenhado no plano de tal forma que suas arestas só se intersectem nos pontos extremos

Page 4: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script I

• Verificação da Planaridade de Grafos utilizando uma biblioteca exclusiva para o sistema Mathematica, a Combinatórica.

1 Script I

2

(* :Title: Verificação da Planaridade de Grafos utilizando uma biblioteca exclusiva para o

sistema Mathematica, a Combinatorica*)

3 w:=5;

4 Timing[

5 PlanarQ[RandomGraph[w,0.5]]

6 ]

Page 5: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script I

1 PlanarQ[g_Graph] :=

2 Block[{simpleGraph = MakeSimple[g],

3 $RecursionLimit = Infinity},

4 SimplePlanarQ[simpleGraph]

5 ]

6

7 SimplePlanarQ[g_Graph] :=

8 Module[{components, $RecursionLimit = Infinity},

9 components = BiconnectedComponents[g];

10 Apply[ And,

11 Map[(PlanarQ[InduceSubgraph[g,#]])&, components]

12 ]

Page 6: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script I

13 ] /; !(ConnectedQ[g] && BiconnectedQ[g])

14

15

BiconnectedComponents[g_Graph] := First[FindBiconnectedComponents[g]] /; UndirectedQ[g]

16 FindBiconnectedComponents[g_Graph] := { {}, {} } /; EmptyQ[g]

17

18 FindBiconnectedComponents[g_Graph] :=

19

20 Map[(SearchBiConComp[First[#]]) &, Select[cc = ConnectedComponents[g], Length[#] > 1 &]];

21 {Join[bcc, Select[cc, Length[#] == 1 &]], Drop[ap, -1]}

22

]

23

24

Page 7: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script I

1 Script I(grafos densos)

2

(* :Title: Verificação da Planaridade de Grafos utilizando uma biblioteca exclusiva para o sistema Mathematica, a

Combinatorica*)

3 w:=100

4 e:= (w*(w-1))/2

5 d :=2*e/w*(w-1)

6 Timing[

7 PlanarQ[ExactRandomGraph[w,d]]

8 ]

Page 8: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script I

1

Script I (Grafos Sparsos)

2

(* :Title: Verificação da Planaridade de Grafos utilizando uma biblioteca exclusiva para o sistema

Mathematica, a Combinatorica*)

3 w:=5;

4

Timing[

5

PlanarQ[RandomGraph[w,0.1]]

6

]

Page 9: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script II

• Verificação da Planaridade de Grafos utizando o Teorema de Kuratowski .

Page 10: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script II

• Verificação da Planaridade de Grafos utizando o Teorema de Kuratowski .

1 Script II

2

(* :Title: Verificação da Planaridade de Grafos utizando o Teorema de Kuratowski *)

3 w:=50;

4 Timing[

5 j:=CompleteGraph[5];

6 k:=CompleteGraph[3,3];

7 h:=RandomGraph[w,0.5];

8 IsomorphicQ[j,h]||IsomorphicQ[k,h]

Page 11: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script II

1 Script II (grafos densos)

2

(* :Title: Verificação da Planaridade de Grafos utizando o Teorema de Kuratowski *)

3 w:=100

4 e:= (w*(w-1))/2

5 d :=2*e/w*(w-1)

6 Timing[

7 j:=CompleteGraph[5];

8 k:=CompleteGraph[3,3];

Page 12: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Abordagem do problema

• Script II

1 Script II (Grafos Sparsos)

2

(* :Title: Verificação da Planaridade de Grafos utizando o Teorema de Kuratowski *)

3 w:=50;

4 Timing[

5 j:=CompleteGraph[5];

6 k:=CompleteGraph[3,3];

7 h:=RandomGraph[w,0.1];

8 IsomorphicQ[j,h]||IsomorphicQ[k,h]

9 ]

Page 13: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Complexidade dos Algoritmos

• Examinamos estes algoritmos, eficientes, quanto `a forma como caracterizam planaridade, foi evidenciado que eles proporcionam complexidade linear aos problemas.

Page 14: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Tabela comparativa I: Grafos Esparsos

Número de vértices

Tempo em segundos

Script I (Lib Combinatóric

a)

Script II (Kuratowski)

Resultado

50

0.016

0.031

True

100

0.047

0.078

True

200 0.156

0.249

True

300 0.327

0.609

True

500 0.92

1.731

True

Page 15: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Tabela comparativa II: Grafos Esparsos

Número de vértices

Tempo em segundos

Script I (Lib Combinatóric

a)

Script II (Kuratowski)

Resultado

50

0.015

0.031

True

100

0.046

0.078

True

200 0.156

0.25

True

300 0.327

0.593 True

500 0.968

1.716

True

Page 16: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Tabela comparativa I: Grafos Densos

Número de vértices

Tempo em segundos

Script I (Lib Combinatóric

a)

Script II (Kuratowski)

Resultado

50

0.53 0.062

False

100

1.17

0.156

False

200 5.085

0.655

False

300 11.217

1.466

False

500 31.341

3.9

False

Page 17: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Tabela comparativa II: Grafos Densos

Número de vértices

Tempo em segundos

Script I (Lib Combinatóric

a)

Script II (Kuratowski)

Resultado

50

0.374

0.047

False

100

1.201

0.171

False

200 5.413

0.655

False

300 11.31

1.451

False

500 33.025

3.994

False

Page 18: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Tabela comparativa: Grafos Completos

Número de vértices

Tempo em segundos

Script I (Lib Combinatóric

a)

Script II (Kuratowski)

Resultado

50

0.187

0.047

False

100

0.749

0.156

False

200 3.042

0.499

False

300 2.637

1.139

False

500 1.872

3.229

False

Page 19: Trabalho Computacional I: Algoritmo de Teste de Planaridadeclaudiaboeres.pbworks.com/f/apresentacao-Wilson.pdf · Trabalho Computacional I: Algoritmo de Teste de Planaridade Professora:

Conclusão

• Muito embora, os algoritmos utilizados nos scripts tenham resultado semelhante em boa parte dos casos, o que faz uso do Teorema de Kuratowski manteve o crescimento de tempo menos acentuado a medida que o número de vértices aumentou.