Vous êtes sur la page 1sur 93

Algoritmos e Estruturas de Dados II

Introduo a Grafos

Profa. M. Cristina / Profa. Profa. Profa . Rosane (2012)

Baseado no material de aula original: Prof. Prof. Josiane M. Bueno

Diviso do arquivo
1 parte:
Motivao Definio: Ordem, Multigrafo, Grafo Simples, Grafo Trivial, Grafo Vazio, Lao, Vrtices Adjacentes, Arestas Adjacentes, Grafo Completo. Exerccios

Diviso do arquivo
2 parte
Aplicaes Grafo Orientado Grau, Grau de Sada, Grau de Entrada, Grafo Regular Exerccios

Diviso do arquivo
3 parte
Grafo Valorado Caminho e Caminho Simples Circuito, Ciclo, Grafo Cclico Caminho e Grafo: Hamiltoniano e Euleriano. Subgrafo Grafo: Conexo e (Totalmente) Desconexo Dgrafo Fortemente Conexo Componente Conexa Exerccios

Diviso do arquivo
4 parte
Grafo Bipartido, Bipartido Completo Complemento Isomorfismo rvore, rvore Enraizada, Floresta Subgrafo, Subgrafo Gerador, rvore Geradora, Sugrafo Induzido Exerccios

Diviso do arquivo
5 parte
Estrutura de Dados: Matriz de Adjacncias e Estrutura de Adjacncias. TAD Grafo Comparao Exerccios

Diviso do arquivo
1 parte:
Motivao Definio: Ordem, Multigrafo, Grafo Simples, Grafo Trivial, Grafo Vazio, Lao, Vrtices Adjacentes, Arestas Adjacentes, Grafo Completo. Exerccios

Grafos - Motivao
Grafos: conceito introduzido por Euler, em 1736

Problema da Ponte de Knisberg

Modelos matemticos para resolver problemas prticos do dia a dia...

Muito usados para modelar problemas em computao -> nfase em aspectos computacionais

Grafos - Motivao
O problema do carteiro chins...

No exatamente um problema de Cincia da Computao... Mas a Teoria dos Grafos permite que ele seja resolvido automaticamente, usando o computador como ferramenta! Voc acha que o problema tem soluo? Se tem, qual seria uma rota ideal?

10

11

Exemplos de estruturas que podem ser representadas como grafos


Circuitos eltricos Redes de distribuio Relaes de parentesco entre pessoas Outras Redes Sociais Rede de estradas entre cidades/vos Redes (fsicas e lgicas) de computadores Pginas da Web

12

Exemplo

13

Exemplo
E B A F

14

Grafos

Definio
Grafo um modelo matemtico que representa relaes entre objetos. Um grafo G = (V, E) consiste de um conjunto de vrtices V, ligados por um conjunto de arestas ou arcos E. v3 Representao: v7 v5 v1
V(G) = {v1,v2,v3,v4,v5,v6,v7}

v2

v4

v6

15

E(G) = {(v1, v2); (v1,v5); (v2,v5); (v3,v4); (v5,v7)}

Grafos

Definio
A ordem de um grafo G dada pela cardinalidade do conjunto de vrtices V(G), ou seja, pelo nmero de vrtices de G. O nmero de arestas de um grafo dado por E(G). Assim, para o grafo do exemplo anterior:

V(G) = 7 E(G) = 5
16

Grafos

Multigrafo
Quando um grafo possui mais de uma aresta interligando os mesmos dois vrtices diz-se que este grafo possui arestas mltiplas (ou arestas paralelas). paralelas Ele chamado de multigrafo ou grafo mltiplo. mltiplo Por exemplo:
Arestas mltiplas

V = 2 e E = 2 Um grafo simples um grafo que no possui arestas mltiplas.

V = {x, y} E = {(x, y); (y, x)}

17

Grafos

Grafo Trivial e Grafo Vazio


Um grafo dito trivial se for de ordem 0 ou 1. Por Exemplo:

v1

V = {v1} E= V = 1 e E = 0

Um grafo vazio G=(, ) pode ser representado somente por G = .


18

Grafos

Lao
Se houver uma aresta e do grafo G que possui o mesmo vrtice como extremos, ou seja, e=(x,x), ento dito que este grafo possui um lao. Exemplo:
lao

v1
19

V ={v1} E = {(v1, v1)} V = 1 e E = 1

Grafos

Vrtices Adjacentes
Diz-se que os vrtices x e y so adjacentes (ou vizinhos) quando estes forem os extremos de uma mesma aresta e=(x,y). Assim:

