Vous êtes sur la page 1sur 31

Teoria dos Grafos

Edson Prestes

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
O processo associado enumerao de caminhos de um grafo/dgrafo semelhante ao processo de contagem com a diferena de que usaremos uma matriz de adjacncia modificada, chamada matriz latina. Matriz de Adjacncia

Matriz Latina

Note que a Matriz Latina contm todos os passeios de comprimento 1

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Vimos que a quantidade de caminhos de comprimento 2 era obtida atravs de M2=M.M, onde M a matriz de adjacncia de G. Aqui calcularemos L2 atravs de L.L', onde L a matriz latina e L' uma matriz latina modificada construida da seguinte maneira. Matriz Latina L

Remoo 1o. elemento de cada entrada

Matriz L

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Cada elemento (i,j) de L2 igual a

onde n=V(G) e a operao seguintes regras:

uma operao binria no comutativa que obedece as

Se L(i,j)=p e L'(j,m)=p' so dois subcaminhos, ento L(i,j) L'(j,m)=pp'.

Se L(i,j) ou L'(j,m) forem iguais ao conjunto vazio, ento L(i,j) L'(j,m)=

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Se quisermos enumerar todos os caminhos de comprimento 3 em um grafo G basta calcularmos Generalizando, os caminhos de comprimento n so determinados por

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Enumere os caminhos de comprimento 2 e 3 do dgrafo abaixo Matriz de Latina L Matriz L

Matriz Latina L2

Matriz Latina L3

Se o preenchimento de L' fosse igual ao de L, teriamos algumas distores. Por exemplo, se L(i,j)=ab e L'(j,m)=bc, teriamos L(i,j) L(j,m)=abbc, o que na verdade corresponde ao caminho abc.

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Para determinar todos os passeios/caminhos que no passam por um vrtice v, basta gerar as matrizes latinas L e L', sem considerar a linha e a coluna associada ao vrtice v. Quais so os caminhos de comprimento 3 que no possuem o vrtice d? Matriz de Latina L Matriz L

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Matriz de Latina L Matriz de Latina L

Matriz de Latina L2

Matriz de Latina L3

Teoria dos Grafos


Grafos Enumerao de Passeios/Caminhos
Para determinar todos os passeios/caminhos que no passam por um determinado arco/ aresta (x,y), basta gerar as matrizes latinas L e L deixando vazia a entrada (x,y). Por exemplo, se quisermos calcular os caminhos de comprimento 3 que no passam pelo arco (b,c) devemos usar as seguintes matrizes

Matriz de Latina L

Matriz L

Matriz de Latina Original

Teoria dos Grafos


rvores
Uma rvore um grafo conexo aciclico, ou seja, um grafo conexo sem ciclos.

Uma folha um vrtice de grau 1.

Uma floresta um grafo que no contm ciclos. Uma rvore uma floresta conexa.

Todo componente de uma floresta uma rvore.

Teoria dos Grafos


rvores
Teorema: Para um grafo G=(V,A) de n-vrtices (n>0), as seguintes afirmaes so verdadeiras (e caracterizam uma rvore com n vrtices). a) G conexo e no possui ciclos b) G conexo e tem n-1 arestas c) G tem n-1 arestas e nenhum ciclo d) Para dois vrtices u,v tem exatamente um caminho entre u e v. Trazer a prova na prxima aula

Teoria dos Grafos


rvores
Cada aresta de uma rvore uma aresta de corte. A adio de uma aresta em uma rvore forma exatamente um ciclo. Cada grafo conexo que rvore contm exatamente uma spanning tree. Uma spanning tree de um Grafo um subgrafo que rvore e que contm todos os ns de G. Uma spanning forest obtida quando o grafo no conexo. Ela consiste em uma floresta de spanning tree.

Grafo G

Spanning Tree de G

Teoria dos Grafos


