Académique Documents
Professionnel Documents
Culture Documents
— SP
W
LC13C.
INETTUTO 08 CÓNCIAS MATENÓNCAS
DE SÃO
GuMIOS
SÃO PAULO
SÃO CARLOS -
BRASIL
2
ERRO
4A
à.
QE
S
7
pon
AN Computação e Estatística.
São Carlos
—1984-
—
AGRADECIMENTOS
FINEP
RESUMO
&s
cocos.
CAPÍTULO 2. BUSCA POR CHAVES MOÚLTIPLAS
...ccccocaecccesereo 5
3.
rear]
CAPÍTULO BÁSICAS PARA BUSCA POR
ESTRUTURAS INTERVALO
....1]1
3.1. Busca Sequencial
era.
3.2. Projeção ..ccerececaeaaeaaaeaaaaeo. 13
e
3.2.1. Análise de Componentes Principais (ACP) .20
3.3. Células ..cecceroreceaeavetvecreceaaaaaao. DA
SDS
4,1. INSergão ..ccocececenerraceaceeearaaco. ec... d2
4,2. BUSCA
Le... E:
4.2.1. Algoritmo de Busca ....2ecececceeececoo ..53
4.2.2. Árvore Quad Otima ...c.l0ccvcecaceca.e.o. 61
4.3. Análise de Busca por Intervalo para Árvore
Quad Perfeita ....h 0.0.2 acecoo eRARacacacaAae. 62
4.4. Anâãlise do Pior Caso de Busca por intervalo
NA
para Árvores Quad Balanceadas....... 1/1000. «...76
4.5. Conclusões... cnc. 0eve.. aaa. 91
eee...
.
(R/K,(R) =
v, para l<ix<k).
b) Busca Parcial - neste segundo tipo de consulta os valores
são especificados para um subconjunto próprio das k-chaves.
Em geral, especifica-se valores para t das k chaves e pede
se todos os registros que tenham aqueles t valores, indepen
dentemente dos outros (k-t) valores. Neste caso a consulta
chama-se consulta de busca parcial com t chaves especifica
das. Chamando T(t) o conjunto destas chaves, então, os re
gistros que estão sendo procurados são:
(R/K, (R)
=v, para it T(t)).
Por exemplo, na
base de dados da Universidade, requi
sitando-se uma listagem de todos os alunos que estejam no 49
periodo e tenham média geral 7.0, estão sendo especificados
valores para t = 2 chaves.
por
exemplo distância euclidiana. Em geral o problema do vizinho
mais próximo aplica-se a arquivos de dados que armazenam regis
tros com valores reais, para que possa ser aplicada a medida de
dissimilaridade.
Formalmente, dado um arquivo de n registros descri
tos por k valores cada, dissimilaridade D,
e uma medida de o
está no arquivo).
Na colocação geométrica, dada uma função distância
De um ponto P, os m vizinhos mais próximos são os pontos
-10-
Como uma o
1 K, K, e.
. *
Kr
2
Fig. 3.1
Spg(N/k) = O (nk)
3.2. Projeção
O segundo método, a projeção, consiste em manter pa
ra cada chave uma lista dos registros ordenados por ela. Na re
presentação geométrica do problema onde os n registros de k cha
ves são considerados como n pontos de k dimensões, vê-se cada
uma das listas citadas acima como a projeção dos pontos em cada
coordenada do espaço. A figura 3.2 ilustra esta representação
para registros com duas chaves:
-l4-
intervalo K,
do
een
TRA,
O =—-———-so =n-O
intervalo K,
Z
eeeacoee=
Adoo
A 4O
co
A
A
O
een
——=——--—-—
eee
FessenecctO
SSSSSANSSN
mean
meneame
Lose
== en
eee
=.
Lee
Jo
Fig. 8.2
= O(kn log,n).
Neste método é de grande importância O pré-processa
mento, que princípio envolve somente a ordenação das k lis
em
º o
o e
o 6 o
. o
o
o
o o
o
e 6
º
o
o o
Fig. 3.8.
—-18-
º º
o
o º º
. o o
o
o o º
o e
:
K,
Fig. 3.4.
Na figura 3.3,
seleção da chave Ki permitiu que vã
a
rios registros (pontos) fossem eliminados. Na figura 3.4, que
repre senta o mesmo conjunto de dados, vê-se que à escolha de
Ko ão foi boa, pois muito poucos registros foram eliminados.
mn
o
e
o o
o º [O
e
º º o
"e
o o
e
e o
e.
º
6
o
o º e
º
º o
o
o o
K,
Fig 3.9
O problema em:
dado) um conjunto de n pontos com k chaves Ki, Kor..., K. encon
trar| |
uma direção
2 2 2
d = (a7raz,-.+raçdo (ay + a, +
... +
a, = 1)
i
triz de covariância C dos dados, que tem o maior auto vetor 471.
Sejam
X17, Xo, ....r 7
“os autovetores de C correspondentes aos autovalores
À
qe hor e... x
onde
-—21l-
xl = 1<i<k
As propriedades dos X, são:
XX; = O
iÉ3
XX = 1 i=53.
K x
2 À 1
«4
e,
?
e ,
7º
A
o
R Pá
º +o
j
v º º
“. é
|
Xo o
XxX
o º Á º o
x º º 7
2º
j
N e” 0
e
eo
o
N e
/
7
N
e o
o
N Á
|
e
“. / e/ º
Y
» K,
Fig. 8.6
PL (n,k) Olknlog,n),
Sp (n,k) O (kn)
(P
-24-
3.3.| CéLuLas
—
|
O terceiro tipo de estrutura envolve a noção de " -”
"cê
Pig. 38.7
bp
-27-
— A DO.
Aa
2
s
| m K,
Fig. 3.8
TLEY-79cC] .
Por exemplo, se os pontos estão uniformemente distri
buidos em [0,10]? e considerando células unitárias, referencia
das por [i, i+tl]x[3, j+1] para i,j = 0,9, como é ilustrado na
figura 3.9,
-28-
K>,
|! cêlula[5,6] x [8,9]
A
|
10 P
DL
9 . º .º º º º .. ” º
e e «é
*f. *
ai. . '
º
|
lp[9,10]
* e *
.
ns
el O
8
-
ode *
esde o
|
.. .. "1, |.
*
«
e
celula
7 *x [1,8]
..
o *
.
e, .
e
º e
AEE:
e
«do
[cf 1]
cêlula
e)
&
CLA, de
[2,3]x[5,6] Lo
1 ]º
dzecenma
.. ..
4 0
0 o
*
»
º o ?
[8,9] x [3,4]
s o [)
o* o
3
*
o
* o
º
º º *. 0 º º
o.
2 ' *, .
...,
o .*
REL RA, º
el, Fe º
1, ,
., º
e
o e e
º º
: o o
TR BOT 5 6 7 8 93 TO
"kk,
DIRETÓRIO chave K,
chave K,
O 1
234 56 7859 lista de pon
O
tos na célula
|
MN
[2,3] x [6,7]
>
rmw
nn
yOoO
Oo
Li les [el [ [
19)
+
wÀp
Fig. 8.10 ”
K,
10
9
VIR,
AA
7
IL
6
1 2 3 4 5 6 7 8 9 10 — K)
Fig. 3.11
Q: y"
função hash(i)
o. 1 |IK 1 Ímoa 7
d. = |K,|mod 11
à, = |K;s] mod 7
d. = |K;g| mod 11
-32-
1
O 1
Lee à.
int
:
(=
17
fe 3
| O pontos em
di e mi lj '
pontos em
[1
rt
,i+l]lx
o
í
[oriz+rl]lx[52,32+1])
do+
Do
pontos em
10 iirllkxDGijarl)
Fig. 8.12
P. (n,k) 1! O(kn)
e
S (N,K) O(kn)
c
“|
bo
pr L———-
Fig. 3.13
-34-
S. (n,k) = O(kn)
4. ARVORES QUAD
K,
À
2 1
NO “E
a
so 3 SE 4
Fig. 4.1
ms nês ms
-
nos do
do
quadran
2
Se qua-
quadrante Se drante te 4
!
e 3
Fig. 4.2
—37m=
À
x K,
- -
—m
K,
Fig. 4.3
K> A
*
|
K)
nível O
(a)
Kb,
E
D
>» K)
nível 1
(b)
-39=-
K, à
Cc
G
I
B
J LL
D E
M
É
nível 2
(o)
K à
C G
F
T
B
N H
J L
O
D E
K M
nível ó
(d)
Fig. 4.4
-40=
4.
m41=
Fig. 4.6
mente
4.1. Inserção
O
processo de inserção de um registro numa âr
novo
vore Quad é basicamente o mesmo usado para arvores binárias. A
cada nó, começando pela raíz, uma comparação é feita como nó
Fig. 4.7
|
-44-
RAIZ x
ATERNA: BESSSNSEN
TITLE
e a) +
e...
a)
—- 1H Dom
e...
Fig. 4.8
type NO = tREGISTRO;
REGISTRO = record
CHAVE: array [1..2] ofreal;
SUB: array [0..4] of NO
ends;
Considerações importantes:
var L: 0..4;
O: NO;
beg*t n
else begin
= R;
Q+t.SUB[ÍL] = nil *)
ends;
end
end
-47—
TABELA ha
Nesse ca
-”
SO O |
4.2. Busca
K,
h
28 1€ 2b lb
C
B
3c
i
Prom
4o
eTeTATATTAATO
3b o !
|!
4b
!
)
1
L
1
!
2d | 1d |
'|D 2e
ef
t
e e
1
mm
o o nd mm o mm
mm —,m
E
3d 4d sé
3e
- Rx,
Fig. 4.10
K2
À
J
F
|po
S
Cc
*ºs Oo
B
Kero
t
! H
L
T
1
.Q
| eU ão
A
A
1)eV
1h
|
ilp 1º
doe
!
|
Z
Ue solo 7 E
º
"a.
—»
K,
Fig. 4.11
serão visitadas:
subárvores 1, 2, 3 e 4 do nô H
subárvores 2 e 3 do nó I
subárvores 1 e 4 do nó K
subárvores 1, 2, 3 e 4 do no L
subáârvores 1 e 2 do nó M
À
OU)
Galalafa
QQCIC
(O)
O
el ala
OO
NIBIBES
x)
& Gg
LL)
SUÉOr5 LJ
O
LL)
Fé
t)L)[)
CO DUO
UD
Aa
DL
arºp
2) LL
cbis
O OIOOP
UU
O
PS
GSNO
LO)
CL)
É&
O)
NA
LL)
FA
O
UL
:
(o Ojulais
-5 3"
—
vore e indica em que ramos a busca continua ou é interrompida:
O
traço perpendicular sobre um ramo indica que a busca foi in
terrompida, e os nós hachurados são os que se localizam na re
gião de busca. Os nós quadrados representam subárvores vazias.
K2 à
RETANCIMA
2 l
A (XA,YA)
4
> K,
|?
RETANBAIXO
:
RETANESQ RETANDI R
Fig. 4.13
-55-
Assim o retângulo limite da raiz A
da árvore E dado
pelos parâmetros (RETANESQ, RETANDIR, RETANBAIXO, RETANCIMA). O
po
:
l
|
! A '
' +
|
1
1
t ;
1 H
— K 1
REGIESQO REGIDIR
Fig. 4.14
-56=
end;
(*retorna
TRUE
se o retangulo dado pelos parâmetros se sobrepõe
à região de busca*)
begin
RETANGULO SOBRE REGIÃO ce (
(RETANESQ < REGIDIR) and
(RETANDIR < REGIESQ) and (RETANBAIXO < REGICIMA) and
(RETANCIMA < REGIBAIXO))
end;
—58=
RETANCIMA: real);
(*faz a busca na árvore de raiz A, com retangulo limite dado pe
los demais parâmetros*) Ú
RETANCIMA);
RETANCIMA);
YA);
ends;
=-—59-
uni formemente
distribuidos intervalo [0,1]?, e as regiões de busca são qua
no
àdrados retilineamente orientados com um dado tamanho de lado lo
00º
T6'S sL[IZ
99 EV
oL'T ceZ OST 8e”L oOS"€E
L6'T 9€*T
60"
oOL*SG voz vo'T
80 s8I8 oLT€ 6T"Z SPT
Te"
909 8L"T SET ST"T
CE*GE
0677.
vCeT6T EL"LT
/SOPLITSTA
SOPEBIJUODUTA
9% T OT ET T T
ET“ 66º 0E* 9€ so 09º 66º TT CL” 08* 98" 90º Er vVOº 0OT* SL"
TRPÃO 90'Z como £EOT L8'€ SSO vVSL 9L"€ EST L6'€
/OPexquodUR eosnqg 06º€9 ESTE 8T“z9
O L O L
LT*9TT
"ST Ze ST
TE
8TT
97 TO
8vT
TE
66T 9pe 866
PL
9h /SOPeatsTA
86S
68" s6º
LLC
79º
05S*S6
sSLc6
E6 TP BR" ES 9Tº pr 97 00º Sp" 90 LV LO' 69" 96º EE LI?
vOSnNg 8T*TT 88*TS oT*B8T 6eT*9oT £0*89
L
T8*SO9
OT
TZ GE TT 97 To PLT
ET TT CT TOT 8TE
67 EST
pe Ep
OTT TELE
LEVTT
VIIAVL
SOPERIJUONUF
ET TP
90€ 66L
OE ce EoT L8E€
SS soe poL 66 EBT 98. L6€
9€ST 06€9 €oTE TT9T CLTO 90T€ vVOST 8TIC9
0987T
9LE o088tc LE9ITT Eroor 019FTT 592866
TE
SOPEITSTA
865 68L LLL
oe 2 SL6
Tv 69E
BTZT sSG6TC 88TS FLOT o0SS6 £E6PLT 8pCT9 9TET FETC 96CTT 61T9T 9067 £oO89 LOFTC L9LVTT
o9SsE ESPLT DOTOT SF8TE LYVEST T8909 960TT EETEE
BT 92
Pp
OpPET
ap
Ooquewmeg
op sou
os
OoTeuwmN
SCI DOS
000T 0007€ 000rFr
-61-
com
primento de caminho interno de uma ârvore otimizada é cerca de
15% henor que a ârvore construida por inserção simples e as me
dida 5 de eficiência como Nós Visitados/Nós Encontrados e Nós Vi
sitados/Busca permanecem aproximadamente as mesmas.
te s e:
a) e la tem 4* nós em todo nível i, O
<i < h-l, onde define-se
ue a raiz está no nível 0, e
b) todo nó estã no centro do seu retângulo limite.
+/2º 2, tinteiro.
À.
K, = K, = para 0 <<t<
nº de nós = 1
lado do retângulo = 1
partição = 1 quadrados
linhas limites =
e lo à
ki=k> |
o 1
K
nível O
(i = O)
(a)
-64=
2
|
1
nº de nós = 4
o
C
o
B -
lado do retangulo = 1/2
1/2 partição = 4 quadrados
e” o
E linhas limites =
1/2 1
— K, £t |
vo co o 1 2
k, = k, O
1/2 1
nível 1 (i=1)
(b)
K» |
nº de nós = 16
3/4
er AMI AE)
." t lo 1 2 3 4
1/2 Ky=k7|/0 14 1 3 1
2 4
Q nr. es e R
1/4
eP e? eT e”
mw
K,
1/4 1/2 3/4 1
nível 2 (i = 2)
(c)
Fig. 4.15.
-65=
E
para o conjunto dos nós da figura 4.16,
V K1
Fig. 4.16
*Baud
-67-
K,
2
À
4 quadrados ao longo de &ixo K,
; 1
3/
x/
1/4
metodos
+ doendo 4--
i
4 quadrados ao lon
“go do eixo K,
| "OK
-C8B—
-—
Es
ses números médios têm
|
como limites superiores os valores "e
K à
3/4 fr=prn=== =
Ko !
'
1
1/2 FAdo———+o
X)
1/4
—m
K
1/4 1/2 3/4 1 1
Fig. 4.19
[x 24 + 17 = [(0.3).22 + 1] = 3
-69=-
x, 2º e x, 2º +11
x,2º e x227+ l.
n,y2t+1 e x 2t+1
são boas estimativas do número de intersecções ao longo —
dos
eixos, a menos que i esteja próximo de 0 e x. próximo de 1, Por
tanto, o número total de quadrados que interseccionam a região
no nível i, é dado aproximadamente pelo produto.
E(h,X1,X2) = Z V(i,x1/,Xo)
O<i<h=l
= Z (x727+1) (x52"+1)
O<i<h-l
-70-
= XjX,
0<i<h-l
x at, (XK1+X>) Z
0&i<h-l
2º + h
[4.1]
ne
0<i<h-l
ro
at2
;
4, h
[4.2]
h= log,(3n+1) [4.3]
2
Alêm disso,
5 2 =
0<i<h-1l
V 2
= 2199, (3n+1)
2109, 3n
n
= (3n)V/? [4.4]
x,) (3n) /2
*
E(n,x7,X57) v XxjiXon + (x) + + log, (3n)
= x T (x. .214+1)
O<i<ch-1 iL<j<k [4.5]
(k-Di
2Ki, 24
;
= Pp
K
E
o<i<h-1
Pr 7 É
O<i<h-l
2
+...+P, Er
O<i<h-l
E
O<cic<h-l
onde,
asa = x.
P, T
À
P.
?
= E
x,) xR XxX
P
1<j,t,p<k
:
—72=—
P. = E
x.x
|
j*es
|
À x.
Pp, = E
*
15) e
nsa= Z 2X
$<1<h-1
-
2kh
k
-a.
2 -l1
ou St eja,
h = log, 2kKk Ç [(2-1) n+1] [4.6]
'
'
|
A
,
k
= 2 0-1) 109 [(2 -1)n+1]
,
k
We
2 k-1)10g [(2 -1) .n]
sp
DAPd
IOd
zXU-
LTP 96º vo co LV" LT" 296º vp9* TO" co LV" SS 02" 96º v9* TO 9h" 9Tº
6TV"S 029 6v'9 628 oL*L 076
9T'ce€ 9T'€E coeTt
6
vVLT€E8 SsSS*TO9
cE*oTT
09
oppapponH
et
soproLL8?N
ET Ez TT BT OT TT pe br BT TT ST GZ Sp OZ p€
SOperTeaAv
(X'U)
um A
sou
HIOMISAOQ
2
op
vposng
Ss8'SG 8P'L
er 96º 85"
SSL TL*6
97”
076
58" E€6º 89º sE* 87" 959"
9E€
07” L6º* 00" 0T" 959" EC“ 76º
EE”PT 09*TE 8E*ceT L8"8BT 8L'8Vv
LTPROILO
8E€*90T
"TT
vs
sooTI1TduA
oaxeuwunu OT ET OZ OZ O€ LT 90 6€ 69 TZ 9€ LS OZ 87 S8 BTT
ap
O
ov1boy
DAavmd
vp
(x“ a 10d
u)
qu
sou
?y LO LL 68º 60 99º LO CL" TO" get" 99" SS 68* 00º 60" 99*
T9'G
er ELO 8T“6 "ESTST 8r'“8
06'SS ES*oT 60'SE LO'ET LL'€ET
EL"ESS
ESTLT
SS*TTE
ze
ZE*oTTT
aod
TT TZ Tvs vpE T6 TT
69T
otT S6 OTE 95 OLT
9€ 96
(X'U)A
SoperTeay
VIZ9GVL
Wwaq
SOPEITSTA
sopra
axo0NAD
DA
SON
s
68
é OPPD
oo
86*S
er s6* 88*
LLIL
6/2" oC" 79" 06"
SLi
E6º Tp* 8h" ES" 9Tº php" 97 00º 6Tº 90* LV LO 96º LO?
L
£0*89 69º€Pp
Sp"BITE T8*SOS9 EE*TEE
TI1Tdum
et Te TS OT BT SE S6 PT 97 Co PLT
ET TC CT
TOT
9T 67 EBT
LT
OTT
LVIT
No
soo1a2dug
o]
ep |
uo
sexojvA
x SCTEOTO
509070
seT'O
SCTEOTO
579070
seT'O
STTEODTO 5790"
Set“
SeTEO“O 5790
seT'O
sSeTEOTO S790'
set“
SeCTEOTO
s790'O
seT“O
STO STO seo seo seo STO
vosng oyueBmPejl
SO so so So so SO
OpBT
O O O O O
sop
ep
ep
(U)
opôpanduo, sojpaAXTAeJUT
x Sel ose 0OS
| 0DOOT 0002 000*F
oTISeuwmN
sou
oppT
|
-76-
Para analisar Oo
pior caso de tempo de processamento
do algoritmo para árvores Quad, vamos
BUSCA-INTERVALO conside
rar somente arvores balanceadas [LEE- 78]. Sem perda de gene
A
com la k = 2. Nesse caso,
h
total estão pri
,
=
meiro quadrante. A região de busca tem a forma de um retângulo
assumir, sem afetar a complexidade, que ela tem os
eixos de coordenadas como os limites inferiores, isto ê,
ela [sempre se localiza figura 4.20, onde L(i)
de acordo com a
U( i) são respectivamente os limites inferior e superior do
U(2)
L (1) U(1)
L (2)
Fig. 4.20
A análise é feita contando-se o número de visitas
feitas a nós durante a busca, com uma restrição importante: no
algoritmo BUSCA-INTERVALO fazemos uma visita a um nó se e somen
te se seu retângulo limite se sobrepõe à região de busca; nesta
análise contamos um número de visitas que não é o número total
de visitas feitas em pois consideramos que, se
BUSCA-INTFERVALO,
o
oeF
Y K)
-78—
1 !
KR
T I | 11! [1 1 l !I| Í L.
1
$
(a) K) (b) K
Fig. 4.22
a
oeK
C
e
*%
Mº
oeeeseblaceeeeeoeoo 7 t
A
l
|
A
+ |
t
1
l
t
em K,
À
Fig. 4.28
e)
de
Focos
Fig. 4.24
—B0-
TRE
T
Fig. 4.25
fo
od md mm mm da
no o
subârvores visitadas:
1 e2deL
le 2deM
(a)
TT —=—=—=- 7
»
subárvores visitadas K)
l e2ddekL
3 e4deM
(b)
3»
K,
subârvores visitadas:
3 e4idelL
le2deM Fig. 4.26
(c)
| —-B82-
Ns
Fig. 4.27
1
x,
em me a
o
+
O
RN N
D
—+
+ Q
o) O o so
O) CC) SS CC =) (O O (Q
NY
WO
ÁW NNW
WS
(E) q
SWSS OO SO
SS POO MOOS
Fig. 4.29
T'(hy) = 1 + 27'(hy - 1)
é TNAARD
;
LENÓAIEDO %
raiz C
T'(hy-1) T'(hj-l)
Fig. 4.30
- 86 -
As equações de recorrência:
T (h) = 1+T ( h-1) + 2T' (h-l)
T'(hi)= 1 + 2 T' (h - 1)
T' (hi) = 3 2º
O<i<h]
= 251 27 [4.8]
Substituindo [4.8] em T (h) vem:
T(h)=22-1+T (h-1)
e resolvendo T (h), tem-se
T(h)= 5 2º -nh
1<i<h
= 2 (2-1) -n
= 2 (2ºº0/2. 57 hn
Como
2 2h =—
n = [4.9]
seja,
uu
ou
á
K,
C
e
rtoeeeenecol.oolo.
2
7
NC: e. 1
|
1
+” !
E
1
o
1
1'
|
K1
Fig. 4.381
gioe s que tem um dos lados limitados pelos eixos. Destas quatro
regi Des, apenas uma não é limitada, portanto, neste nível, tem-
-se um total de 9(nove) regioes limitadas.
À
K>
4 regioes ao Cc
longo de K,
—uma não limitada
B
A
+42
+” E
+
K1
4 regiões ao longo de K,
- uma não limitada.
nível 2 - segunda visita aos eixos
Fig. 4.32
(29-11) Ro)
regiões limitadas no nível i. Essas são as regiões que serão
- 90 —
que é a primeira visita aos eixos Ky' Ky' e... Ky,* Essa primeira
visita gera duas regioes ao longo de cada eixo, sendo uma não
limitada. No nível 2 é feita a segunda visita e são geradas qua
tro regices ao longo de cada eixo, uma das quais não é limitada
Em
geral, em cada nivel i é feita a i-êsima visita aos eixos e
são geradas 2º regiões ao longo do eixo K.. Como uma só não é
Bt) = (21)
- 13%
s(i) = 2º - (29) = 1)
.
...
condiçoes consideradas nesta análise,
.
|
lor sobre todos os níveis da árvore, ou seja:
T(h)= E
S(i)
O<i<h-1.
" E
0O<i<h-1l
[2 - rot -
- 97 —
+
usando a expansão binomial resulta:
T (h) =
k.ZA
2X
ah (k-1)
or),
ou seja,
T (h)= otk.nº7 A),
4,5. Conclusões
P, (n,k) = Oo(nlog,n)
no espaço fo,1]
ê:
árvore de h níveis é,
otk.nt7 (1X),
|
T (h) =
-
custo dessa busca é:
portanto o
-” -”
o nô
. .
2 o
.
| à A(65,55)
às
XY
Fig. 5.2
Fig. 5.38
K
2
b,
S2
B(20,70)
| AC65,55)
b,
“C(80,25)
1 >»
K,
Fig. 5.4
K, < 25 K, 2 25
Fig. 6.65
K>
E (15,95)
6 (110,85)
e B(20,70)
ó A(65,55)
$ D(35,35)
E Í80,25)
4E (100,10)
>
K7
Fig. 5.6
(O
E(15,95)
IT 35,85) é SG(110,85)
B(20,70) O(85,70)
*—— ?
|
M(115,65)
12 (65,55)
P0120,50)
à
H(10,40)
—L(85,45)
e-
4 D(35,35)
080,25)
bd
N(5,20)
I1(40,15)
re——————
? F(100,10)
K(75,5)
—
q»
K,
Fig. 5.7
- 102 -
E) (<)
GC (GE)
OBNO
E) (O O O [DIO (O
GOUAL DOOODECOO:I|
C JUUU O
S
(o
Fig. 5.8
:
ASSim como para ârvores Quad, não estão represen-
tados os nós com valores de chaves iguais. Esses nós podem ser
representados, por exemplo, em forma de lista encadeada onde
cada nó da árvore ê a origem de uma lista que contém todos OS
-m Cad
. .
me
variância dos valores distância entre
|
5.1. Tnsexção
Assim como para ârvores Quad, o procedimento bási
co para inserção de um novo nó em uma árvore k-d é o mesmo uti
lizado para árvores binárias. Começando pela raiz, compara - se
o nó a ser inserido com cada nó da ârvore para decidir se deve-
que
quer inserir, a inserção não é feita, uma mensagem é enviada
com a chamada do procedimento NO-JA-ESTA-NA- ARVORE (X)
earo
tina termina. discriminantes dos nós são escolhidos cíclica
Os
XI.CHAVE[1] + + +
- X1 .CHAVE [K]
so
E
Xt.SUB [1] Xt .DISC Xt.SUB [2]
Fig. 5.9
RAIZ
e E
Fig. 5.10
í
|
A definição de tipos e declaração de variáveis pa-
ra essa estrutura pode ser como segue:
|
const K=10;
os parâmetros:
INSERIR (RAIZ, X)
- 108 -
O procedimento INSERIR e as funções e procedimen -
tos que ele utiliza podem ser detalhados como segue:
procedure INSERIR (var R ; NO; X : NO);
(*inserir nó X na árvore com raiz R*)
var Q, F : NO
ACHOU :;
boolean;
1: integer;
begin if R= nil then (*arvore vazia*)
begin R:=X;
R+.DISC:=1
end
else begin
Q:=R; (*Q desce pela arvore)
F:=R; (*F-filho de O, inicialmente não nulco*)
ACHOU:= COMPARE (Q,X);
(*se Q=X não inicia processo de iteração*)
vhtrle not ACHOU do
begin
I:= SUCESSOR (Q,X);
| F:= Qt .SUB[ 1]
|
tf F = n1l
|
then (*achou lugar de inserir no*)
ACHOU:= true
else begin (*desce um nível na árvore!)
Q:= F;
ACHOU:= COMPARE (Q,X)
end
|
|
ends
1f F=ntl then INSERE NO (R,X,I)
else NO
JAESTANA ARVORE (X)
end
end;
- 109 -
ends
end;
COMPARE := teste;
ends;
- 110 -
begtn
Qt.SUB [FILHO]: =X;
Xt.DISC : = (Qt.DISC mod K)+l
end;
5.1.2 Propriedades
Um resultado importante da análise de árvores k-d
de [BENTLEY-75a ] mostra que: considerando-se uma árvore biná-
ria construir essa árvore inserin-
de n nós, a probabilidade de
|
Cn = 2(1+1/n) H
n -3
= 1.386 log,n
e a variância é:
2
(2+) e -4(1+2)
nl1 E
10 É
AZ
Var(C,) 10 HJ :
(BO
(2),
+
hn
)H
onde
e
HO =
l<k<n
x
a
A fórmula da variância aparece em [ KNUTH-73 ] ,pg
672, onde é atribuída a G.D. Knott. A expressão contêm erros
na primeira impressão, que foram corrigidos na segunda impres-
são de março de 1975.
A afirmação de que o número médio de comparações
(1+)c-1l
1
Cc
nr
'
[5.1]
dt
|
Vo
Cc =1+—
CA + Cl
+... nl OC!
[5.2]
=+ ps OQ
no.
t > O=
t !
dO
+ OQ
7º
|
(Cc, +l1)n
n+1l
e simplificando, vem:
Cn 2 (1 + 1/n) 2 — 3
5,2 Busca
; E
J
'
o
|
O
4?
8” M
-—
e
|
4 O crtroqJQT
TN
ITTOS qro corr 7 1
! [À t
!
H
|
|
o E!
TA
Vo
+
|
!
! N
]
e
oo
p'
+
!
! C
+”
P
àPESA 1
U
|
! : e
e
m
.”
-—>
K1
O
- 115 -
OW O OI O O O QO
SEOFOLONCORES O 69 O0O0OUWL
íOOOÓOOM ÓDOOÓOOGO À à
Fig. 5.12
É»
ra
E
Po
' '
L=-b ---—— 7
Po
1
!
'
'
|
t
t
t [
L 1 à
+
En
i
|
mn á“
|
Fig. o5.1lé
à
k2
B
b, --=... º
u, potocAATPTA
pompooTo 3
2 à
ooo
| |
4
!
|
mm
ed 4º
Cs 1-
LS
2 NO qo 1
”v
K
Fig. 5.14
seu discriminante é K
2 e seu valor b, está acima do intervalo
[£,, u, , apenas sua subárvore esquerda será pesquisada. Não
8
K>
E
o
%
' B
Lea—
G
;
!
posto AoA o?
!
?
po
! t 1!
tl
1
|
o! | '
ea
t
t
LN re
' na
22to
t
'
poco poco
! !
ao
1 (
t 1 i
Pi
1 '
!
F ' !
fu,
o
1 !
)
LU
1 “
1d 4 À
>»
e, 97 &, K,
Fig. 5.15
árvores vazias.
|
so
GW SW
OI O O O (O
IoOECSeu ÚOOOSNOL
“LL LULU DOOHODOODS UU À
Fig. 56.16
—-
120 -
—
procedimento
Í
i
ACHOU ponteiro para um nó.
(X), onde X é um Ê
end;
- 122 -
begtn
if (RI.CHAVE[1] < REGI[2*1-1])or
(R1.CHAVE [1] > REGI [2*1])
then TESTE:= false;
'
I:= I+ 1
end;
ESTA NA REGIÃO:= TESTE
ends
—
ticas que vãotornar mais rápidos os processos de busca exata e
busca por intervalo. Apesar de ser mais custoso, por ter um prê
“processamento maior, é possivel construir uma arvore k-d otimi
zada tal que, todos os nós terminais aparecem em dois níveis ad
jacentes. Como essa árvore balanceada, a busca será feita no
éê
Fig. 5.17
LISTA= record
CHAVE : array [1..K] of real;
LIG : PONT
ends;
else begin
(* separar a coleção C em CE e CD*)
ORDENAR (C,J);
|
IT: = J-MÉDIO (C);
if C=I then CE:= ntl
else CE:=C (* início da lista de nós da subárvore es
querda*)
INSERIR(R,1); (*inserir I-ésimo nó da lista no regis
tro árvore apontado por
da R*)
1; (*discriminante do próximo nível*)
|
M:= (J mod K) +
R+.SUB [1]: = OTIMIZAR (CE,M);
CD; = I1.LIG; (*início da lista de nós da subâárvore
|
direita*)
R+.SUB [2]:= OTIMIZAR (CD,M);
end;
OTIMIZAR:= R
- 127 -
Corin)= 51
onde q =
log, (n+1)
e assim, as
: 2”
regioes de busca - retangulos
serao
-m
em fo, 2
com
lados x, E X,-
Paranível i=0, sendo a raíz da árvore o nó
o A e
seu retângulo limite [o,1]? como mostra a figura 5.18,
É à
1
rig. 5.18
4
qualquer linha paralela aos eixos K, ou K, intercepta apenas '
K,.
K>
Oo
l
B
o
A
o
C
e
> K
Fig. 5.19 1 1
-
Para o nível i=2, como mostra a figura 5.20, linha paralelas
aos| eixos K,
1 ou K, interceptam duas regiões, independentemen-
te da localização dos nós.
|
É2 4
|
1
E
o
e G
!
o
|
e” A
! o Cc
F
|
1 "K,
Fig. 5.20
—
1
e
E e
B
e—
º G
o
A
º
"lo t ec
T
o
o
o
º :
o» K
1 À
Fig. 5.21
(21 G63+2)/2),
de (x,
2
[(i-1+1) /2], a (x 2/67 /241)
regiões na direção paralela ao eixo K, e o intervalo x, inter
cepta em média,
de (x 2 2Í(i-2+1)/2], a (x 2/21/2145,
regiões na direção paralela ao eixo K,.
Esses números médios tem como limites superiores -
- 132 -
p-BP-————) - A
——
pr-Am=--—-
D > Aeee
(= =
— o
Fig. 5.282
[x
2 6-D/2),7 = f[(0.3).2+1] = 2
x 21 372/21,
2/1 (3/2)] e
x
retângulos na direção K., e o intervalo x, intercecciona entre
x 2 26B/2)] 2.2/06B-D/2]
2
E(n,X1/X,)
n,X7/X, = E
V(içx,,X)
1'*2
04i<h-1
= E (x 12/24 1x 21 67 /2hko)
O<i<h-l
n=2
mk
-l
Logo, sendo h a altura da árvore, para k=2, tem-se:
h=2m
j"
Então,
|
o
E(n/X1/X,) =
Osigm-1
2
x (x, (x,2 +1)+
0<igm-l
E
(x,27 (x,27+1)
=
;
E [x x 2º+4+ (x +x
12 12 ) 2i+IH+x x
12
22i+hy
1
2 hz2 2É+1) [5.5]
0<i<m-1
Sabendo-se que:
5 22i —
2271
0O<i<m-l
3 [E .6]
E 27 = 27", [5.7]
0<i<m-1l
22H o
2m
(2
.
z ) [5.8]
0<i<m-1
E(n,x7,X,) = xXx”.
=
2
2m
5
1 + (x, +2 x) (2
m
—-l ) +
=
x.x
1º"2
2
x 1X, (2 2m. 12)
2m
-1)
+
+ 2x.1 (271)
m
(3x, +2Xx,) (2-1)
+ 2m
+ 2m [5.9]
Como
[5.10]
=
- 135 -
vem:
XV?
2º (n+1) [5.11]
e 2mM.=
log, (ntl) [5.12]
E(n,X7/X,) =
x xn+ (3x, +2x 2) (tn+1) V/2-1) +
log, (n+1)
Em geral, para quálquer valor de k, sendo a região
de busca dada por
2 [(i-3+1) /K]
ce .2 DAL,
e um limite superior do número esperado de intercecçõoes da re
gião de busca com retângulos limites ao longo do eixo K. e u-
ma boa aproximação, a menos que
próximo de l. O número
i esteja próximo de
esperado de regiões associadas aos
0 e
x; nóÓs
o
- 136 -
= O<i<h-1 1<ji<k
14j<k
x ,tO (n 1/
101/k
,
É possível verificar que estã
|
expressão,dita avaliadora é adequa-
da, icomparando seus valores com os resultados empíricos, obti
dos por Silva Filho em [SILVA-79] como mostra à tabela 5a.
Para esses testes foram feitas simulações para k = 2 e inter-
valos especificados por um valor fixo para ambas as chaves.
x
?
Os registros tem valores em fo, 1) e a expressão utilizada é:
i
Tabela 5a
Comparação de valores empíricos e calculados por E(n,x) pa
ra o número médio de nós visitados por BUSCA-INTERVALO, com
—.—
Empírico Avaliado Enmpírico Avaliado
:
[d,1ak
;
o "overwork"
1<3<k
esperado da busca é:
|
o(nt7 (1/k),
t
ê a constante,
|
que para O caso médio pode ser bem pequena.
eixo total
primeiro quadrante. |
O número de registros é n=2P-1 para
algum inteiro positivo h.
essa ârvore pode ser Assim séndo,
construída como uma árvore binária balanceada com todas as fo
|
|
- 139 -
Com isso a região terá sempre a localização mostra-
da na figura 5.23.
K,
á
Po
vU(2)
L(1) U(1)
-—=>
L(2) K1
Fig. 5.88
fm o mn
eee
oe
ee
Fig. 5.24
” o
E
*
B
o
Fº
Lose
pane
eend -.- Cc
|
'
1
"K,
Fig. 5.25
2 :
o
E
4
%
LS a a =. 4.
B
t
C
ns 1
A”
>
í
K,
Fig. 5.26
i
Fig. 5.27
bm
r> mm
to e o a RN e de=
———
posse
Fig. 5.248
+
B B
O-
o
L
I I A
:
H ———+
do
fes am mam a a o o mb
md cm —. .—
. mama' Poor eaneenePma=-" --—-.
!
Joao)
|
! Cc H | Cc
!
i
t e '
| |
'
'
!
' 1
|
|
i
|
»
K7
K
2a
|
:
E
B
—e—
0 A
!
i
|
enero do --
PH
' [o
& !
H
* '
t
)
|
'
K
1
Fig. 5.29
o
(et
a
máximo de
6G
B
+
A
o
D
0
Pose edoooo NS
(em
I
Cc
O e
!
H ;
a".
DO
+ FA
1 E
K
Y,
i
PK 1
Fig. 5.31
- 146 -
Fig. 5.32
T(h) = 1 + 1+ 1
+ T(h-2) +T'(h-2)+1+T'(h-3)
T'(h]) = l+1+1+ 2T' (hy-2)
TIhe2)....0o x
v
1
'
NS
£ 1! (hi?
——.ZTINhçI2)
NR
ec
1
=
1' NS
—-
do en ed.
Fig. 5.38
—-
148 -
As equações:
2i+l [5.13
3 b 2 "
Fo
—
5(27-1)-2i
!
para h=2i
T(h)= 7T(2-1)-(2i+1)+2 para h=2i+1
então:
5 (22/2-1) -h para h=2i
T(h)=s
e
Cs
Como
ns= 2h,
pode-se reescrever T(h) da seguinte forma:
isto ê,
T(h) otk.ntr A), para k = 2
K>
|
:
|
E
o GC
. º
D
o
6” .
Cc
|
e"
— "1
Fig. 5.34
(cs
> ——
nível O X, nível 1 K
1
primeira visita a K,
E
"
e
G
=
B o
+ À
;
e Cc
er
+ K
nível 2 1
primeira visita a K, :
Fig. 5.85
[1
Na segunda visita a Ki" são traçadas duas linhas
perpendiculares ao eixo K,, em cada uma das regioes «geradas
na primeira visita. Isto resulta quatro regioes ao longo de
À
K
2
:
)
TE
a KR,
|.
primeira visita 1
'
G
duas regiões ao longo
1
Í
do eixo sendo uma não ——
1
A
limitada. !
7
!
(
do
1
| Cc
e
|
|
| F
mm do nd o
'
mo
mm md o me mc mm mam ns me am ma mm mm mm o o om
amo
+
>
; K
' nível 3
Fig. 5.36
sim| por diante, de tal forma que, no nível i, para k=2, o nú-
mero de visitas feitas ao j-ésimo eixo é:
1+ [Ez ]
- 153 -
(altlii-1)/2)
Com
o
isso pode-se calcular
21H ti-2)/2]
o número total de regiões
não limitadas em cada nível, que é o número de nós visitados
nesse nível. Depois, somando-se esse número para todos os ní-
veis, têm-se o número total de nós visitados, considerada a
ressalva inicial.
Para o caso geral de registros com k chaves, assume
-se que O número total de nós ê n = 2" 7 e que as chaves tem
valores positivos. Os discriminantes também são escolhidos -
ciclicamente e hiperplanos perpendiculares aos eixos K,' K, ,
«..,K, particionam e limitam regiões.
No nível zero tem-se apenas uma região não limitada
No nível 1 tem-se hiperplano perpendicular à K,, o que éra
um
1+ É)
o que é possível verificar considerando que, atê o nível k
fez+se uma visita a cada eixo, atê o nível 2Kk fez-se duas vi-
sitas, e atê o nível .k fez-se tt. visitas a cada eixo. No
143 <k
—
como considerou-se que:
n = 2",
m
tem-se h=mk
Assim,
E
x 2t=27X, [5.20]
0<1 <n-1
Considerando que:
a= n (229HlG-D/Ak),,
183 2k
vem:
a = (2H LONA,
a 0-2, (alla, QE LGAS07)
,,
ou seja,
x A = E A + E A + z A+ ...+ Z A
0<isgh-l O0<i<k-1 k<i<2k-1l 2K<i <3k-1 (m=1) k<i <mk-1
0Siímh-l
o+(22-1)
& nº
l<j<k
(aloK+ç22—n) tral-nko
(QUHlIGIOA
,ho... + (22-10
*
tan)?!
+(22-1) º (22-17 +02 Load
o... th + (22-17 X (227
(dy + coccecescocosceneeesveco
em1)
=
lim-1
x
O
(Ly
cin"
pk, o (Zn
(etniegtAykoi x
ltáan-l I<isk-l
a
[5.21
- 156 -
chamando-se de G o somatório:
G=" E t
(2t=1) tattoo)
t+l1 k-i
2
l1<i<k-l
e dêsenvolvendo, vem:
,StHlo,.,ã
(at-ntothinkh o
;
G= x
= (28HLHKE
O
+
(atra) É
[5.22]
ISPSkLO
41
(2-1)
|
1,1
go (É 2 tn /28I =
|
Isa (ety/28hD)A
2 a
(2tyKpetHA, y- (2H ko ato, 5.23
(-25 (28H pk
Substituindo-se [5.23] em [5.22] e simplificando, obtem-se:
5
O<ish-l1
q
l<j<k
(21HFl-5)/K)
à,
trlDD" k,,t+l
,k,,t - (atnfícattoo
2
-
(2ip&% [5.25]
;
(2
- v
1<i<m-1 1<t<m-1 2
14i<m-1
oro
16tám-1
LED etp
2º
- eta et
tl=)
=
(5
16i<m-1 1etám-1 2
ce 14i<m-1
chpkha
po
;
l1<t<m-1
(281 -J(2E-1 -
2 ente k,/trl
=
16i<m-1
x
[etptoiitdE=
; : i+l
2
..k
+
22 ink
2
[5.27]
lsi<m-l
z
(Dk pintos (Zouk [5.28]
by
1<i<m-1
5
ato BLAKE, eh eat Alo
2i 2i 2 22 23
o...
2,
—
FT
—
(229 X
JL
+
241
2
— 291
22
=
(2byº,
2
eo ep 2 27)
xo
ligml
ok
(2)
2À
-
[5.29]
- 158 -
T(h) = + [5.31]
2
l6im-1 2º
tente x
o<i<k
(8 en bt)
obtem-se ;
lsikm-1
|
ro
BD i
2º
,,k
1<i<m-1
zo
& xo
O<j<k
A epiehkto o ;
=
All (k-l1)m
2X Lo
4170 -
(2(k-2)m, [5.32]
IR 2+0o
W
m k mk
a (2Mk-2), [5.34]
27 am=1
T(h) = 28Kk
1.7 mk
+ 2a(k-l1)m. 1l
+ O(2 m(k-2),
2X71
2(k-1).m ,
- pomlk-l1) , ,m(k-1)+1 ,
(E
26
"à
((x+2) +
O (k. 27Km,
o(k.nt7 (1/X),
Uma
, Oiscriminante
Ze outros dados
B Cc
25 60 > 70125 | 2
INR
|
>
re SS
49 138
=
S
Fig. 5.37
- l61 -
70 65 85
e] Gi I|
SS
SN
:
65 p
É
TJ
ddÀ
de
Ber
Tl:
É
í
: do
TH
|
= 7
|
un
À
8
Ti
S
1 e i
1 Wo
ma t
FA
l
' Ss mn
7e
B
o”
'
o
! R S
:
8
!
“IR
1)
TAI &8|
À
FR
internos
20 Pp Am bh externos
nos nos
- 162 -
5,6) Conclusoces
—- Armazenamento:
Síatn/k) = O (kn)
—
Busca:
guintes conclusões:
(Em
E(n/X,x,)= x
x nt(3x,+2x,) ((n+1) (2-1) + log, (n+1)
- para registros com k chaves e o hiper-retângulo da busca de
terminado por intervalos x,
,X,,...x, esse número médio é da
do por:
&
E(ilxpxz eax = E
0<i<nh-l
T
1<3 <k
ex 2 (ETITD/A,)
ohde h é a altura da árvore.
E(n,x 7,2.) = n. TI
163€k
x. + ont (n/A),
Então, para árvores k-d balanceadas, com hiperpla
nos equidistantes e registros uniformemente distribuidos no
hipercubo fo," o custo da busca por intervalo será em mêdia
dado por:
a £7
-do por:
E
— 166 -
6. OUTRAS ESTRUTURAS
-= (log, n '
+E')
. By(n/k) = On Exu
So (n,k) = o(nº'*)
A (n,k) = O(n log,n'+ F'!)
custos:
Qu (n,k) =
o(
para qualquer e > fixo. É mais eficiente com relação
O ao
FE
e [vang-78 .
'
|
As estruturas analisadas no decorrer deste traba-
lho je as introduzidas neste capítulo parecem refletir satisfa
tóri amente a situação em que se encontram as pesquisas no as-
sunt O.
V
—-
169 -
—
7. CONCLUSÕES FINAIS E TRABALHO ADICIONAL
—
e onde
em [BENTLEY-75a] .
Tabela 7a
: Pp(n,k)
0
(nlog,n) O (n)
(n)
O
nt,
(k.
o(k.nº lo
(nlog,n) O
ção «
2 busca podem ser feitas alternadamente.
Nas estruturas de busca sequencial, projeção e cê
lula 5 alterações são feitas de forma razoávelmente simples. Pa
- 171 -
As o
caso em estruturas estão implementadas em memória prin-
que as
cipal. Quando é necessário usar memória secundária como discos
e fitas, todas as estíuturas podem ser eficientemente implemen
tadas nesses meios.
análises de Busca Sequencial, Projeção e Célu
As -
las podem ser feitas faci Imente, mas para ârvores Quad e kd
os resultados encontrados são: parciais, como no caso da busca
por intervalo em que se considera um tipo muito particular de
ârvore, como a árvore perfeita. Para o pior caso, encontra-se
um valor assintótico para essas estruturas considerando âárvo .
REFERÊNCIAS
[BENTLEY
-75a] BENTLEY, J.L.: "Multidimensional binary search
trees used for associative searching".
Communications of ACM, 18(9): 509-517, set.l1975.
[BENTLEY-80L) :
2: 187-198, 1977.
h
ture for large multidimensional dynamic indexes.
"Department of Computer Science, Carnegie-Mellon
University, fev.1981