• Nenhum resultado encontrado

ESTRUTURAS DE DADOS PARA BUSCA POR INTERVALO

N/A
N/A
Protected

Academic year: 2021

Share "ESTRUTURAS DE DADOS PARA BUSCA POR INTERVALO"

Copied!
184
0
0

Texto

(1)—. HeME. W. INETTUTO. 08 CÓNCIAS. MATENÓNCAS. DE. SÃO. GuMIOS. LC13C.. ESTRUTURAS DE DADOS PARA BUSCA POR. Heloisa. de Arruda Camargo. INTERVALC. Scarpelli. Orientadora: Profa. Dra. Marta Carolina Monard. '. UNIVERSIDADE DE SÃO PAULO FB. SÃO CARLOS. -. SÃO PAULO. BRASIL. SP.

(2) 2. ERRO. 4A. à.. QE. 7. ESTRUTURAS DE DADOS PARA BUSCA POR. Helotsa. de Arruda Camargo. INTERVALO. Scarpelli. Orientadora: Profa. Dra. Marta Carolina Monard. Y. Dissertação apresentada ao Insti tuto de Ciências Matemáticas de São. Carlos,. da Universidade. de. f&e. Paulo, para a obtenção tulo de Mestre em Ciências. São. S 7. pon DX. AN. Computação e. São. Carlos. —1984-. —. Estatística.. do. Ti. Ff. de.

(3) AGRADECIMENTOS. deste. todos que contribuiram para a concretização trabalho quero expressar meus agradecimentos, destacando A. em. es. pecial: A. dedicação, incentivo. e. orientação. com que. fui dis. tinguida pela professora Dra. Maria Carolina Monard. O apoio, interesse e amizade dos professores Dr. Ode lar Leite Linhares e Doris Ferraz de Aragon, esta, tambêm res ponsável pelos meus primeiros passos na pós-graduação. Agradeço também: Ao. Departamento de Computação e. Estatistica. da. Uni. versidade Federal de São Carlos. Aos funcionários e amigos do Instituto de Ciências Matemáticas de São Carlos, da Universidade de São Paulo. À Maria do Socorro Gonçalves de Souza e Sueli Pauli na Sanchez pelo. trabalho. de. datilografia.. Finalmente, aos meus pais que possibilitaram a forma ção acadêmica que. me. permitiu viabilizar este trabalho.. Este trabalho contou. com o. financeiro das entidades: FINEP. apoio CAPES e.

(4) RESUMO. Neste trabalho são investigadas várias. "). estruturas de para Busca por Intervalo em arquivos estáticos. Cada estrutura ê apresentada junto com a. descrição. dados. dos procedimentos de prê-processamento e busca e da análise. de. seu comportamento, fornecendo os custos de pré-processamento,ar mazenamento e busca. das. em. As. estruturas. mais elaboradas são. analisa. detalhe.. consideradas as situações nas quais uma estrutu claramente superior à outra e finalmente são relecionados São. ra. é. vários problemas turos.. em. aberto que podem dar origem. aàa. trabalhos fu.

(5) ii ABSTRACT. In this work range searching on. we. investigate. some. data structures for. static files.. structure. the presented together with description of the preprocessing and searching procedures and the analysis Of its performance, giving the preprocessing, are storage and query costs. The most elaborated structures Each. &s. —. analysed in detail. We consider the situations on wich one structure is clearly superior to the others and finally relate several open problemas for further work..

(6) iii INDICE CAPÍTULO. l.. INTRODUÇÃO. CAPÍTULO. 2.. BUSCA POR CHAVES MOÚLTIPLAS. 2.1. Tipos CAPÍTULO. 3.. ..cccocaceaeeaaanaaeeVeceaecaaaTaoo. de BUSCa.. cocos. ...ccccocaecccesereo. 3.1. Busca Sequencial. 3.3. Células ..cecceroreceaeavetvecreceaaaaaao. 4.. ÁRVORES. ..cecccceveco.. e. (ACP). .20. Le.... Ana. SDS. 4.1.1. Algoritmos BUSCA. 13. DA. -...35 rara. ..ccocececenerraceaceeearaaco. ec.... QUAD. 4,1. INSergão 4,2.. ....1]1. INTERVALO. 3.2. Projeção ..ccerececaeaaeaaaeaaaaeo. 3.2.1. Análise de Componentes Principais. CAPÍTULO. 5. rear] era.. BÁSICAS PARA BUSCA POR. ESTRUTURAS. 1. de. Inserção .....l00ccececco.. d2. 42. E:. 4.2.1. Algoritmo de Busca ....2ecececceeececoo ..53 4.2.2. Árvore Quad Otima ...c.l0ccvcecaceca.e.o. 61 4.3. Análise Quad. de Busca por. Perfeita ....h 0.0.2 acecoo. 4.4. Anâãlise. do. 4.5. Conclusões... 5.. ÁRVORES. K-D. eRARacacacaAae. 62. intervalo Balanceadas....... 1/1000. «...76. Pior Caso de Busca por. para Árvores. CAPÍTULO. Intervalo para Árvore. Quad cnc.. 0eve... NA. ..ccccesecceccecaceco.. aaa.. 91. cacau. ra..93. 5.1. Inserção ...cecoseeeceeecco. cAcaauao. 5.1.1. Algorltmo de Inserção ....... ecc... 103. eres.. dO4.

(7) iv. 5.1.2. Propriedades ....eccececererecerererse. BUSCA. L.ecoccecerrecereos eTRRaao. eee... aea....... .. 110 113. 120 5.2.1. Algoritmo de Busca ... AA 5.2.2. Árvore k-d Ótima ...llll0ecaaacaaaa.a-o 122 Análise de Busca por Intervalo para Árvores k-. BalanceadaS... 0.0 eeeececereceocecrceeeese. ol2B 564. Análise do Ptór cado de Busca por Intervalo pa d. ra Árvores k-d Balanceadas. ....ll...010.0..........13B. Árvore k-d não homogênea ....VlA0ececocecece.ee.. 159. Conclusões .....1021.+o cAaAPT. TULO. 6,. OUTRAS ESTRUTURAS. caPI TULO 7. REFF RÊNCIAS. CONCLUSÕES. .. FINAIS. ....... coco e.FTecvo. E TRABALHO. eeaececrecoecero0. eocerecrececeorrr. ADICIONAL. 162. «....l166. ........ 169. CRReVeRaRaARRAARRaaaaRARAAAaRRACaRRAaTRAARAAFAvo. 173.

(8) 1.. INTRODUÇÃO Um. dos problemas fundamentais da. ciência. de. computa. arquivos e muitas estruturas de da dos e algoritmos eficientes têm sido desenvolvidos para resolvê lo nas suas mais variadas formas. A maior parte dessas estrutu ras e algoritmos está voltada para o caso de busca por chaves ção é o problema de busca. em. primárias, isto é, busca sobre arquivos constituidos por regis esta tros identificados por um único campo de "chave". Para forma de busca muitas pesquisas hã foram desenvolvidas e existe uma extensa bibliografia que trata do assunto. A situação é diferente quando se trata de busca por chaves múltiplas, ou seja, a busca baseada nos valores dos ou ê tros campos do registro além da chave primária, que também chamada de "busca. multidimensional", "busca por chaves rias", "recuperação por atributos múltiplos" ou "busca. tiva".. algum tempo. atrás. para conjuntos. com. Há. de dados. pouco se conhecia sobre. muitas chaves. mas nos. este problema tem sido foco de um grande número diversas estruturas começaram a ser projetadas. Uma. da com uma. busca sobre. requisição. um. chamada. associa. estruturas. últimos. amos. pesquisas. conjunto de informações. usuário,. do. de. secundã. inicia. éê. "consulta".. e. A. consul. ta coloca condições sobre as chaves dos registros e a busca é realizada para procurar registros no arquivo que satisfaçam es busca por chaves múltiplas pode ser de vários dependendo da maneira com que a consulta estipula condi. sas condições.. tipos,. A. çoes sobre as chaves.. estruturas. de dados. são,. em. geral ,mais. tipo de busca. objetivo deste trabalho é analisar métodos. ou menos adequadas à O. As um. ou outro. para.