rvores
O dimetro de uma rvore calculado de forma similar ao de um grafo que no rvore. Ele corresponde a maior distncia entre qualquer par de vrtices, ou seja, A excentricidade de um vrtice u a maior distncia entre u e qualquer vrtice de G, ou seja,

O raio de um Grafo G denotado por

Teoria dos Grafos


rvores
O centro de um grafo G o subgrafo induzido pelos vrtices de excentricidade mnima. O centro de uma rvore um vrtice ou uma aresta. Encontre a excentricidade de cada vrtice, o raio e o centro do grafo abaixo.

Raio(G) =

Teoria dos Grafos


rvores
Sabemos que com um ou dois vrtices apenas uma rvore pode ser formada. Entretanto com trs vrtices podemos formar trs rvores. Com quatro vrtices temos quatro estrelas e doze caminhos (eliminando os automorfismos) totalizando 16 rvores. Se tivermos cinco vrtices temos 125 rvores. Cayley demonstrou que para um conjunto de n vrtices distintos existem nn-2 rvores associadas. Cada uma das rvores pode ser codificada por uma lista de comprimento n-2, chamada Cdigo Prfer.

Esta lista permite-nos determinar de forma unvoca a rvore em questo.

Teoria dos Grafos


rvores Cdigo Prfer
Este algoritmo recebe como entrada uma rvore T com um conjunto S de n vrtices. A cada passo, o algoritmo remove a folha bi com menor rtulo e armazena o seu vizinho, ai. Isto feito at restar apenas uma nica aresta. Ao final do processo, teremos uma (n-2)-upla com os ns no folhas de T. A partir desta tupla e do conjunto S possvel recuperar a rvore T. Calcule o cdigo Prfer da rvore abaixo

Teoria dos Grafos


rvores Cdigo Prfer
A cada passo, o algoritmo remove a folha bi com menor rtulo e armazena o seu vizinho, ai

O cdigo Prfer da rvore acima (7,4,4,1,7,1)

Teoria dos Grafos


rvores
A recuperao da rvore a partir do cdigo prfer como segue. Inicialmente so criadas uma seqncia e um conjunto de vrtices: a seqncia S que representa o cdigo Prfer e o conjunto V dos vrtices que no aparecem no cdigo Prfer.

Em seguida contruimos uma floresta com todos os vrtices da rvore em questo. A cada passo, pegamos o primeiro elemento, a1, de S e o menor elemento m de V e criamos a aresta (a1,m).

Removemos tanto a1 quanto m de seus locais de origem. Se aps este processo a1 no aparecer mais em S, ento o incluimos em V. O processo repetido at que S seja o conjunto vazio. Quando S for o conjunto vazio unimos os dois vrtices que sobraram em V.

Recupere a rvore associada ao cdigo Prfer (7,4,4,1,7,1)

Teoria dos Grafos


rvores

Teoria dos Grafos


rvores Cdigo Prfer
Dado um conjunto de inteiros positivos d1,d2,... ,dn totalizando 2n-2 (2n-2, deve-se ao fato de que uma rvore com n vrtices possui exatamente n-1 arestas.Logo, a soma dos graus de cada vrtice igual a 2(n-1)) ento existem (n 2)! n i=1 (di 1)! rvores com um conjunto de n vrtices tal que o grau do vrtice i di Prova: Observe que cada vrtice no folha x registrado exatamente dx-1 vezes no cdigo prfer, pois ele tem dx vrtices vizinhos e aps a remoo de seus dx-1 vizinhos "folha", ele ser folha de seu ltimo vizinho. Logo ele aparecer dx-1 vezes. O cdigo prfer possui n-2 elementos e pode ter (n-2)! permutaes, entretanto devido a repetio de alguns vrtices, teremos vrias permutaes iguais. Para cada vrtice x que aparece no cdigo, teremos (dx-1)! permutaes iguais. Logo a retirada destes elementos iguais dada por (n 2)! n i=1 (di 1)!

