Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Algoritmo de Rabin-Karp

2,684 views

Published on

Apresentação sobre Algoritmo de Rabin-Karp para busca de string, Apresentação realizada para a matéria de Projeto de Analise de Algorítimos da Universidade de Vila Velha. Alunos: Lorran Pegoretti e Matheus Lani Regattieri Arrais.

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Algoritmo de Rabin-Karp

  1. 1. Algoritmo de Rabin-KarpLORRAN PEGORETTIMATHEUS LANI REGATTIERI ARRAISTRABALHO REALIZADO PARA AVALIAÇÃO NA DISCIPLINA DE PROJETO E ANÁLISE DEALGORITMOS, DO CURSO DE CIÊNCIA DA COMPUTAÇÃO, TURNO MATUTINO, DAUNIVERSIDADE DE VILA VELHA (UVV), MINISTRADA PELO PROFESSOR  ALESSANDRO BERTOLANI.2013
  2. 2. Tópicos Abordados Descrição do Problema Original Descrição do Algoritmo Rabin-Karp Descrição de Estratégia Pseudocódigo Funcionamento do Algoritmo Identificação dos conceitos estratégicos Complexidade Exemplos Conclusões Trabalho Similares/Futuros Referências
  3. 3. Descrição do Problema OriginalBusca por padrão de Strings O problema consiste em dado o texto T e o padrão P encontrartodas as ocorrências de P dentro de T. Todo s tal que T[s + 1…s + m] = P [1...m], onde s é o índice de cadaocorrência e m é o tamanho do padrão P. Busca em um texto dinâmico através de um algoritmo aquele quenão se tem informações prévias sobre ele. Existem cinco algoritmos: Força Bruta, Rabin-Karp, busca porAutômato, Knuth-Morris-Pratt e Boyer-Moore.
  4. 4. Descrição do Algoritmo Rabin-Karp Trata cada substring de tamanho M do texto como uma tabela dedispersão (hash). Padrão é encontrado quando a chave da substring coincide com a dopadrão. Com tabela virtual: tamanho elevado reduz probabilidade de falsasescolhas. Evolução do Força Bruta, ao invés de comparar a janela com o padrãocaracter a caracter, é proposto usar uma comparação numérica entreos restos da divisão por um mesmo inteiro da janela e do padrão.
  5. 5. Descrição do Algoritmo No Força-Bruta a cada deslocamento pode acabar fazendo muitascomparações antes de descobrir que uma janela não é umaocorrência, no Rabin-Karp ele tenta evitar a comparação caractera caracter das janelas que não são ocorrências. Quando o valor numérico da janela e do padrão forem diferentes,necessariamente o conteúdo da janela e do padrão tambémdevem ser diferentes. Notação utilizada: n: numero de caracteres do texto m: numero de caracteres da palavra d: cardinalidade do alfabeto ∑ q: numero primo, como: 16.647.133 T: string do texto P: string da palavra
  6. 6. Descrição da Estratégia Ideia de Programação Dinâmica e Força-Bruta O algoritmo de Rabin-Karp usa a ideia de “Impressão digital” Em aplicações envolvendo objetos longos, como por exemplo,longas cadeias de caracteres, pode-se representar tais objetos por“impressões digitais” curtas. Uma impressão digital pode ser umvalor numérico atribuído a cada objeto por uma função deespalhamento, por exemplo. O importante é que dois objetosdistintos tenham pouca chance de ter a mesma impressão digital,de maneira que, para decidir se dois tais objetos são iguais,possamos comparar não os objetos, mas suas impressões digitais
  7. 7. Objetivo Através de técnicas hashing processar uma função de assinaturade cada substring de m-caracteres do texto e checar se é igual àassinatura da palavra procurada. Função: h(k) = k mod q, onde q é um numero primo grande Método: baseado no processamento da função para a posição i dandoo valor para a posição i – 1. Usa-se um valor elevado de q para evitarcolisões aleatórias. Busca-se diretamente fazer uma comparação entrea palavra e a substring
  8. 8. PseudocódigoRABIN-KARP-MATCHER (T, P, d, q)(1) n  tamanho [T];(2) m  tamanho [P];(3) h  dm-1mod q;(4) p  0;(5) t0  0(6) for i  1 to m(7) do p  (dp + P[i]) mod q;(8) t0  (dt0 + T[i]) mod q;(9) for s  0 to n - m(10) do if p = ts(11) then if P[1..m] = T[s + 1..s + m](12) then “Encontrou a palavra”;(13) if s < n – m(14) then ts+1  (d(ts – T[s + 1]h) + T[s + m + 1]) mod q;
  9. 9. Funcionamento do Algoritmo Linhas[1-5]: inicialização das variáveis. É importante ressaltar que aimplementação da função hash é arbitraria; Linhas [6-8]: iteração com índice relacionado à cardinalidade da palavra.O bloco inicializa o hash(p) da palavra e do texto, hash(t); Linhas [9-14]: iteração de comparação; na linha 10 em caso dacomparação ser valida tem a possibilidade da substring encontrada ser aprocurada. Observa-se que esta linha apresenta o caráter probabilísticodo algoritmo. Uma comparação extra é realizada para confirmar oresultado; não comparando a hash como na anterior, mas os caracteresda substring com a palavra. Em caso negativo da comparação, temos um novo valor de hash(t) paraa substring, realizando a iteração ate encontrar a palavra(s) ou se esgotaro texto.
  10. 10. Identificação dos conceitosestratégicos
  11. 11. Complexidade Pior Caso: é O((n – m + 1)m), podendo ser reduzida a O(nm), estecaso ocorreria quando o numero de colisões fosse elevado, o queobrigaria o algoritmo a realizar um maior numero de comparações eoperações para se obter um novo valor de hash(t). Nos casos médio e melhor: este algoritmo trabalha em O(m + n). Aprova para estes casos é complicada, devido principalmente aocaráter probabilístico deste algoritmo, pode-se obter demonstraçãoem [Cor97]. Apesar de ser probabilístico este algoritmo não se apresenta eficientena busca de textos que estejam em constante mudança, já paratextos que não são modificados constantemente ele poderáapresentar um desempenho melhor devido ao aproveitamento databela hash, para encontrar estas palavras.
  12. 12. Exemplo
  13. 13. Exemplo
  14. 14. Exemplo Ao padrão P = 31415 corresponde o valor decimal p = 31.415 Seja T = 123141567, então: T[1..5] = 12314 e t0 = 12314 T[2..6] = 23141 e t1 = 23141 T[3..7] = 31415 e t2 = 31415 T[4..8] = 14156 e t3 = 14156 T[5..9] = 41567 e t4 = 41567
  15. 15. Conclusões Tenta diminuir o numero de comparações através do calculo de um hash da palavraprocurada e da substring, porem através deste procedimento ele se torna probabilístico Os cálculos de p e t0 gastam tempo O(m) Os cálculos de t1, ..., tn-m mais a eventual comparação por “força-bruta”, gastam tempoO((n - m)m) Numero máximo de deslocamentos s válidos é n – m +1 Tempo total do algoritmo de Rabin-Karp é O(nm) Na prática, o algoritmo tem bom desempenho Ele é válido para qualquer alfabeto, bastando apenas interpretar cada caracterecomo um dígito
  16. 16. Trabalhos Similares/Futuros Knuth-Morris-Pratt: considerado o algoritmo de “força bruta”, quandoocorre uma diferença entre T[i] e P[j], evitar comparaçõesredundantes. Função de falha onde o pré-processamento em Pdetermina se seus prefixos aparecem como subsequência dele mesmo,será definido também como o tamanho o maior prefixo de P[0..k] queé sufixo de P[1..k]. É pré-calculado apenas o que pode ser reaproveitado dacomparação anterior, independente do próximo caracter . Boyer-Moore: baseia-se na alta probabilidade de encontrar diferençasem alfabetos grandes, por isso, P é comparado com T de trás parafrente, quando se encontra uma diferença em T[i], o padrão P dará umsalto à frente, considerando-se as comparações já realizadas
  17. 17. ComparaçõesFoi usado linguagem Java, S.O Ubuntu 12.04, notebook Core2Duocom 4Gb de memória.Os resultados apresentados abaixo são correspondentes à pesquisada palavra ’Capitu’ pelo livro ’Dom Casmurro’ de Machado de Assis.A cópia utilizada possuí 371.457caracteres enquanto o padrão possui6 caracteres, há 335 ocorrências no texto.Forca Bruta Tempo médio total: 6,4 ms Número de comparações na busca: 745,399 Número de comparações total: 745,399Rabin-Karp Tempo médio total: 6,8 ms Número de comparações na busca: 374,405 Número de comparações total: 374,405
  18. 18. Comparações KMP Tempo médio total: 5,86 ms Número de comparações na busca: 745,409 Número de comparações total: 745,414 Boyer Moore Tempo médio total: 3,2 ms Número de comparações na busca: 142,929 Número de comparações total: 142,939
  19. 19. Referências CORMEN, T., Leiserson, C., e Rivest, R. 1997. “Introduction toAlgortihms”, em The Rabin-Karp algorithm, pp. 857-883. BAEZA-YATES, R., Frakes, W. 1992. “Information Retrieval DataStrucures & Algorithms” em String Searching Algorithms,pp. 219-237. KNUTH, D. E. The Art of Computer Programming. Massachusetts:Addison-Wesley Longman, 1997. v. 1 e 2. ZIVIANI, N. Projeto de Algoritmos - Com Implementações emPASCAL e C. São Paulo: Editora Pioneira, 1999.

×