Documente Academic
Documente Profesional
Documente Cultură
I IV
II III
(a)
Descompunerea unei imagini în cadrane
Niveluri
1
3 O
I II III IV
2 O O O
1 O O O O O O O O
0 OOOO OOOOOO
(b)
Quadtree
2
Reprezentarea punctelor se face în funcţie de operaţiile care urmează să se execute cu aceste
date. Dintre multiplele moduri de reprezentare a punctelor, adecvată este structura de date PR
quadtree (P pentru puncte şi R pentru regiuni), deci o adaptare a structurii quadtree la tipuri bine
precizate de date spaţiale. Această structură se bazează pe o descompunere regulată care urmăreşte
asocierea unui punct cu un cadran. Procesul de construire este similar cu cel al structurii quadtree,
diferenţa este că nodurile frunză fie nu conţin nimic, fie conţin puncte prin valorile coordonatelor lor.
In figura 3 se poate observa corespondenţa dintre puncte şi cadrane care stă la baza construirii
arborescenţei.
Dezavantajul metodei constă în faptul că, dacă punctele sunt foarte apropiate, atunci nivelul
maxim de descompunere poate fi foarte mare. Avantajul este că structura devine atractivă în cazul în
care prelucrarea datelor spaţiale implică operaţii de căutare. Un exemplu tipic de folosire a arborelui îl
constituie determinarea oraşelor din nord-estul ţării. Oraşele vor fi căutate în regiunile care compun
cadranul NE al imaginii (Suceava şi Iaşi), lucru uşor de realizat avînd în vedere modul de construire a
structurii quadtree.
(0,100) (100,100)
Suceava
•
• Iaşi
Sebeş
• • Braşov
• Timişoara
• Năvodari
•Bucureşti
• Mangalia
(0,0) (100,0)
In concluzie, se poate spune că structura quadtree este dinamică în sensul că poate fi adaptată
cu uşurinţă la mai multe tipuri de date spaţiale.
Pentru manipularea datelor spaţiale este nevoie ca acestea să fie reprezentate în diferite forme.
O modalitate constă în a utiliza structuri de date bazate pe ocuparea spaţială a datelor. Acestă metodă
presupune descompunerea spaţiului în regiuni numite partiţii. De aceea, metoda este cunoscută sub
numele de metoda partiţionării. Partiţionarea datelor spaţiale se bazează pe conceptul minimizării ariei
ocupate de partiţie. In acest caz, obiectele spaţiale sunt grupate în ierarhii şi apoi ele sunt stocate în
alte structuri de date. Structurile de indexare a datelor spaţiale multidimensionale au la bază două
abordări:
- prima se bazează pe observaţia că data spaţială ocupă un subspaţiu a spaţiului
multidimensional;
- cea de-a doua se bazează pe faptul că data fiind multidimensională, un număr mic de
dimensiuni stochează majoritatea informaţiei.
Structura arborescentă R (Rectangle tree), face parte din prima categorie şi este similară ca
reprezentare şi mod de exploatare cu arborele B. Ea are mai multe variante proiectate în scopul
organizării unei colecţii de date spaţiale prin reprezentarea lor în dreptunghiuri n dimensionale.
3
Fiecare nod în arbore corespunde celui mai mic dreptunghi n dimensional care include fii lui. Nodurile
frunză conţin pointeri ce referă datele spaţiale din baza de date. Obiectele sunt reprezentate prin cele
mai mici dreptunghiuri care le conţin.
Arborele R este aplicat unei tabele cu tupluri reprezentînd date spaţiale, fiecare tuplu avînd un
unic identificator care poate fi utilizat la regăsirea lui.
Arborele R conţine noduri frunză de forma ( I, i_id ),
unde:
I - un dreptunghi n dimensional ce reprezintă o cutie ce mărgineşte obiectul indexat;
i_id - identificatorul tuplului şi se referă la înregistrarea din tabelă ce conţine obiectul
mărginit de I.
I = ( I 0 , I 1, - - -, I n-1 ),
unde:
n - numărul de dimensiuni;
Ii - un interval închis [a, b] ce precizează extinderea obiectului pe dimensiunea i. Astfel,
I i poate avea una sau ambele limite egale cu ∞ indicînd faptul că obiectul se extinde la ∞.
Nodurile ce nu sunt frunze în arborele R au următoarea formă: ( I, pfiu),
unde:
pfiu - adresa nodului mai mic în arborele R;
I - un dreptunghi ce acoperă toate dreptunghiurile din intrarea nodurilor mai mici.
Se presupune că un nod conţine maxim M elemente iar m≤ M/2 este un parametru ce specifică
numărul minim de elemente dintr-un nod. Un arbore are proprietatea că un nod trebuie să conţină între
m şi M elemente dacă el nu este rădăcină. Ca exemplu, se consideră colecţia de segmente dată în figura
4.
a
b
h
g e
i
d f
c
4
i, j∈{1,...,n},i ≠ j
( Ri R j )
Zona de intersectie = (1)
i∈{1,..., n}
Ri
R1 R3
h b
R4 a
g e
R5
d i
f R6
c
R2
(a)
R1 R2
R3 R4 R5 R6
a b d g h c i e f
(b)
Figura 5 Arborele R
Un alt concept legat de intersecţia suprafeţelor este greutatea intersecţiei care reprezintă
procentul de obiecte care aparţin porţiunii de intersecţie din spaţiu.
{p / p ∈ ( Ri R j )}
i , j∈{1,..., n}, i ≠ j
Greutatea intersectiei = (2)
{p / p ∈ Ri }
i∈{1,..., n}
unde:
- |A| , indică numărul de obiecte conţinute în A;
- p, obiect spaţial.
O dată spaţială se asociază cu un singur dreptunghi, de exemplu, în figura 5, segmentul i este
asociat dreptunghiului R5 cu toate că şi partiţiile R1, R2 şi R4 partajează o suprafaţă din R5. In aceste
condiţii dacă se doreşte să se determine care obiect este asociat cu un punct particular vor fi necesare
mai multe căutări în baza de date datorită faptului că acel punct poate fi conţinut în mai multe partiţii.
5
Algoritmii de căutare, inserare şi ştergere sunt construiţi folosind aceleaşi principii utilizate la
implementarea structurii arborescente B+. Informaţiile ce se manipulează se referă la marcarea
dreptunghiului r, la cheia tuplului, respectiv la pointerul la subarborele corespunzător.
O problemă dificilă ţinînd cont de particularitatea datelor spaţiale este aceea a divizării
nodului. Fiind dată o pagină ce conţine M elemente este necesar să se dividă colecţia de M+1
elemente între două noduri.
Divizarea unui nod S={r 1 ,...,r n } în două subnoduri S 1 ={r i1 ,...,r is1 } şi S 2 ={r i2 ,...,r is2 }, (S 1 ≠∅ şi
S 2 ≠∅) este definită ca:
Diviz(S)={ (S 1 ,S 2 ) / S=S 1 ∪S 2 ∧S 1 ∩S 2 =∅ }.
In urma procesului de divizare a nodului pot apare cazurile:
1. zonă de intersecţie minimală, dacă || r(S 1 ) ∩ r(S 2 ) || este minimă;
2. zonă de intersecţie inexistentă, dacă || r(S 1 ) ∩ r(S 2 ) || = 0;
3. echilibru dacă -ε ≤ |S 1 | − |S 2 | ≤ ε.
Deoarece decizia de a vizita un nod depinde dacă dreptunghiul aferent lui include zona căutată,
rezultă că aria totală de acoperire a celor două dreptunghiuri după divizare trebuie să fie minimă.
Comparînd figurile 6 a şi b se realizează o mai bună încadrare avînd în vedere criteriul enunţat în
figura 6a.
In literatura de specialitate sunt prezentaţi mai mulţi algoritmi ce realizează acest lucru avînd
performanţe diferite.
Algoritmul de divizare Quadratic este recunoscut datorită eficienţei sale şi distribuie un set de
M+1 elemente între două noduri.
a b
6
elementelor la nodul cu o arie mai mică de cuprindere sau la unul cu mai puţine intrări. Apoi se
continuă cu pasul doi.
Acest algoritm nu garantează găsirea celui mai mic dreptunghi posibil de încadrare dar
performanţele lui sunt destul de bune luînd în considerare necesarul de timp de prelucrare pentru
obţinerea rezultatului.
Partiţionarea spaţiului în partiţii disjuncte a dus la crearea unei structuri derivate din arborele R
şi anume R+ . Deoarece regiunile sunt disjuncte, înseamnă că pot fi obiecte care nu se încadrează doar
într-o singură partiţie. De aceea, ele se vor descompune în subobiecte, fiecare aparţinînd unor regiuni
diferite. Devine, astfel, important să se determine partiţiile care conţin o anumită dată spaţială.
In figura 7 se prezintă un arbore tip R+ pentru aceeaşi colecţie de segmente (prezentată în
figura 4). Se observă că fiecare obiect este asociat cu toate partiţiile care-l intersectează deci, pot fi mai
multe căi de la rădăcină pînă la unul şi acelaşi obiect. De exemplu, în figura 7 segmentele c şi f apar în
două noduri diferite, în timp ce segmentul i apare în trei noduri.
b
R5
R3 a
h
g e
d i
f
R6 R2
R4 c
R1
(a)
R1 R2
R3 R4 R5 R6
d g h i c a b e i f c i f
(b)
Figura 7 Arborele R+
In literatura de specialitate s-a demonstrat că structurile de indexare bazate pe arbori R nu sunt
adecvate pentru date spaţiale reprezentate într-un spaţiu multidimensional.
O structură performantă de indexare a datelor spaţiale multidimensionale cu număr mare de
dimensiuni este arborele X (eXtended node tree). Structura arborelui X este prezentată în figura 8.
Se observă că el conţine trei tipuri de noduri:
- noduri de date care sunt la nivelul frunzelor şi fac legăura cu datele spaţiale care se
indexează;
- noduri directoare normale ce au rol în a dirija căutarea prin arbore şi sunt similare nodurilor
interne dintr-un arbore R; şi
7
- supernoduri care sunt în fapt noduri directoare de mărime variabilă.
Scopul principal al acestor supernoduri este să evite divizarea nodurilor directoare, care ar avea
ca rezultat construirea unei structuri ierarhice ineficiente. Arborele X este diferit de arborele R cu
noduri de dimensiuni mari prin faptul că el conţine noduri de dimensiuni mai mari doar dacă este
necesar. Supernodurile sunt create în timpul inserării cînd capacitatea unui nod trebuie depăşită şi nu
se poate evita acest lucru prin alte procedee.
Pentru un arbore X sunt două cazuri extreme:
1. nici un nod director nu este supernod;
2. există doar un singur supernod ce formează rădăcina arborelui, în rest sunt doar noduri de
date.
- supernod
- nod de date