Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada [email protected], [email protected], [email protected]Árvores Geradoras Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos, Notas de aula, IBILCE, Unesp, 2002-2013.
24
Embed
Teoria dos Grafos - Unesp · 2016-04-28 · Teoria dos Grafos (Antunes Rangel&Araujo) – 7 Procedimento 2 1. Utilize o Procedimento 1 para obter uma árvore geradora inicial. 2.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Teoria dos Grafos
Valeriano A. de OliveiraSocorro Rangel
Silvio A. de AraujoDepartamento de Matemática Aplicada
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
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.
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:
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.
- 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.
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.