v3 adjacente a v4 v4 adjacente a v3 v5 NO adjacente a v4 v7 NO adjacente a v2

20

Grafos

Arestas Adjacentes
Diz-se que duas arestas so adjacentes (ou vizinhas) quando estas possurem um mesmo extremo, ou vrtice. Assim:
(v1,v2) adjacente a (v2,v5) (v1,v2) NO adjacente a (v3,v4) A aresta e =(v3,v4) dita incidente a v3 e a v4 Ou, duas arestas adjacentes so incidentes a um vrtice comum.

21

Grafos

Grafo Completo
Um grafo completo se todos os seus vrtices forem adjacentes. Um grafo completo Kn possui n(n-1)/2 arestas. Exemplo: v5
V = {v1,v2,v3,v4,v5} E = {(v1, v2),(v1, v3),(v1, v4),(v1, v5), (v2, v3),(v2, v4),(v2, v5), (v3, v4),(v3, v5),(v4, v5)}

v1 v2
Grafo K5

v4 v3

22

V = 5 e E = 5(5-1)/2 = 10

Grafos

Grafos Completos

23

Grafos

Exerccios de Fixao

(a)

(b)

(c)

Qual a ordem e o nmero de arestas de cada grafo? Quais dos grafos acima so completos? Quais dos grafos acima so simples? No grafo (a), quais vrtices so adjacentes a v3? E quais arestas so adjacentes a (v3,v5)?

24

Diviso do arquivo
2 parte
Aplicaes Grafo Orientado Grau, Grau de Sada, Grau de Entrada, Grafo Regular Exerccios

25

Grafos

Aplicaes

v4
26

Grafos

Aplicaes
Rede de Relacionamentos (relao Conhecer): Maria Joana Paulo Antonia Joo Lili Raimundo

27

Grafos

Aplicaes
Lula Rede de Relacionamentos (relao amizade): Genono
Quem possui mais amigos? E menos amigos?

D.Marisa

Jos Dirceu ACM

28

Grafos

Aplicaes Grafo sem lao


Lula D.Marisa

Grafo com lao


Lula D.Marisa

Genono Jos Dirceu ACM Jos Dirceu ACM

Genono

29

Grafos

Aplicaes
Cada vrtice uma tarefa de um grande projeto. H uma aresta de x a y se x prrequisito de y, ou seja, se x deve estar pronta antes que y possa comear. Cada vrtice uma pgina na teia WWW. Cada aresta um link que leva de uma pgina a outra (H cerca de 2 milhes de vrtices e 5 milhes de arcos). Outros: Redes de computadores, rotas de vos, redes de telefonia, etc
30

Grafos

Aplicaes
Joo amava Teresa que amava Raimundo que amava Maria que amava Joaquim que amava Lili que no amava ningum... (Carlos Drummond de Andrade) Raimundo Teresa Joaquim Maria Joo Lili

31

Grafos

Aplicaes
O Grafo sou f de
Elvis Presley

F-1

F-2 F-3 No-F

32

Grafos

Orientados
Um grafo orientado (ou dgrafo dgrafo) D = (V, E) consiste de um conjunto V (vrtices) e de um conjunto de E (arestas) de pares ordenados de vrtices distintos. Representao : v4 v3 v1
V(G) = {v1,v2,v3,v4} E(G) = {(v1, v2);

v2

(v3,v1); (v2,v3); (v3,v4); (v4,v3)}

33

Grafos

Orientados
Em um grafo orientado, cada aresta e = (x, y) possui uma nica direo de x para y. Diz-se que (x, y) divergente de x e convergente a y. Assim:
(v3,v1) divergente de v3 (v3,v1) convergente a v1

34

Grafos

Grau
O Grau d(v) de um vrtice v corresponde ao nmero de vrtices adjacentes a v (ou ao nmero de arestas incidentes a v). Exemplo:
d(v6) = 0 d(v3) = d(v4) = d(v7) = 1 d(v1) = d(v2) = 2 d(v5) = 3

35

Grafos

Grau
Em um grafo orientado:

O Grau de Sada dout(v) de um vrtice v corresponde ao nmero de arestas divergentes (que saem) de v. O Grau de Entrada din(v) de um vrtice v corresponde ao nmero de arestas convergentes (que chegam) a v.

din(v3) = 2 e dout(v3) = 2 din(v1) = din(v2) = din(v4) = 1 dout(v1) = dout(v2) = dout(v4) = 1

36

Grafos

