aula 18 – Árvores adelson-velskii e...

Post on 29-Mar-2018

217 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Aula 18 – Árvores Adelson-Velskii e Landis

Algoritmos e Estruturas de Dados I

Prof. Jesús P. Mena-Chalcojesus.mena@ufabc.edu.br

Q1-2017

2

AVL

G.M. Adelson-Velskii y E.M. Landis“An algorithm for the organization of information”. Proceedings of the USSR Academy of Sciences, vol. 146, pp. 263–266, 1962

AVL foi a primeira estrutura (conhecida) de árvore de altura balanceada/equilibrada.

3

AVL

Georgy M. Adelson-VelskyRussia

(1922-2014/abril/26)

Evgenii Mikhailovich Landis Ucrania

(1921-1997)

5

Árvores AVL

Uma árvore AVL é definida como:Uma árvore vazia é uma árvore AVL.Sendo T uma ABB, com subárvores esquerda (L) edireita (R) , T será uma árvore AVL contanto que:

L e R são árvores AVL

A definição de uma ABB de altura equilibrada (AVL) requer que cada subárvore seja também de altura equilibrada.

6

Fator de balanceamento

O fator de balanceamento/equilibrio de um nó T em uma ABB é definido como:

Para qualquer nó T em uma árvore AVL, o fator de balanceamento assume o valor: +1, 0, -1.

7

RR

8

LL

9

LR

10

LR (outro exemplo)

11

RL

12

Rotações

13

Rotações

O processo de rebalanceamento é conduzido utilizando 4 tipos de rotações

LLRRLRRL

Suponha que o novo nó inserido é Y:As rotações são caracterizadas pelo ancestral A (com fator de balanceamento +2 ou -2) mais próximo do nó Y.

14

Rotações

LL: Y inserido na subárvore esquerda da subárvore esquerda de ALR: Y inserido na subárvore direita da subárvore esquerda de ARR: Y inserido na subárvore direita da subárvore direita de ARL: Y inserido na subárvore esquerda da subárvore direita de A

Seja B o filho de A no qual ocorreu a inserção de YLL (A = +2; B = +1)LR (A = +2; B = -1)RR (A = -2; B = -1)RL (A = -2; B = +1)

A

B

Y

15

Rotação LL

16

Rotação LL

17

Rotação LL

18

Rotação LL

19

Rotação LL

20

Rotação LL

21

Rotação LL

22

Rotação LL

23

Rotação RR

24

Rotação RR

25

Rotação RR

26

Rotação RR

27

Rotação RR

28

Rotação RR

29

Rotação RR

30

Rotação RR

31

Rotação LR (a)

32

Rotação LR (b)

33

Rotação LR (b)

34

Rotação LR (b)

35

Rotação LR (c)

36

Rotação LR (c)

37

Rotação LR (c)

38

Rotação LR

39

Rotação LR

40

Rotação LR

41

Rotação LR

42

Rotação LR

43

Rotação LR

44

Rotação LR

45

Rotação LR

46

Rotação RL (a)

47

Rotação RL (b)

48

Rotação RL (b)

49

Rotação RL (b)

50

Rotação RL (c)

52

Atividade

Suponha que serão realizadas as seguintes inserções de chaves na árvore AVL ao lado:

72136

(a) Apresente a árvore AVL resultante (1 árvore)(b) Indique o tipo de rotações consideradas em cada inserção

4

5

53

Atividade em aula

Operações

7 : RR2 : --1 : LL3 : LR6 : RL

54

Provamos que AVL é uma árvores balanceada?

55

Balanceamento de árvores AVL

Uma árvore AVL de altura h é balanceada se h = O(log(n))

Outra forma de pensar: Dada uma árvore AVL de altura h, qual seria o valor mínimo possivel para n?

56

Balanceamento de árvores AVL

Uma árvore AVL de altura h é balanceada se h = O(log(n))

Outra forma de pensar: Dada uma árvore AVL de altura h, qual seria o valor mínimo possivel para n?

h-1

h-2

57

Balanceamento de árvores AVL

Seja Th uma árvore AVL com altura h e número mínimo de nós.

T1 T2 T3 T4

Nesta definição → h=4

58

Balanceamento de árvores AVL

Basta calcular um limite inferior do número de nós de Th.Seja |Th| o número de nós de Th.

59

Analogia com a sequência de Fibonacci

60

AVL

Como Temos

61

AVL

AVL é uma árvore balanceada!

Como Temos

62

AVL