Teoria dos Grafos


rvores Cdigo Prfer
Considere o seguinte conjunto de vrtices S={1,2,3,4,5,6,7} e os graus em ordem de cada elemento de S {3,1,2,1,3,1,1}. Quantas rvores podemos gerar a partir deste conjunto ? Considerando que temos como vrtices no folha os vrtices {1,3,5} teremos

rvores. Alguns exemplos podem ser vistos abaixo

Teoria dos Grafos


rvores Spanning Tree
Teorema: O nmero de rvores enraizadas com vrtices no distintos definido pela seguinte funo geradora

Onde Tr o nmero de rvores enraizadas com r vrtices Teorema: O nmero de rvores no enraizadas com vrtices no distintos definido por

Trabalho : calcular a quantidade de rvores enraizadas e no enraizadas com vrtices no distintos usando 2,3,4,5 e 6 vrtices

Teoria dos Grafos


rvores Spanning Tree
Teorema: Dado um grafo G simples com um conjunto de vrtices V={v1, v2 ,...,vn} faa ai,j ser o nmero de arestas entre os vrtices vi e vj. Construa uma matriz Q quadrada de ordem n de forma que a entrada Q(i,j) seja igual a -ai,j se e igual a d(vi) se i=j. Se Q* a matriz obtida removendo a linha s e coluna t de Q, ento o nmero de spanning trees de G igual a

(-1)s+t | Q* |
Determine o nmero de spanning trees do grafo abaixo

Teoria dos Grafos


rvores Spanning Tree

Removendo linha e coluna c

Grau dos vrtices

Quantidade de arestas

Teoria dos Grafos


rvores Spanning Tree
Liste as 8 spanning trees do grafo.

Teoria dos Grafos


rvores Algoritmo de Kruskal
O algoritmo de Kruskal permite determinar a spanning tree de custo mnimo. Este custo corresponde soma dos pesos (distncia, tempo, qualidade, ...) associados a cada aresta do grafo.

O algoritmo recebe como entrada um grafo G conexo com pesos e monta um grafo desconexo G, o qual corresponde a uma floresta de rvores composta unicamente pelos vrtices de G. Em seguida, ele ordena as arestas de G em ordem crescente e seleciona a cada instante a de menor peso. A aresta selecionada marcada, para no ser analisada mais tarde, e verificada se pode ser adicionada ao grafo G' de forma a no gerar ciclos.

O processo termina quando G' estiver conexo.

Teoria dos Grafos


rvores Algoritmo de Kruskal
Determine a spanning tree de custo mnimo no grafo abaixo usando o algoritmo de Kruskal

Teoria dos Grafos


rvores Algoritmo de Kruskal

Teoria dos Grafos


rvores Algoritmo de Kruskal

Teoria dos Grafos


rvores Algoritmo de Dijkstra
O algoritmo de Dijkstra usado para determinar a menor rota entre duas posies em um grafo. Ele assume que o caminho entre dois vrtices, u e v, composto sempre dos menores caminhos entre dois vrtices quaisquer componentes do caminho. O algoritmo considera um grafo G (ou dgrafo) com arestas de pesos positivos e um vrtice inicial u. O peso da aresta formada pelos vrtices u e v w(u,v). Se u e v no so adjacentes ento w(u,v)= Ele considera que existe um conjunto S de vrtices tal que o menor caminho a partir de u at cada vrtice de S conhecido.

Teoria dos Grafos


rvores Algoritmo de Dijkstra

Inicialmente, S={u}, t(u)=0, t(z)=w(u,z) para z A cada iterao seleciona-se um vrtice

u. e adiciona-o a S. S, a nova

Em seguida, as arestas a partir de v, (v,z), so exploradas e para cada z distncia aproximada t(z) atualizada com min{t(z), t(v)+w(v,z)}. O processo continua at S=V(G) ou at t(z)= para todo z S.