Árvores (introdução) anjolina grisi de oliveira obs: vários slides foram cedidos por

50
Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)

Upload: lolita

Post on 19-Jan-2016

21 views

Category:

Documents


1 download

DESCRIPTION

Grafos. Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA). Árvores. Uma árvore é um grafo conexo não orientado e sem circuitos simples. Uma floresta é um grafo cujas componentes conexas são árvores. Teorema - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Árvores (introdução)

Anjolina Grisi de OliveiraObs: vários slides foram cedidos por

Adolfo Almeida Duran (UFBA)

Page 2: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 2

Uma árvore é um grafo conexo não orientado e sem circuitos simples

Árvores

Page 3: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 3

Uma floresta é um grafo cujas componentes conexas são árvores

Page 4: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 4

TeoremaUm grafo não orientado é uma árvore se e somente se existe um único caminho simples entre qualquer par de vértices.ProvaAssuma que G é uma árvore. Logo G é um grafo conexo e sem circuitos simples. Sejam x e y dois nós de G. Logo, como G é conexo, existe um caminho simples entre x e y. Adicionalmente, esse caminho é único, pois se existisse um outro caminho, o caminho formado através da combinação do caminho de x até y com o segundo caminho começando por y e chegando a x formaria um circuito, o que contraria a hipótese de que G é uma árvore.

Page 5: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 5

Árvore Enraizada

Uma árvore T = (V,E) é denominado enraizada quando algum vértice v é escolhido como especial. Esse vértice v é a raiz da árvore.

Page 6: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 6

Árvore EnraizadaUsualmente representamos graficamente a raiz no topo. Podemos transformar uma árvore sem raiz numa árvore enraizada simplesmente escolhendo um vértice como raiz.

Page 7: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 7

Árvore Enraizada ancestrais de j={e,c}

descendentes de j={i,k}

pai de j=e

filhos de j={i,k}

nível de j=2

altura da árvore =3

folhas={b,a,i,k,f,h,d}

Raiz = c

Page 8: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 8

Árvore Enraizada O nível de um vértice é o tamanho do único caminho da raiz até ele.

nível de j=2

A altura da árvore é o maior nível entre os nós. É o tamanho do maior caminho da raiz até uma das folhas.

altura da árvore =3

Raiz = c

Page 9: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 9

Árvore Enraizada

A raiz de uma árvore não possui pai, e todo vértice v diferente de r, possui um único pai.

Uma folha é um vértice que não possui filhos. Vértices que possuem filhos são chamados de vértices internos.Quando a raiz é o único nó do grafo ela é uma folha.

O nível da raiz é zero, de seus filhos é 1. O nível de um nó é igual ao nível de seu pai mais um.Para dois vértices irmãos v e w, nível(v)=nível(w).A altura de uma árvore é o valor máximo de nível(r) para todo vértice v de T.

Page 10: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 10

Subárvore

Seja T(V,E) uma árvore enraizada e v V.Uma subárvore Tv de T é uma árvore enraizada cuja raiz é v, definida pelo subgrafo induzido pelos descendentes de v mais o próprio v. A subárvore de raiz v é única para cada v V.

s v

xwt

u

x

v

w

Page 11: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 11

Árvore m-ária

Uma árvore enraizada é chamada de m-ária se todo nó interno não possui mais que m filhos. A árvore é chamada árvore m-ária cheia se todo nó interno possui exatamente m filhos. Uma árvore m-ária com m=2 é chamada de árvore binária.

3-ária Binária

Page 12: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 12

Árvore m-ária

A árvore é chamada árvore m-ária cheia se todo nó interno possui exatamente m filhos. Uma árvore m-ária com m=2 é chamada de árvore binária.

Binária cheia

s

xw

t

u v

z-

Page 13: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 13

Árvore m-ária

Uma árvore enraizada m-ária de altura h é balanceada se todas as folhas estão no nível h ou h-1.

Page 14: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 14

Árvore Balanceada?

h=3

Nível(a) =1