(9) resolver a. particular de busca por chaves múltiplas: busca por intervalo. Colocando este problema em termos geo problema. um. métricos têm-se. um. conjunto. F de n. pontos no k-espaço para. prê. processar em una estrutura de dados. Depois de prê-processar os pontos deve-se responder consultas que pedem todos os pontos x de F. tal. que à primeira coordenada x, de. valo fLi,u)], a segunda coordenada x,. al. &. x. está. em. inter. algum. [2i,us],... x,. 6. [Lo. |. Um. tervalo. método. para resolver. caracterizado por. ê. busca por. o problema de. estrutura para armazenar. um. dos, pelo algoritmo para construção. OS. in da. ou pre-processamento dessa. algoritmos para à busca. Cada estrutura é analisa da usando-se três funções de custo que dependem de n, número de. estrutura. e. pontos e de k, número de dimensões. de busca A, usa-se a seguinte notação. l.. Py'(n,k) no. representa. k-espaço. 2. S, (n,k). em uma. o. custo. do. estrutura. Logo, para uma. estrutura. [BENTLEY-79C]:. pre-processamento de. n. pontos. de dados;. representa. o. representa. o tempo de. espaço de armazenamento exigido pela es. trutura; 3.. Qx (N,k). Estes custos são do do. em. busca, ou. o. custo da consulta.. geral apresentados. pior caso, podendo aparecer associados mencionado explicitamente.. com o. como. análise. caso médio,quan. importante observar que estão sendo cons ideradôs apenas conjuntos de dados estáticos. Apesar do procedimento de insérção ser descrito para algumas estruturas, não são tratados É. OS. casos. em que um. grande número de alterações, ou seja,. inser.

(10) ções. e. eliminações, é feito alternadamente. capítulo. com a. busca.. deste trabalho, são apresentados al guns tipos de busca por chaves múltiplas mais conhecidos. No capítulo 3 são apresentadas estruturas chamadas bã sicas para a busca por intervalo: Sequencial, Projeção e Célu las. São apresentadas de maneira rápida por serem razoavelmenNo. 2. te simples, juntamente. descrição dos procedimentos. com uma. prê-processamento e busca.. feitas. São. as análises de seu. portamento e os custos são apresentados de acordo. com. as. de com. fun. ções de custo já definidas.. capítulo. No. Quad,. 4. analisada a estrutura. é. introduzida por Finkel. crição e suas. e. Bentley. análises são feitas para. em. de. arvores. [FINKEL-74]. Sua. des. particular de re se tratar de uma estrutura o. caso. gistros com duas chaves. Apesar de com características interessantes pode tornar-se muito custosa em termos de memória quando os registros tem mais que duas cha. ves. São apresentados algoritmos para inserção e busca e anã lises mais detalhadas da busca por intervalo em uma árvore Quad perfeita e do pior caso desta busca para árvores Quad balancea '. das. O. capítulo. de. árvores k-d. de. versatilidade. 5. é dedicado à. [BENTLEY-75],. apresentação da eestrutura. caracteriza-se por ser de gran muita utilidade. Trata-se de uma. que. porisso de generalização da ârvore binária de busca unidimensional que tem as mesmas propriedades que esta. Também são vistos algoritmos de busca e inserção e análises mais detalhadas da busca por in e. tervalo para ârvores k-d balanceadas ta busca.. e. análise. do. pior caso des.

(11) capítulo 6 descreve brevemente outras estruturas para) busca por intervalo que têm interesse fundamentalmente teó O. ricol. |. |. O. capítulo. 7. apresenta as conclusões gerais. resuino dos custos de cada mas em. uma. das. estruturas. e. com. um. relaciona proble. aberto observados durante as pesquisas que dão origem a. trabalhos .futuros..

(12) 2.. MÚLTIPLAS. BUSCA POR CHAVES. Formalmente o problema de busca por chaves. relaciona-se onde cada de. arquivo. com um. registro. R. valores que são os. F. campos ou. quisição de busca é chamada. registros, m-upla ordenada (vi, Var... Vu) atributos do registro. Uma re. que ê. de F é uma. uma. múltiplas. uma. coleção de. "consulta" ao arquivo e. especi. fica condições sobre alguns ou todos os atributos. Os regis tros cujos atributos satisfazem as condições especificadas for mam a resposta à consulta e devem ser listados pelo algoritmo de busca.. Dizemos que um campo ou. atributo. é uma chave se. uma. consulta pode se referir a ele. Por exemplo, vamos supor que. em uma. universidade. hã. conjunto de informações sobre seus alunos, como: nome, núme ro, período, número de créditos jã cursados, média geral e cur so. Para saber quais os alunos de um determinado curso que te um. riam chance de se candidatar a algum tipo de bolsa de estudos, pode-se fazer a seguinte requisição, estipulando-se condições. sobre os campos: "quais os alunos do curso de engenharia que estão cursando o 7º ou o 8º período e tem média superior a 7.0". Neste exemplo os campos: curso, período e média são,. certeza, chaves. Quanto aos outros campos: nome, número e número de créditos, serão também considerados chaves se existir. com. outra consulta aplicável a esse arquivo que se refira a algum deles, caso contrário serão considerados apenas atributos. Portanto, se um registro contém m valores, pode con ter k < m chaves. Para simplificar, vamos de agora em diante, possui, nos referir a registros pelo número de chaves que ele.

(13) -. 6. -. hencionar explicitamente os outros m-k atributos que possam existir. Os registros serão tratados apenas como uma k-upla de sem. valores. ral, que Í. mas como. <m) que são as suas chaves.. (k. Assumimos, de modo. ge. outras informações podem estar presentes no registro, elas não tem influência nas estruturas e métodos anali. sados, não serão mais consideradas.. múltiplas pode. também. termos geomêtricos, considerando-se cada. chave. problema de busca por chaves. O. ser colocado. em. valores espaço. Assim, os k (VI Vorcco, Vy) de cada registro representam um ponto no espa ço de coordenadas k-dimensional. O arquivo de registros se tor na um conjunto de pontos no k-espaço e uma consulta especifican como uma dimensão do. do. registro. do. critérios. a serem. satisfeitos consiste. em uma. desse. região. espaço. Os pontos que se localizam na região do espaço delimi tada pela consulta constituem a resposta para a consulta. busca por chaves múltiplas engloba várias diferentes de busca, que variam de acordo com a maneira A. as condições sobre as chaves são especificadas. uma. estrutura depende,. em. geral,. do. tipo. de. A. formas com que. análise. de. busca.. seguir apresentamos uma classificação geral, que descreve alguns dos tipos mais conhecidos de busca, entre eles a busca por intervalo, que será o tipo enfocado neste trabalho. A. 2.1. Tipos de Busca Presume-se nessa classificação que. arquivo tem. k. registro do chave i do re. cada. chaves K,, Kar... .1Ky e denota“-se a.

(14) — gistro. R. -. a) Busca Fxata em. <i<k.. por K, (R), 1. tipo mais simples de consulta e consiste A perguntar se um registro específico está no arquivo. ê. O. consulta define valores vi, Var..., Vv, Para as chaves Kar. Ky, e então, procura-se no arquivo registros com tamente esses valores para as chaves, ou seja, =. (R/K,(R). v, para. Ki,. exa. l<ix<k).. valores Parcial - neste segundo tipo de consulta os 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. b) Busca. parcial com t chaves especifica conjunto destas chaves, então, os re. chama-se consulta de busca. das.. Chamando. gistros. T(t). o. estão sendo procurados são:. que. (R/K,. (R). uma. para. it T(t)).. na. base de dados da Universidade, requi listagem de todos os alunos que estejam no 49. Por exemplo,. sitando-se. =v,. periodo e tenham média geral 7.0, estão sendo. valores para. t. = 2. especificados. chaves.. tntervalo - é o tipo de consulta no qual é especi ficado um intervalo de valores para cada uma das k chaves,so licitando todos os registros que tenham valores ros intervalos. c) Busca por.

(15) -8correspondentes. Por exemplo, em um arquivo com informações sobre usuários de um centro de processamento de dados, pode se querer saber quais os usuários que fizeram uma estimativa de uso de 1000 a 2000 A. cartões. e de 500 a 800. ser colocada. sua definição pode. ra: especifica-se limites superiores c,. e. da. formulários. seguinte. manei. limites inferiores. Pi para os valores de cada uma das chaves K,, l1<i<k. gistros que estão sendo procurados são:. tR/b,. < K,(R) <. Cc,. para. Os. re. 1<i<k).. consultas especificam intervalos para t das busca k, determinam -um tipo de busca chamada. Quando as. chaves, pé. t. <. arcial por intervalo.. interpretação geométrica, a estipula çã ão dos intervalos determina um hiper-retângulo no espaço k Tdimensional, e a busca consiste em encontrar todos os pon tos do espaço que se localizam dentro desse hiper-retângulo. De. acordo. com à. d) Busca por Região (Busca Booleana) -. Trata-se de. uma. combina. tipos anteriores, usando-se os operadores booleanos AND, OR, NOT. Esse tipo de requisição é O mais geral e en globa todos os outros já definidos. Caracteriza-se por espe ção dos. cificar. uma. região qualquer. k-espaço, onde devem. do. locali. zar-se os pontos procurados. e) Busca. do Vizinho mats Proximo. agora, sao usadas quando. O. -. As. consultas definidas. até. que se quer saber é se a base. de. está sendo procurado, seja. um,. dados contém exatamente o que.

