90 likes | 199 Views
Árvores Equilibradas. Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries binárias PATRICIA. Árvores Quaternárias. Problema: conjuntos de pontos bidimensionais
E N D
Árvores Equilibradas • Sumário • Splay • B-tree • Vermelho-Preto • AA e BB • Multidimensionais • quaternárias • k-d • Pesquisa Lexicográfica • tries multivia • tries binárias • PATRICIA
Árvores Quaternárias • Problema: conjuntos de pontos bidimensionais • pesquisa binária está na origem da árvore de pesquisa binária • pesquisa quaternária • conjunto de pontos vistos como pontos de um plano • ponto de divisão é escolhido e divide o plano em 4 quadrantes g h f a c e q b d
Pesquisa quaternária • Ordenação dos pontos • na pesquisa binária, garante divisão a meio do número de pontos em cada passo • na pesquisa quaternária, não há ordenação que garanta a divisão por quatro • conjunto de pontos vistos como pontos de um plano • ponto de divisão é escolhido e divide o plano em 4 quadrantes • Conjunto desfavorável • qualquer divisão resulta em 2 quadrantes vazios • melhor que se pode garantir é a divisão a meio do número de pontos em cada passo • Minimax na escolha do ponto de divisão • minimizar, para todas as divisões possíveis, o número máximo de pontos em qualquer dos 4 quadrantes • ordenar pontos por x e por y e escolher o ponto na mediana
Pesquisa quaternária • Algoritmo de minimax • linear: em cada passo examina todos os pontos para excluir os que não são do quadrante • para melhorar pesquisa: construir árvore multivia • 4 filhos em cada nó, 1 por quadrante • nó interno tem 1 ponto a f h e b g c d
Construção de Árvores Quaternárias • Pode garantir-se árvore com altura logarítmica no número de pontos • ordenar pontos: por coordenada x, dentro desta por coordenada y • divisão do conjunto de pontos a meio pela mediana, e de novo a meio em cada metade • partição seguinte é em cada um dos subconjuntos • altura logarítmica resulta da redução dos pontos pelo menos a metade em cada partição • Eficiência em árvores quaternárias • Construção: O(N log N) • Pesquisa de gama de valores: O(M + N) com árvore de altura logarítmica
Árvores k-d • Árvore 2-d - melhor divisão em 4 dos conjuntos de pontos que a quaternária • decisão na árvore tomada alternadamente usando a coordenada x e a coordenada y • casos desfavoráveis não são os mesmos da árvore quaternária 3 g 1 3 h 2 f a c 2 e q 3 4 b d 3
Árvore 2-d • Construção • determinar mediana em x e partir conjunto de pontos • continuar sobre cada subconjunto independentemente • comparações em x usam pares de coordenadas, em y os pares inversos x a y f c x e g d h b y
Árvore 2-d • Caso desfavorável na árvore quaternária • árvore 2-d equilibrada e c g h g b d f h f e d a c b a
Árvores k-d • Generalização para elementos k-dimensionais • ordenação usa 1 atributo de cada vez • Equilíbrio - difícil de garantir • Generalização para elementos k-dimensionais • ordenação usa 1 atributo de cada vez • Equilíbrio - difícil de garantir, solução é reorganização periódica • Pesquisas típicas: sobre gamas de valores em cada dimensão • Eficiência da árvore 2-d • inserção ou pesquisa exacta: O(logN) em média (profundidade logarítmica), O(N) no pior caso • pesquisa de gamas de valores: dependem do tamanho do resultado • pesquisa de gama em árvore equlibrada: O(M + N) no pior caso • M tamanho da resposta • pior caso é percorrer árvore com metade da altura • Eficiência da árvore k-d • em árvore equilibrada, pesquisa de gama é no pior caso O(M + k N1 -1/k)