Não está balanceada

Page 15: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 15

Árvore Enraizada Ordenada

Na definição de árvore enraizada, é irrelevante a ordem em que os filhos de cada vértice v são considerados.

Caso a ordenação seja relevante a árvore é denominada enraizada ordenada.

Assim, para cada vértice v pode-se identificar o primeiro filho de v (o mais a esquerda), o segundo filho (o segundo mais a esquerda), etc.

Page 16: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 16

Árvores

Page 17: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 17

Árvore enraizada ordenada No caso de árvores binárias, se um nó interno possui dois filhos, temos o filho da esquerda e o filho da direitaA árvore cuja raiz é o filho da esquerda de um vértice é chamada de subárvore da esquerda desse vértice.

a

d

cb

e

b

de

Subárvore da esquerda de a

Page 18: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 18

Teorema

Uma árvore com n nós possui n-1 arestas.

Prova

Definimos uma bijeção entre as arestas e os vértices diferentes da raiz, de forma que associamos cada vértice terminal de uma aresta com ela própria. Como existem n-1 nós além da raiz, logo existem n-1 arestas na árvore.

Page 19: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 19

Teorema

Uma árvore m-ária cheia com i nós internos contem n = mi + 1 nós.

Prova

Cada vértice com exceção da raiz é filho de um nó interno. Como cada um dos i nós internos possui m filhos, existem mi nós na árvore além da raiz. Consequentemente, a árvore contem n = mi + 1 nós.

Page 20: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 20

Teorema

Uma árvore m-ária cheia com

(i) n nós possui i=(n-1)/m nós internos e l = ((m-1)n +1)/m folhas

(ii) i nós internos possui n = mi + 1 nós e f= (m-1)i + 1 folhas

(iii) f folhas possui n = (mf – 1)/ (m-1) nós e i= (f-1)/(m-1) nós internos

Page 21: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 21

Teorema - Prova

Uma árvore m-ária cheia com

(i) n nós possui i=(n-1)/m nós internos e l = ((m-1)n +1)/m folhas

Vimos que n= mi + 1, logo i = (n-1)/m.

Temos também que n = i + f, onde f é o número de folhas.

Logo, f = n – i;

f = n – (n-1)/m = (mn – (n-1))/m = (mn – n + 1)/m =

((m-1)n + 1)/m

Page 22: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 22

Exemplo

Suponha que alguém iniciou uma corrente de cartas. Cada pessoa que recebe a carta é convidada a enviá-la para outras quatro pessoas. Quantas pessoas receberam a carta, incluindo a pessoa que iniciou a corrente, se nenhuma pessoa recebeu mais que uma carta e se a corrente acabou depois que 64 pessoas leram a carta e não mais a enviaram? Quantas

pessoas enviaram a carta?

Page 23: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 23

Solução

A corrente pode ser representada usando uma árvore 4-ária. Os nós internos correspondem às pessoas que enviaram a carta, e as folhas às pessoas que não a enviaram.

Temos que 64 pessoas não enviaram a carta. Assim o número de folhas f é igual a 64.

Temos n = i + f e n = mi + 1.

Logo: 64 + i = 4.i + 1 => 3.i = 63 => i = 21

Resposta: 21 pessoas enviaram a carta

Page 24: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 24

Teorema Existem no máximo mh folhas em uma árvore m-ária de altura h.Prova: por indução sobre a altura

h-1 h-1 h-1

Cada uma dessas subárvores possui altura no máximo h-1. Portanto, pela H.I. existem no máximo mh-1 folhas em cada uma delas. Como existem no máximo m dessas subárvores, cada uma com no máximo mh-1 folhas, então existem no máximo m.mh-1 = mh folhas.

Page 25: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 25

Aplicações: Árvore binária de busca

Busca de itens numa lista.

Cada vértice é rotulado por uma chave de forma que a chave de um vértice é maior do que as chaves de todos os nós da subárvore da esquerda e menor do que as chaves dos nós da subárvore da direita.