(16) -—. 2 =. vários registros.. nenhum ou. Em. alguns casos porém, pode ser. necessário procurar, quando à base não contém necessariamen te o que foi especificado, o(s) registro(s) que mais se apro Ximem daquele que estã sendo procurado. Por exemplo, se que remos. (ss. um. livro. que. trate. de dez. tópicos de. não se encontra no arquivo, podemos. um. assunto e ele. estar interessados. ou. em. que trate da maioria desses tópicos. Ou ainda, se um ar quivo contém informações sobre todas as cidades com agência. tro. correio, e associada a cada cidade sua latitude e longitu e uma carta ê endereçada à uma cidade sem agência, a cida. de de. de mais próxima que tenha. uma. agência pode ser selecionada. co. destino.. mo o. Este problema, de encontrar. ou mais. um. registros. no. arquivo que mais se aproxime de um registro dado é chamado pro blema do vizinho mais próximo, onde a proximidade é medida atra vês de alguma função de dissimilaridade ou de. distância,. -. por. distância euclidiana. Em geral o problema do vizinho mais próximo aplica-se a arquivos de dados que armazenam regis. exemplo. tros. valores reais, para que possa ser aplicada a medida de. com. dissimilaridade. Formalmente, dado. tos. por. k. gistros. mais próximos de. está. arquivo).. no. Na. De. um. arquivo de. n. registros. descri. dissimilaridade D, vizinho mais próximo consiste em encontrar os m. valores cada,. problema do. um. e uma medida de. um. registro. dado (que possivelmente. colocação geométrica, dada. ponto P, os. m. uma. função. o. re não. distância. vizinhos mais próximos são os pontos.

(17) -10-. fo,. i=l,...,m|D(P,Q,). <. D(P,R),v R,R. É. Qi,. inl,...,M). ê Outras espécies de consultas poderiam ser. :. citadas,. combinações originadas de necessidades práticas ou de outras dos tipos já definidos. Uma modificação da consulta de vizinho. permitir especificações gerais como encon vizinho mais próximo de um intervalo, ou de uma região,. mais próximo poderia. trar em. Ob. vez de. um só. registro.. O. uso de outros operadores. lógicos. poderia incrementar o trabalho de busca booleana. Outras consultas podem ser ainda mais complicadas, como pedir todos os pares de registros que tenham o mesmo valor além de. em. AND, OR e NOT. cinco ou mais. atributos,. sem. especificar quais,. ou ainda per. mitir que as condições se refiram a valores que não estão zenados como atributos explicitamente, mas tenham que ser zidos| de outros atributos através de alguma função.. arma dedu. Essas questões não se enquadram no âmbito da análise desenvolvida neste trabalho e não serão consideradas, apesar de frequentemente poderem ser subdivididas em outras mais simples que se encaixem em um dos cinco tipos básicos definidos..

(18) -l113.. ESTRUTURAS. De. particular. tervalo.. BÁSICAS. agora. PARA. em. BUSCA. diante,. de busca por chaves. POR. INTERVALO. vamos nos. concentrar. múltiplas, que. Neste capítulo serão apresentadas. em um. tipo. é a busca por. in. três estruturas. bá. sicas para resolver esse problema: Sequencial, Projeção. las. Estas estruturas estão aqui agrupadas por. serem. e. Célu. razoavel. mente simples e representarem as formas mais conhecidas de. se. tratar arquivos para. busca por intervalo. Os algoritmos para busca, ou outras operações sobre essas estruturas não estão de parâme talhados, pois a anãlise das estruturas em função dos tros P(n,k), Sín,k) e Q(n,k) pode ser feita facilmente com base nos procedimentos gerais sem necessidade de nos prendermos aos. passos mais detalhados de um algoritmo. Para simplificar, assu mimos daqui prá frente que, as chaves de um registro K, (R) e os. valores de. uma. chave. vi. serão referenciados. te por K., sendo seu significado interpretado contexto em que se apresenta.. indistintamen. de acordo com. Oo. 3.1. Busca Sequencial Entre as estruturas que podem ser utilizadas para re solver. a busca por intervalo, a mais simples é Para cada consulta essa lista seria percorri. o problema de. lista sequencial.. todos os registros satisfazendo as condi ções estipuladas seriam selecionados. Quando as perguntas não precisam ser respondidas imediatamente, elas podem ser acumula da sequencialmente e.

(19) -12ara que, depois de um certo período de tempo, várias sejam respo ndidas de uma só vez. Assim, com uma só passada pelo ar. das. Pp. registros. quivo r procura-se. satisfaçam a cada. que. uma. das. con. sulta s colocadas. o das vantagens mais evidentes, aponta-se fato de que essa estrutura é muito simples de ser usada e facil |. Como uma. mente implementada vo. [01]. em. qualquer meio.. pequeno e o número de. Nos. atributos. casos. em que. O. é grande, e quando as. arqui con. sulta s podem ser acumuladas, o que faz com que quase todos os regis tros satisfaçam pelo menos uma das consultas, esse método mostr a-se conveniente e apresenta bons resultados. A análise de &G&ustos pode ser feita facilmente: o tra balho de prê-processamento consiste no simples armazenamento de cada. um. dos n. registros. 1. K,. chaves.. com k. K,. e.. .. *. Kr. 2. n. Fig. 3.1. custo de pré-processamento será Pé (nk)= maneira análoga observa-se que ê necessário armaze. Então =. O(nk).. De. o.

(20) -13nar os. lizar. n. registros busca;. uma. de K chaves e examinar cada. isto os custos. com. um. deles para rea. de armazenamento e de busca. custo de prê-processamento. consequência, os custos da Busca Sequencial. são da mesma ordem que Em. Oo. (bs). são: (N1Kk). =. O(nk). Spg(N/k). =. O. (Nk). =. O(nk).. Ppg. Que A. cilidade. estrutura. de uso e. (nk). Lista Sequencial apresenta a mesma fa vantagens citadas acima, para outros tipos de de. intervalo, especialmente. busca alêm da busca por. testar. quando se deve. condições extremamente complicadas.. 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. presentação geométrica do problema onde os n registros de ves são considerados como n pontos de k dimensões, vê-se uma. das. listas citadas. coordenada. do. para registros. espaço. com duas. acima como a projeção dos pontos A. figura 3.2 ilustra esta chaves:. em. Na. k. re cha. cada. cada. representação.

(21) -l4-. intervalo. K,. TRA,. do. een. O. Z. Adoo. intervalo. =n-O. =—-———-so. A. eeeacoee=. co. K,. A. 4O A. een. ——=——--—-— eee. O. FessenecctO SSSSSANSSN. mean meneame. ==. Lose. eee. =.. en. Lee. Jo. Fig. 8.2 Os. pontos representam. um. conjunto de registros de. chave s cada, indicadas pelas coordenadas. K, e. K,.. As. 2. linhas. ponti lhadas representam à projeção dos registros na coordenada Ki, 1 sto é, a lista dos registros ordenados pela primeira chave.. fai xa vertical representa o intervalo especificado para a pri meira chave, a horizontal representa o intervalo para a segunda chave eo retângulo que fica na intersecção das duas contém os ponto s que satisfazem a consulta. Para responder essa consulta. A. 7. teria mos que investigar tram na área hachurada,. somente os quatro pontos que se ou. seja,. quais deles pertencem também ao. listas. intervalo intervalo K,. no. de K,. para. encon ver. representam as projeções ordena das p odem ser obtidas aplicando-se k vezes um algoritmo de clas sific açao, ou seja, seu custo de pre-processamento e Pn (n,k) = Essas. k. que.

(22) -15=. O(kn. log,n). Neste método é de grande importância. pré-processa. O. princípio envolve somente a ordenação das k lis tas. Existem porêm, situações em que é vantajoso aplicar têécni cas mais elaboradas para preparar a estrutura para as buscas, como será visto mais adiante.. mento, que. em. Depois do pré-processamento, para responder. tas. de busca por. intervalo,. o. processo consiste. consul. fazer. em. a. tersecção dos vários subconjuntos das listas, determinados los valores da consulta que definem os intervalos de busca. O. leção de na sua. uma. lista. terminam o. in pe. primeiro passo para a execução desta busca é à se das chaves referenciadas na consulta e a procura, ordenada, dos limitantes superior e inferior que de. intervalo para essa primeira chave.. Nesse. intervalo. estão todos os pontos que satisfazem a consulta para essa cha ve, sendo que, provavelmente, uma parte do arquivo inicial terã sido excluida. A partir dal a busca continua, aplicando-se ou tras comparações sobre esse conjunto reduzido. Uma possivel for ma. de comparação. .seria,. por exemplo, selecionar. uma. próxima cha. ve, digamos K. e percorrer essa lista encontrada no passo ante rior para comparar os valores de K. e selecionar os registros que estão também dentro do intervalo especificado para K.. Isto poderã eliminar mais alguns Assim. ção de todos os Uma. não só. numa. processo se repete sucessivamente, comparando todas as demais chaves até obter a. da menor.. nando e. registros, resultando. para. uma. “o. lista an selecio. intersec. intervalos. outra forma chave,. mas. iniciar. seria encontrar, para todas, os limitantes inferiores de. a busca.

(23) —16—. e. superiores. entre todos os intervalos, tomar aquele. e. registros para continuar. nor número de za diminui ao. máximo. a busca,. O. com. me. certe. que com. primeiro subconjunto de registros. O. que. vai Servir de base para as outras comparações. Apesar de minar-se inicialmente o maior número possível de registros. eli na. escolha desse intervalo, este processo envolve um trabalho malor para cada busca, já que todos os limitantes superiores e infe. riores. são procurados.. No. entanto,. nos. casos. em que. os interva. los tenham tamanhos muito diferentes, este método pode ser boa opção. Assim é possível calcular o número de elementos cada|. intervalo. e com. rem comparadas.. tervalos um. e|. K, e. O. de. base neste dado, selecionar as chaves à se. Por exemplo, na. figura 3.2, conhecendo os. K,, podemos saber quantos elementos estão. escolher a chave. uma. em. in cada. para fazer a primeira eliminação. primeiro processo de busca descrito envolve acesso. a apenas uma das. K,. listas. ro subconjunto de. de. projeções para determinar. registros sobre. o. um. primei. qual são realizadas as. com. parações. Uma variação dessa têcnica seria manter uma lista de projeção de registros para apenas uma das chaves, reduzindo as sim o custo de pré-processamento. Este recurso é eficiente. esta chave é sempre referenciada nas consul tas, que a distribuição dos valores das várias chaves é unifor me e que os intervalos das consultas são semelhantes para todas as chaves. Quando isso não ocorre, a existência de várias lis tas de projeções oferece a vantagem de se poder usar tecnicas para selecionar primeiro a chave cujo intervalo vai provavelmen quando se sabe que. te permitir o maior número de eliminações, sem que seja necessã rio procurar os limitantes inferiores e superiores de todos os.

