ufes cc/ec/mestrado teoria dos grafos Árvores. ufes cc/ec/mestrado teoria dos grafos Árvores grafo...

45
UFES CC/EC/Mestrado Teoria dos Grafos Árvores

Upload: internet

Post on 16-Apr-2015

112 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvores

Page 2: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvores

• Grafo Acíclico: não possui ciclos

Page 3: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvores

• Grafo Acíclico: não possui ciclos

• Uma árvore é um grafo conexo acíclico

Page 4: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvores

• Grafo Acíclico: não possui ciclos

• Uma árvore é um grafo conexo acíclico

Todas as árvores com 6 vértices

Page 5: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Floresta

Um grafo acíclico é também chamado de floresta.

Page 6: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Um grafo T é uma árvore

sss

existir um único caminho entre cada

par de vértices de T

Page 7: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Prova

• () Por contradição!!!

– T é uma árvore• v e w dois vértices quaisquer de T

– não existe caminho entre v e w ou– P1e P2: dois caminhos-(u,v) distintos

» Existem necessariamente dois vértices t1 e t2 P1 e P2 tais que entre t1 e t2, P1 e P2 são distintos

Page 8: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Prova

• () Também por contradição!!!– existe um único caminho entre cada par de

vértices: T é conexo– Sup. T não é acíclico:

• existe um ciclo C em T• seja {v,w} uma aresta de C:

– Dois caminhos entre v e w em T (contradição)

Page 9: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Se T é uma árvore então m=n-1

Prova:

• Por indução em n!!!!

Page 10: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Folha de uma árvore

• Uma folha de uma árvore é um vértice v tal que d(v) = 1

Page 11: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema

Toda árvore possui

pelo menos duas folhas, n > 1.

Page 12: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Um grafo conexo é uma árvore

sss

toda aresta é uma ponte

Page 13: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

O centro de uma árvore

possui um ou dois vértices.

Page 14: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvore enraizada

• Uma árvore no qual um vértice é destacado dos outros (raíz) é chamada de árvore com raíz ou enraizada.• Nível de uma árvore enraizada: um vértice v

i é dito estar no nível i da árvore se v

i está

a uma distância i da raiz.• Altura: nível máximo da árvore

Page 15: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Toda árvore é um grafo bipartido.

Exercício!!!

Page 16: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvore binária

• Uma árvore estritamente binária é uma classe especial de árvore enraizada

• Cada vértice possui exatamente 2 filhos, ou seja, existe apenas um vértice com grau 2 (raíz) e os outros vértices possuem grau 1 ou 3

Page 17: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvore binária

• Propriedades:

– a) o número de vértices é ímpar– b) o número de folhas é (n+1)/2– c) a altura mínima de uma árvore

estritamente binária com n vértices é log

2 (n+1) - 1

Page 18: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Subgrafo gerador

• Relembrando: um grafo H é subgrafo de G se V(H) V(G) e E(H) E(G). Se V(H) = V(G) então H é subgrafo gerador ou de espalhamento de G.

Page 19: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvore Geradora

• Uma árvore geradora é um subgrafo gerador de G que é uma árvore.

• Uma árvore geradora em um grafo G é um subgrafo minimal que conecta todos os vértices de G;

Page 20: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Todo grafo conexo possui uma árvore geradora

Page 21: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Corolário:

Se G é conexo, então m n-1

Page 22: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Seja T uma árvore geradora de um grafo conexo G

e seja a uma aresta de G, a T. Então T+ a contém um único ciclo.

Page 23: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Prova:

• Como T é acíclico, cada ciclo de T+a contém a.

C é um ciclo de T+e sse C-e é um caminho em T ligando os extremos de e.

Pelo teorema, T tem um único caminho desse tipo, logo T+e contém um único ciclo.

Page 24: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Exercício

Seja G um grafo conexo e seja e uma aresta de G.

A aresta e pertence a toda árvore geradora de G se e

somente se e é ponte em G

Page 25: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESTeoria dos Grafos

Algoritmos

• Para construção de uma árvore geradora;

• Para construção de uma árvore geradora mínima.

CC/EC/Mestrado

Page 26: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESTeoria dos Grafos

Exemplo

CC/EC/Mestrado

1

2 3

47

56

Page 27: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Busca em Profundidadeentrada: G = (V,E), Lista de Adjacência de G: A(v), v V

1. i ← 1;

2. F ← ;

3. para-todo v V faça

4. indice(v) ← 0;

5. fim-para-todo

6. enquanto existir u, indice(u) = 0 faça

7. PBP(u);

8. fim-enquanto

saída: F

PBP(v)

{

1. indice(v) ← i;

2. i ← i+1;

3. para-todo v´ A(v) faça

4. se indice(v´) = 0 então

5. F ← F U {{v,v´}};

6. PBP(v´);

7. fim-se

8. fim-para-todo

}

Page 28: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Complexidade

• Para cada v V, PBP(v) é chamado apenas uma vez quando o vértice ainda não foi visitado (indice(v) = 0)

• Tempo gasto por PBP(v): proporcional a d(v)• Tempo gasto por todas as chamadas de PBP(v):

proporcional a m• Linhas 3 – 8: O(n)• Construção de F: O(m)• Complexidade: O(max {n,m})

Page 29: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvores geradoras em um grafo valorado

• O peso de uma árvore geradora T de G é definido como a soma dos valores de todas as arestas de T.

• Diferentes árvores geradoras de T podem ter diferentes pesos.

• Árvore Geradora mínima: a árvore geradora de G de menor peso.

Page 30: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Árvore geradora mínima

