A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)"— Transcrição da apresentação:

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

2 Matemática Discreta/ GrafosCIn - UFPE141 Uma árvore é um grafo conexo não orientado e sem circuitos simples Árvores

3 Matemática Discreta/ GrafosCIn - UFPE142 Uma floresta é um grafo cujas componentes conexas são árvores

4 Matemática Discreta/ GrafosCIn - UFPE143 Teorema Um grafo não orientado é uma árvore se e somente se existe um único caminho simples entre qualquer par de vértices. Prova Assuma 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.

5 Matemática Discreta/ GrafosCIn - UFPE144 Á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.

6 Matemática Discreta/ GrafosCIn - UFPE145 Árvore Enraizada Usualmente representamos graficamente a raiz no topo. Podemos transformar uma árvore sem raiz numa árvore enraizada simplesmente escolhendo um vértice como raiz.

7 Matemática Discreta/ GrafosCIn - UFPE146 Á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

8 Matemática Discreta/ GrafosCIn - UFPE147 Á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

9 Matemática Discreta/ GrafosCIn - UFPE148 Á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.

10 Matemática Discreta/ GrafosCIn - UFPE149 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 xw t u x v w

11 Matemática Discreta/ GrafosCIn - UFPE150 Á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

12 Matemática Discreta/ GrafosCIn - UFPE151 Á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 x w t uv z -

13 Matemática Discreta/ GrafosCIn - UFPE152 Á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.

14 Matemática Discreta/ GrafosCIn - UFPE153 Árvore Balanceada? h=3 Nível(a) =1 Não está balanceada

15 Matemática Discreta/ GrafosCIn - UFPE154 Á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.

16 Matemática Discreta/ GrafosCIn - UFPE155 Árvores

17 Matemática Discreta/ GrafosCIn - UFPE156 Á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 direita A árvore cuja raiz é o filho da esquerda de um vértice é chamada de subárvore da esquerda desse vértice. a d c b e b d e Subárvore da esquerda de a

18 Matemática Discreta/ GrafosCIn - UFPE157 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.

19 Matemática Discreta/ GrafosCIn - UFPE158 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.

20 Matemática Discreta/ GrafosCIn - UFPE159 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

21 Matemática Discreta/ GrafosCIn - UFPE160 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

22 Matemática Discreta/ GrafosCIn - UFPE161 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?

23 Matemática Discreta/ GrafosCIn - UFPE162 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. Aplicando o resultado do teorema: n = (mf -1)/(m-1) Temos que n = ( )/(4-1) = 85. São então 85 nós e assim 85 – 64 = 21 nós internos, ou pessoas que enviaram as cartas.

24 Matemática Discreta/ GrafosCIn - UFPE163 Teorema Existem no máximo m h folhas em uma árvore m-ária de altura h. Prova: por indução sobre a altura  h-1 Cada uma dessas subárvores possui altura no máximo h-1. Portanto, pela H.I. existem no máximo m h-1 folhas em cada uma delas. Como existem no máximo m dessas subárvores, cada uma com no máximo m h-1 folhas, então existem no máximo m.m h-1 = m h folhas.

25 Matemática Discreta/ GrafosCIn - UFPE164 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

26 Matemática Discreta/ GrafosCIn - UFPE165 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ó,

27 Matemática Discreta/ GrafosCIn - UFPE166 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

28 Matemática Discreta/ GrafosCIn - UFPE167 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 T 1, T 2,... T n 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 T 1, em seguida em T 2, e assim sucessivamente até que T n seja percorrida em pré-ordem.

29 Matemática Discreta/ GrafosCIn - UFPE168 Exemplo a g h d c j e b f k pon m i l

30 Matemática Discreta/ GrafosCIn - UFPE169 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 T 1, T 2,... T n as subárvores de r da esquerda para a direita. O caminhamento em ordem começa fazendo um percorrendo em ordem em T 1 em ordem, em seguida visita r, e continua fazendo um caminhamento em ordem em T 2, em T 3, e finalmente em T n.

31 Matemática Discreta/ GrafosCIn - UFPE170 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 T 1, T 2,... T n as subárvores de r da esquerda para a direita. O caminhamento em pós-ordem começa percorrendo T 1 em pós- ordem, em seguida T 2, T 3,... T n, e finaliza visitando r.

32 Matemática Discreta/ GrafosCIn - UFPE171 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 executas na subárvore da esquerda e depois na direita

33 Matemática Discreta/ GrafosCIn - UFPE172 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. + xy + xy 2 ^

34 Matemática Discreta/ GrafosCIn - UFPE173 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 + xy + xy 2 ^ - x4 - x4 3 /

35 Matemática Discreta/ GrafosCIn - UFPE174 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 + xy 2 ^ - x4 3 / +

36 Matemática Discreta/ GrafosCIn - UFPE175 Caminhamento em ordem: ((x+y)^2) + ((x-4)/3) + xy 2 ^ - x4 3 / +

37 Matemática Discreta/ GrafosCIn - UFPE176 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 xy 2 ^ - x4 3 / +

38 Matemática Discreta/ GrafosCIn - UFPE177 Qual o valor da expressão + - * / ^2 3 4 ? + - * /^ * / * 2 3 5/ * *

39 Matemática Discreta/ GrafosCIn - UFPE178 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 / + + xy 2 ^ - x4 3 / +

40 Matemática Discreta/ GrafosCIn - UFPE179 Qual o valor da expressão em notação pós-fixa? * - 4 ^9 3 / ^9 3 / ^ 9 3 / /

41 Matemática Discreta/ GrafosCIn - UFPE180 Encontre a árvore enraizada ordenada que representa a seguinte proposição composta (¬(pΛq))↔(¬p v ¬q) Λ pq ↔ p v ¬ q ¬ Λ pq ¬ p ¬ q ¬ p v ¬ q ¬ Λ pq ¬

42 Matemática Discreta/ GrafosCIn - UFPE181 Forneça a notação pré-fixa e pós-fixa dessa expressão (¬(pΛq))↔(¬p v ¬q) ↔ p v ¬ q ¬ Λ pq ¬ 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

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

44 Matemática Discreta/ GrafosCIn - UFPE183 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.

45 Matemática Discreta/ GrafosCIn - UFPE184 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 sr a e

46 Matemática Discreta/ GrafosCIn - UFPE185 2) a:1,e:01,r:001, s:0001, n:00001 s r e a 0 1 1


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

Apresentações semelhantes


Anúncios Google