(24) —-17-. intervalos.. Portanto, um ponto a ser discutido neste mêtodo é: "que chave escolher primeiro?". Esta escolha é de fundamental importância, pois dela depende o número de registros que vai so. brar para se trabalhar daipara a frente. Estamos então interessa dos em encontrar meios de escolher à chave que permita fazer o maior número de eliminações nesta primeira fase, para depois. aplicar. sequencial nas demais comparações. considerar que os intervalos da consulta. o mêtodo Vamos. praticamente. . o. 6. o o o. analisar as figuras 3.3. tamanho e. o mesmo. º. o. o. e. o. o o o. o. o. e. 6. o. Fig. 3.8.. º. e. tem. 3.4:.

(25) —-18-. º. . o. º. o. º. o. º o. o. o o. o. º. e. :. K,. Fig. 3.4.. figura 3.3,. seleção da chave Ki permitiu que vã rios registros (pontos) fossem eliminados. Na figura 3.4, que de repre senta o mesmo conjunto de dados, vê-se que à escolha ão foi boa, pois muito poucos registros foram eliminados. Ko Logic amente K, é a melhor escolha para se fazer a projeção pois Na. a. mn. resta m. Pode-se continuar as comparações. valores de K,, estão mais espalhados do que os. menos elementos para. obser var que. Os. 2. Isto sugere que a variância das chaves pode boa medida (heurística) para se basear o critério de de. K. ser. uma. escolha. figura 3.3, a variância de K, é bem maior que a de Ka ; logo K;, seria escolhida. Além de escolher a chave de maior variância para fazer a projeção, pode-se ordenar as ou tras chaves por ordem decrescente de variância para fazer as com de ch aves.. Na. kh.

(26) -19parações sequenciais. Vamos. considerar agora à figura 3.5:. o o. º e 6. º o. "e o. o o. º. o. º. e. º. o. e. o. e. [O. o. o. e. º. º. e.. o. o. o. K,. Fig 3.9 Para esse conjunto de dados. o mêtodo de. escolha. chaves baseado na variância não funcionaria bem, pois. praticamente a. de. estas são. para K,; e K,. Portanto conclui-se que, para o bom funcionamento do método, seria conveniente ter uma ou duas chaves com variância bem. maior que as outras.. de dados. Pr. mesma. Infelizmente,. possui essa característica,. nem. sempre o. como pode. conjunto. ser observado. na. figura 3.5. Mas, frequentemente é possível transformar esses dados, através da aplicação da "Análise de Componentes Princi pais" [LEE -76] que vai criar novas chaves, as quais poderão ter essa propriedade..

(27) -20-. 3.2.1. Analise O. Principais. de Componentes. (ACP). uso da Análise de Componentes. Principais para. se. encontrar novas chaves e assim melhorar a busca, implica em um trabalho muito maior de pré-processamento. Nesse prê-processamen to devem ser encontrados novos eixos de coordenadas para depois fazer a transformação das chaves. :. '. Colocado mais formalmente,. |. problema. O. dado) um conjunto de n pontos com k chaves Ki,. trar|. uma. consiste. Kor...,. em:. encon. K.. direção. |. d =. i. tal. (a7raz,-.+raçdo. 2. (ay +. 2. a,. que, depois de projetados os pontos. +. em. .... +. 2. a,. =. 1). d, a variância. dos. pontos projetados seja máxima. Na. triz. de. Além. disso,. A17-. A. covariância a. direção De. Seja. C. verdade essa direção. a. d é um. autovetor. dos dados, que tem o maior auto. C. variância dos pontos projetados X, é chamada. é. matriz de covariância de. Fe. F um. C. k a ordem de C.. ....r. 7. correspondentes aos autovalores À. onde. Xo,. qe. hor. 471.. precisamente. conjunto de. Sejam X17,. vetor. ma. primeiro eixo principal.. maneira genérica, seja. “os autovetores de. X, da. e.... x. pontos..

(28) -—21l-. xl = As. Se o. propriedades dos X, são:. x,'s. Todos os. 1<i<k. são mutuamente ortonormais,. XX;. =. XX. = 1. conjunto. F de. isto. &€,. iÉ3. O. i=53.. pontos é projetado. dos pontos projetados. variância. em XD. a. x; ê dic. em. Entre todas as direções possíveis,. X, é a. direção que. vai. produzir a maior variância, projetando-se os pontos nela. X, é a direção no espaço perpendicular a X, que vai produzir àa maior variância projetando-se os pontos nela. Em geral, X.,. 1l<i<k. é a. direção. espaço perpendicular a Kjreeo Xin] que vai produzir a maior variância, projetando-se os pontos no. nela. base nestas propriedades dos. Com. derar os (». X. 28. como um novo. obter novas chaves. e. diminuir. busca [SCARPELLI-83].. ter-se-ia. a. no. consi. qual pode. que provavelmente vão. figura 3.5, após aplicar-se situação mostrada na figura 3.6.. Por exemplo, no caso da ACP. pode-se. conjunto de coordenadas. se projetar os pontos o domínio da. x,'s.

(29) -22-. !. K. x. 2 À. e, ,. e o. R. j. |. Xo. v. º. “.. º. o XxX. j. x. N. º º N. eo. e. /. N. N. |. o. Á. Y. Á 7. e” 2º. 7. e. é. «4. 7º A. Pá. +o. ?. º. º. o. 0. e. o. o. e. e/ º. “. /. º. o. 1. » K,. Fig. 8.6 A. variância. 27. maior que a variância. bem. dos pontos projetados —-,. dos pontos projetados. deve ser escolhida como à coordenada. sim,. Xy. tros. |serão. em X, é em. r quando. um. grande maioria de Na. lhantes so. intervalos. dos. um. com. maior. nã. situação. provável que do. da. funciona. consulta permite eliminar a. registros. em que. e uma das chaves tenha. em que. custo. regis. inicialmente projetados, pois, para intervalos. Assim concluimos que, o método de projeção. é. As. registros.. mero de. tras. X,.. em que Os. tamanhos semelhantes, provavelmente será eliminado. melhdá. agora. o. os intervalos de busca são. variância. método de projeção. bem. maior que as. seja eficiente.. as variâncias são semelhantes, deve-se prêé-processamento usando. ACP. seme. analisar. é compensado com. o. ou. ca. No. se. O. ganho.

