Árvores - claudiaboeres / FrontPageclaudiaboeres.pbworks.com/f/CursoTeoriaDosGrafoAula08.pdf · é...

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

Transcript of Árvores - claudiaboeres / FrontPageclaudiaboeres.pbworks.com/f/CursoTeoriaDosGrafoAula08.pdf · é...

UFESCC/EC/Mestrado Teoria dos Grafos

T

Árvores

UFESCC/EC/Mestrado Teoria dos Grafos

T

Á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

T

Á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

T

Floresta

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

UFESCC/EC/Mestrado Teoria dos Grafos

T

Teorema:

Um grafo T é uma árvoresss

existir um único caminho entre cada par de vértices de T

UFESCC/EC/Mestrado Teoria dos Grafos

T

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

T

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

T

Teorema:

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

Prova:

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

UFESCC/EC/Mestrado Teoria dos Grafos

T

Folha de uma árvore• Uma folha de uma árvore é um vértice v tal

que d(v) = 1

UFESCC/EC/Mestrado Teoria dos Grafos

T

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

T

Distância

• Conceito útil para se medir a localização relativa entre diferentes vértices de uma árvore ou de um grafo

• Distância d(v,w) na árvore: – número de arestas do caminho que liga v a w

UFESCC/EC/Mestrado Teoria dos Grafos

T

Teorema:

O centro de uma árvore possui um ou dois vértices.

UFESCC/EC/Mestrado Teoria dos Grafos

T

Á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

T

Teorema:

Toda árvore é um grafo bipartido.

Exercício!!!

UFESCC/EC/Mestrado Teoria dos Grafos

T

Á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

T

Árvore binária

• Propriedades:

a) o número de vértices é ímparb) o número de folhas é (n+1)/2c) 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

T

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

T

Á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

T

Teorema:

Todo grafo conexo possui uma árvore geradora

UFESCC/EC/Mestrado Teoria dos Grafos

T

Corolário:

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

UFESCC/EC/Mestrado Teoria dos Grafos

T

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

T

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.

UFESTeoria dos Grafos

T

Algoritmos

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

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

CC/EC/Mestrado

UFESCC/EC/Mestrado Teoria dos Grafos

T

Busca em Profundidadeentrada: G = (V,E), Lista de Adjacência de G: A(v), v ∈ V1. i ← 1;2. F ← ∅;3. para-todo v ∈ V faça4. indice(v) ← 0; 5. fim-para-todo6. enquanto existir u, indice(u) = 0 faça7. PBP(u); 8. fim-enquantosaí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

T

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

T

Á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

T

Á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

T

Teorema:Uma árvore geradora T

de um grafo conexo valorado G é mínimasss

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.

UFESCC/EC/Mestrado Teoria dos Grafos

T

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ão14. L(v) ← p({v,w});15. fim-se16. fim-para-todo17. fim-enquanto saída: T

UFESCC/EC/Mestrado Teoria dos Grafos

T

Complexidade

• Linhas 6 - 16: n-1 vezes• Linhas 7- 8: n-1 vezes• Linhas 11 – 15: n-1 vezes

• Complexidade: O(n2)

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.

UFESCC/EC/Mestrado Teoria dos Grafos

Algoritmo de Kruskalentrada: G = (V,E), Lista de Adjacência de G: A(v), v ∈ V, matriz de pesos 1. se peso (ei) > peso (ej) então 2. i > j; 3. fim-se // ordenar as arestas pelos pesos 4. T ← ∅; 5. para-todo i = 1, ..., |E| faça 6. se T U {e} é acíclico então 7. T ← T U {e}; 8. fim-se 9. fim-para-todo;saída: T

UFESCC/EC/Mestrado Teoria dos Grafos

Complexidade

• Exercício!!