Teoria dos Grafos - Unesp · 2016-04-28 · Teoria dos Grafos (Antunes Rangel&Araujo) – 7...

24
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.

Transcript of Teoria dos Grafos - Unesp · 2016-04-28 · Teoria dos Grafos (Antunes Rangel&Araujo) – 7...

Page 1: 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.

Teoria dos Grafos

Valeriano A. de OliveiraSocorro Rangel

Silvio A. de AraujoDepartamento de Matemática Aplicada

[email protected], [email protected], [email protected]

Árvores GeradorasPreparado a partir do texto:

Rangel, Socorro. Teoria do Grafos, Notas de aula, IBILCE, Unesp, 2002-2013.

Page 2: 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.

Árvores Geradoras

Árvores Geradoras

Page 3: 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.

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:

Page 4: 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.

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.

Page 5: 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.

Á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?

Page 6: 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.

Á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?

Page 7: 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.

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.

Page 8: 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.

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.

Page 9: 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.

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 .

Page 10: 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.

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].

Page 11: 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.

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.

Page 12: 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.

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:

Page 13: 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.

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.

Page 14: 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.

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?

Page 15: 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.

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.

Page 16: 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.

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.

Page 17: 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.

Á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:

Page 18: 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.

Á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).

Page 19: 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.

Á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.

Page 20: 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.

Á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.

Page 21: 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.

Á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:

Page 22: 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.

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?

Page 23: 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.

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.

Page 24: 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.

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.