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

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

Grafos Anjolina Grisi de Oliveira 2005

Apresentações semelhantes


Apresentação em tema: "Grafos Anjolina Grisi de Oliveira 2005"— Transcrição da apresentação:

1 Grafos Anjolina Grisi de Oliveira 2005
obs: muitos slides foram cedidos por Adolfo Almeida Duran (UFBA) 2005

2 Matemática Discreta/Grafos CIn-UFPE
Outros tipos de grafos Grafo cíclico (ou simplesmente Ciclo) Um grafo conectado que é regular de grau 2 é um grafo cíclico (= ciclo) Cn é um grafo cíclico com n vértices C6 Matemática Discreta/Grafos CIn-UFPE

3 Matemática Discreta/Grafos CIn-UFPE
Grafo roda O grafo obtido a partir de Cn-1 através da ligação de cada vértice a um novo vértice v é um grafo roda em n vértices, Wn C5 W6 Matemática Discreta/Grafos CIn-UFPE

4 Matemática Discreta/Grafos CIn-UFPE
Grafos n-cúbicos Os grafos n-cúbicos, denotados por Qn, são grafos cujos vértices representam as 2n cadeias de bits de tamanho n. Dois vértices são adjacentes se e somente se as cadeias de bits que eles representam diferem em exatamente uma posição de bit. Matemática Discreta/Grafos CIn-UFPE

5 Matemática Discreta/Grafos CIn-UFPE
Grafos Orientados ou Dígrafos Um dígrafo G(V,A) é um conjunto finito não vazio V de vértices, e um conjunto A de pares ordenados de elementos de V. Chamamos o conjunto A de arcos (também podemos chamar de arestas). Multigrafo Orientado G(V,A) Consiste de um conjunto V não vazio de vértices, um conj. A de arestas e uma função f de A em {(u,v) | u,vV}. As arestas e1 e e2 são múltiplas se f(e1) = f(e2). Matemática Discreta/Grafos CIn-UFPE

6 Matemática Discreta/Grafos CIn-UFPE
Os vértices de um dígrafo possuem: Grau de entrada: número de arcos que chegam no vértice (grauent(v)) Grau de saída: número de arcos que partem do vértice (grausai(v)) Proposição  grauent(vi) =  grausai(vi) = | A | Matemática Discreta/Grafos CIn-UFPE

7 Representação de grafos
Embora seja conveniente a representação de grafos através de diagramas de pontos ligados por linhas, tal representação é inadequada se desejamos armazenar grandes grafos em um computador Matemática Discreta/Grafos CIn-UFPE

8 Matemática Discreta/Grafos CIn-UFPE
Lista de adjacência Uma maneira simples de armazenar grafos, é listando os vértices adjacentes a cada vértice do grafo u y v x w u: v,y v: u,y,w w: v,x,y x: w,y y: u,v,w,x Matemática Discreta/Grafos CIn-UFPE

9 Matemática Discreta/Grafos CIn-UFPE
Lista de adjacência em grafos direcionados Tabela com vértices iniciais e finais (terminais) y x Inic. Terminais u: u,v v: w: v x: y,w y: u w v Matemática Discreta/Grafos CIn-UFPE

10 Matemática Discreta/Grafos CIn-UFPE
Matriz de adjacência Se G é um grafo com vértices {1,2,3,...,n}, sua matriz de adjacência é a matriz n X n cujo elemento ij é o número de arestas ligando o vértice i ao vértice j Matemática Discreta/Grafos CIn-UFPE

11 Matemática Discreta/Grafos CIn-UFPE
Matriz de incidência Se G é um grafo com vértices {1,2,3,...,n} e arestas {1,2,3,...,m}, sua matriz de incidência é a matriz n X m cujo elemento ij é igual a 1 se a aresta ej é incidente ao vértice vi, ou 0, caso contrário Arestas múltiplas são representadas usando colunas com entradas idênticas. Laços são representados usando colunas com exatamente uma entrada igual a 1. Matemática Discreta/Grafos CIn-UFPE

12 Matemática Discreta/Grafos CIn-UFPE
Matriz de incidência Matemática Discreta/Grafos CIn-UFPE

13 Matemática Discreta/Grafos CIn-UFPE
Conectividade Caminho em um grafo não orientado Um caminho de tamanho n de u para v, onde n é um inteiro positivo, em um grafo não orientado é uma seqüência de arestas e1,...,en do grafo de forma que f(e1) = {x0,x1}, f(e2) = {x1,x2}...f(en)={xn-1,xn}, onde x0=u e xn=v. G1 Se o grafo é simples, denotamos o caminho por sua seqüência de vértices: x0, x1 ,...xn Matemática Discreta/Grafos CIn-UFPE