Grau
Um vrtice com grau de sada nulo, ou seja, dout(v) = 0, chamado de sumidouro (ou sorvedouro). Um vrtice com grau de entrada nulo, ou seja, din(v) = 0, chamado de fonte. Diz-se que um grafo regular se todos os seus vrtices tiverem o mesmo grau.
37

Grafos

Exerccio de Fixao

(a)

(b)

O grafo (a) regular? Por qu? Existe alguma fonte ou sumidouro no grafo (b)?
38

Diviso do arquivo
3 parte
Grafo Valorado Caminho e Caminho Simples Circuito, Ciclo, Grafo Cclico Caminho e Grafo: Hamiltoniano e Euleriano. Subgrafo Grafo: Conexo e (Totalmente) Desconexo Dgrafo Fortemente Conexo Componente Conexa Exerccios

39

Grafos Valorados
Um grafo valorado G(V, A) consiste de um conjunto finito no vazio de vrtices V, ligados por um conjunto A de arestas (ou arcos) com pesos. O conjunto A consiste de triplas distintas da forma (v,w,valor), em que v e w so vrtices pertencentes a V e valor um nmero real.

40

Grafos Valorados
Quo minha amiga uma certa pessoa ? Grafos podem ter arestas com pesos representando a fora fora da relao entre os vrtices: Ex. 0: inimiga 5: colega 10: amiga

41

Grafos Valorados Exemplo


Lula D. Marisa

10 5 0
Jos Dirceu ACM

5
Genono

42

Grafos

Caminho
Um caminho entre dois vrtices, x e y, uma seqncia de vrtices e arestas que une x e y. Um caminho de k-vrtices formado por k-1 arestas (v1,v2), (v2,v3) ... (vk-1, vk), e o valor de k-1 o comprimento do caminho. P = v3,v1,v2 = P2 P= v3,v4,v3,v1 = P3
43

Grafos

Caminho Simples
Um caminho simples se todos os vrtices que o compem forem distintos.
O caminho P= v3,v1,v2 simples O caminho P= v3,v4,v3,v1 NO simples

44

Caminho
O Grafo da Amizade
Jos Dirceu Marido da Ana(X) Prima Ana

Sobrinho de (X) Waldomiro ACM Eu

45

Menor caminho
O Grafo da Amizade
Qual o menor caminho para me ligar a um poltico? A multiplicidade de possveis caminhos num grafo pode gerar a necessidade de buscar o menor caminho a um determinado vrtice.

46

Exemplo de menor caminho


O Grafo da Amizade
Jos Dirceu Marido da Ana(X) Prima Ana

Sobrinho de(X) Waldomiro ACM Eu

47

Grafos

Circuito e Ciclo
Um circuito um caminho P = v1,v2, ..., vk, vk+1, onde v1 = vk+1. Um ciclo um circuito onde todos os vrtices so distintos (exceto pelo primeiro e pelo ltimo). Um grafo cclico se apresentar ao menos um ciclo.
v3,v1,v2 ,v3 um ciclo Portanto, este grafo cclico

48

Grafos

Caminho Hamiltoniano
Caminho Hamiltoniano aquele que contm cada vrtice do grafo exatamente uma vez. Um ciclo v1,v2, ..., vk, vk+1 hamiltoniano quando o caminho v1,v2, ..., vk for um caminho hamiltoniano.
v1,v6,v5,v2,v3,v4 hamiltoniano v6,v5,v4,v3,v2,v1,v6 um ciclo hamiltoniano

49

Grafos

Grafo Hamiltoniano
Um grafo Hamiltoniano se contiver um ciclo hamiltoniano.
v6,v5,v4,v3,v2,v1,v6 um ciclo hamiltoniano, portanto o grafo hamiltoniano

50

Grafos

Caminho Euleriano
Caminho Euleriano aquele que contm cada aresta do grafo exatamente uma vez. Um grafo Euleriano se h um circuito em G que contenha todas as suas arestas.

v1,v6,v4,v1,v2,v3,v4,v5,v1 euleriano Portanto, este grafo euleriano

51

Grafos

Subgrafo
Um subgrafo G = (V, E) de um grafo G = (V, E) um grafo tal que V V e E E.

52

Grafos

Grafo Conexo
Um grafo G = (V, E) conexo quando existe um caminho entre cada par de vrtices de G, caso contrrio, G desconexo. Para um grafo orientado, a deciso feita desconexo SEM considerar a orientao da arestas.

53

Conexo

Desconexo

Grafos

