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

Post on 28-Dec-2018

214 views 0 download

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

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

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

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

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

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

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

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

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

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

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

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

Como Processar este tipo de consulta de

forma eficiente?

Universidade Federal de Ouro Preto - Estruturas de

Dados II - Estrutura de Dados Espaciais 12

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.

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

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

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

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

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

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

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

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

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

Í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

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

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

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

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

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

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

Quadtree

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

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

Quadtree

• Exemplo de Consulta Ponto P

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

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

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

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

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

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

Quadtree

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

Quadtree

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

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

Bancos de Dados com Estruturas de

Dados Espaciais

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

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

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

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

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

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

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