14 Matemática Discreta/Grafos CIn-UFPE
Conectividade Caminho em um multigrafo direcionado Um caminho de tamanho n de u para v, onde n é um inteiro positivo, em um multigrafo direcionado é uma seqüência de arestas e1,...,en do grafo de forma que f(e1) =(x0,x1), f(e2) = (x1,x2)...f(en)=(xn-1,xn), onde x0=u e xn=v. Quando não existem arestas múltiplas, o caminho pode se denotado por um seqüência de vértices: (x2, x5, x4, x1) Matemática Discreta/Grafos CIn-UFPE

15 Matemática Discreta/Grafos CIn-UFPE
Conectividade Circuito ou ciclo Um caminho é um circuito se ele começa e termina no mesmo vértice. G1 Circuito: x1,x2,x5,x4,x1 Matemática Discreta/Grafos CIn-UFPE

16 Matemática Discreta/Grafos CIn-UFPE
Exemplos de ciclos 1 2 1 2 3 4 3 4 Ciclo de tamanho 3 1  2  4  1 Ciclo de tamanho 3 1  2  3  1 Matemática Discreta/Grafos CIn-UFPE

17 Matemática Discreta/Grafos CIn-UFPE
Ciclo (ou circuito) A seqüência de vértices (x1, x2, x5, x4, x1) é um exemplo de ciclo Matemática Discreta/Grafos CIn-UFPE

18 Matemática Discreta/Grafos CIn-UFPE
Caminho (ou circuito) simples Um caminho ou circuito é chamado de simples se ele não contem a mesma aresta mais de uma vez. Matemática Discreta/Grafos CIn-UFPE

19 Matemática Discreta/Grafos CIn-UFPE
Conectividade Definição para grafos não orientados Um grafo não orientado é chamado de conexo (ou conectado) se existe um caminho entre cada par de vértices distintos do grafo. G1 Em uma rede de computadores, quaisquer dois computadores podem se comunicar se e somente se o grafo da rede é conexo. Matemática Discreta/Grafos CIn-UFPE

20 Matemática Discreta/Grafos CIn-UFPE
Grafo desconexo O grafo mostrado a seguir não é conexo pois, por exemplo, não existe um caminho entre x3 e x5. Matemática Discreta/Grafos CIn-UFPE

21 Matemática Discreta/Grafos CIn-UFPE
Componente conexa Um grafo G(V,A) desconexo é formado por pelo menos dois subgrafos conexos, disjuntos em relação aos vértices Cada um destes subgrafos conexos é dito ser uma componente conexa de G. Matemática Discreta/Grafos CIn-UFPE

22 Matemática Discreta/Grafos CIn-UFPE
Vértice de corte (ou pontos de articulação) Um vértice é dito ser um vértice de corte se sua remoção (juntamente com as arestas a ele conectadas) produz um grafo com mais componentes conexos. (se o grafo original é conexo, ele se torna desconexo). X2 é um vértice de corte Matemática Discreta/Grafos CIn-UFPE

23 Matemática Discreta/Grafos CIn-UFPE
Ponte Uma aresta é dita ser uma ponte se sua remoção produz um grafo com mais componentes conexos. (X1,X4) é uma ponte Matemática Discreta/Grafos CIn-UFPE

24 Matemática Discreta/Grafos CIn-UFPE
Grafo fortemente conexo No caso de grafos orientados (digrafos), um grafo é dito ser fortemente conexo se existe um caminho de a para b e de b para a, para cada par a,b de vértices do grafo. ou seja, se cada par de vértices participa de um circuito. Isto significa que cada vértice pode ser alcançável partindo-se de qualquer outro vértice do grafo. Matemática Discreta/Grafos CIn-UFPE

25 Matemática Discreta/Grafos CIn-UFPE
Grafo fracamente conexo Um grafo direcionado G(V,A) é chamado de fracamente conexo se existe um caminho entre cada par de vértices no grafo não orientado subjacente. Cada um destes subgrafos é fortemente conexo. No entanto, o grafo todo é apenas fracamente conexo. Matemática Discreta/Grafos CIn-UFPE

26 Matemática Discreta/Grafos CIn-UFPE
Circuito Euleriano Um circuito euleriano em um grafo G é um circuito simples que contem cada aresta de G. Circuito Euleriano Caminho Euleriano (a,c,d,e,b,d,a,b) Matemática Discreta/Grafos CIn-UFPE

