EDII13 [2012.1] Estruturas de Busca em Texto

496 views
412 views

Published on

1 Comment
2 Likes
Statistics
Notes
  • 15-Título = Jogando.net/mu Venha se divertir de verdade !!!
    [b]Ola,sou o Pr1nceMG,Divulgador oficial do Servidor de Mu online Season 6 do Brasil
    ESTÁ ON HÁ MAIS DE 5 ANOS,Produzindo sua Diversão com qualidade.
    TODOS OS SERVERS ficam ON 24 horas por dia, Sempre Buscamos o Melhor para os Gamers.
    São varios Server esperando por você :
    * MuWar' 1000x/1500x
    * Super - 10.000x ** Pvp 15.000x
    * Very Easy - 5.000x
    * Hard 100 x
    * Extreme 10x
    * Novo servidor Phoenix: Free 3000x | Vip: 4000x Phoenix
    SÓ NO http://www.jogando.net/mu VOCÊ ENCONTRA
    Os Melhores itens e kits mais tops de um server De MU Online:
    * Novas asas level 4
    * Novos Kits DEVASTADOR
    * Novos Kits DIAMOND v3 + Kit Mystical (a combinação da super força)
    * Novos Sets especiais de TIME.
    *CASTLE SIEGE AOS SÁBADOS e DOMINGOS.
    Site http://www.jogando.net/mu/
    Esperamos pela sua visita.Sejam todos muito benvindos ao nosso Servidor.
    *Um mês de grandes eventos e Promoções do dia das Crianças e Sorteio de 1 iPad e 2.000.000 de Golds!
    E obrigado pela atençao de todos voces !!!
    Conheça também animes cloud http://animescloud.com/ São mais de 20.000 mil videos online.
    By:Pr1nceMG divulgador oficial do jogando.net/mu
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
496
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
23
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

