A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1.

Apresentações semelhantes


Apresentação em tema: "Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1."— Transcrição da apresentação:

1 Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

2 Pontes de Königsberg (1736) 2 Em Königsber, Alemanha, um rio que passava pela Cidade tinha uma ilha e, logo depois de passar por essa ilha se bifurcava em 2 ramos. Nessa região existiam 7 pontes, como mostra a figura.

3 Pontes de Königsberg (1736) 3 É possível andar por toda a cidade de tal modo que cada ponte seja atravessada exatamente uma vez?

4 Pontes de Königsberg (1736) 4 Na teoria de grafos, um caminho completo com as propriedades descritas acima de não retraçar nenhum arco é chamado de CAMINHO EULERIANO

5 Outro Exemplo Existe um caminho euleriano para o grafo abaixo: 5

6 O que são Grafos Conjunto de pontos e linhas que conectam os pontos. Grafo é um modelo matemático que representa relações entre objetos. 6

7 O que são Grafos Grafos são estruturas de dados largamente usadas em computação. Exemplos de aplicações são: Modelagem de circuitos digitais Representação de processos em sistemas paralelos ou distribuídos, Redes Redes Sociais Recuperação de Informação 7

8 O que são Grafos Similar a árvores e listas, com menos restrições 8

9 9

10 Definição 10

11 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 )

12 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

13 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

14 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

15 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

16 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

17 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

18 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

19 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

20 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5

21 Exemplo 1 : G=(V(G), E(G), G ), onde V(G) ={v 1, v 2, v 3, v 4, v 5 } E(G)={e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8 } G : G (e 1 )= (v 1, v 2 ), G (e 2 )= (v 2, v 3 ), G (e 3 )= (v 3, v 3 ), G (e 4 )= (v 3, v 4 ), G (e 5 )= (v 2, v 4 ), G (e 6 )= (v 4, v 5 ), G (e 7 )= (v 2, v 5 ), G (e 8 )= (v 2, v 5 ) v1v1 v2v2 v3v3 v4v4 v5v5 G

22 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y)

23 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

24 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

25 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

26 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

27 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

28 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

29 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

30 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

31 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y

32 Exemplo 2 : H=(V(H), E(H), H ), onde V(H) ={u, v, w, x, y} E(H)={a, b, c, d, e, f, g, h} G : G (a)= (u, v), G (b)= (u, u), G (c)= (v, w), G (d)= (w, x), G (e)= (v, x), G (f)= (w, x), G (g)= (u, x), G (h)= (x, y) u v x w y H

33 Outra forma de representar: Exemplo 33

34 Conceitos de Grafos 34

35 Grafo planar 35

36 (a) Planar e (b) Não planar 36

37 - Incidência - Adjacência - Laço - Link - Arestas - Múltiplas - Multigrafo - Vértice Isolado 37 e1 e2 e3 e4

38 Grafo Trivial e Grafo Simples 38 ABC

39 Notação 39

40 Exercício:

41 Grafo Completo 41

42 42

43 Grafo Regular 43 Não é Grafo RegularGrafo Regular de grau 3

44 Outros exemplos 44

45 Isomorfismo Dois grafos G e H são idênticos se V(G)=V(H); E(G)=E(H); G = H 45

46 Isomorfismo entre Grafos Um isomorfismo entre dois grafos é uma bijeção f de V(G) em V(H) tal que (u,v) V(G) (f(u),f(v)) V(H)

47 Exemplo: G H ? v1v1 v2v2 v3v3 v4v4 v5v5 u v x w y G H Para mostrar que dois grafos são isomorfos, devemos indicar um isomorfismo entre eles.

48 Subgrafo 48

49 Passeio Passeio entre 2 e 4 (2, (2,1), (1,3), (3,4), 4) 49

50 Caminho simples, trajeto e ciclos 50

51 51

52 Grafo Conexo e Desconexo 52

53 Grafo complementar 53

54 Grafo Ponderado

55 Digrafo 55

56 Digrafo Grafo Orientado Deve-se respeitar a orientação das arestas 56

57 Digrafo Grau de entrada: número de arestas que incidem no vértice Vértice Fonte: grau de entrada = 0 Grau de saída: número de arestas que partem do vértice Vértice Sumidouro: grau de saída = 0 57

58 Classes especiais de grafos Grafo Bipartido: é aquele em que o conjunto de vértices pode ser particionado em dois subconjuntos X e Y, tal que cada aresta tem um extremo em X e um em Y. X Y (X, Y) é um bipartição do grafo

59 Classes especiais de grafos Grafo Bipartido Completo: é um grafo bipartido com bipartição (X, Y) em que cada vértice de X é adjacente a cada vértice de Y. Se |X|=m e |Y|=n, então denotamos tal grafo por K m,n

60 Exercícios 1. Mostre que os seguintes grafos não são isomorfos: G H

61 Exemplos Vértices são adjacentes se uma dama do jogo de xadrez pode saltar de um deles para o outro em um só movimento. Ex. Grafo do cavalo 61

62 Exercício Quantos vértices e quantas arestas tem o grafo da dama 3–por–3? Defina o grafo do rei, o grafo do bispo, o grafo do cavalo e o grafo da torre 4–por-4. Quantos vértices e quantas arestas tem cada grafo? O grafo das palavras é definido assim: cada vértices é uma palavra da língua portuguesa e duas palavras são adjacentes se diferem em exatamente uma posição. Por exemplo, rato e ralo são adjacentes, enquanto ralo e rota não são. Faça uma figura da parte do grafo definida pelas palavras abaixo: caiado cavado cavalo girafa girava ralo ramo rata rato remo reta reto rota vaiado varado virada virado virava 62

