You are on page 1of 6

11.4 rvores Geradoras Em muitas aplicaes, estamos interessados em subgrafos especiais de um determinado grafo.

Definio rvore Geradora - uma rvore T chamada de rvore geradora de um grafo G se T um subgrafo de G que possui todos os vrtices de G. Exemplo 1: G: a b e c d Obs: Uma submatriz (n-1) x (n-1) da matriz de incidncia no singular se e somente se as arestas associadas s (n-1) colunas desta submatriz constituem uma rvore geradora de G. Posto de um grafo o posto de uma grafo com n vrtices igual a n-1. Como obter uma rvore geradora de G? Procedimento 1- Se G no possui circuitos, G sua prpria rvore geradora. Se G possui circuitos, retire uma aresta do circuito. O sugrafo resultante conexo. Se existirem mais circuitos, repita a operao at retirar uma aresta do ltimo circuito do grafo. O subgrafo resultante conexo, sem circuitos e possui todos os vtices de G. Portanto uma rvore geradora de G. Teorema Todo grafo conexo contm pelo menos uma rvore geradora. Definio Seja G(V,A) um grafo conexo e T(V,E) uma rvore geradora de G. Uma aresta de G que no pertence rvore geradora T chamada de elo de G em relao a T. As arestas que compem uma rvore geradora so chamadas de ramo. Exemplo 2: Os elos de G relativos a T1 na exemplo 1 so: {(c,f). (a,c),(d,e),(a,e)}. Obs: Observe que uma aresta que pertence a T1 pode ser um elo de G em relao a uma outra rvore geradora de G. No entanto, o numero de elos de um grafo fixo! Quantos so? Teorema Um grafo conexo com n vrtices e m arestas possui (m - n +1) elos. Se adicionarmos um elo de G a rvore T1, um nico circuito ser formado. Este circuito chamado de circuito fundamental de G. Quantos circuitos fundamentais um grafo possui?
Notas de aula Teoria dos Grafos Prof. Maria do Socorro Rangel DCCE/UNESP

T1:

Dado um grafo G, como obter todas as rvores geradoras de G? Procedimento 2 1 - Utilize o procedimento 1 para obter uma rvore geradora inicial. 2 - Determine os elos de G relativos a esta rvore. Acrescentando um elo de G a T1 um circuito formado. 3 - Retire as arestas do circuito fundamental formado uma a uma. Desta foram so geradas as arvores geradoras associadas s arestas deste circuito, (k-1) rvores geradoras, onde k o nmero de arestas no circuito fundamental. Esta operao chamada de transformao elementar (troca cclica, cyclic exchange). 4 - Repita a transformao elementar considerando outros elos do grafo. A anlise do Procedimento 2 esboado acima, permite a formulao de uma srie de perguntas. 1) Partindo de qualquer rvore e fazendo um certo nmero de transformaes elementares possvel obter uma determinada rvore geradora? 2) Usando transformaes elementares possvel obter todas as rvores geradoras? Quantas transformaes elementares sero necessrias? 3) A eficincia do algoritmo depende da rvore geradora inicial? Para responder algumas dessas perguntas precisamos definir alguns novos conceitos. Distncia entre duas rvores geradoras de G, Ti e Tj, igual ao nmero de arestas que esto presentes em Ti e que no pertencem a Tj. Denotamos por d(Ti,Tj) . Podemos definir a distcia entre duas rvores geradoras de G como sendo o nmero de transformaes elementares necessrias para obter Tj a partir de Ti. Isto : 1 d (Ti , T j ) = ATi T j . 2 rvore central Para uma rvore geradora T0 de G, seja max d (T0 , Ti ) a distncia mxima de
i

T0 a qualquer outra rvore geradora Ti de G. Ento T0 chamada de rvore central de G se: max d (T0 , Ti ) max d (T , T j ), T rvore geradora de G.
i j

Grafo rvore O grafo rvore de G, S(G), definido como o grafo em que cada vrtice representa uma rvore geradora de G e existe uma aresta entre dois pares de vrtices a distncia entre as rvores geradoras associados for igual a 1.

Estes conceitos so usados em [2] para encontrar todas as rvores geradoras de G. A Figura 1 mostra um grafo G1 e o grafo rvore, S(G1) associado. Um outro algoritmo para listar todas as rvores geradoras de G proposto em [3].
Teorema possvel gerar todas as rvores geradoras de G comeando de uma rvore geradora qualquer e executando sucessivas transformaes elementares.

Notas de aula Teoria dos Grafos Prof. Maria do Socorro Rangel DCCE/UNESP

Exemplo

Figura 1 - Grafo G e Grafo rvore associado S(G)[2]

O Procedimento 1 constri uma rvore geradora de G atravs da excluso de arestas que fazem parte de um circuito em G. O algoritmo 1 a seguir constri uma rvore geradora de G incluindo arestas evitando a formao de circuitos.
Algoritmo 1 - Determinar uma rvore geradora

Considere um grafo simples com n vrtices e m arestas.


Idia Inicie a rvore T com uma aresta qualquer de G. A cada iterao, inclua uma nova aresta em T de maneira que nenhum circuito formado.

1) O que acontece se o grafo no for conexo? Iremos obter vrias rvores geradoras, isto uma floresta geradora. 2) Como garantir que ao inserir uma aresta nenhum circuito formado? Verificar se as extremidades da aresta j foram includas. Assim ao tentarmos acrescentar a aresta (vk, wk) rvore, as seguintes situaes podem ocorrer: i) Nem o vrtice vk, nem o vrtice wk pertencem a alguma rvore Ti j construda. Neste caso crie uma nova rvore a partir destes vrtices e desta aresta. Considere que existe mais de uma componente no grafo, faa cp= cp+1. Associe o rtulo cp aos vrtices vk e wk. ii) O vrtive vk pertence rvore Ti e o vrtice wk pertence rvore Tj, i j. Neste caso, a aresta (vk, wk) usada para unir as duas rvores. Faa os vrtices de Tj receberem o mesmo rtulo c dos vertices de Ti. Faa cp=cp-1.