EDII13 [2012.1] Estruturas de Busca em Texto

  1. 1. Prof. Kenia Kodel
  2. 2. Extrato Organização de Arquivos Arquivos Sequenciais Desordenados Arquivos Sequenciais Ordenados Fisicamente Arquivos Sequenciais Ordenados por Link Arquivos Diretos Mantidos por Dicionário de Dados Arquivos Diretos Mantidos por Hashing Arquivos Sequenciais Indexados Recuperação de Chave Secundária – Multilista Recuperação de Chave Secundária – Arquivos Invertidos Recuperação de Chave Secundária – Árvores de Assinaturas Estruturas de Busca em Texto UFS - DComp - Prof. Kenia Kodel 2
  3. 3. O que é busca em texto?UFS - DComp - Prof. Kenia Kodel 3
  4. 4. Busca em Texto Busca em texto, ou pesquisa digital, ou ‘casamento de padrões’, ou casamento de cadeias, consiste na pesquisa de uma subsequência de símbolos numa sequência destes (símbolos). UFS - DComp - Prof. Kenia Kodel 4
  5. 5. Busca em TextoPode ter como objetivo encontrar todasas ocorrências, ou somente a primeira,de uma dada subsequência numa dadasequência; a exemplo, de um palavraem um texto. UFS - DComp - Prof. Kenia Kodel 5
  6. 6. Onde/Quando se aplica busca em texto?UFS - DComp - Prof. Kenia Kodel 6
  7. 7. Busca em Texto A busca em texto é útil para gerenciamento de editores de textos, dicionários, recuperação de dados, manipulação de símbolos. UFS - DComp - Prof. Kenia Kodel 7
  8. 8. Como efetuar busca em texto?UFS - DComp - Prof. Kenia Kodel 8
  9. 9. Busca em TextoNa busca digital, diferente do que foi vistoaté então, a chave não é tratada comoum elemento único, indivisível. Assume-seque cada chave é constituída de umconjunto de caracteres ou dígitos. UFS - DComp - Prof. Kenia Kodel 9
  10. 10. Busca em TextoAssim, como a chave não é tratada comoelemento único, ao invés de se comparar achave procurada com as chaves do conjuntoarmazenado, a comparação é efetuadacaractere a caractere, dentre os caracteresque compõem as chaves. UFS - DComp - Prof. Kenia Kodel 10
  11. 11. Busca em Texto Para efetuar busca em texto, é possível explorar: Algoritmos KMP (Knuth, Moris e Pratt) BM (Boyer-Moore) Rabin-Karp Estruturas da Dados Trie Árvore Digital UFS - DComp - Prof. Kenia Kodel 11
  12. 12. TRIE Termo proveniente da palavra inglesa retrieval (recuperação), e corresponde a uma estrutura usada para recuperação de dados – de subsequência, em sequência. 1 2 3 4 ...9 10  Trie marcoa aldo davi a  b d g m p  rb 3       d 2 l e a  i i a e ue 4        g gili 10 d l  t v r l r t il bel  λ    λ   λm 5 o o i o c on dinop peto λ λ λ λ  λq or rui diro s marcos st beto λ λ UFS - DComp - Prof. Kenia Kodel 12
  13. 13. TRIE Qual a pronúncia correta? 1 2 3 4 ...9 10  Trie marcoa aldo davi a  b d g m p  rb 3       d 2 l e a  i i a e ue 4        g gili 10 d l  t v r l r t il bel  λ    λ   λm 5 o o i o c on dinop peto λ λ λ λ  λq or rui diro s marco s st beto λ λ UFS - DComp - Prof. Kenia Kodel 13
  14. 14. TRIE São estruturas em que as chaves são tratadas caractere a caractere. E podem ser implementadas por meio de estruturas sequenciais ou dinâmicas. 1 2 3 4 ...9 10  Trie marcoa aldo davi a  b d g m p  rb 3       d 2 l e a  i i a e ue 4        g gili 10 d l  t v r l r t il bel  λ    λ   λm 5 o o i o c on dinop peto λ λ λ λ  λq or rui diro s marco s st beto λ λ UFS - DComp - Prof. Kenia Kodel 14
  15. 15. Construindo uma 1 2 3 4 5 6trie estática paraarmazenamento adas palavras: b1.davi d2.aldo e3.beto g4.diro i5.peto l6.rui m7.bel n8.gil p9.marco q10.marcos r s11.dino tReserva-se: Para economia de espaço algumas letras foram suprimidas. UFS - DComp - Prof. Kenia Kodel 15
  16. 16. Trie Estática 1 2 3 4 5 6 a b d e g i l mOnde inserir n davi? p q r s t UFS - DComp - Prof. Kenia Kodel 16
  17. 17. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a1.davi b2.aldo d davi3.beto e4.diro g5.peto i6.rui l7.bel m8.gil n9.marco p q10.marcos r11.dino s Inserir aldo. t UFS - DComp - Prof. Kenia Kodel 17
  18. 18. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo1.davi b2.aldo d davi3.beto e4.diro g5.peto i6.rui l7.bel m8.gil n p9.marco q10.marcos r11.dino s t Inserir beto. UFS - DComp - Prof. Kenia Kodel 18
  19. 19. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo1.davi b beto2.aldo d davi3.beto e4.diro g5.peto i6.rui l7.bel m8.gil n p9.marco q10.marcos r11.dino s t Inserir diro. UFS - DComp - Prof. Kenia Kodel 19
  20. 20. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo davi1.davi b beto2.aldo d3.beto 2 e4.diro g5.peto i diro6.rui l7.bel m8.gil n p9.marco q10.marcos r11.dino s t Inserir peto. UFS - DComp - Prof. Kenia Kodel 20
  21. 21. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo davi1.davi b beto2.aldo d3.beto 2 e4.diro g5.peto i diro6.rui l7.bel m8.gil n p9.marco peto q10.marcos r11.dino s t Inserir rui. UFS - DComp - Prof. Kenia Kodel 21
  22. 22. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo davi1.davi b beto2.aldo d3.beto 2 e4.diro g5.peto i diro6.rui l7.bel m8.gil n p9.marco peto q10.marcos r rui11.dino s t Inserir bel. UFS - DComp - Prof. Kenia Kodel 22
  23. 23. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo davi1.davi b2.aldo 3 d3.beto 2 e 44.diro g5.peto i diro6.rui l bel7.bel m8.gil n p9.marco peto q10.marcos r rui11.dino s t Inserir gil. beto UFS - DComp - Prof. Kenia Kodel 23
  24. 24. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo davi1.davi b2.aldo 3 d3.beto 2 e 44.diro g gil5.peto i diro6.rui l bel7.bel m8.gil n p9.marco peto q10.marcos r rui11.dino s tInserir marco. beto UFS - DComp - Prof. Kenia Kodel 24
  25. 25. Construindo umatrie estática para 1 2 3 4 5 6armazenamentodas palavras: a aldo davi1.davi b2.aldo 3 d3.beto 2 e 44.diro g gil5.peto i diro6.rui l bel7.bel m marco8.gil n p9.marco peto q10.marcos r rui11.dino sInserir marcos e t dino. beto UFS - DComp - Prof. Kenia Kodel 25
  26. 26. Construindo umatrie estática para 1 2 3 4 ...9 10armazenamentodas palavras: marco a1.davi aldo davi b2.aldo 3 d3.beto 2 e 44.diro g gil5.peto i 106.rui l bel7.bel m 58.gil n dino p9.marco peto q10.marcos r11.dino rui diro s marcos t beto UFS - DComp - Prof. Kenia Kodel 26
  27. 27. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 10 l bel m 5 n dinoComo efetuar p peto consulta? q r rui diro s marcos t beto UFS - DComp - Prof. Kenia Kodel 27
  28. 28. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 6 l bel m 5 n dinoComo, através p peto desta, por q exemplo, r rui diro manter um s marcos dicionário? t beto UFS - DComp - Prof. Kenia Kodel 28
  29. 29. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 6 l bel m 5 n dino Esta estrutura p peto facilita a qimplementação r rui diro do “auto- s marcos completar”? t beto UFS - DComp - Prof. Kenia Kodel 29
  30. 30. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 6 l bel m 5 n dino Como p peto dimensionar qesta estrutura? r rui diro s marcos t beto UFS - DComp - Prof. Kenia Kodel 30
  31. 31. Construindouma trie  Triedinâmica a  b d(cada letra é   mantida l e anumavariável   dinâmica) d t vpara   armazenar: o o idavi, aldo, λ λ λbeto, diro,peto, rui, bel,gil , marco, Há aterramento também dos ponteiros “laterais”.marcos, dino. UFS - DComp - Prof. Kenia Kodel 31
  32. 32. Construindo Trieuma trie dinâmica a  b d(cada letra é   mantida l e anuma variável   dinâmica) d t vparaarmazenar:   davi, aldo, o o ibeto, diro, λ λ λpeto, rui, bel,gil , marco,marcos, dino.Inserir diro,peto e rui? UFS - DComp - Prof. Kenia Kodel 32
  33. 33. Construindo Trieuma trie dinâmica a  b d p  r(cada letra é     mantida l e a  i e unuma variável      dinâmica) d t v r t iparaarmazenar:      λdavi, aldo, o o i o obeto, diro, λ λ λ λ λpeto, rui, bel,gil , marco,marcos, dino. UFS - DComp - Prof. Kenia Kodel 33
  34. 34. Construindouma trie  Triedinâmica a  b d p  r(cada letra é     mantida numa l e a i e uvariável dinâmica) para      armazenar: d t v r t idavi, aldo,      λbeto, diro, o o i o opeto, rui, bel, gil λ λ λ λ λ, marco,marcos, dino.Como, inserirbel, gil, marco,marcos e dino? UFS - DComp - Prof. Kenia Kodel 34
  35. 35. Construindo  Trieuma trie a  b d g  m p  rdinâmica(cada letra é       mantida l e a  i i a e unuma variável        dinâmica) d l  t v r l r t ipara  λ    λ   λarmazenar: o o i o c odavi, aldo,beto, diro, λ λ λ λ  λpeto, rui, bel, ogil , marco, marcos, dino.  s λ λ UFS - DComp - Prof. Kenia Kodel 35
  36. 36. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ Como o o i o c o“declarar” λ λ λ λ  λcada nó? o   s λ λ UFS - DComp - Prof. Kenia Kodel 36
  37. 37. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e uComposiçãode cada nó.         próxima d l  t v r l r t icaracter palavra próximo carater  λ    λ   λ o o i o c o λ λ λ λ  λ o   s λ λ UFS - DComp - Prof. Kenia Kodel 37
  38. 38. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ Como o o i o c oefetuar λ λ λ λ  λconsulta o nesta?   s λ λ UFS - DComp - Prof. Kenia Kodel 38
  39. 39. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ Como, o o i o c oatravés desta, λ λ λ λ λ implementar  dicionário? o   s λ λ UFS - DComp - Prof. Kenia Kodel 39
  40. 40. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ o o i o c o λ λ λ λ  λEstrutura útil também para oimplementação de casamento aproximado de cadeia – quando o susuário da aplicação não tem domínio exato da chave de busca. λ λ UFS - DComp - Prof. Kenia Kodel 40
  41. 41. ExercícioConstruir trieS (estática e dinâmica) paramanter: pinha, jaca, caju, coco, açai, cajae pinhao. UFS - DComp - Prof. Kenia Kodel 41
  42. 42. ExercícioQue implementação da trie apresentamelhor desempenho: a estática ou adinâmica? Justifique: (a) em velocidadede processamento, (b) em espaço dearmazenamento UFS - DComp - Prof. Kenia Kodel 42
  43. 43. ExercícioDescrever a implementação do recursoauto-completar a partir de palavrasmantidas em tries. UFS - DComp - Prof. Kenia Kodel 43
  44. 44. Árvore Digital de Pesquisa Uma árvore digital para um alfabeto S com m caracteres a b (com itens d ordenáveis) é uma e a i árvore m-ária T, não vazia, tal que: d l t v n r 1. Se um nó qualquer x é o i-ésimo filho de o o i o o seu pai, então x corresponde ao i- ésimo item do alfabeto S, sendo 1<=i<=m. UFS - DComp - Prof. Kenia Kodel 44
  45. 45. Árvore Digital de Pesquisa Uma árvore digital para um alfabeto S com m caracteres a b (com itens ordenáveis) d é uma árvore m-ária T, e a i não vazia, tal que: t 2. Para cada nó x, a d l v n r sequência de dígitos definida pelo caminho o o i o o desde a raiz de T até x corresponde no todo, ou em parte, a uma chave de pesquisa. UFS - DComp - Prof. Kenia Kodel 45
  46. 46. Árvore Digital de Pesquisa a b m p r d e a i a e u l l t v n r r t i d o o i o o c o o Como inserir: eva, tel, marcus e bela? s UFS - DComp - Prof. Kenia Kodel 46
  47. 47. Árvore Digital de Pesquisa a b m p r d e a i a e u l l t v n r r t i d o o i o o c o o Como efetuar consulta nesta? s UFS - DComp - Prof. Kenia Kodel 47
  48. 48. Árvore Digital de Pesquisa a b m p r d e a i a e u l l t v n r r t i d o o i o o c o o Como, a partir desta, pode ser implementado s um dicionário? UFS - DComp - Prof. Kenia Kodel 48
  49. 49. ExercícioConstruir árvore digital para manter: pinha,jaca, caju, coco, açai, caja e pinhao. UFS - DComp - Prof. Kenia Kodel 49
  50. 50. ExercícioDescrever a operação de consulta, a umadeterminada palavra, numa árvore digitalde pesquisa. UFS - DComp - Prof. Kenia Kodel 50
  51. 51. ExercícioElaborar declaração de uma árvore digitalde pesquisa, considerando o nossoalfabeto. UFS - DComp - Prof. Kenia Kodel 51
  52. 52. Árvore Digital de PesquisaComo estrutura de busca em Árvore digital de pesquisatexto, há ainda as árvores com os dados: 28(011100)digitais binárias de pesquisa. 17(010001) 30(011110)Estas são compostas com 27(011011) 40(101000)base no código binário 12(001100) 18(010010)correspondente às chaves depesquisas. Ou seja, 28corresponde a uma árvore 17 40digital de pesquisa cujo 12 30alfabeto apresenta somente 18 27dois itens. UFS - DComp - Prof. Kenia Kodel 52
  53. 53. Árvore Digital de Pesquisa Construindo uma 28 árvore digital de pesquisa com os dados: 28(011100)17(010001) 30(011110)27(011011) 40(101000) 12(001100) 18(010010)O primeiro dado inserido pode ser mantido na raiz daárvore. Mas há autores que consideram que a raiz daárvore não armazena dados, nem corresponde aqualquer dígito/dado. UFS - DComp - Prof. Kenia Kodel 53
  54. 54. Árvore Digital de Pesquisa Construindo uma árvore 28 digital de pesquisa com 17 os dados: 28(011100) 17(010001) 30(011110) 27(011011) 40(101000) 12(001100) 18(010010)A partir da segunda entrada, analisa-se a composiçãobinária da chave, de primeiro ao último bit. Se o bit for 0segue para esquerda da estrutura, se 1, pela direita. UFS - DComp - Prof. Kenia Kodel 54
  55. 55. Árvore Digital de PesquisaConstruindo uma árvoredigital de pesquisa com 28 os dados: 28(011100) 17 17(010001) 30(011110) 27(011011) 40(101000) 12(001100) 18(010010)A partir da análise da composição binária da chave,esta pode ser armazenada no nó da estrutura, ou seja,adota-se o mesmo critério usado para composição dasárvores digitais; onde as arestas definem a composiçãoda chave. UFS - DComp - Prof. Kenia Kodel 55
  56. 56. Árvore Digital de PesquisaConstruindo uma árvore 28digital de pesquisa com os dados: 28(011100) 17 17(010001) 30(011110) 30 27(011011) 40(101000) 12(001100) 18(010010)Iniciando pela raiz, o primeiro bit de 30 é 0, deve-seseguir pela esquerda, a qual está ocupada. O segundobit é 1, segue-se pela direta, como é encontradoaterramento, este é o ponto de inserção. UFS - DComp - Prof. Kenia Kodel 56
  57. 57. Árvore Digital de PesquisaConstruindo uma árvoredigital de pesquisa com os dados: 28(011100) 28 17(010001) 30(011110) 17 27(011011) 40(101000) 30 12(001100) 18(010010) Como inserir os outros elementos na estrutura: UFS - DComp - Prof. Kenia Kodel 57
  58. 58. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 3017(010001) 30(011110)27(011011) 40(101000) 18 2712(001100) 18(010010) Como efetuar consulta nesta? UFS - DComp - Prof. Kenia Kodel 58
  59. 59. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 3017(010001) 30(011110) 18 2727(011011) 40(101000)12(001100) 18(010010)A consulta é efetuada a partir do código bináriocorrespondente à chave de pesquisa seguindo osmesmos critérios usados na construção da estrutura. UFS - DComp - Prof. Kenia Kodel 59
  60. 60. Árvore Digital de Pesquisa 28 17 40 12 30 18 27Esta estrutura é passível de degeneração, como amaioria das árvores de busca. UFS - DComp - Prof. Kenia Kodel 60
  61. 61. Árvore Digital de Pesquisa Construindo uma árvore digital de pesquisa com os 28 dados: 28(011100) 17 4017(010001) 30(011110) 12 3027(011011) 40(101000) 18 2712(001100) 18(010010) Como efetuar exclusão nesta? UFS - DComp - Prof. Kenia Kodel 61
  62. 62. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 3017(010001) 30(011110) 18 2727(011011) 40(101000)12(001100) 18(010010) Na exclusão qualquer nó pode ser substituído por seus sucessores; de preferência uma folha. UFS - DComp - Prof. Kenia Kodel 62
  63. 63. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 3017(010001) 30(011110)27(011011) 40(101000) 18 2712(001100) 18(010010) Onde aplicar esta? UFS - DComp - Prof. Kenia Kodel 63
  64. 64. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 30 17(010001) 30(011110) 18 27 27(011011) 40(101000) 12(001100) 18(010010)Podem ser aplicadas, por exemplo, em operação debaixo nível, para facilitar a comparação de símbolos. UFS - DComp - Prof. Kenia Kodel 64
  65. 65. ExercícioPartindo da árvore 28digital dada, efetue 17 40a inclusão das 12 30chaves 19, 50, 01 e 18 2723. UFS - DComp - Prof. Kenia Kodel 65
  66. 66. ExercícioPartindo da árvore 28digital dada, efetue 17 40a exclusão das 12 30chaves 30. 18 27 UFS - DComp - Prof. Kenia Kodel 66
  67. 67. ExercícioDescreva os passos gerais da operação deconsulta em árvores digitais de pesquisa. UFS - DComp - Prof. Kenia Kodel 67
  68. 68. Complementar Estudos... File Organization and Processing Allan L Tharp Capítulo 11 Other Tree Structures Tries & Digital Search Trees68 UFS - DComp - Prof. Kenia Kodel
  69. 69. Próximospassos... Árvores B e B+ UFS - DCOMP - Prof. Kenia 69 Kodel

×