(30) -23que serã obtido na busca.. têcnica. projeção mostra-se igualmente eficiente para responder consultas de outros tipos, como busca exata ou problema do vizinho mais próximo. A. de. |. análise de custo da projeção ê bastante simples. O prê-processamento consiste em realizar k ordenações de n elemen tos cada. O armazenamento do arquivo consiste em guardar essas A. k. listas. de n. elementos.. Isso implica que: Olknlog,n),. PL (n,k) Sp. (n,k). O. (kn). Friedman, Baskett e Shustek. [FRIEDMAN-75. ]. mostram. que para buscas que tem região quase cúbica e encontram um núme ro pequeno de registros (e são portanto similares a busca do vi. zinho mais próximo). o. tempo de. O, (17X). (P. =. busca. O(n. ê dado por. (caso médio)..

(31) -24-. 3.3.|. CéLuLas. — O. |. terceiro tipo. lulas". Pára obter. em. as. hiper-retângulos. dimensões.. Os. armazenados. juntos. de. estrutura envolve. células, faz-se. de lado. £,. uma. como uma. partição. mesma. ". -”. "cê. k-espaço. do. duas. grade no caso de. pontos de k-espaço que estão na em uma. a noção de. célula são. implementação.. Por exemplo, considerando-se. um mapa de uma. cidade,. escala reduzida na forma de livro, a primeira pági na traz a área toda e as outras páginas trazem detalhes de re gioes: quadrados com um certo tamanho, digamos, um kilômetro de impresso. lado,. em. saber quais as escolas que se localizam em uma certa região, verifica-se na primeira página quais os qua drados de um kilômetro que se sobrepõem a essa região e procura se as escolas apenas nas páginas do livro relativas a esses qua Quando se quer. drados. [BENTLEY-79c]. Esse é. o. .. processo envolvido na utilização da estrutu. ra de células. Os quadrados correspondem a células do k-espaço e a primeira página do livro corresponde a um diretório que per mite procurar as cêlulas que interessam para a consulta. No pro. diretório. seleciona-se as cêlulas que devem ser verificadas, acessando cada uma delas pa ra comparar seus pontos. Para uma consulta do tipo busca por intervalo, que define uma região do k-espaço, seriam seleciona das às células que se sobrepõem à essa região. cedimento de busca pesquisa-se esse. Para. ilustrada. O. como na. caso de duas dimensões,. figura 3.7:. a. e. estrutura. pode. ser. no.

(32) -25-. Pig.. 38.7. registros de duas chaves cada um. Os quadrados dessa figura são o diretório, correspondente à primeira página do livro do mapa. Os pontos de cada cêlula pontos representam. Os. são armazenados juntos na implementação.. O. retângulo. pontilha. representa a região de busca por intervalo, com especifica ção de intervalo para as duas chaves. Na busca seriam selecio nadas as quatro cêlulas hachuradas que se sobrepõem ao retângu lo, restando a partir dai es oito pontos localizados nessas qua tro células para comparação. do. Pode-se. visualizar. O. caso genérico,. dimensões, considerando que os valores de cada k. sulta. do. Kj,...Ky,. A. em. hiper-retângulo dessa consulta. seleção de células a partir de uma consulta. interseccionam mada de. uma das. duas. classes, e cada combinação de classes chaves forma uma cêlula. Quando é formulada uma con tipo busca por intervalo, seleciona-se as cêlulas que. chaves são divididos. dessas. com mais de. o. "tradução" de. uma. consulta para. um. conjunto de. é. cha. identifi.

(33) células.. cadores de. têcnica. células é mais adequada para casos em que são especificados intervalos para muitas chaves. Seu funcio A. satisfatório. quando se sabe que. tamanho e. for. das consultas são praticamente constantes e conhecidos.. As. namento é mais ma. de. Oo. células podem ser definidas com tamanho semelhante ao das consultas. Para consultas com tamanho e forma que variam muito e são diferentes do tamanho das células, esse método pode sim,. las. não ser muito. eficiente.. cêlulas Para outros tipos de consultas o método de mostra-se também adequado. Para busca exata, seu desempenho ê muito bom quando as. vizinho. blema do ma de. células são. mais próximo com. raio fixo, isto é,. o. pro proble dentro 0o. encontrar à vizinho mais próximo de um ponto dado k = raio p, sao selecionadas 3' cêlulas para comparaçao,. de. um. mo. mostra a figura 3.8 para. ;. em uma. k =. mesma. co. 2.. localiza. ponto P, seu vizinho mais próximo. das células adjacentes aquela. do, ou nela. —. —. ;. Dado um. se. Para. de tamanho pequeno.. em. que. está. o. ponto. da. [BENTLEY-77],.. bp.

(34) -27-. — A Aa DO.. 2. s. m. |. K,. Fig. 3.8. maneira mais simples de se armazenar um arquivo pa ra usar a técnica de células é usar uma matriz multidimensional para o diretório, que contem ponteiros para as listas onde es tão os pontos das células correspondentes.a cada diretório. Es A. ta. forma de armazenamento funciona muito bem quando se sabe que. os pontos estão unifôrmemente TLEY-79cC]. distribuídos. no. k-espaço. .. Por exemplo, se os pontos estão uniformemente. buidos. das por. [BEN. em. [0,10]? e considerando células. [i, i+tl]x[3, j+1] para. figura 3.9,. i,j. =. 0,9,. unitárias, como é. distri. referencia. ilustrado. na.

(35) -28-. K>, |!. 10. |. A. cêlula[5,6]. x. [8,9] P. DL .. 9. e. *f.. «é. *. ode. esde. *. 7. º. .º. e. |. 8. o. . «do. e. cêlula. º. e,. .. ... 0. 0. 3. 2. o. *. o. o. ...,. 1,. diretório. pode. RA,. REL. o. º. º. º. '. o. TR. o. ,. º. *,. .,. BOT. o. ?. figura 3.10, onde. [i, a. *.. º. 5. [,. [3,4]. o. 7. na. e. º. Fe. e. e. o. 8. TO. 93. "kk,. matriz:. [0..9, 0..9]. ponteiro para a. um. x. o.. .*. el, º. 6. [8,9]. [). º. º. 0. .. :. o. [1,8]. *x. dzecenma. ]º. o. ser implementado. [i,3j] contém. pontos na celula. nulo.. º. º. DIRETÓRIO. e DIRETÓRIO. de. 1. celula. e. CLA,. o*. *. ns. «. *. lp[9,10]. *. e. Lo. ». º. '. .. º. e. *. s. |.. *. [2,3]x[5,6]. 4. e. "1,. ... º. ”. .. O. el. e) AEE: [cf 1] .. .. &. .. ai.. º. *. |. o. .. º. lista. de todos. os. j+1]. ISto é exemplificado na ligação terra (L) representa um ponteiro &+1 ]. x.

(36) -29-. chave. DIRETÓRIO O. 1. O. 234 56. K,. chave K,. 7859. lista. de pon. [2,3]. x. tos. | MN. na. célula [6,7]. > rmw. nn. yOoO. Li. Oo. wÀp. les [el [. Fig. 8.10. [. 19). +. ”. Nesta implementação, todas as posições da matriz RETÓRIO. contêm ponteéiros para. listas. de. pontos.. Na. DI. figura 3.10. destaque a posição DIRETÓRIO[2,6) que dá origem à lis ta dos pontos na célula R,3] x [6,7], a qual contêm três elemen tos. As posições DIRETORIO [5,8] e DIRETÓRIO [8,3] apontam pa ra as listas de pontos nas células [5,6] x [8,9] e [8,9] x[3,4] vê-se. em. respectivamente. Se uma. busca requer. registros. que verifiquem as. con. dições. a tradução. 7.8 <K,. <. 9.2. 5.3. ÉS. 6,7. <. K,. destes intervalos para. o. conjunto de identificadores. células mostra que deverão ser examinadas as células ficadas pelas posições [7,5], [6], [8,5], Be], B,5 BD]. de. identi.

(37) -30da. matriz. DIRETÓRIO, ou. |. seja, as células:. [7,8]. x. [5,6]. [8,9]. x. [6,7]. [1,8]. x. [6,7]. [2,10]. x. [5,6]. [8,9]. x. [5,6]. [9,10]. x. [6,7]. K, 10 9 8. VIR,. AA. 7. IL. 6 5. 4 3. 2 1. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. —. K). Fig. 3.11. figura 3.11 ilustra esse exemplo de busca, onde o retângulo pontilhado representa a região de busca e as células A. hachuradas. são as que serão examinadas..

(38) -31-. distribuição das chaves não é uni forme no k-espaço, pode-se usar: uma têcnica do tipo hash para o diretó rio [YUVAL-75]. Também neste método, a célula (i,j) aponta pa ra a lista de todos os pontos em [à, i+1] x [3,j+1], porém, so mente as cêlulas que contem registros do arquivo são armazena Quando a. .". das.. O. DIRETÓRIO. [d,, a.) aponta para a lista. de. todas as célu. las (i,j) tal que:. função hash(i). Q:. y". O.. " função hash(j). com. i. Por exemplo, considerando. o. o.. 1. |IK. d.. =. |K,|mod 11. diretório. pode. 1. Ímoa. |[K]]. 3. =. |K,|. células unitárias. na. matriz:. [0..6, 0..10]. como. mostra a figura 3.12, onde os identificadores de. (dà1,. da),o,. DIRETÓRIO. e. 7. ser implementado. DIRETÓRIO. =. (dor dods-.o+. (id). [d,, a.) são tais à,. =. |K;s]. mod 7. d.. =. |K;g|. mod 11. que. que estão na. lista. células. apontada por.

