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

Post on 16-Apr-2015

112 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

UFESCC/EC/Mestrado Teoria dos Grafos

Árvores

UFESCC/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

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

UFESCC/EC/Mestrado Teoria dos Grafos

Floresta

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

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

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

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)

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

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

Prova:

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

UFESCC/EC/Mestrado Teoria dos Grafos

Folha de uma árvore

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

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema

Toda árvore possui

pelo menos duas folhas, n > 1.

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Um grafo conexo é uma árvore

sss

toda aresta é uma ponte

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

O centro de uma árvore

possui um ou dois vértices.

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

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Toda árvore é um grafo bipartido.

Exercício!!!

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

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

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.

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;

UFESCC/EC/Mestrado Teoria dos Grafos

Teorema:

Todo grafo conexo possui uma árvore geradora

UFESCC/EC/Mestrado Teoria dos Grafos

Corolário:

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

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.

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.

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

UFESTeoria dos Grafos

Algoritmos

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

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

CC/EC/Mestrado

UFESTeoria dos Grafos

Exemplo

CC/EC/Mestrado

1

2 3

47

56

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

}

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})

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.

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)

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

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.

UFESTeoria dos Grafos

Exemplo

CC/EC/Mestrado

1

2 3

47

56

3

4

75

626

5

4

89

7

106

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

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)

UFES

Exemplo de aplicação

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.

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

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

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.

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)

UFESCC/EC/Mestrado Teoria dos Grafos

O algoritmo de Kruskal acha

uma árvore geradora mínima

de um grafo conexo G

não orientado.

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.

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?

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?

top related