Notas de aula Teoria dos Grafos Prof. Maria do Socorro Rangel DCCE/UNESP

iii) Os dois vrtices pertencem a rvore Ti.. Neste caso a aresta descartada pois sua incluso criaria um circuito. iv) Apenas um dos dois vrtices vk (ou wk) pertence a alguma rvore Ti j construda. Neste caso acrescente a aresta e o vrtice wk (ou vk) rvore. O vrtice wk (ou vk) recebe o mesmo rtulo c que os vrtices j pertecentes a Ti. Como fazer para implementar as idias acima? A eficincia do algoritmo depende da rapidez com que verificamos se as extremidades da aresta que estamos considerando pertence ou no a alguma rvore j criada. Para facilitar esta busca, criamos um vetor n-dimensional VERTEX que armazena esta informao. Quando uma aresta (i,j) inserida em alguma rvore com rtulo c, as posies i e j do vetor recebem o valor c. Assim para verificar se a aresta (vk , wk) j foi includo em alguma rvore, verificamos se correspondentes posies de VERTEX so diferentes de zero. Se para algum vrtice q, VERTEX(q) = 0 o vrtice q no esta includo em nenhuma rvore. Ao final do algoritmo o vetor VERTEX identifica os vrtices em cada componentes do grafo. Isto suficiente? Precisamos ainda identificar as arestas que compe cada rvore do grafo. Para isto criamos o vetor m-dimensional ARESTA. Assim se a k-sima aresta foi includa na rvore c, faa ARESTA (k) = c, caso contrrio ARESTA (k)=0. Ao final do algoritmo, as posies do vetor com ARESTA(i)=0 identificam os elos de G. Exemplo Considere o grafo G com 9 vrtices e 12 arestas. O grafo ser representado atravs de dois vetores m-dimensionais F e H., de tal forma que as extremidades da aresta K armazenada nas posies fk e hk dos vetores F e H respectivamente. G dado por: F= A H= B E H I B I C B C B E C G B F F G C E F D A C

Notas de aula Teoria dos Grafos Prof. Maria do Socorro Rangel DCCE/UNESP

11. 5 - rvore Geradora Mnima

Considere um rede e o problema de encontrar a rvore geradora mnima associada.


Valor de rvore - a soma dos pesos associados s arestas contidas na rvore. Algoritmo 2 (Kruskal) - Grafos Conexos Passo 1- ordene as arestas do grafo em ordem no-decrescente de peso. Passo 2 - Aplique o algoritmo 1 para encontrar a arvore geradora, considerando que as arestas sero selecionadas de acordo com a ordem estabelecida no passo 1. Lema A rvore geradora T obtida pelo Algoritmo 2 uma rvore geradora mnima de G.

Prova - Sejam e1, e2, ..., en-1 as arestas de T na ordem em que foram consideradas no Algoritmo 2. Isto p(e1) <= p(e2) <= ... <=p(en-1). Suponha que T no uma rvore geradora mnima de G. Seja Tmin a rvore geradora que contm as arestas e1, e2, ..., ej , tal que j seja o maior ndice possvel. Considere que a aresta ej+1 adicionada a Tmin. Um circuito ento criado. Este circuito contm uma aresta x que no pertence a T (Se todas as arestas do circuito estivessem em T, T no seria uma rvore, pois tambm teria um circuito). Pela ordem em que as arestas foram consideradas na construo de T, temos que ej+1 foi adicionada a T, mas x no foi includa. Portanto p(ej+1)<=p(x) (caso contrrio x teria sido includa em T sem a formao de um circuito). Vamos ento construir uma nova rvore: Tnova=Tmin-{x}+{ej+1}. Se p(ej+1) < p(x) ento p(Tnova) < p(Tmin) o que contraria a hiptese que Tmin mnima. Se p(ej+1) = p(x) ento p(Tnova) = p(Tmin) e Tnova mnima e contm as arestas e1, e2, ..., ej, ej+1, o que contradiz que j o menor ndice possvel usado na construo de Tmin. Portanto, temos uma contradio quando dizemos que p(ej+1)<=p(x) e neste caso a suposio que T no mnima falsa. Assim mostramos que T mnima.
Algoritmo 3 (PRIM) - Grafos Conexos Passo 1 - Selecione um vrtice vk de G e inclua em T Passo 2 - Repita este passo at que todos os vrtices de G pertenam a T. Selecione a aresta de menor peso (vj, wj) tal que vj pertena a T e wj no pertena a T.

Notas de aula Teoria dos Grafos Prof. Maria do Socorro Rangel DCCE/UNESP

Exerccio [1] - Utilize os algoritmos de Kruskal e de Prim para identificar uma rvore geradora

mnima em cada um dos grafos ilustrados na figura 1 e 2 . Qual o melhor?

Figura 1

Figura 2 Referncias$ [1] - Michel Gagnon - Notas de aula do curso: CI065 Algoritmos e teoria dos grafos UFPR, 2002. [2] Shioura, A., A. Tamura e T. Uno, An optimal algorithm for scanning all spanning trees of undirected graphs. SIAM Journal on Computing [3] - A Simple Algorithm for Listing All the Trees of a Graph, Minty, G.,Circuits and Systems, IEEE Transactions on Circuit Theory, Volume 12, Issue 1, Mar 1965 Page(s): 120 120.

Notas de aula Teoria dos Grafos Prof. Maria do Socorro Rangel DCCE/UNESP

You might also like