●Um teorema provado por Adelson-Velskii e Landis garante que a árvore balanceada nunca será 45% mais alta que a correspondente árvore perfeitamente balanceada, independentemente do número de nós existentes.

63

AVL

64

Implementações

Árvores balanceadas são muito utilizadas em problemas reais:

JAVA: TreeMap, TreeSet.C++: Map, Set do STL.

Custo de busca, inserção, remoção da árvore AVL: O(log n)

65

Considerações de avaliações empíricas

Há um custo adicional para manter uma árvore balanceada, mesmo assim garantindo O(log2 n), mesmo no pior caso, para todas as operações.

Em testes empíricos:Uma rotação é necessária a cada duas inserções.Uma rotação é necessária a cada cinco remoções.

A remoção em árvore balanceada é tão simples (ou tão complexa) quanto a inserção.

66

Sobre as rotações

(simplificando um pouco...)

67

Rotação: Esquerda & Direita

Varredura e-r-d: T1, X, T2, Y, T3 Varredura e-r-d: T1, X, T2, Y, T3

X

YT1

T3T2

Y

T3X

T2T1

68

Rotação: Esquerda & Direita

X

YT1

T3T2

Y

T3X

T2T1

Varredura e-r-d: T1, X, T2, Y, T3 Varredura e-r-d: T1, X, T2, Y, T3

R. a direita(y)

R. a esquerda(x)

69

Rotação: LL

p

T3f

T2T1

a

T4 p

f

T2T1

a

T4T3

R. a direita(a)

70

p

T3

Rotação: RR

a

T1

f

T4

p

a

T2T1

f

T4T3

R. a esquerda(a)T2

71

Rotação: LR

p

fT1

a

T4f

p

T2T1

a

T4T3T3T2

72

p

T2T1

Rotação: LR

p

fT1

a

T4f

p

T2T1

a

T4T3

R. a esquerda(p)

T3T2

f

a

T4

T3

R. a direita(a)

73

Rotação: RL

T1

f

a

pf

a

T2T1

p

T4T3T3T2

T4

74

Rotação: RL

T1

f

a

pf

a

T2T1

p

T4T3

R. a direita(p)

T3T2

R. a esquerda(a)

T4

T1

T2

a

f

p

T4T3

75

Como determinar o tipo de rotação?

76

LL

LR

77

RR

RL

78

Remoção em árvores AVL

79

Remoção

A remoção em árvores AVL é similar à remoção em umaABB.

Todavia, é preciso verificar o balanceamento e, senecessário, aplicar algumas das rotações.

80

Remoção

81

Remoção

82

Remoção

83

Remoção

84

Remoção

85

Remoção

86

Remoção

87

Remoção

88

Remoção

89

Remoção

90

Remoção

91

Remoção

92

Remoção

93

Remoção

94

Sobre os slides

Slides baseados em:

Szwarcfiter, J.L. & Markezon, L. Estruturas de Dados e seus Algoritmos, 3a edição, LTC, 2010.

Horowitz, E. & Sahni, S.; Fundamentos de Estruturas de Dados, Editora Campus, 1984.

Wirth, N.; Algoritmos e Estruturas de Dados, Prentice/Hall do Brasil, 1989.

Material de aula do Prof. José Augusto Baranauskas (USP/Riberão Preto)

95

Árvores de Busca Binária

Por que ABBs?São estruturas eficientes de busca (se a árvore estiver balanceada).Permitem minimizar o tempo de acesso no pior caso.

Complexidade das operações de busca, inserção, remoção:

Se balanceada → O(lg (n))

Senão → O(n)

96

Árvores balanceadas

As seguintes árvores são as ditas balanceadas – com altura O(lg(n)):

AVLRubro-negras / vermelho-preto / red-black treeB

As árvores Rubro-negrasapresentam uma alturade, no máximo, igual a2 lg(n+1).

97

Árvores balanceadas

98

Árvore Rubro-Negra

Rudolf BayerComputer scientist

99

Árvore Rubro-Negra

Somente em 1978, Leo Guibas e Robert Sedgewick, atribuiram a 'coloração' na árvore.

A cor "vermelho" foi escolhida porque era a mais bonita produzida pela impressora laser a cores disponíveis para os autores, enquanto trabalhavam na Xerox PARC.

100

Árvore Rubro-Negra

As ARN possuem um bit extra para armazenar a cor de cada nó, que pode ser VERMELHO ou PRETO.

101

Árvore Rubro-Negra

top related