ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de...

48
ESTRUTURAS DE DADOS ESPACIAIS Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Estrutura de Dados II

Transcript of ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de...

Page 1: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

ESTRUTURAS DE DADOS

ESPACIAIS

Universidade Federal de Ouro Preto – UFOP

Instituto de Ciências Exatas e Biológicas – ICEB

Departamento de Computação – DECOM

Estrutura de Dados II

Page 2: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Dados Espaciais x Dados Escalares

• Multidimensionais x Unidimensionais

• Noção de Forma x pontos ou tuplas

• Ordenação parcial x Ordenação total

• Relações geométricas x Relações sobre grandeza

• Frequentemente, os dois tipos são combinados em:

• Sistemas de Informação Geográficos

• Computação Gráfica

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 2

Page 3: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Espaço de dados

• Qualquer tipo de dado supõe um espaço onde ele está imerso

• Modelagem de dados requer que se escolha um espaço apropriado

• Frequentemente, mais de uma opção é possível

• Exemplo: Cidade

• Espaço de cadeias de caracteres

• Código numérico (ex. CEP)

• Ponto do planisfério (Latitude e Longitude)

• Conjunto de pontos (ex. delimitado por um polígono)

• Cada espaço é mais conveniente para um ou outro tipo de

processamento

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 3

Page 4: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Dimensão

• Dados escalares (não espaciais) são modelados como pontos em

um espaço unidimensional

• Dados espaciais são modelados como pontos ou conjuntos de

pontos em espaço multidimensional

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 4

Page 5: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Relações entre dado e espaço • Localização

• Existe uma cidade chamada “São Paulo” ?

• Existe uma cidade em 39o29’30” S, 65

o50’20” W ?

• Vizinhança

• Qual a cidade com nome subsequente a “São Paulo”?

• Qual a cidade mais próxima de São Paulo?

• Noção de métrica

• Extensão (Dados Espaciais)

• Qual o perímetro de São Paulo?

• Qual a área de São Paulo?

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 5

Page 6: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Uso de ordenação

• Dados escalares

• É possível estabelecer uma ordem total

• Ordenação facilita operações de localização e vizinhança

• Dados espaciais

• É impossível estabelecer uma ordem total sem romper com relações de

vizinhança

• A imposição de uma ordem total é conhecida como linearização do

espaço.

• Exemplo: ordenar um conjunto de pontos lexicograficamente

• Ordenação parcial, no entanto, pode facilitar diversas operações

• Estruturas de dados espelham ordenação

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 6

Page 7: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Estruturas de dados para dados escalares

• Visam essencialmente facilitar operações de localização e de vizinhança

• Exemplos:

• Tabelas organizadas por cálculo de endereço (Hash Tables)

• Usadas em localização de dados

• Podem ser baseadas em memória ou disco

• Árvores binárias balanceadas

• Localização de dados: O(log n)

• Vizinhança: O(log n)

• Primariamente baseadas em memória principal

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 7

Page 8: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Estruturas de dados para dados escalares

• Árvores B e suas variantes

• Localização de dados: O(log n)

• Vizinhança: O(log n)

• Otimizadas para utilização em memória secundária (disco)

• Asseguram alta taxa de utilização (garantidamente > 50%)

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 8

Page 9: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Idéia geral de estruturas de dados espaciais

• Precisam suportar grande número de operações

• Não existe estrutura de dados espacial que garantidamente seja eficiente para

atender todos os tipos de operação

• Aplicações em bancos de dados espaciais:

• Utiliza-se estruturas de dados gerais que têm eficiencia razoável no caso

médio. Ex.: PMR-quadtrees, Grid files, R-trees e suas variantes

• Aplicações em CAD, Computação gráfica:

• Frequentemente estruturas de dados gerais dão bons resultados

• Em casos especificos, estruturas de dados especializadas podem ser

indicadas.: Ex.: Diagramas de Voronoi

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 9

Page 10: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Bancos de Dados Espaciais

• Um dos requisitos fundamentais para os sistemas de bancos de dados atuais e

saber manipular dados espaciais:

• SIG (Cartografia);

• CAD (Computer-Aided Design);

• Visão Computacional (Computer Vision);

• Robótica;

• Bancos tradicionais, em que um registro com k atributos corresponde a um

ponto no espaço k-d;

• Bancos de dados temporais, onde o tempo pode ser considerado uma

dimensão a mais;

• Bancos de dados científicos, com dados espaço-temporais.

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 10

Page 11: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Banco de Dados Espaciais

• Necessidade de indexação dos dados espaciais de modo a

reduzir o tempo de acesso aos mesmos

• Métodos de indexação tradicionais não são indicados para

dados espaciais

• Hash: não atende a consultas de faixa (range queries)

• B-Tree: trata apenas uma dimensão

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 11

Page 12: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Como Processar este tipo de consulta de

forma eficiente?

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 12

Page 13: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Como Processar este tipo de consulta de

forma eficiente?

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 13

Para esses sistemas existe

uma classe de métodos

conhecidos como métodos de

acesso multidimensionais.

Page 14: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Consultas

• Considere 2 tipos de consultas:

• Consultas de pontos

• Consultas de intervalo

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 14

Page 15: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Consultas de pontos: recupera as tuplas

com referência espacial localizada numa

dada coordenada

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 15

Page 16: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Consultas de intervalos: recupera todas as tuplas com referências

espaciais dentro de uma dada faixa. A faixa normalmente é uma área

retangular especificada pelas coordenadas de dois vértices opostos ou

um círculo identificado pelo centro e raio.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 16

Page 17: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Dados espaciais são expressos no espaço Euclidiano

• Por exemplo, considere a tabela a seguir

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 17

Page 18: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 18

Page 19: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Exemplos de consultas

• 1. (Não Espacial): recupere a localização de Trentham Gardens

• 2. (consulta de ponto espacial): recupere qualquer local em (37, 43)

• 3. (consulta de intervalo espacial): recupere qualquer local com

vértices sudoeste e nordeste (20,20), 40,50) respectivamente

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 19

Page 20: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Algoritmo linear para consulta de ponto

1. Open Potteries file

2. while existem registros a examinar do

3. Leia o próximo registro r

4. if r.East = 37 then

5. if r.North=43 then

6. Recupere o nome do local deste registro

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 20

Page 21: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Algoritmo linear para consulta de intervalo

1. Open Potteries file

2. while existem registros a examinar do

3. Leia o próximo registro r

4. if r.East está na faixa [20,40] then

5. if r.North está na faixa [20,50] then

6. Recupere o nome do local deste registro

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 21

Page 22: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Desempenho dos algoritmos lineares ficam ruins a medida que a

tabela de consulta cresce

• Precisamos indexar os dados. Usando um índice convencional

de BD, poderíamos indexar as colunas East e North obtendo a

tabela a seguir:

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 22

Page 23: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Índice

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 23

East Site North Site

14 Newcastle Museum 00 Trentham Gardens

17 Westport Lake 23 Gladstone Pottery Museum

18 New Victoria Theater 25 Beswick Pottery

20 Trentham Gardens 36 Coalport Pottery

31 Waterworld 39 Minton Pottery

31 Royal Doulton Pottery 43 Spode pottery

36 Minton Pottery 44 Park Hall Country Park

37 Spode Pottery 55 New Victoria Theater

41 City Museum 58 Newcastle Museum

53 Ford Green Hall 62 City Museum

54 Coalport Pottery 65 Waterworld

66 Beswick Pottery 87 Royal Doulton Pottery

74 Gladstone Pottery

Museum

92 Westport Lake

86 Park Hall Country Park 99 Ford Green Hall

Page 24: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Consulta de ponto

• podemos percorrer o índice east para localizar os locais que têm

primeira coordenada 37. Daí vai-se aos dados para ver das tuplas

localizadas quais que têm segunda coordenada igual a 43. (Spode

Pottery)

• Consulta de intervalo

• pode-se fazer uma busca por faixa [20,40] no primeiro índice, que

resulta numa lista de ponteiros para o arquivo de dados. Então, para

cada ponteiro na lista, acessa-se sua tupla e verifica-se se a segunda

coordenada está na faixa [20,50]; caso positivo, a tupla é retornada ao

resultado

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 24

Page 25: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

De 1 para 2 dimensões

• Problemas com indexação convencional:

• Apenas um índice é usado por vez.

• Precisamos de índices multidimensionais que consigam tirar

proveito do espaço, principalmente em consultas de intervalos.

• As tuplas vão estar ordenadas

• tuplas que estão próximas no espaço deverão estar próximas no

índice

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 25

Page 26: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Estrutura de Dados Espaciais

• Operação comum com dados espaciais é a pesquisa de objetos que estão

numa determinada área

• Ex.: Encontre todos os hospitais que estão a no máximo 20Km deste

ponto

• Algumas estruturas de dados propostas:

• Quad-trees

• Grid

• k-d-tree

• r-tree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 26

Page 27: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quad Tree

• Propriedades gerais

• Extensão multidimensional da árvore de busca binária

• Pontos são armazenados em nós internos

• Depende da ordem de inserção dos pontos

• Para N pontos inseridos segundo uma distribuição randômica

uniforme, a altura esperada da árvore é O(log N)

• Estrutura própria para armazenamento em memória

• Pode ser usada para representar:

• Pontos, polígonos, volumes, imagens…

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 27

Page 28: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

QuadTree

• Acelera o acesso a dados num plano 2d

• Técnica bastante simples

• O espaço de busca é recursivamente decomposto em quadrantes

até que o número de retângulos sobrepondo cada quadrante é

menor do que a capacidade da página.

• Os quadrantes são nomeados: Noroeste, Nordeste, Sudeste e

Sudoeste

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 28

Page 29: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• O índice é representado como uma árvore quaternária (cada nó

interno tem 4 filhos, um por quadrante)

• Cada retângulo aparece em todos os quadrantes folhas que o

sobrepõem

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 29

Page 30: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 30

Page 31: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• Consulta de ponto (point query) é simples em quad tree.

• Um único path (caminho) é percorrido da raiz até a folha

