Post on 15-Jul-2020
Teoria dos Grafos
Valeriano A. de OliveiraSocorro Rangel
Silvio A. de AraujoDepartamento de Matemática Aplicada
antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br
Árvores GeradorasPreparado a partir do texto:
Rangel, Socorro. Teoria do Grafos, Notas de aula, IBILCE, Unesp, 2002-2013.
Árvores Geradoras
Árvores Geradoras
Definição e ExemplosÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 3
Definição 1. Uma árvore T é chamada de árvore geradora de umgrafo G se T é um subgrafo de G que possui todos os vértices de G.
Exemplos:
Como obter uma árvore geradorade G?Árvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 4
Procedimento 1
1. Se G não possui circuitos, G é sua própria árvore geradora.
2. Se G possui circuitos, retire uma aresta do circuito. O subgraforesultante é conexo.
3. Se existirem mais circuitos, repita a operação até retirar uma arestado último circuito do grafo.
4. O subgrafo resultante é conexo, sem circuitos e possui todos osvértices de G. Portanto é uma árvore geradora de G.
Teorema 2. Todo grafo conexo contém pelo menos uma árvoregeradora.
Árvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 5
Definição 3. Seja G(V,A) um grafo conexo e T(V,E) uma árvoregeradora de G. Uma aresta de G que não pertence à árvore geradora T échamada de elo de G em relação a T. As arestas que compõem umaárvore geradora são chamadas de ramo.
Exemplo : Os elos de G relativos a T1 no exemplo 1 são: (c,f).(a,c),(d,e),(a,e).Observação: Uma aresta que pertence a T1 pode ser um elo de G emrelação a uma outra árvore geradora de G. No entanto, o número de elosde um grafo é fixo!Quantos são?
Árvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 6
Teorema 4. Um grafo conexo com n vértices e m arestas possui(m− n+ 1) elos.
Definição 5. Se adicionarmos um elo de G a árvore T1, um únicocircuito será formado. Este circuito é chamado de circuito fundamentalde G.
Quantos circuitos fundamentais um grafo possui?
Como obter todas as árvoresgeradoras de G?Árvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 7
Procedimento 2
1. Utilize o Procedimento 1 para obter uma árvore geradora inicial.
2. Determine os elos de G relativos a esta árvore. Acrescentando umelo de G a T1 um circuito é formado.
3. Retire, uma a uma, as arestas do circuito fundamental formado.Desta forma são geradas as árvores geradoras associadas às arestasdeste circuito, ou seja, tem-se (k − 1) árvores geradoras, onde k é onúmero de arestas no circuito fundamental. Esta operação échamada de transformação elementar (troca cíclica, cyclicexchange).
4. Repita a transformação elementar considerando os outros elos dografo.
Como obter todas as árvoresgeradoras de G?Árvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 8
Perguntas: a análise do Procedimento 2 esboçado acima, permite aformulação de uma série de perguntas.
1. Partindo de qualquer árvore e fazendo um certo número detransformações elementares é possível obter uma determinadaárvore geradora?
2. Usando transformações elementares é possível obter todas asárvores geradoras? Quantas transformações elementares serãonecessárias?
3. A eficiência do algoritmo depende da árvore geradora inicial?
Para responder algumas dessas perguntas precisamos definir algunsnovos conceitos.
DefiniçõesÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 9
Definição 6. Dados dois conjuntos, S1 e S2, a soma direta de S1 e S2
(representada por S1 ⊕ S2) é dada por: S1 ⊕ S2 = (S1 ∪ S2)− (S1 ∩ S2).Exemplo:S1 = {v1, v2, v3}, S2 = {v1, v4, v5, v6} entãoS1 ⊕ S2 = {v2, v3, v4, v5, v6}.
Definição 7. A Distância entre duas árvores geradoras de G, Ti e Tj , éigual ao número de arestas que estão presentes em Ti e que nãopertencem a Tj. Denotamos por d(Ti, Tj). Podemos definir a distânciaentre duas árvores geradoras de G como sendo o número detransformações elementares necessárias para obter Tj a partir de Ti. Istoé: d(Ti, Tj) =
1
2|ATi⊕Tj
|. onde ATi⊕Tjé o conjunto de arestas obtido
pela a soma direta do conjunto de arestas de Ti e Tj .
DefiniçõesÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 10
Definição 8. Para uma árvore geradora T0 de G, seja maxi d(T0, Ti) adistância máxima de T0 a qualquer outra árvore geradora Ti de G. EntãoT0 é chamada de árvore central de G se:maxi d(T0, Ti) ≤ maxj d(T, Tj) para qualquer árvore geradora T de G.
Definição 9. O grafo árvore de G, S(G), é definido como o grafo emque cada vértice representa uma árvore geradora de G e existe umaaresta entre dois pares de vértices se a distância entre as árvoresgeradoras associados for igual a 1.
obs: Estes conceitos são usados em [2] para encontrar todas as árvoresgeradoras de G. A Figura a seguir mostra um grafo G1 e o grafo árvore,S(G1) associado. Um outro algoritmo para listar todas as árvoresgeradoras de G é proposto em [3].
DefiniçõesÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 11
Teorema 10. É possível gerar todas as árvores geradoras de Gcomeçando de uma árvore geradora qualquer e executando sucessivastransformações elementares.
Procedimento 3 - Determinaruma árvore geradoraÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 12
O Procedimento 1 constrói uma árvore geradora de G através daexclusão de arestas que fazem parte de um circuito em G. OProcedimento 3 a seguir constrói uma árvore geradora de G incluindoarestas evitando a formação de circuitos.Procedimento 3: considere um grafo simples com n vértices e m
arestas.Idéia - Inicie a árvore T com uma aresta qualquer de G. A cada iteração,inclua uma nova aresta em T de maneira que nenhum circuito é formado.1) O que acontece se o grafo não for conexo? Iremos obter várias árvoresgeradoras, isto é uma floresta geradora.2) Como garantir que ao inserir uma aresta nenhum circuito é formado?Verificar se as extremidades da aresta já foram incluídas. Assim aotentarmos acrescentar a aresta (vk, wk) à árvore, as seguintes situaçõespodem ocorrer:
Procedimento 3 - Determinaruma árvore geradoraÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 13
1. Nem o vértice vk, nem o vértice wk pertencem a alguma árvore Ti jáconstruída. Neste caso crie uma nova árvore a partir destes vérticese desta aresta. Considere que exista mais de uma componente nografo, faça cp = cp+ 1. Associe o rótulo cp aos vértices vk e wk.
2. O vértice vk pertence à árvore Ti e o vértice wk pertence à árvoreTj , i 6= j. Neste caso, a aresta (vk, wk) é usada para unir as duasárvores. Faça os vértices de Tj receberem o mesmo rótulo c dosvertices de Ti. Faça cp = cp− 1.
3. Os dois vértices pertencem a árvore Ti. Neste caso a aresta édescartada pois sua inclusão criaria um circuito.
4. Apenas um dos dois vértices vk (ou wk) pertence a alguma árvoreTi já construída. Neste caso acrescente a aresta e o vértice wk (ouvk) à árvore. O vértice wk (ou vk) recebe o mesmo rótulo c que osvértices já pertencentes a Ti.
Procedimento 3 - Determinaruma árvore geradoraÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 14
Como fazer para implementar as idéias acima?
- A eficiência do algoritmo depende da rapidez com que verificamosse as extremidades da aresta que estamos considerando pertence ounão a alguma árvore já criada.
- Para facilitar esta busca, criamos um vetor n-dimensional VERTEXque armazena esta informação. Quando uma aresta (i, j) é inseridaem alguma árvore com rótulo c, as posições i e j do vetor recebemo valor c. Assim para verificar se a aresta (vk, wk) já foi incluída emalguma árvore, verificamos se correspondentes posições de VERTEXsão diferentes de zero. Se para algum vértice q, VERTEX(q) = 0 ovértice q não esta incluído em nenhuma árvore. Ao final doalgoritmo o vetor VERTEX identifica os vértices em cadacomponentes do grafo.
É suficiente?
Procedimento 3 - Determinaruma árvore geradoraÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 15
Precisamos ainda identificar as arestas que compõe cada árvore dografo.
- Criamos o vetor m-dimensional ARESTA, e incializamos com 0.Assim se a k-ésima aresta foi incluída na árvore c, faça ARESTA(k)= c.
- Ao final do algoritmo, as posições do vetor com ARESTA(i)=0identificam os elos de G.
Procedimento 3 - Determinaruma árvore geradoraÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 16
ExercícioConsidere o grafo G com 9 vértices e 12 arestas. O grafo serárepresentado através da Lista de Arestas, dois vetores m-dimensionais Fe H, de tal forma que as extremidades da aresta k é armazenada nasposições fk e hk dos vetores F e H respectivamente. Aplicar oProcedimento 3 e as ideias nele contidas, para construir uma árvoregeradora para G.
Árvore Geradora MínimaÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 17
Considere uma rede e o problema de encontrar a árvore geradora mínimaassociada.Valor de árvore - é a soma dos pesos associados às arestas contidas naárvore.Algoritmo de Kruskal - Determinar uma árvore geradoramínima em um grafo qualquerPasso 1- ordene as arestas do grafo em ordem não-decrescente de peso.Passo 2 - aplique o Procedimento 3 para encontrar a arvore geradora,considerando que as arestas serão selecionadas de acordo com a ordemestabelecida no passo 1.Exemplo:
Árvore Geradora MínimaÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 18
Teorema 11. A árvore geradora T obtida pelo Algoritmo de Kruskal éuma árvore geradora mínima de G.
Prova
Sejam e1, e2, ..., en−1 as arestas de T na ordem em que foramconsideradas no Algoritmo de Kruskal. Isto ép(e1) ≤ p(e2) ≤ ... ≤ p(en−1).
Vamos supor que T não é uma árvore geradora (AG) mínima de G.Dentre as AG de valor mínimo, seja Tmin a árvore geradora quecontém as arestas e1, e2, ..., ej de T, tal que j seja o maior índicepossível (j < (n− 1), pois em caso contrário, ej estaria em T).
Árvore Geradora MínimaÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 19
Prova Teorema 11(cont.)
Considere que a aresta ej+1 é adicionada a Tmin. Um circuito éentão criado. Este circuito contém uma aresta x que não pertencea T (Se todas as arestas do circuito estivessem em T, T não seriauma árvore, pois também teria um circuito).
Pela ordem em que as arestas foram consideradas na construção deT, temos que ej+1 foi adicionada a T, mas x não foi incluída.Portanto p(ej+1) <= p(x) (caso contrário x teria sido incluída emT sem a formação de um circuito).
Vamos então construir uma nova árvore: Tnova = Tmin − x+ ej+1.
Árvore Geradora MínimaÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 20
Prova Teorema 11(cont.)
Se p(ej+1) < p(x) então p(Tnova) < p(Tmin) o que contraria ahipótese que Tmin é mínima.
Se p(ej+1) = p(x) então p(Tnova) = p(Tmin) e Tnova é mínima econtém as arestas e1, e2, ..., ej , ej+1, o que contradiz que j é omenor índice possível usado na construção de Tmin.
Portanto, temos uma contradição quando dizemos quep(ej+1) <= p(x) e neste caso a suposição que T não é mínima éfalsa. Assim mostramos que T é mínima.
Árvore Geradora MínimaÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 21
Algoritmo 3 (PRIM) - Grafos ConexosPasso 1 - Selecione um vértice vk de G e inclua em TPasso 2 - Repita este passo até que todos os vértices de G pertençam aT.Selecione a aresta de menor peso (vj, wj) tal que vj pertença a T e wj
não pertença a T.Exemplo:
ExercícioÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 22
1. Utilize os algoritmos de Kruskal e de Prim para identificar umaárvore geradora mínima em cada um dos grafos ilustrados na figura1 e 2 . Qual é o melhor?
ExercícioÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 23
2. Verificar que uma submatriz (n− 1) x (n− 1) da matriz deincidência é não singular se e somente se as arestas associadas às(n− 1) colunas desta submatriz constituem uma árvore geradora deG.obs: Posto de um grafo - o posto de uma grafo com n vértices éigual a n− 1.
ReferênciasÁrvores Geradoras
Teoria dos Grafos (Antunes Rangel&Araujo) – 24
1 - Michel Gagnon - Notas de aula do curso: CI065 Algoritmos eteoria dos grafos UFPR, 2002.
2 - Shioura, A., A. Tamura e T. Uno, An optimal algorithm forscanning all spanning trees of undirected graphs. SIAM Journal onComputing, 26(3), 678-692, 1997.
3 - , Minty, G., A Simple Algorithm for Listing All the Trees of aGraph. Circuits and Systems, IEEE Transactions on Circuit Theory,Volume 12, Issue 1, Page(s): 120 - 120, Mar 1965.