55

30 80

45

90

32

3520

Page 26: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 26

Construindo uma árvore binária de busca

Procedimento recursivo que recebe uma lista de itens.

O primeiro item da lista é a raiz da árvore.

Para adicionar um novo item compare-o com os nós que já estão na árvore: comece pela raiz e siga para a esquerda se o item é menor que o item que rotula o nó que está sendo comparado ou siga para a direita, caso contrário. Quando o novo item é menor que um item cujo nó não tem filho da esquerda, adicione-o como filho da esquerda desse nó. Analogamente, quando o item é maior que o item cujo nó não tem filho da direita, adicione-o como filho da direita desse nó,

Page 27: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 27

Construindo uma árvore binária de busca

Construa uma árvore binária de busca a partir da seguinte lista:

55,30,80,90,35,32,20,45

Page 28: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 28

Exemplo: árvore binária de busca

Use a ordem alfabética para construir uma árvore binária de busca com as palavras da seguinte frase:

O título de uma das músicas de sucesso do cantor Bruno Mars é ``The Lazy Song´´.

Page 29: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 29

Caminhado em árvores enraizadas e ordenadas

Procedimento universal para ordenar os seus nós:

• Rotule a raiz com o inteiro 0. Em seguida rotule seus k filhos da esquerda para direita com 1,2,3,....,k.

• Para cada vértice v no nível n com rótulo A, rotule seus k filhos da esquerda para a direita com A.1, A.2, ...A.k.

Page 30: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 30

Exemplo0

3.13.2

32

1.1.1

1.1

1

1.2

1.1.2

1.1.2.31.1.2.2

1.1.2.1

3.1.2

3.3

3.1.1

Page 31: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 31

Procedimento universal para ordenar os nós

• Podemos ordenar os nós usando a ordem lexicográfica de seus rótulos.

x1.x2....xn < y1.y2....ym se

• existe um i, 0 i n, com x1= y1, x2=y2, ...xi-1 = yi-1 e xi< yi; ou

• n < m e xi=yi, para i =1,2,...,n.

Page 32: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 32

Caminhamento em pré-ordem

Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em pré-ordem de T é r. Caso contrário, sejam T1, T2,... Tn

as subárvores de r da esquerda para a direita. O caminhamento em pré-ordem começa visitando r e continua fazendo um caminhamento em pré-ordem em T1, em seguida em T2, e assim sucessivamente até que Tn seja percorrida em pré-ordem.

Page 33: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 33

Exemploa

gh

dc

j

e

b

f

k

pon

m

i

l

Page 34: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 34

Caminhamento em ordem

Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em ordem de T é r. Caso contrário, sejam T1, T2,... Tn as subárvores de r da esquerda para a direita. O caminhamento em ordem começa fazendo um percorrendo em ordem em T1 em ordem, em seguida visita r, e continua fazendo um caminhamento em ordem em T2, em T3 , e finalmente em Tn .

Page 35: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 35

Caminhamento em pós-ordem

Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em pós-ordem de T é r. Caso contrário, sejam T1, T2,... Tn

as subárvores de r da esquerda para a direita. O caminhamento em pós-ordem começa percorrendo T1 em pós-ordem, em seguida T2, T3 , ... Tn , e finaliza visitando r.

Page 36: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 36

Notação infixa, pré-fixa e pós-fixa

Podemos representar expressões complicadas, tais como proposições compostas, combinações de conjuntos, e expressões aritméticas usando árvores enraizadas ordenadas.

• O nós internos representam operações

• As folhas representam as variáveis ou valores

• As operações são executadas na subárvore da esquerda e depois na direita

Page 37: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 37

Notação infixa: exemplo Árvore que representa a expressão

((x+y)^2) + ((x-4)/3):• A árvore binária é construída de baixo para cima.

• Construímos a subárvore (x+y), depois a incorporamos como parte de uma subárvore maior que representa (x+y)^2.

+

x y

+

x y

2

^

Page 38: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 38