Grafo Conexo
Um grafo totalmente desconexo quando no possui arestas. v2 v1 Todo grafo euleriano conexo e todos os seus vrtices possuem grau par. par
euleriano No euleriano

54

Grafos

Dgrafo Fortemente Conexo


Um grafo orientado D = (V, E) dito ser fortemente conexo quando existe um caminho entre cada par de vrtices (x,y) e tambm entre (y,x).

55

Conexo

Fortemente Conexo

Grafos

Componente Conexa
Uma componente conexa corresponde a um subgrafo conexo maximal.

56

Contm 3 componentes conexas

Grafos

Exerccios de Fixao

(a)

(b)

(c)

Quais dos grafos acima so cclicos? Indique os grafos que so conexos. Qual(is) dos grafos acima so Eulerianos? Quais so Hamiltonianos? 57

Grafos

Exerccio de Fixao
No sculo XVIII, na Prssia, havia uma controvrsia entre os moradores de Knigsberg que chegou aos ouvidos do matemtico Leonhard Euler. Euler descreveu a controvrsia da seguinte forma: ... Na cidade de Knigsberg, na Prssia, h uma ilha chamada Kneiphhof, com os dois braos do rio Pregel fluindo em volta dela. H 7 pontes a, b, c, d, e, f e g cruzando estes dois braos. ...A questo se uma pessoa pode planejar uma caminhada de modo que ela cruze cada uma destas pontes uma nica vez, e no mais que isso. . .

Como representar este problema?

58

Grafos

Exerccio de Fixao

Por que no foi possvel fazer tal trajeto?

59

Resposta
Todos so cclicos Todos so conexos Nenhum Euleriano b) e c) Hamiltoniano. No grafo b) (a,b,c,h,g, f,e,d,a)

60

Diviso do arquivo
4 parte
Grafo Bipartido, Bipartido Completo Complemento Isomorfismo rvore, rvore Enraizada, Floresta Subgrafo, Subgrafo Gerador, rvore Geradora, Sugrafo Induzido Exerccios

61

Grafos

Grafo Bipartido
Um grafo G = (V, E) bipartido quando o seu conjunto de vrtices V puder ser dividido em dois subconjuntos V1, V2 tais que toda aresta do conjunto E une um vrtice de V1 a outro vrtice de V2. Matematicamente: V = V1V2; V1V2 = e e = (u,v) E u V1 e v V2 V1 V2

62

Grafos

Grafo Bipartido Completo


Bipartido: V = V1V2; V1V2 = e e = (u,v) E u V1 e v V2 Bipartido Completo (notao K|V1 |,| V2 |): V = V1V2; V1V2 = e e = (u,v) E u V1 e v V2 ; u V1 , v V2 e = (u,v) E V1 V2

63

Grafos

Grafo Bipartido

64

Grafos

Complemento
Denomina-se complemento de um grafo G = (V, E) a um grafo G = (V, E) tal que V = V e E complementar a E.
a b c f e G d f e d Complemento de G a b c

65

Grafos

Isomorfismo
Dois grafos G = (V, E) e G = (V, E) so isomorfos entre si se existe correspondncia entre os seus vrtices e arestas de forma a preservar a relao de incidncia, ou seja, | V | = | V| , | E | = | E| e existe uma funo unvoca f : V V , tal que e=(x,y) E se e somente se e=(f(x),f(y)) E.

66

isomorfo a G

NO isomorfo a G

Grafos

rvore
Uma rvore um grafo conexo e acclico.
raiz

N interno

folha

67

No uma rvore

uma rvore

Grafos

rvore Enraizada
Uma rvore enraizada uma rvore orientada em que h um vrtice (raiz raiz) do qual todas as arestas se afastam.

68

rvore enraizada (raiz c)

rvore enraizada (raiz d)

Grafos

Floresta
Uma Floresta um conjunto de rvores.
G

69

Grafos

Subgrafo
Um subgrafo G = (V, E) de um grafo G = (V, E) um grafo tal que V V e E E.

70

Grafos

Subgrafo Gerador
Um subgrafo gerador G = (V, E) de um grafo G = (V, E) um grafo tal que V = V e E E.
b a c

d e subgrafo gerador de G NO subgrafo gerador de G

71

Grafos

rvore Geradora
Uma rvore geradora G = (V, E) de um grafo um subgrafo gerador que uma rvore.
a b e h d G g f d g c b e f rvore geradora de G h a c

72

Grafos

