Casamento de Padrões

Tamanho: px
Começar a partir da página:

Download "Casamento de Padrões"

Transcrição

1 Casamento de Padrões Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

2 CV Nome: Ricardo Terra rterrabh [at] gmail.com www: ricardoterra.com.br Twitter: rterrabh Lattes: lattes.cnpq.br/ Ph.D. (UFMG/UWaterloo), Post-Ph.D. (INRIA/Université Lille 1) Background Acadêmico : UFLA (desde 2014), UFSJ (1 ano ), FUMEC (3 anos ), UNIPAC (1 ano ), FAMINAS (3 anos ) Profissional : DBA Eng. (1 ano ), Synos (2 anos ), Stefanini (1 ano ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

3 Introdução Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

4 Introdução Em primeiro lugar, o que é Casamento de Padrões? Em suma, consiste em encontrar ocorrências de um certo padrão em uma sequência de elementos Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

5 Introdução Em segundo lugar, por que estudar isto? Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

6 Introdução Em segundo lugar, por que estudar isto? Se isso não é importante, o Google também não é! Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

7 Introdução Ainda não convencido? Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

8 Introdução Ainda não convencido? O que seria do Bing sem o Google? (veja url) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

9 Introdução Nada ainda? Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

10 Introdução Nada ainda? Processamento de texto, sequenciamento de DNA, representação de imagens... Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

11 Introdução Pronto! Ideia: ok Motivação: ok Conhecimento: a partir de agora... Nesta aula: Casamento de Cadeias (String Matching) Casamento Exato Definições Alfabeto, string, padrão, formalização do problema... Algoritmos Categorias Naive, AF, Shift-And e KMP Casamento Aproximado (uma visão geral) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

12 Casamento Exato Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

13 Casamento Exato Definições Texto: arranjo T[1..n] Padrão: arranjo P[1..m], m n Seus elementos gerados a partir de um Alfabeto finito Σ e.g., Σ = {0,1} ou Σ = {a,b,...,z} T e P são chamados de strings Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

14 Casamento Exato Definições Texto: arranjo T[1..n] Padrão: arranjo P[1..m], m n Seus elementos gerados a partir de um Alfabeto finito Σ e.g., Σ = {0,1} ou Σ = {a,b,...,z} T e P são chamados de strings Formalização do Problema Dois strings Texto T de comprimento T = n Padrão P de comprimento P = m m n Objetivo: saber as ocorrências de P em T Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

15 Casamento Exato Exemplo mega simples Texto: aabaabc Padrão: ab Alfabeto: Σ = {a,b, c} Nosso objetivo: 2 e 5 Aplicações mega simples Comando / do Vi i.e., função básica de Localizar em editores de texto Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

16 Casamento Exato Categorias de Algoritmos Padrão e texto não são pré-processados O(m n) [espaço O(1)] Algoritmo Naive Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

17 Casamento Exato Categorias de Algoritmos Padrão e texto não são pré-processados O(m n) [espaço O(1)] Algoritmo Naive Padrão pré-processado O(n) [espaço O(m Σ )] Algoritmo AF, Shift-And e KMP Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

18 Casamento Exato Categorias de Algoritmos Padrão e texto não são pré-processados O(m n) [espaço O(1)] Algoritmo Naive Padrão pré-processado O(n) [espaço O(m Σ )] Algoritmo AF, Shift-And e KMP Padrão e texto são pré-processados Uso de índices (e.g., arquivos invertidos, árvores trie e Patricia) Bases semi-estáticas O(lg n) 1 [espaço O(n)] 1 lg n = log 2 n Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

19 Casamento Exato Categorias de Algoritmos Padrão e texto não são pré-processados O(m n) [espaço O(1)] Algoritmo Naive Padrão pré-processado O(n) [espaço O(m Σ )] Algoritmo AF, Shift-And e KMP Padrão e texto são pré-processados Uso de índices (e.g., arquivos invertidos, árvores trie e Patricia) Bases semi-estáticas O(lg n) 1 [espaço O(n)] 1 lg n = log 2 n Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

20 Algoritmo Naive Algoritmo Naive (padrão e texto não são pré-processados) Referenciado na literatura também como Força Bruta Mais simples Tentar casar o padrão com todas as subcadeias do texto P[1..m] = T[s+1..s+m] para n-m+1 possíveis valores de s Pior desempenho O(nm) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

21 Algoritmo Naive Pseudocódigo Exemplo: ( T = acaabc, P = aab, n-m+1=4 ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

22 Algoritmo Naive Pseudocódigo Exemplo: ( T = acaabc, P = aab, n-m+1=4 ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

23 Algoritmo Naive Pseudocódigo Exemplo: ( T = acaabc, P = aab, n-m+1=4 ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

24 Algoritmo Naive Pseudocódigo Exemplo: ( T = acaabc, P = aab, n-m+1=4 ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

25 Algoritmo Naive Pseudocódigo Exemplo: ( T = acaabc, P = aab, n-m+1=4 ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

26 Algoritmo Naive Por que é ineficiente? (para não dizer ruim) Não aprende! Isto é, informação obtida do texto para um valor de s é ignorada para os outros valores de s e.g., se P = aaab e s=0 é válida Implica s=1 ou 2 ou 3 não são válidos pois T[4]=b Mas, ele testa mesmo assim! Os próximos algoritmos tornam efetivo o uso desse tipo de informação e, por isso, têm melhor desempenho Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

27 Algoritmos baseados em AF Algoritmos baseados em Autômatos Finitos (padrão pré-processado) Autômato é um modelo de computação (máquina) cujo propósito principal é reconhecer linguagens Um autômato finito M é uma quíntupla (Q,q 0,A,Σ,δ) onde Q é um conjunto finitos de estados q 0 Q é o estado inicial A Q é o conjunto de estados finais Σ é um alfabeto de entrada finito δ é uma função de transição Q x Σ Q Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

28 Algoritmos baseados em AF Exemplo de um AFD Quíntupla (Q,q 0,A,Σ,δ) Q = {q 1, q 2, q 3 } q 0 = q 1 A = {q 2 } Σ = {0, 1} δ(q 1, 0) = q 1, δ(q 1, 1) = q 2 δ(q 2, 0) = q 3, δ(q 2, 1) = q 2 δ(q 3, 0) = q 2, δ(q 3, 1) = q 2 Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

29 Algoritmos baseados em AF Exemplo de um AFD AFD (um estado ativo) AFND, AFND-λ (n estados ativos) Quíntupla (Q,q 0,A,Σ,δ) Q = {q 1, q 2, q 3 } q 0 = q 1 A = {q 2 } Σ = {0, 1} δ(q 1, 0) = q 1, δ(q 1, 1) = q 2 δ(q 2, 0) = q 3, δ(q 2, 1) = q 2 δ(q 3, 0) = q 2, δ(q 3, 1) = q 2 Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

30 Algoritmos baseados em AF Ideia (ou sacada) 1 Construir um AF para o padrão P [O(m Σ )] 2 O AF consome caractere a caractere do texto T [Θ(n)] Se estado atual = estado final, então ocorrência do padrão Pseudocódigo Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

31 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

32 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

33 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

34 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

35 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

36 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

37 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

38 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

39 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

40 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

41 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

42 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

43 Algoritmos baseados em AF Exemplo: ( T = abababacaba, P = ababaca) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

44 Algoritmo Shift-And Algoritmo Shift-And (padrão pré-processado) Usa o conceito de paralelismo de bit Bom desempenho devido às operações sobre bits [O(1)] Ideia 1 Construção de uma tabela para armazenar máscara de bits para cada caractere de P [O(m 2 )] e.g., se P=abba, então M[a]=1001 Pois, a aparece nas posições 1 e 4 2 Cada caractere lido (T) atualiza a máscara de bits R [Θ(n)] Se o caractere casar com o padrão, um shift é realizado Se a R m Caso contrário, R = 0 m = 1, uma ocorrência do padrão Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

45 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

46 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

47 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

48 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

49 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

50 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

51 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

52 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

53 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

54 Algoritmo Shift-And Exemplo: ( T = "os testes ", P = teste) Texto (R >>1) 10 m 1 R o s t e s t e s M[t] M[e] M[s] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

55 Algoritmo Knuth-Morris-Pratt Algoritmo Knuth-Morris-Pratt (padrão pré-processado) Algoritmo utiliza informação já obtida para avançar em s Ao contrário do Naive que sempre faz s = s + 1 [O(n m)], KMP calcula o s de forma a evitar testes desnecessários [Θ(n)] E, ainda, evita a computação da função transição δ Por meio de uma arranjo auxiliar π[1..m] pré-computado em Θ(m) Em algoritmos por AF, isso é pré-computado em O(m Σ ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

56 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

57 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] 0 Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

58 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] 0 0 Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

59 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

60 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

61 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

62 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

63 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

64 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

65 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo s = s + (q - π[q]) s = s + (5 - π[5]) s = s + (5-3) s = s + 2 Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

66 Algoritmo Knuth-Morris-Pratt Exemplo: ( P = ababaca) Pseudocódigo s = s + (q - π[q]) s = s + (5 - π[5]) s = s + (5-3) s = s + 2 Compute-Prefix-Function(P) i P[i] a b a b a c a π[i] Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

67 Algoritmos baseados em Janelas Deslizante Algoritmos Boyer-Moore (BM), BMH e BMHS (padrão pré-processado) Enfoque diferente Usam uma janela de tamanho m que desliza ao longo do texto T (ao invés de ler caractere-a-caractere) Para cada posição desta janela, o algoritmo realiza comparações no sentido da direita para a esquerda Se não ocorrer desigualdade, uma ocorrência do padrão Senão, o algoritmo calcula o deslocamento BM propõe duas heurísticas: ocorrência e casamento O que difere entre o BM, BMH e BMHS Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

68 Casamento Aproximado Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

69 Casamento Aproximado Nem sempre procuramos de forma exata... Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

70 Casamento Aproximado Nem sempre procuramos de forma exata... Observe que o Google já corrigiu! Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

71 Casamento Aproximado E, às vezes, o Google apenas recomenda... Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

72 Casamento Aproximado E, às vezes, o Google apenas recomenda... Por que será? Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

73 Casamento Aproximado Definição Existem variações com relação ao casamento exato A mais importante é aquela que permite alterações no que você procura (i.e., no padrão P) Por exemplo, ao procurar este, talvez pesquisar também: esse, essa, esta, isso, nessa... Distância de edição É o número de operações (inserção, substituição ou retirada de caracteres) para transformar um string x em um string y ed( este, esse )=1 ed( este, isso )=3 Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

74 Casamento Aproximado Definição Existem variações com relação ao casamento exato A mais importante é aquela que permite alterações no que você procura (i.e., no padrão P) Por exemplo, ao procurar este, talvez pesquisar também: esse, essa, esta, isso, nessa... Distância de edição Google É o número de operações (inserção, substituição ou retirada de caracteres) para transformar um string x em um string y ed( este, esse )=1 ed( este, isso )=3 Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

75 Casamento Aproximado Formalização do Problema Dois strings m n Texto T de comprimento T = n Padrão P de comprimento P = m Objetivo: saber as ocorrências de P em T onde ed(p,p )=k 0 < k < m k = 0 casamento exato k = m aí já pode mudar tudo (sem sentido algum) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

76 Casamento Aproximado Algoritmos Não são triviais Basicamente modificações em algoritmos conhecidos Shift-And Algoritmos baseados em AF Não serão abordados nessa disciplina Provavelmente abordados em TPs Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

77 Considerações Finais Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

78 Considerações Finais Para concluir, viu-se nesta aula: Casamento de Cadeias Problema, motivação, notação e terminologia Casamento Exato (foco) Naive, AF, Shift-And e KMP Casamento Aproximado (uma visão geral) Próxima Aula Lista de exercícios sobre casamento exatos Enunciado do TP Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

79 Referências Thomas Cormen et al. Introduction To Algorithms. 3 ed., Nívio Ziviani. Projeto de Algoritmos: com Implementações em Pascal e C. 2 ed., Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

80 Obrigado!!! Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

81 Possíveis Questionamentos Algoritmo BM Heurística Ocorrência Alinha a posição no texto que causou a colisão com o primeiro caractere no padrão que casa com ele Exemplo: ( T = aabcaccacbac, P = cacbac ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

82 Possíveis Questionamentos Algoritmo BM Heurística Casamento Ao mover o padrão para a direita, faça-o casar com o pedaço do texto anteriormente casado Exemplo: ( T = aabcaccacbac, P = cacbac ) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

83 Possíveis Questionamentos Arquivo Invertido (padrão e texto são pré-processados) Contém vocabulário e ocorrências Lei de Heaps (V = Kn β = O(n β )) Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

84 Possíveis Questionamentos Arquivo Invertido Pesquisa em três passos 1 Pesquisa no vocabulário: palavras e padrões da consulta são isoladas e pesquisadas no vocabulário 2 Recuperação das ocorrências: as listas de ocorrências das palavras encontradas no vocabulário são recuperadas 3 Manipulação das ocorrências: as listas de ocorrências são processadas para tratar frases, proximidade, ou operações booleanas Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

85 Possíveis Questionamentos Arquivo Invertido usando Trie Exemplo Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, / 34

Análise e Síntese de Algoritmos. Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32

Análise e Síntese de Algoritmos. Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32 Análise e Síntese de Algoritmos Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32 Contexto Revisão Algoritmos em Grafos Programação Linear Programação Dinâmica Algoritmos Greedy Emparelhamento de Cadeias

Leia mais

Reconhecimento de Padrões. Prof. Flávio Humberto Cabral Nunes

Reconhecimento de Padrões. Prof. Flávio Humberto Cabral Nunes Reconhecimento de Padrões Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Força Bruta 2. Knuth-Morris-Pratt 3. Boyer-Moore 4. Aho-Corasick Capítulo: 13 (APOSTILA). Força Bruta Características principais

Leia mais

Estrutura de dados 1. Processamento de Cadeias de Caracteres

Estrutura de dados 1. Processamento de Cadeias de Caracteres Estrutura de dados 1 Processamento de Cadeias de Caracteres Casamento de Cadeias Casamento de Cadeias Casamento Exato Casamento Aproximado Compressão Por Que Usar Compressão Compressão de Textos em Linguagem

Leia mais

Processamento de Cadeias de Caracteres

Processamento de Cadeias de Caracteres Processamento de Cadeias de Caracteres Última alteração: 21 de Setembro de 2004 Transparências elaboradas por Fabiano Cupertino Botelho, Charles Ornelas Almeida e Nivio Ziviani Projeto de Algoritmos Cap.8

Leia mais

Strings (Casamento de padrões) Estrutura de Dados II Jairo Francisco de Souza

Strings (Casamento de padrões) Estrutura de Dados II Jairo Francisco de Souza Strings (Casamento de padrões) Estrutura de Dados II Jairo Francisco de Souza Strings Tipo de dado importante para diversas aplicações. Abordaremos algumas questões relacionadas com Strings nos seguintes

Leia mais

Matemática computacional: métodos numéricos, programação linear, otimização

Matemática computacional: métodos numéricos, programação linear, otimização Matemática computacional: métodos numéricos, programação linear, otimização Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 1 / 46

Leia mais

Algoritmos em Strings

Algoritmos em Strings Algoritmos em Strings R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Índice Pesquisa exacta (string matching) Pesquisa aproximada (approximate string matching)

Leia mais

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar [email protected]

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL: www.inf.ufsc.br/~silveira As Linguagens e os formalismos representacionais

Leia mais

Processamento de Cadeias de Caracteres

Processamento de Cadeias de Caracteres Projeto de Algoritmos Cap.8 Processamento de Cadeias de Caracteres Seção 8. 3 Notação Texto: arranjo T[..n] de tamanho n; Padrão: arranjo P[..m] de tamanho m n. Os elementos de P e T são escolhidos de

Leia mais

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos

Leia mais

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND) DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 1ª chamada - Resolução 2h + 30min 31/Jan/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1

Leia mais

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres.

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres. Introdução de Cadeias Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Cadeia

Leia mais

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

Leia mais

Autómatos Finitos Determinísticos (AFD)

Autómatos Finitos Determinísticos (AFD) Folha Prática Autómatos Finitos 1 Autómatos Finitos Determinísticos (AFD) 1. Determine e implemente computacionalmente um AFD que aceita todas as cadeias de cada uma das seguintes linguagens sobre o alfabeto

Leia mais

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior. LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior [email protected] 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato

Leia mais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

a n Sistemas de Estados Finitos AF Determinísticos a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um

Leia mais

Lista de exercícios 1

Lista de exercícios 1 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Lista de exercícios 1 Disciplina: Linguagens Formais e Autômatos Professora: Juliana Pinheiro

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha

Leia mais

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso: Compressão de Textos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM O volume

Leia mais

SCC 205 Teoria da Computação e Linguagens Formais

SCC 205 Teoria da Computação e Linguagens Formais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

Leia mais

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Ficha 3 Autómatos Finitos Objectivos: Introdução ao conceito de Autómato Finito e notações utilizadas na sua representação;

Leia mais

Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io

Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io Autômatos com Pilha [email protected] docardoso.github.io Autômatos com Pilha 1/18 Roteiro 1 Autômatos com Pilha 2 APDs 3 APNs Autômatos com Pilha 2/18 Roteiro 1 Autômatos com Pilha 2 APDs 3

Leia mais

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior. LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior [email protected] 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas

Leia mais

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 08 Minimização de AFD Autômatos Finitos com saídas 25/01/2017 Celso Olivete Júnior [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula de hoje Minimização de autômatos finitos

Leia mais

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos Curso: Ciência da Computação Turma: 6ª Série Aula 4 Autômatos Finitos Autômatos Finitos Não Determinísticos Um autômato finito não-determinístico (AFND, ou NFA do inglês) tem o poder de estar em vários

Leia mais

Aula 9: Máquinas de Turing

Aula 9: Máquinas de Turing Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular

Leia mais

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis

Leia mais

Processamento de Cadeias de Caracteres

Processamento de Cadeias de Caracteres Processamento de Cadeias de Caracteres Última alteração: 31 de Outubro de 2010 Transparências elaboradas por Fabiano Cupertino Botelho, Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 4 Análise Léxica Prof. Márcio Delamaro [email protected] Como construir

Leia mais

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves Teoria da Computação Expressões Regulares e Autômatos Finitos Thiago Alves 1 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens que

Leia mais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma 1 2º. Semestre de 2012 Prof. João Luís

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Autômatos finitos não-determinísticos

Autômatos finitos não-determinísticos Autômatos finitos não-determinísticos IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 30 Frase do dia The

Leia mais

Algoritmos de Ordenação: HeapSort

Algoritmos de Ordenação: HeapSort Algoritmos de Ordenação: HeapSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material

Leia mais

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos LFA Aula 07 Equivalência entre AFD e AFND AFND: uma aplicação busca em textos Equivalência entre ER s e AF s Equivalência entre GR s e AF s Celso Olivete Júnior [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa

Leia mais

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND) DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 2ª chamada - Resolução 2h + 30min 07/Fev/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1

Leia mais

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011 Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011 Web site http://www.inf.ufes.br/~pdcosta/ensino/ Profa. Patrícia Dockhorn Costa Email: [email protected] Introdução O que são estruturas

Leia mais

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João

Leia mais

AULA 20. Algoritmos p.725/759

AULA 20. Algoritmos p.725/759 AULA 20 Algoritmos p.725/759 Mais análise amortizada CLR 18 ou CLRS 17 Algoritmos p.726/759 Análise amortizada Análise amortizada = análise do consumo de tempo de uma seqüência de operações Usada nos casos

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade

Leia mais

Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados Algoritmos e Estrutura de Dados Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Algoritmos e Estrutura de Dados Outubro, 2013 1 / 136 CV Nome: Ricardo Terra Email: rterrabh

Leia mais

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador

Leia mais

Aula 15 Árvores Digitais / Trie

Aula 15 Árvores Digitais / Trie MC3305 Algoritmos e Estruturas de Dados II Aula 15 Árvores Digitais / Trie Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 ABBs Problema de busca geral Conjunto de chaves (S). Elemento x a

Leia mais

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando

Leia mais

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001) a n Sistemas de Estados Finitos AF Determinísticos (H&U, 1979) e (H;M;U, 2001) 1 Sistemas de Estados Finitos Uma máquina de estados finitos é um modelo matemático de um sistema com entradas e saídas discretas.

Leia mais

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos Lista de Exercícios CT-200 Primeiro Bimestre 2010 Carlos Henrique Quartucci Forster Estagiário: Wesley Telles Revisão de Teoria de Conjuntos 1. Sejam A = {1,2 } e B = { x, y, z}. Quais os elementos dos

Leia mais

Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 1 8: Figura 1 9: Figura 1 10:

Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 1 8: Figura 1 9: Figura 1 10: Lista de Figuras Figura 1 1: Módulo de Memória DRAM 26 Figura 1 2: Um Disco Magnético com Três Pratos e Seis Superfícies 28 Figura 1 3: Geometria de uma Superfície de Disco Magnético 29 Figura 1 4: Um

Leia mais

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Ementa e Objetivos Ementa: Análise de Algoritmos: Notação O e Análise Assintótica.

Leia mais

Gramáticas Livres de Contexto Parte 1

Gramáticas Livres de Contexto Parte 1 Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável

Leia mais

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Problemas de Decisão Linguagens Formais e Problemas de Decisão Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Linguagens Formais e Problemas

Leia mais

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Compressão de Textos

Compressão de Textos Compressão de Textos Última alteração: 23 de Março de 2014 Transparências elaboradas por Fabiano Cupertino Botelho, Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de Algoritmos Cap.8 Processamento

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas da lista Sérgio Mariano Dias 1 1 UFMG/ICEx/DCC Entrega da 1 a lista: 31/03/2009 Sérgio Mariano Dias (UFMG) Fundamentos

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Conversão de Expressões Regulares (ER) para Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Introdução A construção sistemática de um Autômato Finito para

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

Leia mais

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra

Leia mais

Conjuntos disjuntos dinâmicos

Conjuntos disjuntos dinâmicos Conjuntos disjuntos dinâmicos CLRS 21 Algoritmos p. 1 Conjuntos disjuntos Seja S = {S 1,S 2,...,S n } uma coleção de conjuntos disjuntos, ou seja, S i S j = para todo i j. Algoritmos p. 2 Conjuntos disjuntos

Leia mais

BCC242. Auômato Finito Determinístico

BCC242. Auômato Finito Determinístico BCC242 Auômato Finito Determinístico Máquinas de Estados Finitos As máquinas de estados finitos são máquinas abstratas que capturam partes essenciais de algumas máquinas concretas. Tipos Tradutores máquinas

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

Compressão Sem Perdas: Codificações Huffman e Aritmética. Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré

Compressão Sem Perdas: Codificações Huffman e Aritmética. Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré Compressão Sem Perdas: Codificações Huffman e Aritmética Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré Compressão Sem Perdas (Lossless Data Compression) Refere-se a métodos de compressão

Leia mais

Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1

Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1 2006/2007 Trabalho prático nº 1 Trabalho realizado por: Pedro Oliveira (501062444) Rui Costa (501062452) Turma: TP1 1 - Introdução O objectivo deste trabalho era implementar um simulador de Autómatos Finitos

Leia mais

Teoria da Computação Aula 02 Introdução

Teoria da Computação Aula 02 Introdução Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:

Leia mais

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o

Leia mais

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 09 Gramáticas e Linguagens Livres de Contexto (Hopcroft, 2002) 18/01/2016 Celso Olivete Júnior [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens

Leia mais

Aula 10: Tratabilidade

Aula 10: Tratabilidade Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas

Leia mais

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior. Máquinas Universais Máquina de Celso Olivete Júnior [email protected] http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção

Leia mais

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc. Teoria da Computação Capítulo 1 Máquina de Turing Prof. Wanderley de Souza Alencar, MSc. Pauta 1. Introdução 2. Definição de Máquina de Turing 3. Variações de Máquina de Turing 4. A Tese de Church-Turing

Leia mais

Correção Ortográfica. Processamento Estatístico da Linguagem Natural. Correção de Erros. Distância Mínima de Edição. Distância Mínima de Edição

Correção Ortográfica. Processamento Estatístico da Linguagem Natural. Correção de Erros. Distância Mínima de Edição. Distância Mínima de Edição Processamento Estatístico da Linguagem Natural Aula 6 Professora Bianca (Sala 302 Bloco E) [email protected] http://www.ic.uff.br/~bianca/peln/ Correção Ortográfica Três tipos de problemas: Detecção de

Leia mais

03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II

03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II 03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir

Leia mais