• Aplicações:– Em problemas de interligação (comunicação, redes de luz, esgotos, etc.)

– Em problemas de construção de redes de menor custo (malhas

rodoviárias, redes de computadores)

Page 31: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Exemplo

• Suponha que n cidades devem ser conectadas por uma rede de estradas. Existe um custo cij

associado à construção de uma estrada entre as cidades i e j. O problema então se resume em

determinar a rede com menor custo que conecte todas as cidades. Essa rede será uma árvore

geradora, caso contrário, é sempre possível retirar uma aresta e obter um caminho mais barato entre

duas cidades

Page 32: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Uma árvore geradora T

de um grafo conexo valorado G é mínima

sss

não existe qualquer outra árvore geradora de G, a uma distância 1 de T,

cujo peso é menor que o peso de T.

Distância entre Ti e Tj de G: número de arestas de G presentes em Ti mas não presentes em Tj.

Page 33: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESTeoria dos Grafos

Exemplo

CC/EC/Mestrado

1

2 3

47

56

3

4

75

626

5

4

89

7

106

Page 34: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Algoritmo de Primentrada: G = (V,E), Lista de Adjacência de G: A(v), v V, matriz de pesos

1. T ← ;

2. V´ ← {u};

3. para-todo v V – V´ faça

4. L(v) ← peso ({u,v});

5. fim-para-todo

6. enquanto V´ V faça

7. ache um vértice w tal que L(w) = min {L(v)| v V-V´};

8. u = o vértice de V´, ligado a w, representando a aresta com o menor custo;

9. e = {u,w};

10. T ← T U {e};

11. V´← V´ U {w};

12. para-todo v V – V´ faça

13. se peso({v,w}) < L(v) então

14. L(v) ← p({v,w});

15. fim-se

16. fim-para-todo

17. fim-enquanto

saída: T

Page 35: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Complexidade

• Linhas 6 - 16: n-1 vezes

• Linhas 7- 8: n-1 vezes

• Linhas 11 – 15: n-1 vezes

• Complexidade: O(n2)

Page 36: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFES

Exemplo de aplicação

Page 37: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

O algoritmo de Prim acha

uma árvore geradora mínima

de um grafo conexo G

não orientado.

Page 38: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFES

Ideia

A árvore geradora mínima é construída iterativamente e é mínima para cada

conjunto V'. Cada nova aresta selecionada é a de menor valor, com um dos extremos em V' e o outro em V – V'.

Page 39: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Algoritmo de Kruskal

entrada: G = (V,E), Lista de Adjacência de G: A(v), v V,

matriz de pesos

1. ordenar as arestas e de G pelo valor de seus pesos

2. T ← ;

3. para-todo i = 1, ..., |E| faça

4. se T U {e} é acíclico então

5. T ← T U {e};

6. fim-se

7. fim-para-todo;

saída: T

Page 40: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Complexidade

• Os custos relevantes neste algoritmo são o custo da ordenação das arestas (passo 1) e a verificação se a aresta forma um ciclo (passo 4)

• Iterativamente o algoritmo forma componentes conexas acíclicas. Então, computar a linha 4 significa verificar se a próxima aresta não liga vértices de um mesmo conjunto.

Page 41: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

Complexidade

• Para a implementação da linha 4 podem ser usadas estruturas de dados para conjuntos disjuntos

Usando essa forma de implementação, o algoritmo fica limitado pela complexidade de ordenar a lista de arestas, pois a operação de verificar se é acíclico fica mais barata. Assim teremos O(m*log m). Se |E| < |V|2, teremos O(m*log n)

Page 42: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFESCC/EC/Mestrado Teoria dos Grafos

O algoritmo de Kruskal acha

uma árvore geradora mínima

de um grafo conexo G

não orientado.

Page 43: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFES

Ideia• Seja G = (V,E) o grafo conexo processado pelo algoritmo.

Como G é conexo, G possui uma árvore geradora.

Inicialmente T é vazio => T é mínimo

Tendo T k arestas, o algoritmo seleciona a aresta de menor peso no conjunto de arestas não visitadas. Seja ak+1 essa aresta. Há quatro casos:

a) T já contém n-1 arestas. Nesse caso, a solução T que por indução é uma árvore mínima, é retornada.

b) A aresta ak+1 liga dois vértices de T que são no mesmo componente. Nesse caso, ak+1 é rejeitada e T não muda.

c) Um dos dois vértices ligados por ak+1 não pertence a T.

d) A aresta ak+1 liga dois vértices de T. Nesse caso, são dois vértices de componentes diferentes.

Page 44: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFES

Exercícios

1) Prove que uma aresta pendente (isto é, uma aresta que liga um vértice de grau 1) em um grafo conexo G é contida em toda árvore geradora de G.

2) Prove que duas cores são suficientes para colorir os vértices de uma árvore de tal maneira que nenhum vértice seja adjacente a um vértice da mesma cor.

3) Um grafo pode ter várias árvores geradoras diferentes. Onde essa possibilidade aparece no algoritmos de Kruskal e Prim?

4) aplique o algoritmo de Kruskal no grafo do slide 36. A árvore obtida é a mesma?

Page 45: UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos

UFES

Exercícios

Indique se é Verdadeiro ou Falso:

a)Os algoritmos de Kruskal e Prim sempre retornam a mesma árvore geradora de um grafo conexo onde todas as arestas têm pesos diferentes.

b) Supondo que um grafo possui exatamente duas arestas com o mesmo peso. O algoritmo de Prim retorna a mesma árvore geradora independentemente de qual aresta foi selecionada?