Académique Documents
Professionnel Documents
Culture Documents
Introduo a Grafos
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
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
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
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
17
Grafos
v1
V = {v1} E= V = 1 e E = 0
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
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:
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
28
Grafos
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
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
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.
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
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
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
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.
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
55
Conexo
Fortemente Conexo
Grafos
Componente Conexa
Uma componente conexa corresponde a um subgrafo conexo maximal.
56
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. . .
58
Grafos
Exerccio de Fixao
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
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
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
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:
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
84
Grafos
85
Grafos
86
TAD Grafo
87
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
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!
Introduo a Grafos
FIM