Notação infixa: ((x+y)^2) + ((x-4)/3)• Do mesmo modo a subárvore (x-4) é construída e incorporada à subárvore maior de (x-4)/3

+

x y

+

x y

2

^

-

x 4

-

x 4

3

/

Page 39: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 39

Notação infixa: ((x+y)^2) + ((x-4)/3)

Por último as subárvore de ((x+y)^2) e de

((x-4)/3) são combinadas para formar a expressão toda

+

x y

2

^

-

x 4

3

/

+

Page 40: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 40

Caminhamento em ordem: ((x+y)^2) + ((x-4)/3)

+

x y

2

^

-

x 4

3

/

+

Page 41: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 41

Qual é a forma pré-fixa da expressão ((x+y)^2) + ((x-4)/3) ? (notação polonesa)

Fazemos um caminhamento em pré-ordem

+ ^ + x y 2 / - x 4 3

+

x y

2

^

-

x 4

3

/

+

Page 42: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 42

Qual o valor da expressão + - * 2 3 5 / ^2 3 4 ?

+ - * 2 3 5 / ^2 3 4

+ - * 2 3 5 / 8 4

+ - * 2 3 5 / 8 4

+ - * 2 3 5 2

3

2

* 2 3

5 2+ -

6

5 2+ -

6

5 2+ -

1

- 6 5+

+

21

+

2

Page 43: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 43

Qual é a forma pós-fixa da expressão ((x+y)^2) + ((x-4)/3) ? Fazemos um caminhamento em pós-ordem

x y + 2 ^ x 4 – 3 / +

+

x y

2

^

-

x 4

3

/

+

Page 44: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 44

Qual o valor da expressão em notação pós-fixa?7 2 3 * - 4 ^9 3 / +

7 6 - 4 ^9 3 / +

1 4 ^ 9 3 / +

1 9 3 / +

1 3 +

4

Page 45: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 45

Encontre a árvore enraizada ordenada que representa a seguinte proposição composta (¬(pΛq))↔(¬p v ¬q)

Λ

p q↔

p

v

¬

q

¬Λ

p q

¬

p

¬

q

¬

p

v

¬

q

¬Λ

p q

¬

Page 46: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 46

Forneça a notação pré-fixa e pós-fixa dessa expressão (¬(pΛq))↔(¬p v ¬q)

p

v

¬

q

¬Λ

p q

¬

Pré-fixa: ↔¬Λpqv¬p¬q

Pós-fixa: pqΛ¬p¬q¬v↔

O caminhamento em ordem colocaria a negação imediatamente após o seu operando. Isso acontece sempre com os operadores unários.

A expressões em notação pré-fixa e pós-fixa não são ambíguas. Por esse motivo, são utilizadas em computação. Especialmente na construção de compiladores

Page 47: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 47

Desenhe a árvore enraizada ordenada da seguinte expressão aritmética escrita usando a notação pré-fixa.+ * + - 5 3 2 1 4Em seguida, escreva a mesma expressão em notação infixa.

-

5 3

2

+ 1

* 4

+

((((5-3)+2)*1)+4)

Page 48: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 48

Mais aplicações de árvores

1 Árvores de decisão 2 Código de prefixo-Pode ser usado em compactação de arquivos ou criptografia-Considere o problema em que letras são codificadas por sequências de bits-Uma maneira de garantir que nenhuma sequência de bits corresponde a mais de uma sequência de letras, é escolher códigos de forma que a cadeia de bits para uma letra nunca ocorre como prefixo de uma cadeia de bits de outra letra.

Page 49: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 49

Construa a árvore binária com os códigos de prefixo que representam os seguintes esquemas de codificação:

1) a:11, e:0, r:101, s:100 2) a:1,e:01,r:001, s:0001, n:00001

s r

a

e 0

1

1

10

0

Page 50: Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Matemática Discreta/ Grafos CIn - UFPE 50

2) a:1,e:01,r:001, s:0001, n:00001

s

r

0

1

1

0

e

a

0

1

1