63 Árvores 63

64 64

65 Representação de Grafos 65

66 Como representar grafos em nossos algoritmos? Estruturas de dados! Matrizes Matriz de Adjacência Matriz de Incidência Listas Listas de Adjacência 66

67 Matriz de Adjacência 67

68

69

70 Matriz de Adjacência 70

71 Matriz de Incidência 71

72 72 e1e2e3e4e5e6e7e e4 e2 e3 e1 e5 e6 e7 e8

73 Matriz de Adjacência no Digrafo 73

74 74 e1e2e3e4e5e6e7e e4 e2 e3 e1 e5 e6 e7 e8

75 Matriz de Incidência 75

76 Lista de Adjacência 76

77

78

79 Matriz de Incidência 79

80 Busca em Grafos 80

81 Algoritmos de Busca Operação mais comum em Grafos Visita sistemática a seus nós (uma única vez!) Similar às buscas em árvore Para passear ou caminhar pelos vértices e arestas, utiliza-se marcar um vértice quando ele já foi visitado. 81

82 Algoritmos de Busca Dois tipos básicos de busca Busca em Profundidade Busca em Largura 82

83 Busca em Profundidade 83

84

85 Busca em Profundidade 85

86 Busca em Largura 86

87 Fila Distâncias

88 Fila Distâncias

89 Fila Distâncias

90 Fila Distâncias

91 Fila Distâncias

92 Fila Distâncias

93 Fila Distâncias

94 Fila Distâncias

95 Fila Distâncias

96 Fila Distâncias

97 Fila Distâncias

98 Fila Distâncias

99 Fila Distâncias

100 Busca em Largura 100

101 Busca em Largura 101

102 Busca em Largura 102

103 Exercícios Escreva uma versão iterativa do algoritmo de busca em profundidade. Considere o grafo do slide 104. Qual é a ordem de visita dos vértices em uma busca em profundidade, começando pelo vértice A. Considere o grafo do slide 104. Qual é a ordem de visita dos vértices em uma busca em largura, começando pelo vértice A. 103

104 104 ABCDEFG Dist 0 Predecessor

105 Problema do Caminho Mínimo De forma a reduzir seus custos, uma empresa de transporte de cargas deseja oferecer aos motoristas de sua frota um mecanismo que os auxilie a selecionar o menor caminho entre quaisquer duas cidades por ela servidas. 105

106 Algoritmo Dijkstra Calcula o caminho de custo mínimo entre dois vértices. Simples e com bom nível de performance. Não garante exatidão com arcos com valores negativos. 106

107 Algoritmo Dijkstra Atribua valor zero à estimativa do custo mínimo do vértice s (a raiz da busca) e infinito às demais estimativas; Atribua um valor qualquer aos precedentes (o precedente de um vértice t é o vértice que precede t no caminho de custo mínimo de s para t ); Enquanto houver vértice aberto: seja k um vértice ainda aberto cuja estimativa seja a menor dentre todos os vértices abertos; feche o vértice k Para todo vértice j ainda aberto que seja sucessor de k faça: some a estimativa do vértice k com o custo do arco que une k a j ; caso esta soma seja melhor que a estimativa anterior para o vértice j, substitua-a e anote k como precedente de j. 107

108 108 ABCDEFG Dist 0167 PredecessorAAA

109 109 ABCDEFG Dist PredecessorAABA

110 110 ABCDEFG Dist PredecessorADBD

111 111 ABCDEFG Dist PredecessorADBD

112 112 ABCDEFG Dist PredecessorADBDEE

113 113 ABCDEFG Dist PredecessorADBDEE

114 114 ABCDEFG Dist PredecessorADBDEE

115 115 ABCDEFG Dist PredecessorADBDEE Caminho para qualquer elemento: do destino até A Exemplo G: G E D B A

116 Exercício Considere o grafo do slide 104. Qual é a ordem de visita dos vértices em uma busca de caminho mínimo dijkstra, começando pelo vértice G. Por que Dijkstra não garante exatidão caso haja presença de arcos com valores negativos? Dê um contra-exemplo. 116

117 Métodos de Busca Heurística Fazem uso de conhecimento específico sobre o domínio do problema para guiar o processo de busca. Muitos atribuem uma nota a cada vértice da árvore de busca para representar uma estimativa (ou função heurística) do custo de transformação do Estado Atual no Estado Final. 117

118 Algoritmo A* Adota transformar Estado Inicial (Ei) até o Estado Final (Ef) passando pelo Estado Atual (Ea). F(Ea) = g(Ea) + h(Ea) A função g(Ea) expressa o custo (já conhecido) de transformação de Ei em Ea. A função h(Ea) é a estimativa do custo (desconhecido) da transformação de Ea em Ef. 118

119 Busca A* O processo de busca reorganiza a cada ciclo a Lista de Prioridades de modo que aquelas com menor f(Ea) venham para frente e sejam investigadas. 119

120 O custo para realizar o percurso entre cidades ligadas é a distância euclidiana g(d) = distância euclidiana entre c e d h(d) = estimativa de custo entre d e s. Também é a distância euclidiana mesmo sem lig. direta. 120

121 Identificação de componentes fortemente conexos Se existe um caminho de u a v e de v até u para qualquer par distinto de vértices u e v. Se um grafo não é queremos identificar os subgrafos que são. 121

122 Problema Determinar o número de componentes conexos de um grafo. Usar Busca em Grafos (profundidade ou largura) Escolher um vértice s qualquer Realizar uma busca Os vértices marcados determinam uma componente conexa Escolher um s não marcado Repetir

123 123


Carregar ppt "Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1."

Apresentações semelhantes


Anúncios Google