27 Matemática Discreta/Grafos CIn-UFPE
Teorema (Euler 1736) Um multigrafo conectado G possui um circuito euleriano se e somente se o grau de cada vértice de G é par. Matemática Discreta/Grafos CIn-UFPE

28 Matemática Discreta/Grafos CIn-UFPE
As pontes de Königsberg É possível sair de uma das ilhas, passar uma única vez por cada uma das pontes e retornar ao ponto de origem ? Matemática Discreta/Grafos CIn-UFPE

29 Matemática Discreta/Grafos CIn-UFPE
As pontes de Königsberg Como nem todos os vértices têm grau par, o grafo não é euleriano. Logo, é impossível atravessar todas as pontes uma só vez e voltar ao lugar de partida Matemática Discreta/Grafos CIn-UFPE

30 Caminhos, circuitos Hamiltonianos
Um caminho (ou circuito) em um grafo G(V,E) é dito ser hamiltoniano se ele passa exatamente uma vez em cada um dos vértices de G Apenas caminho hamiltoniano Caminho e circuito hamiltoniano Matemática Discreta/Grafos CIn-UFPE

31 Matemática Discreta/Grafos CIn-UFPE
Mais exemplos Circuito e caminho caminho não hamiltoniano Matemática Discreta/Grafos CIn-UFPE

32 Matemática Discreta/Grafos CIn-UFPE
Grafo hamiltoniano Não existe uma caracterização para identificar grafos hamiltonianos como existe para os eulerianos A busca de tal caracterização é um dos maiores problemas ainda não solucionados da teoria dos grafos Matemática Discreta/Grafos CIn-UFPE

33 Matemática Discreta/Grafos CIn-UFPE
Grafo hamiltoniano Muito pouco é conhecido dos grafos hamiltonianos A maioria dos teoremas existentes são da forma: “Se G possui arestas suficientes, então G é hamiltoniano” Matemática Discreta/Grafos CIn-UFPE

34 Matemática Discreta/Grafos CIn-UFPE
Alguns Problemas Como explorar um grafo Como obter um processo sistemático para caminhar pelos vértices e arestas de um grafo? Como caminhar no grafo de modo a visitar todos os vértices e arestas evitando repetições desnecessárias de visitas a um mesmo vértice ou aresta? Que recursos adicionais são necessários? Matemática Discreta/Grafos CIn-UFPE

35 Matemática Discreta/Grafos CIn-UFPE
Como explorar um grafo Necessidade de ‘’marcar’’ quando um vértice e uma aresta já foram visitados ou não Algoritmo Geral Busca Geral G(V,E) 1. Escolher e marcar um vértice inicial; 2. Enquanto existir algum vértice v marcado e incidente a uma aresta (v,w), não explorada, efetuar:     a) escolher o vértice v;     b) explorar a aresta (v,w). Se w não é marcado então marcar w. Matemática Discreta/Grafos CIn-UFPE

36 Matemática Discreta/Grafos CIn-UFPE
O problema do Caminho mais curto Um motorista deseja encontrar o caminho, mais curto possível, entre duas cidades do Brasil Caso ele receba um mapa das estradas de rodagem do Brasil, no qual a distância entre cada par adjacente de cidades está exposta, como poderíamos determinar uma rota mais curta entre as cidades desejadas? Uma maneira possível é enumerar todas as rotas possíveis que levam de uma cidade à outra, e então selecionar a menor. Matemática Discreta/Grafos CIn-UFPE

37 Matemática Discreta/Grafos CIn-UFPE
O problema do menor caminho consiste em determinar um menor caminho entre um vértice de origem s  V e todos os vértices v de V. ¨      Matemática Discreta/Grafos CIn-UFPE

38 Matemática Discreta/Grafos CIn-UFPE
O problema do Caminho mais curto Uma maneira mais eficiente: Percorra o grafo, partindo do vértice de origem s, associando a cada vértice um número l(v) indicando a menor distância entre s e v. Isso significa que quando chegamos ao vértice v, na figura abaixo, l(v) será min ( l(u)+6 , l(x)+4 ) 6 5 u 3 s 2 7 v x y 4 1 Matemática Discreta/Grafos CIn-UFPE

39 Matemática Discreta/Grafos CIn-UFPE
Grafos com pesos: - Cada aresta possui um número associado (peso) - O tamanho do caminho é a soma dos pesos das arestas do caminho 6 5 u 3 s 2 7 v x y 4 1 11 9 Matemática Discreta/Grafos CIn-UFPE