• Em cada nível, é escolhido um dos quadrantes que contém o

ponto da consulta

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 31

Page 32: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• Exemplo de Consulta Ponto P

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 32

Page 33: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• Inserção em quadtrees

• um retângulo será inserido em cada quadrante folha que o

sobrepõe

• então todos os caminhos para as folhas que sobrepõem o

retângulo a ser inserido são percorridos

• a página P associada com cada folha é lida

• Se P não está cheio, então insere o novo retângulo

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 33

Page 34: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• Inserção em quadtrees

• Se P estiver cheio, O quadrante deve ser dividido em quatro

quadrantes e 3 novas páginas são alocadas

• As entradas da página antiga mais a página nova são

divididas nas quatro páginas

• Uma entrada E é adicionada a toda página cujo quadrante

intercepta E

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 34

Page 35: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• Inserção em Quadtree

• Como ficará a árvore após as inserções de 15 e 16?

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 35

Page 36: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

• Deleção de pontos

• Idéia do algoritmo análogo em árvores binárias não pode ser usada: nem

sempre existem nós-folha que podem substituir o nó sendo deletado

• Solução “ingênua”: reinserir todos os pontos da subárvore cuja raiz é o nó

deletado

• Solução melhorada: descobrir um “bom” nó-folha candidato e reinserir

apenas os nós que tornariam a quadtree inválida

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 36

Page 37: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree • Deleção de pontos

• A escolha do ponto substituto

• 4 candidatos naturais (1 em cada quadrante)

• Para achar o candidato do quadrante NW de P, caminhar sempre para SE do filho

NW de P

• Para escolher Q, o melhor dos 4 candidatos:

• Critério 1: escolhendo Q nenhum dos outros 3 candidatos precisariam ser

reinseridos

• Problema de deleção pode ser aliviado com o uso de uma pseudo-quadtree

• Pontos são armazenados nas folhas

• Nós internos são pontos que não fazem parte da massa de dados

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 37

Page 38: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 38

Page 39: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 39

Page 40: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Quadtree: Variantes

• Existem diversas variantes da Quad tree:

• – MX-CIF Quad tree:

• objetos com extensão (retângulos);

• – PM-Quad trees:

• Mapas;

• – Linear-Quad trees (Space Filling Curves):

• mapeamento de um espaço dimensional superior (ex: 2D) para um

espaço inferior (1-D);

Estratégia empregada pela Oracle, nas versões anteriores a 10g.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 40

Page 41: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Bancos de Dados com Estruturas de

Dados Espaciais

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 41

Page 42: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Aplicações Quadtree

• A decomposição da quadtree é uma técnica simples usada para obter uma representação da

imagem em diferentes níveis de resolução.

• Esta representação pode ser útil para uma variedade de opções para processamento de

imagens e algoritmos de compressão de imagens. Algumas aplicações utilizando a

quadtree:

• 3D Studio MAX 3 (um dos mais populares softwares para animação e renderização de

imagens 3D): utiliza a quadtree para fazer o controle da profundidade de cor para sombras

RayTrace.

• Codec para Video-Phone: A última meta de uma baixa taxa de codificação da imagem é

reduzir a redundância, em ambos os domínios (espaço e temporal), e assim reduz a taxa de

transmissão.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 42

Page 43: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Aplicações Quadtree

• Corrigir deformações de cores nas fotos. Como por exemplo,

quando se tira uma foto e a pessoa está com os olhos

avermelhados, podendo isso ser corrigido utilizando a quadtree.

• Muito utilizado na medicina para ecografias (facilitando a

localização de tumores em um determinado órgão do corpo).

• Compactação de imagens.

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 43

Page 44: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Vantagens Quadtree

• A vantagem mais óbvia no uso de quadtrees na codificação de imagens é que

o gráfico pode ser armazenado de uma forma compacta.

• Facilidade para rotacionar imagens, principalmente para rotações em ângulos

de 90º graus. Sendo necessário para isso a utilização de outro tipo de

caminhamento.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 44

Page 45: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Vantagens Quadtree

• Em comparação com outras árvores, como a árvore binária, a

quadtree fornece uma estrutura de árvore num formato muito

mais compacto e robusto.

• Atualizações constantes não afetam a performance da quadtree,

o desempenho da árvore R é muito afetada por atualizações

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 45

Page 46: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Desvantagens Quadtree

• Se a imagem tem grandes áreas com uma única cor (como por

exemplo: o preto ou branco) haverá um grande ganho em

espaço e uma árvore bastante compacta, mas se a imagem tiver

grandes áreas com diferentes cores (como por exemplo: azul,

amarelo, verde, etc...) a árvore resultante será muito maior não

proporcionando um ganho considerável em espaço.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 46

Page 47: ESTRUTURAS DE DADOS ESPACIAIS - decom.ufop.br · resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se

Desvantagens Quadtree

• Um considerável consumo de CPU quando se trabalha com

imagens complexas (diversas cores, formas irregulares como

curvas e triângulos, etc) na geração da árvore.

• Não há balanceamento.

• Somente duas dimensões podem ser indexadas. A R-tree

trabalha com 4 dimensões

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 47