Subgrafo Induzido
Um subgrafo induzido G = (V, E) de um grafo G = (V, E) um grafo tal que V V e E contm todas as arestas em E que tem as duas extremidades em V.
a b c f e d subgrafo induzido de G NO subgrafo induzido de G

73

Grafos

Exerccios de Fixao

(a)

(b)

(c)

Quais os complementos dos grafos (a) e (c)? Os grafos (b) e (c) so isomorfos? Represente graficamente um grafo K4,3. 74

Diviso do arquivo
5 parte
Estrutura de Dados: Matriz de Adjacncias e Estrutura de Adjacncias. TAD Grafo Comparao Exerccios

75

Grafos

Estruturas de Dados
A escolha da estrutura de dados certa para a representao de grafos tem um enorme impacto no desempenho de um algoritmo. H duas representaes bsicas:

Matriz de Adjacncias Listas Lineares de Adjacncias

76

Grafos

Matriz de Adjacncias
Dado um grafo G = (V, E), a matriz de adjacncias M uma matriz de ordem n x n, tal que: n = nmero de vrtices M[i,j] = 1, se existir aresta de i a j M[i,j] = 0, se NO existir aresta de i a j
77

Grafos

Matriz de Adjacncias
Qual a matriz de adjacncias do grafo a seguir?
1 2

78

Grafos

Matriz de Adjacncias
Resposta:

79

Grafos

Matriz de Adjacncias
Forma mais simples de representao. Propriedades:

representa um grafo sem ambigidade simtrica para um grafo no direcionado Armazenamento: O(n2) Teste se aresta (i,j) est no grafo: O(1)

Uma matriz de adjacncias caracteriza univocamente um grafo. Mas, um mesmo grafo pode corresponder a vrias matrizes diferentes.
80

Grafos

Estrutura de Adjacncias
Dado um grafo G = (V, E), a estrutura de adjacncias A um conjunto de n listas A(v), uma para cada vrtice v pertencente a V. Cada lista A(v) denominada lista de adjacncias do vrtice v e contm os vrtices w adjacentes a v em G. Ou seja, a estrutura de adjacncias um vetor de nelementos que so capazes de apontar, cada um, para uma lista linear. O i-simo elemento do vetor aponta para a lista linear das arestas que incidem no vrtice i.

81

Grafos

Matriz de Adjacncias
Qual a estrutura de adjacncias do grafo a seguir?
1 2

82

Grafos

Estrutura de Adjacncias

vetor 1 2 3 4 2 1 2 2 4

Listas lineares 5 5 4 5 1 3 2 3 4

83

Grafos

Estruturas de Dados exemplo fazer

84

Fonte: Material Cid S. Souza IC UNICAMP

Grafos

Estruturas de Dados exemplo

85

Fonte: Material Cid S. Souza IC UNICAMP

Grafos

Estruturas de Dados exemplo 2 fazer

Fonte: Material Cid S. Souza IC UNICAMP

86

TAD Grafo

87

Fonte: slides livro N. Ziviani

Grafos

Estrutura de Adjacncias
Representao mais elaborada. Armazenamento: O(m + n) Teste se aresta (i,j) est no grafo: (di), com di sendo o grau do vrtice i.

88

Grafos

Comparao
Matriz de Adjacncia Rapidez para saber se (x,y) est no grafo Rapidez para determinar o grau de um vrtice Menor memria em grafos pequenos Menor memria em grafos grandes O(n2) X X X O(m + n) Lista de Adjacncia

89

Grafos

Comparao
Matriz de Adjacncia Insero/Remoo de arestas Melhor na maioria dos problemas Rapidez para percorrer o grafo O(n2) O(1) Lista de Adjacncia O(d) X O(m + n)

90

Grafos

Exerccio de Fixao

Represente os grafos acima utilizando matriz de adjacncias e estrutura de adjacncias.


91

Por fim
No final das aulas referentes ao material deste arquivo, espera-se que voc tenha aprendido todos os conceitos introdutrios sobre Grafos. Para ajudar no aprendizado procure realizar algumas coisas, como:
1.

2. 3. 4.

Defina formalmente e intuitivamente (atravs das duas prprias palavras) os tpicos ensinados na aula apresentados no slide Diviso do Arquivo. Resolva todos os exerccios propostos, e os sugeridos em sala de aula . Implemente o TAD Grafo usando as representaes de matriz e de lista de adjacncias. Revise os conceitos aps a implementao.

92

Bons estudos!

Algoritmos e Estruturas de Dados II

Introduo a Grafos

Baseado no Material de aula da Prof. Josiane M. Bueno

FIM

Vous aimerez peut-être aussi