(39) O. -32-. Lee à.. 1. 0 1. (=. :. mi. e. di. lj. fe. 3. ' pontos. pontos. iirllkxDGijarl). 10. [1. em. o. pontos. rt. 17. em. ,i+l]lx í. do+ [oriz+rl]lx[52,32+1]) Do. em. O. |. int. Fig. 8.12 Para qualquer. to,. uma. dessas duas formas de. necessário consiste das. o keespaço. se na montagem. do. listas. os representando pré-processamento resume. diretório e o diretório e construção. pontos das células e. o. armazenamen. das. listas.. Com. isso. conclui-se que P. (n,k). 1!. O(kn). e S. c. (N,K). O(kn). características básicas. estrutura. cêlu las sã o o tamanho e-a forma das células, a escolha desses parã metros será decisiva para a análise de busca. Para tanto consi dera-s E O número de acessos a cêlulas e testes de inclusão. Se Como. o tama nho da. as. célula. da. é muito grande, haverá poucos. de. acessos. e mui.

(40) —33=. tos testes. inclusão.. de. Se o tamanho da. célula. no, haverá muitos acessos a cêlulas e poucos. é muito. testes. de. pegue. inclusão.. Logicamente, ambos os extremos devem ser evitados. O. células depende do consulta. Nas aplicações. melhor tamanho e forma para as. tamanho e forma do. hiper-retângulo. da. geral, as consultas variam em tamanho e forma, bem como localização, logo existe grande difáculdade para se fazer boa escolha de forma e tamanho para as cêlulas. Entretanto em. em uma. po. de-se apresentar alguns resultados de anâlise para caso parti cular em que hiper-retângulo das consultas tem tamshho e .for oO. Oo. constantes, variando apenas sua localização no espaço de coor denadas. Neste caso, o tamanho e forma ideais para as células seriam os mesmos do hiper-retângulo da consulta. Com isso o nú mero de acessos a células seria de 2K que é O número máximo de cêlulas que o hiper-retângulo pode sobrepor, como se pode verna figura 3.13, para registros com duas chaves: ma. “| bo. pr L———-. L. Fig. 3.13.

(41) -34Para completar a análise de custo da busca,. sário considerar ainda. gistr O. na. o número de. região de busca.. Com. e de. re. base na análise de Bentley,. em. conclui-se que, quando isto é, cada cêlula contêm no. pontos,. o número máximo de. inclusão de. neces um. [BENT LEY-77],. “parso ,. testes. é. o. de. conjunto. de pontos é. de. es. constante. máximo um número. testes. =. inclusão é .o2º.. Quan. esparsidade não vale, ou seja, cada célula con têm um número arbitrário de pontos, o número de testes de inclu k - em média, soa =. limitado são s era, de pontos na por 2 vezes o número. do à condição de. :. região.. Assim, a. análise da estrutura. de. células tem os resul. tados P. (n,k). = O(kn). S. (n,k). =. Qu onde. F Feé o número de. (nk). O(kn). = O0(2“F'. ). registros encontrados. :. (caso médio).

(42) =-35-. 4.. ARVORES. QUAD. estrutura de árvores Quad é uma generalização de arvore binária, adequada para o tratamento do: :problema de busca A. por chaves múltiplas.. árvore binária unidimensional, cada. Na. nó subdivide a. coleção de nós que estão na subárvore da qual ele é raiz subcoleções determinando,. nós ficam. com. duas. em. base no valor da sua chave, quais. na sua subárvore esquerda ou. direita.. ârvore. Em uma. dimensões, que representa um conjunto de registros com chaves, cada nó subdivide a coleção de nós que estão na subár. Quad de k k. vore da qual ele ê raiz se nos valores de suas suas. 2K. subârvores.. em 2k. k. subcoleções determinando,. chaves quais nós ficam. em. cada. com. ba. uma. das. terá no máximo 2 K gilhos.tbs busca, as comparações são feitas. Assim, cada nó. procedimentos de inserção ou. valores das chaves de cada nó, para dedidir bre qual subâárvore descer para fazer o próximo teste... Esta estrutura será primeiramente descrita para com. base nos. so. k. so de duas dimensões ou. seja, para registros. com. duas. ca. chaves,. pois os conceitos básicos podem ser facilmente estendidos mais dimensões. o. para. [FINKEL-74].. árvore de duas dimensões representa um duas chaves e tem no máximo quatro filhos. Conside. Cada nó dessa. registro. com. rando-se os registros de duas chaves como pontos no piáàno, e se ponto A é à raiz da árvore, essa raiz divide O espaço onde se localizam os registros em quatro quadrantes: NE, NO, SO, SE,que chamaremos de quadrantes 1, 2, 3 e 4 respectivamente. Estes. Oo. quadrantes são limitados pelas linhas que passam pelo ponto paralelas aos eixos K;, e K,, como É mostrado na figura 4.1.. A,.

(43) -36K,. À. 2. 1. NO. so. a 3. “E. SE 4. Fig. 4.1 cada filho. raiz. do nó. A. pertece. a. um. destes. quadrantes. da subárvore que. representa esse quadrante. Os pontos que se localizam no quadrante 1 ficarão primeira subárvore de A, os pontos do quadrante 2 ficarão segunda subárvore de A e assim por diante:. e é. ja. nos. quadrante !. nês. ms. Se e. do. 2. Se. qua-. drante 3. Fig. 4.2. ms do. quadran. te. 4. na na.

(44) —37m=. quadrante ê subdividido em outros quatro, pelas linhas que passam sobre o nô que ê a raiz da subárvore que re presenta este quadrante, como mostra a figura 4.3: Cada. K,. x. À. -. -. —m. K,. Fig. 4.3 Cada. filho. do nô. A. terá. quatro filhos,e as. no máximo. sim sucessivamente. Em. geral, cada. nó da. árvore tem associado a ele. uma. região retangular do espaço, que contêm todos os pontos que es. tão na subárvore que possui esse nó como raiz. Este retângulo ê determinado por quatro linhas retas paralelas aos eixos K;y e K, é chamado de "retângulo limite do nó". Os nós de um determi nado. nível representam. guinte dada. um. uma. partição. do. espaço. e a cada. desses subconjuntos é subdividido. em. nivel se. outros. qua. tro. As. figuras 4.4. e 4.,5.fornecem. junto de pontos representado Os nós. no. plano e. um. em. exemplo de. um. forma de árvore Quad.. quadrados da figura 4.5 representam nós externos,. correspondem à subárvores vazias.. con que.

(45) -38—. K>. A. * |. A. nível. K). O. (a). Kb,. C. B A. E. D. nível. >» 1. (b). K).

(46) -39=K, à Cc. G. I. B H. A. J. LL. E. D. M. É. nível. 2. (o). K. à C. G. F T B. N. H. A. J. L O. D. E. K. M. nível. ó. (d). Fig. 4.4.

(47) -40=. 4..

(48) m41=. Adota-se a convenção de quadrantes. 1. e. 3. serem fecha. abertos, para resolver casos em que os pontos se localizem sobre à linha que sai de um nó. Por exem plo, se a raiz da árvore ê A e um ponto B tem a mesma coordenada K, de A, na posição mostrada na figura 4.6, convenciona-se que dos e quadrantes. B. 2. e. 4. pertence ao quadrante. serem. 1. de A.. o. Fig. 4.6 Analogamente, tecem ao quadrante 3.. C. pertence ao quadrante l e De. E. per. disso, não estão sendo considerados nesta dis cussão os casos de colisões, isto é, mais de um registro com va um lores iguais. Quando isso ocorre, esses nós necessitam de tratamente especial dentro da estrutura, como por exemplo, lis Além. seria um ponteiro para essa lista conteria todos os registros com valores iguais, ou então al outro tipo de estrutura mais sofisticada. Aqui, quando fala. tas encadeadas, que gum. onde cada nô.

(49) se. "registros. em. refere-se. a. valores iguais". com. registros eujos. ou. "registros. campos de chaves são. repetidos",. iguais,. rando-se os valores de outros atributos que possam. igno. eventual. |. existir.. |. mente. 4.1. Inserção processo de inserção de. O. vore. basicamente. Quad é. cada nó, começando pela. ser inserido,. que |lvai. ra. o. teste.. próximo. tá localizado. trário. o. e Ao. o mesmo usado. raíz,. ponto onde deve ser inserido. do. ção |serã. um. dos k. das ârvores. filhos. a comparações é. de. Atgormitmo de. serção de KEL-+74]. .. do uma vez. um. feita. como. nó. do nô que. o. registro.. feita. com. resultado. o. um. caso. con. base nas. da compara. está sendo visitado. de. Ao. A. se. algoritmo que realizaa k = 2.. Inserção. procedimento. INSERIR que. novo nó em uma. Para a construção. para cada. só e o. uma. guir, apresentamos a implementação inserção, na linguagem PASCAL para. O. comparação é. descendente apropriado é escolhido pa ser encontrada uma subârvore vazia, es. chaves. 4.1,)1.. novo. O. binárias, registro, em vez. k. uma. registro numa âr para arvores binárias. A. um. nó que. será detalhado faz a. ârvore Quad de duas dimensões. inicial. im. [FIN. árvore, ele seria chama deve ser inserido. Nesta implemen da.

(50) -43-. tação, no caso de já existir na árvore um nó com os mesmos valo res de chaves que O nó que se quer inserir, a inserção não é. feita,. enviada e a. uma mensagem é. rotina termina.. este procedimento, será adotada as seguintes características:. Para descrever. estrutura -. de dados com. registros. os nós são. com. dois campos reais para as. cinco campos de ponteiros, indexados de de. 1. a. apontam para cada. 4. uma. O. Os. chaves e. ponteiros. do nó, e. são. ponteiro zero tem. sem. nulo.. - os ponteiros são. ponteiros Assim, a. a 4.. das subâárvores. nulos quando a subárvore ê vazia. pre valor. 0. uma. de. um. do. tipo. NO, à. ser definido.. Os campos. dos. denotados por X*.SUB[I] para O<I<4. subárvore do nó X é acessada por X1 .SUB [3].. nó X, são. terceira. valor n1il, este será o artifício usado para interromper a iteração quando o nó já está na àãr. Como X+.SUB[O0]. tem sempre o. vore. - os campos das chaves para I -. o. =. do nó. X. são denotados por. 1,2.. registro. tem à forma:. CHAVE SUB. [1]. CHAVE. [2]. [0] |sus [1] |suB [2] |suB[3] |suB[Aa]. Fig. 4.7. Xt+.CHAVE. [1],.

(51) -44|. - não serão representados outros campos de atributos, além chaves.. das. figura 4,8 permite visualizar parte da estrutura de dados no momento em que o nó X vai ser inserido na árvore com raiz apontada por RAIZ. A ligação terra (e) representa ponteiro. -Aa. nulo.. x. RAIZ. ATERNA:. e. a). +. a) —-. 1H. BESSSNSEN. TITLE. Dom. e.... e.... Fig. 4.8. Assim, a definição de:tipos e declaração de. "veis,. pode. ser detalhada. como:. variá. 5.

