1 / 20

Hashing Extensível

Hashing Extensível. o espaço de endereços disponíveis não é fixo. utilizado em hashing de arquivos dinâmicos (mudam de tamanho). ideia: combinar técnicas de hashing + árvore de busca de base ( trie ). Exemplo 1:. Trie: (able, abrahms, adams, anderson, andrews, baird). l. able. r. b.

shay-farmer
Download Presentation

Hashing Extensível

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hashing Extensível • o espaço de endereços disponíveis não é fixo • utilizado em hashing de arquivos dinâmicos (mudam de tamanho) ideia: combinar técnicas de hashing + árvore de busca de base (trie)

  2. Exemplo 1: Trie: (able, abrahms, adams, anderson, andrews, baird) l able r b abrahms d adams a anderson e n d b r andrews baird 26 letras do alfabeto, a-z  máximo fator de subdivisão de um nó = 26 (base 26)

  3. Exemplo: base 10 Trie: (1136, 1153, 1629, 3182, 7263, 7268, 7521) 3 1136 1 5 1153 1629 6 1 3 3182 7263 3 7 6 2 8 7268 5 5 7521

  4. Hashing e tries • Trabalha-se com árvores de base 2 • As chaves nas folhas constituem buckets contendo chaves A 0 Parte do Bucket endereço 01  A 10  B 11  C B 1 0 1 C

  5. Problema: Como representar uma trie de modo a se obter uma busca com complexidade constante O(1) ? Ideia : Considerar um vetor de endereços hashing, com cada elemento apontando para um bucket, e obtido a partir da definição de uma árvore binária completa dos respectivos endereços.

  6. A 0 B 1 0 1 C árvore binária completa 0 A 0 1 B 1 0 1 C

  7. 0 A 0 1 B 1 0 1 C vetor de endereços apontador extra para eventual overflow de A 00 A 01 B 10 11 C 2 níveis na árvore binária  vetor de tamanho 4

  8. apontador extra para eventual overflow de A 00 A 01 B 10 11 C A 00 overflow de A D 01 B 10 11 C

  9. Exemplo: 0 A 00 0 A 1 01 B 1 0 B 10 11 C C 1 Overflow do bucket B subdividir o ramo da árvore conduzindo ao bucket B; criar a árvore binária completa; definir o vetor de endereços

  10. Subdivisão do ramo da árvore A 0 0 B 1 0 D 1 1 C

  11. Criação da árvore binária completa 0 0 1 A 0 0 1 1 0 1 B 0 D 1 0 1 C 1 3 níveis na árvore binária  vetor de tamanho 8

  12. Definição do vetor de endereços 000 001 A 010 011 B 100 101 D 110 C 111

  13. Busca por Casamento Parcial • evita definição de listas invertidas na consulta de registros por • chaves secundárias • baseia-se no conceito de códigos de assinaturas

  14. Exemplo de registro Aluno: RA Nome Cidade CR Renda Familiar (RF) 17 21 1 16 22 26 27 32 bits s1 s2 s3 s4 assinaturas disjuntas (diferentes funções de hashing) • Os bits de cada campo dos registros terão valor 1 de acordo com as respectivas • funções de hashing

  15. Exemplos de assinaturas: (para bits de 1 a 16) (para bits de 17 a 21)

  16. (para bits de 22 a 26) (para bits de 27 a 32)

  17. A busca Exemplo de consulta: RF = 3000,00 AND CR = 8 AND Cidade = Campinas Assinatura da consulta: 17 21 1 16 22 25 26 27 29 32 1 1 1 s1 s2 s3 s4 Extrair todos os registros cuja assinatura contém 1 na posição indicada pela assinatura de consulta; verificar os falsos positivos devido a oclusões da função de hashing  Extrair registros que respondem positivamente à pergunta:

  18. Árvores de Assinaturas • Combina as assinaturas de registros numa estrutura multínivel de • árvores, através de um OR de diferentes subconjuntos destas assinaturas • Otimiza o processo de busca secundária por assinaturas de registros

  19. . . assinatura da consulta: 0 0 0 1 0 01 . OR OR 0 0 0 1 0 01 0 0 0 1 0 01 0 0 0 1 0 01 sub-árvore a ser verificada na consulta . . . assinaturas nível 1 (adicionadas aos registros originais) assinaturas nível 3 assinaturas nível 2

More Related