Introdução sobre estruturas de dados espaciais - DECOM-UFOP

Propaganda
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
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
2
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
3
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
4
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
5
Relações entre dado e espaço
• Localização
•
Existe uma cidade chamada “São Paulo” ?
•
Existe uma cidade em 39 29’30” S, 65 50’20” W ?
o
o
• 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
6
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
7
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
8
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
9
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
10
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
11
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
12
Como Processar este tipo de consulta de
forma eficiente?
Universidade Federal de Ouro Preto - Estruturas de
Dados II - Estrutura de Dados Espaciais
13
Como Processar este tipo de consulta de
forma eficiente? Para esses sistemas existe
uma classe de métodos
conhecidos como métodos de
acesso multidimensionais.
Universidade Federal de Ouro Preto - Estruturas de
Dados II - Estrutura de Dados Espaciais
Consultas
• Considere 2 tipos de consultas:
• Consultas de pontos
• Consultas de intervalo
14
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
De 1 para 2 dimensões
• Consultas de pontos: recupera as tuplas
com referência espacial localizada numa
dada coordenada
15
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
16
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
De 1 para 2 dimensões
• Dados espaciais são expressos no espaço Euclidiano
• Por exemplo, considere a tabela a seguir
17
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
18
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
19
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
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
20
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
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
21
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
22
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
Índice
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
23
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
24
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
25
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
26
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
27
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
28
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
29
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
Quadtree
30
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
31
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
Quadtree
• Exemplo de Consulta Ponto P
32
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
33
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
34
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
Quadtree
• Inserção em Quadtree
• Como ficará a árvore após as inserções de 15 e 16?
35
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
36
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
37
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
Quadtree
38
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
Quadtree
39
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
40
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
41
Bancos de Dados com Estruturas de
Dados Espaciais
Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais
42
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
43
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
44
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
45
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
46
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
47
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
48
Simulação Quadtree
• http://closure-library.googlecode.com/git/closure/goog/demos/quadtree.html
Download