(52) -45type. NO. = tREGISTRO;. REGISTRO =. record. array [1..2] ofreal; array [0..4] of NO. CHAVE:. SUB:. ends;. var. RAIZ,. X. : NO:. procedimento. faz uso de. função e de ou procedimento que são definidos da seguinte forma: O. tro. a. função. QUADRANTE. INSERIR. (R,X) onde. Re. X. uma. são ponteiros para. nos. inteiro de 1 a 4, dependendo de qual quadrante de R, X se localiza. Quando o nó já está na árvo re, a função retorna valor 0, isto é, define-se da. ârvore, retorna. ". O. procedimento. para. tina,. um. um. QUADRANTE. (X,X) = O,. NO-JA-ESTA-NA-ARVORE. (X), onde. X. ponteiro. é um. terminar a ro que já está na árvore.. nô, envia a mensagem adequada antes de. quando se. tenta inserir. um. nó. Considerações importantes: os parametros de INSERIR são. reeXéêonó SS. os campos de das chaves de. que vai. X, onde R é a. raiz da árvo. ser inserido.. estão inicialmente com os e os campos de ponteiros estão com. CHAVE X. Re. de. valores. X. o. valor. nil. - quando. a. árvore está inicialmente vazia. Oo. primeiro. nó é. inse.

(53) -416=. ido. como. raiz,. entrar. sem. para a raiz da árvore e. upondo que RAIZ aponta a o nó que Oo Ss. processo de iteração.. no. vai ser inserido,. parâmetros. (var. nserir registro var L: 0..4; (* 1. X. aponta. procedimento é chamado. o. Pa com. (RAIZ, X).. INSERIR. proce edure INSERIR. X. R:NO; X:NO);. árvore cuja raiz é. na. R *). O: NO;. beg*t n. if. R= nil then (*árvore vazia*t) else begin. = L:=. R:=X. R;. (Q,X);. QUADRANTE. (*se nó. está. na. árvore. Q+t.SUB[ÍL]. while do. Q+.SUB[L]. <>. =. L=0 e. nil. *). ne7. begin (*cada iteração desce. um. nível*). Q:= Qt .SUBÍL];. L:=. QUADRANTE. (Q,X). ends;. if. L<>0 then (*inserir no*) Qt .SUBÍL] :=. else end end. XxX. NOLJA ESTA NA. ARVORE (X). +.

(54) -47—. Esse algoritmo ê usado. [FINKEL-=74]. em. ,. obteve. que. alguns resultados empíricos sobre seu funcionamento. Foram cons truidas árvores de vários tamanhos, com os nós uniformemente dis. tribuidos nas duas coordenadas, com valores das chaves variando de 0 a 2º!- 1, A tabela 4a resume os resultados obtidos. ha. TABELA. Resultados Obtidos nos Testes. 67.21. 25. 48. 50. 123. 168.4. 100. 288. 403.5. 1000. 4547. 6288. 10000. 62721. 84705. A. 8.699. árvore balanceada. menor comprimento de. Árvores. Quad. Número de. ,. Árvores. 0.8352. 300. 17.34. 0.8608. 300. 30.68. 0.8763. 150. 0.9103. 30. 0.9197. 10. 325.6 2882. coluna "mínimo" mostra. uma. portanto, o re pode ter. o comprimento de caminho. ,. in. respectivo número de nós, caminho interno que essa ârvo com o. [KNUTH-68]. A. coluna. comprimento de. nlog n, onde. ral. de. Comprimento de Caminho Interho Mínimo Médio Desvio Padrão. Número de Nós. terno para. Construção. de. é usado.. valor médio obtido pela divisão caminho interno médio das árvores testadas. n é. O. Como. XxX. é o. número de nós da. árvore e. o. logaritmo. do. por .natuú. seus valores crescem muito vagarosamente, às. implica que o comprimento de caminho interno de uma ârvore Quad construida com inserção randônica é aproximadamente propor so.

(55) -48=. cional. gir cerca. log,n testes.. de. árvore. uma. Quad é O(nº) e. rido como filho |. |. SO. O. |. Logo, à busca exata vai provavelmente. nlog.n.. à. pior caso. O. isto acontece. de. exi. inserção e busca. quando cada nó. do nó- que. estáo mais abaixo na árvore, compr imento de caminho interno será ní(n-l)/2. -”. é. em. inse. Nesse ca. 4.2. Busca Para. realizar à busca por intervalo. arvore. em uma. processo que consiste de comparações entre a re gião de busca e o retângulo limite dos nós. Ainda considerando Quad. o. y. usa-se. um. caso de duas dimensões. determinando. uma. e supondo que. foi feita. consulta. uma. região retangular de busca, segue-se os seguin. tes passos: Iniciando-se pela raiz, compara-se, a cada nó, este estã dentro da região de busca, processando-o ou não, pendeéndo do. resultado. se de. da comparação.. seguida compara-se a região de busca com o retâãn gulo limite de cada um dos filhos desse nó, para decidir na di Em. reção de quais deles deve-se. o nó. retângulo limite de de. eve. um. dirigir para continuar. nó se. a. busca.. sobrepõe à região de busca, esse. ser visitado recursivamente pelo processo. [FINKEL-74].. Por exemplo, considerando-se a regiao de busca. figu ra 4,9. e sendo. A. a. raiz. da. Se. árvore;. da.

(56) —49-. primeiro teste conclui-se que A se localiza na região de bus ca, então ele é um dos pontos que estão sendo procurados. Além no. disso: a região se sobrepõe ao 19 quadrante de A, logo, a primei ra subárvore de A pode ter nós que satisfaçam a condição de bus ca. Por isso essa subárvore deve ser pesquisada. O mesmo acon. tece. com. os outros. árvores de Re. A. sivamente às. devem. três quadrantes ser visitadas e. portanto as quatro sub processo ê aplicado recur. de A, O. raízes dessas subâárvores.. nível a árvore contém os nós B, C, De E nas posições da figura 4.10, pode-se ver quais subárvores des tes nós serão visitadas. Se no próximo.

(57) -50= K, h. lb. 2b. 1€. 28 C. B. i. 3c. eTeTATATTAATO. Prom. 4o. 3b. o. 4b. ! |!. !. ). L. 1. 1. !. 2d. 1d. |. '|D ef. t. mm. e. |. 2e o o nd. mm. 4d. 3d. o. mm. e. mm. 1. —,m. E. sé. 3e. -. Rx,. Fig. 4.10. Na. busca sobre. conclui-se. o nó B,. região e somente os quadrantes. 3. e. 4. de. B. que. B. não estãá. (3b e 4b da. figura. 4,10) se sobrepõem à região. Assim, somente as subárvores 4 de B serão visitadas. Da mesma forma serão visitadas a. árvore. 4. res. 2,. ;,. do nó C, 3. e. 4. equivalente a 4c na figura 4.10, as. do nó. 4,10 e a subárvore. 2. D. do nó E,. Descendo mais. dispostos. como na. equivalentesa ld, 2d, 3d, um. equivalente. nível. figura 4.11,. 3. e. sub. subã rvo. figura. figura 4.10. os nós este jam. a 2e na. e supondo que. 4d na. na.

(58) “51-. K2 À. J *ºs Cc. Kero t !. eU. |. A. |po. Ue. Oo. B. H. .Q. 1. L. T. ão. A. 1)eV. 1h. |. 1º. ilp. F. S. doe !. solo 7 M. |. Z. º. E. "a. —». K,. Fig. 4.11 serão. visitadas:. subárvores 1, 2, subárvores 2 e 3. e. 4. do nô. do nó. I. subárvores 1 e 4 subárvores 1, 2,. do nó. K. subáârvores. do nó. e os nós vU,. 3. 1. e. 2. 3. e. 4. H. do no L M. encontrados por essa busca serão;. A, D, H, L, P, R, T,. Ve x. A. figura 4.12 mostra esses pontos. na. estrutura. de. âr.