40 Matemática Discreta/Grafos CIn-UFPE
Como obter um caminho mínimo partindo de s para y? u v 6 3 9 3 s 4 2 1 2 7 3 5 11 5 6 x y Matemática Discreta/Grafos CIn-UFPE

41 Matemática Discreta/Grafos CIn-UFPE
Outra possibilidade: u v 6 3 9 3 s 4 2 1 2 7 3 5 11 5 6 x y Matemática Discreta/Grafos CIn-UFPE

42 Matemática Discreta/Grafos CIn-UFPE
O algoritmo de Dijkstra O algoritmo de Dijkstra aqui descrito identifica o menor caminho entre dois vértices de um grafo não orientado. Se desejamos calcular o menor caminho de a para z em um grafo conexo simples com pesos, primeiro encontramos um menor caminho entre a e um primeiro vértice, depois entre a e um segundo vértice, esse procedimento é repetido até que seja encontrado um menor caminho entre a e z. Matemática Discreta/Grafos CIn-UFPE

43 Matemática Discreta/Grafos CIn-UFPE
O algoritmo de Dijkstra Um conjunto S de vértices é construído inserindo-se um vértice a cada iteração. A cada iteração também é adotado um procedimento para rotular vértices: um vértice w é rotulado com o tamanho do menor caminho de a até ele, e que contem somente vértices do conjunto S. O vértice a ser inserido em S é aquele com o menor rótulo. Matemática Discreta/Grafos CIn-UFPE

44 Matemática Discreta/Grafos CIn-UFPE
O algoritmo de Dijkstra O algoritmo começa rotulando a com 0 e os demais vértices com . Usamos a notação L0(a)=0 e L0(v)= . (na iteração 0). A notação Sk é usada para denotar o conjunto S após a iteração k. Começamos com S0=. O conjunto Sk é formado a partir de Sk-1 adicionado-se um vértice u que não está em Sk-1 e possui o menor rótulo. Após a inclusão de u em Sk, atualizamos os rótulos de todos os vértices que não estão nesse conjunto da seguinte maneira: Lk(v) é o tamanho do menor caminho de a até v que contem apenas os vértices de Sk. . Matemática Discreta/Grafos CIn-UFPE

45 Matemática Discreta/Grafos CIn-UFPE
O algoritmo de Dijkstra Seja v um vértice que não está em Sk. Para atualizar o rótulo de v, observe que Lk(v) é o tamanho do menor caminho de a para v e que contém apenas os vértices que estão em Sk.. Esse caminho ou é o menor caminho que contem apenas os elementos de Sk-1 (sem a inclusão de u) ou é o menor caminho de a até u no passo k-1 com adição da aresta (u,v). Lk(v) =   min(Lk-1(v),Lk-1(u)+ peso(u,v)) Matemática Discreta/Grafos CIn-UFPE

46 Matemática Discreta/Grafos CIn-UFPE
O algoritmo de Dijkstra procedimento Dijkstra Para i := 1 até n: L(v)= . L(a) = 0 S= Enquanto z S u :=   Elemento que S e L(u) é mínimo S :=   S  {u} Para cada vértice v  S : Se L(u) + peso(u,v) < L(v) então L(v) = L(u) + peso(u,v) (observe que L(v) =   min(L(v),L(u)+ peso[u,v]) Retornar L(z) Matemática Discreta/Grafos CIn-UFPE

47 Matemática Discreta/Grafos CIn-UFPE
Menor caminho de a até z 2(a) 4(a) 3 (a,c) 10 (a,c) 2 (a) 12 (a,c) Matemática Discreta/Grafos CIn-UFPE

48 Matemática Discreta/Grafos CIn-UFPE
3(a,c) 8(a,c,b) 2(a) 12(a,c) 3(a,c) 8(a,c,b) 2(a) 10(a,c,b,d) 14(a,c,b,d) Matemática Discreta/Grafos CIn-UFPE

49 Matemática Discreta/Grafos CIn-UFPE
3(a,c) 2(a) 8(a,c,b) 10(a,c,b,d) 14(a,c,b,d) 3(a,c) 8(a,c,b) 2(a) 10(a,c,b,d) 13(a,c,b,d,e) Matemática Discreta/Grafos CIn-UFPE


Carregar ppt "Grafos Anjolina Grisi de Oliveira 2005"

Apresentações semelhantes


Anúncios Google