(59) —-52-. OU). À. Galalafa. QQCIC. O. el. (O). OO. ala. :. NIBIBES. x). &. Gg. LL). 5. SUÉOr. LJ. O. LL). Fé. CO. t)L)[). DUO. UD Aa. DL arºp. 2). O. LL OIOOP. UU. O O). É&. PS. LO). GSNO. CL). NA. LL). FA. O. UL :. (o. O Ojulais. cbis.

(60) -5 3". — vore e indica. O. em que. ramos a busca continua ou é. traço perpendicular sobre. um. ramo. indica. interrompida:. 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.. bB4. 7. de Busca. 4.2.1. Algoritmo. Serã detalhado a seguir,. VALO. de. [FINKEL-74]. o. procedimento. BUSCA-INTER. intervalo em uma Para isso são necessárias algu. que executa a busca por. árvore Quad de duas dimensões. considerações.. mas. procedimento para busca por valo envolve dois tipos de comparações: Jã foi visto que. 1). 2). teste O teste limite. O. O. de. inclusão de. de. sobreposição da região de busca. Para. inter. ponto na região de busca, e. um. estes testes. são. com um. definidas as funções. retângulo. boolea. nas: =. ESTA.NA REGIÃO. (X), onde. retorna "true" se esse. nó. ponteiro para um nó da ârvore, está na região e"false" caso contrãá X. é o. rio.. —. —"RETANGULO.,. SOBRE REGIÃO. (RETANDIR,. RETANESQ,. RETANBAIXO, RETAN. onde os parâmetros dão o retângulo limite de um nó, re torna "true" se a região de busca se sobrepõe a esse retângulo. CIMA). e "false" caso. contrário..

(61) 54 dessas funções,ê definido. Além. o. procedimento. PROCES. ponteiro para algum ponto. Este procedimento, processamento necessário com P quando ele se encontra. (P) onde P é. SAR. executa O na região de busca. O. um. procedimento. ponteiro para. um. nó e. limite desse nó, sendo ê vi sitado. A mudança. tes das funções. os valores que determinam. chamado. RETANESQ. são mais claramente. pontos contidos espaço tímitado por. no. em uma. < K, < RETANDIR e RETANBAIXO < K, <. e K, *. tes. YA. à. l. 2. A. |?. (XA,YA). 4 :. RETANESQ. arvore. RETANCIMA. raiz da árvore é dado pelas coordenadas têm-se a situação mostrada na figura 4.13.. RETANCIMA. RETANBAIXO. que. vistos se forem consideradas. e que2 o ponto A, que é a. K2. nó. de parâmetros desse procedimento e os. estão distribuidos. XA. retângulo. recursivamente para cada. Suporido que todos os. K, *. o. situações:. as seguintes Quad. parâmetros. BUSCA-INTERVALO tem como. RETANDI R. Fig. 4.13. > K,.

(62) -55-. limite. Assim o retângulo. pelos parâmetros. (RETANESQ,. da. RETANDIR,. raiz. A. da. árvore. RETANBAIXO,. E. dado. RETANCIMA).. O. particiona esse espaço em quadrantes que são os retângu los limites dos seus filhos, dados pelos parâmetros:. ponto. A. - quadrante. 1. quadrante quadrante quadrante. 2. 1. (XA,. YA,. RETANCIMA). (RETANESQ,. XA, YA,. RETANCIMA). 3. (RETANESQ,. XA,. RETANBAIXO,. YA). 4. (XA,. RETANDIR,. RETANBAIXO,. YA). !. Supondo agora que a. RETANDIR,. região de busca é determinada pe. los intervalos REGIESQ < Ky < REGIDIR e REGIBAIXO < K,. pode-se. ter,. por exemplo, a situação da figura 4.14. K. REGICIMA. sá. Lose peso ndonano. po. :. l. |. !. ' |. REGIBAIXO. <. A. '. +. pemesepiooea TA T]oATADA I. !. J. i 1. |. 1. 1. t. ;. 1. H. REGIESQO. REGIDIR. Fig. 4.14. —. K. 1. REGICIMA.

(63) -56= Se a. árvore tem a raiz. A. apontada por. pontos. RAIZ e. coordenadas nos intervalos. com. e. (MINKl < K;, < MAXKlI). este procedimento será inicialmente BUSCA INTERVALO. Iniciada. tra-se. (RAIZ, MINKI,. a execução, para. (MINK2< K, <. MAXK2). por. chamado. MAXK2);. MINK2,. MAXK1l,. verificar se. o nô. A. encon. região de busca, compara-se suas coordenadas com os ex tremos da região. Em seguida deve-se comparar os quadrantes 1, 2, 3 e 4 gerados por À com a região para ver se eles se sobre poem Por exemplo, para a primeira subâárvore de A compara-se a região de busca com o retângulo limite dado pelo quadrante 1, na. chamando a função Se. RETANCIMA).. curs lva (Art. do. .SUB[1],. mesmo. teste. oo. RETÂNGULO SOBRE REGIÃO. valor retornado ê. procedimento é. YA,. feito. tivo 5 parâmetros. com os. de dada. faz-se. TRUE,. parâmetros. com os. RETANDIR,. XA,. (XA,. RETANDIR,. a chamada. YA,. re. BUSCA. INTERVALO. Assim por. RETANCIMA).. quadrantes 2,. 3. e 4, com. diante, O os respec. quadrante.. detalhados, que pres supoem a existência dos limitantes globais declarados por: Seguem as funções e procedimentos. var e ba. ção.. seiam-se na. REGIESQ, mesma. REGDIR,. estrutura. REGIBAIXO,. de dados. REGICIMA;. real;. definida para. inser.

(64) =5T7=. function ESTA NA REGIÃO (X:NO) : boolean; (*retorna TRUE se X está na região de busca*) var. X. 7, X,:. real;. begin Xl:=. X1t. X2:=. X1 ,CHAVE. ,CHAVE[([1];. [2];. ESTA NA REGIÃO. := (REGIESQ <. X,)and(X, <. (REGIBAIXO <. REGIDIR) and. X,)and(X, <. REGICIMA). end;. funetion. RETANGULO. SOBRE-REGIÃO (RETANESQ, RETANCIMA:. real):. RETANDIR, RETANBAIXO,. boolean;. TRUE se o retangulo dado pelos parâmetros se sobrepõe (*retorna à região de busca*). begin RETANGULO. SOBRE. REGIÃO ce. (. (RETANDIR < REGIESQ) and (RETANCIMA. end;. <. REGIBAIXO)). (RETANESQ. < REGIDIR) and. (RETANBAIXO. < REGICIMA) and.

(65) —58=. procedure. BUSCA-INTERVALO. (A:NO; RETANESQ,. RETANDIR,RETANBAIXO,. |. RETANCIMA:. (*faz a busca na árvore de raiz los demais parâmetros*). A, com. real; (*coordenadas. de A*). var. XA, YA:. real); retangulo limite dado pe Ú. begin XA:= A+ .CHAVEÍ(1]; YA:= At .CHAVE. 1f. [2];. ESTA NA REGIÃO(A) (A+. .SUB[1]. <>. then. PROCESSAR. ni1) and. RETANGULO -SOBRE --REGISTRO. then. (A);. BUSCA INTERVALO. (XA,. (A+.SUB[1],. RETANDIR, XA,. YA,. RETANDIR,. RETANCIMA). YA,. RETANCIMA);. if. (Art.SUB[2]<> ni1) and RETANGULO, SOBRE REGIÃO. then. BUSCA INTERVALO. (RETANESQ,. (A1+.SUB[2],. XA,YA,. RETANESQ,. RETANCIMA). XA,YA,. RETANCIMA);. if. (A+t.SUB[3]<>. ni£2). and. RETANGULO-SOBRE-REGIAO. then. BUSCA INTERVALO. (RETANESQ,. (At.SUB[3],. RETANBAIXO, YA). XA,. RETANESQ,. XA,RETANBAIXO,. YA);. 1f (Art.SUB[4]<> nã1) and RETANGULO. then ends;. SOBRE REGIAO. BUSCA- INTERVALO. (XA,. RETANDIR,. RETANBAIXO;,. YA). (At .SUB[4] ,XA, RETANDIR,RETANBAIXO,YA).

(66) =-—59-. testes empiricos são apresentados em para investigar a eficiência desse algoritmo. Alguns. KEL=74] MH. ,. pontos considerados tem valores de coordenadas. distribuidos. [FIN. os. uni formemente. intervalo [0,1]?, e as regiões de busca são qua àdrados retilineamente orientados com um dado tamanho de lado lo calizadas randomicamente, Para cada tamanho de árvore conside rado são geradas randomicamente quatro ârvores. Para cada com no. primento de lado considerado para O quadrado de busca, são fei tas 25 buscas em cada uma das quatro árvores de um determinado tamanho,. do.. Na. portanto, um total de 100 buscas por tamanho tabela 4b é mostrado, para cada combinação de. de árvore e quadrado o número de nos. visitados. nas 100. de quadra. tamanho. buscas. (colu visitado), entre estes os que estavam na região encontrados) e as relações significativas entre estes dados.. (coluna na. valores da coluna Visitados/Encontrados indica a quantidade total, de trabalho feito pelo algoritmo para encontrar um nó par ticular na região que ele estã pesquisando. A coluna Visitados /Busca mostra a quantidade de trabalho feita para encontrar to dos os nós em uma certa região.. Os.

Referências

Documentos relacionados

Portanto, para implementar a sequência de Fibonacci no Excel, é necessário que a célula Cn tenha em seu interior a soma =C(n-2)+C(n-1). A alternativa c) é uma pegadinha, pois faz

Dentre outros, os elementos de sinalização, luminosos e outros elementos que tenham sua projeção sobre a faixa de circulação de pedestres devem garantir a aproximação segura e

Nos nós que estão vivos no final do intervalo de busca (ou seja, estão realmente vivos ou morreram em um instante depois do fim do intervalo de busca) devemos relatar todas

Os objetivos da pesquisa foram: avaliar a aptidão do enfermeiro no auxílio às orientações para a nutrição de lactentes em dieta isenta de leite de vaca e seus derivados, e verificar

De acordo com o que dispõe a Resolução 453/2012 do Conselho Nacional da Saúde, acerca da Organização dos Conselhos de Saúde, assinale a alternativa correta?. (A) O número de

Tiago Carreira, que tomou a palavra para manifestar o seu agrado pelo facto de ter feito parte da Assembleia, e ainda pelo facto de todos os membros da mesma e do executivo

O quadro de funcionários é composto por quarenta e três profissionais distribuídos nas seguintes funções: um diretor, dois vice-diretores, dois especialistas em

Para intensificar a proteção de seus colaboradores e colaboradoras, o Peabiru traz recomendações baseadas nas diretrizes mais recentes das autoridades de saúde brasileiras