Reconhecimento de Padrões. Prof. Flávio Humberto Cabral Nunes
|
|
- Vera Borba Amarante
- 7 Há anos
- Visualizações:
Transcrição
1 Reconhecimento de Padrões Prof. Flávio Humberto Cabral Nunes
2 Conteúdo 1. Força Bruta 2. Knuth-Morris-Pratt 3. Boyer-Moore 4. Aho-Corasick Capítulo: 13 (APOSTILA).
3 Força Bruta Características principais Não há fase de pré-processamento Sempre avança apenas uma posição As comparações podem ser feitas em qualquer ordem A busca é de complexidade O(mn) São esperadas 2n comparações de caracteres
4 Força Bruta Checa, em todas as posições do texto entre 0 e m n, se uma ocorrência do padrão começa ali ou não Então, a cada tentativa, ele desloca o padrão exatamente uma posição para a direita
5 Código int forca_bruta( char *Y, char *X ) { int i, j, m,n; m = strlen( X ); n = strlen( Y ); } for( i = 0; i <= (n - m); i++) { j = 0; while( j < n && Y[i + j] == X[j]) j++; if( j == n ) return i; } return -1;
6 Exemplo Primeira tentativa: C A C A C A U C A C A U
7 Exemplo Segunda tentativa: C A C A C A U 0 C
8 Exemplo Terceira tentativa: C A C A C A U C A C A U
9 Prefixo Uma string W é um prefixo de uma string X se X = WY para alguma string Y, W X Exemplo: W = ab, X = abefac, Y = efac O string vazio é prefixo de qualquer string
10 Sufixo Uma string W é um sufixo de uma string X se X = YW para alguma string Y, W X Exemplo W = cdaa, X = acbecdaa, Y = acde O string vazio é um sufixo de qualquer string
11 Sobreposição de Sufixos Suponha X Z e Y Z. a) se X Y, então X Y b) se X Y, então Y X c) se X = Y, então X = Y X Z Y a) b) c)
12 O Algoritmo Knuth-Morris-Pratt Idéia chave Computação eficiente com base no cálculo de sufixos e prefixos Usa uma função auxiliar Função prefixo Alcança o custo O(n + m)
13 O Deslocamento Mínimo Texto T q matching chars s+1 s +1 s+q shift s 1 q Padrão P shift s (minimum) P Pergunta: Qual é o menor deslocamento s > s?
14 Função Prefixo O deslocamento depende do padrão e não do texto T P[1..q] = ababa P[1..k] = aba b a c b a b a b a a b c b a b a b a b a c a a b a b a c a shift by 2 π[5] = 3 Função Prefixo mede o comprimento do maior prefixo de P[1..m] que é também um sufixo próprio de P[1..q]. π[q] = max{ k: k < q e P[1..k] é sufixo de P[1..q] }
15 Exemplo π[ ] mede qual bom o padrão casa em relação a um deslocamento Ex. i P[1..i] a b a b a b a b c a π[i] a b a b a b a b c a a b a b a b a b c a a b a b a b a b c a a b a b a b a b c a P[1..8] a b a b a b a b c a P[1..6] a b a b a b a b c a π[8] = 6 P[1..4] a b a b a b a b c a π[6] = 4 P[1..2] a b a b a b a b c a π[4] = 2 P[] a b a b a b a b c a π[2] = 0
16 KMP - Exemplo i P[1..i] a b a b b a b a b a a π[i] abababbababbaababbababaa ababbababaa shift by q π[q] = 4 2 abababbababbaababbababaa ababbababaa shift by 9 4 = 5 abababbababbaababbababaa ababbababaa abababbababbaababbababaa ababbababaa abababbababbaababbababaa ababbababaa shift by 6 1 = 5 shift by 1 0 = 1
17 O Algoritmo Boyer-Moore O casamento de padrões Boyer-Moore é baseado em duas técnicas 1. A técnica looking-glass Encontre P em T movendo por P de trás para frente, começando do fim
18 O Algoritmo Boyer-Moore 2. A técnica character-jump Quando uma falha ocorre em T[i] = x O caractere no padrão P[j] não é o mesmo de T[i] Há 3 casos possíveis Tentados em ordem T P x a i b a j
19 Caso 1 Se P contém x em algum lugar, então tente deslocar P para a direita para alinhar a última ocorrência de x em P com T[i] T x a i T x a?? i novo P x c b a move i e j p/ direita, tal que j está no fim P x c b a j j novo
20 Caso 2 Se P contém x em algum lugar, mas o deslocamento para direita para a última ocorrência não é possível, então desloque P para direita de 1 caractere para T[i + 1] T P x i c w j a x a x T move i e j para direita, tal que j fique no fim x está depois da posição j P x a x? i novo c w a x j novo
21 Caso 3 Se os casos 1 e 2 não se aplicam, então desloque P para alinhar P[0] com T[i + 1] T P x a i d c b a j Nenhum x em P T move i e j para direita, tal que j fique no fim x a?? P? d c b a 0 i novo j novo
22 Boyer-Moore: Exemplo 1 T: a p a t t e r n m a t c h i n g a l g o r i t h m r i t h m r i t h m r i t h m r i t h m P: r i t h m r i t h m r i t h m
23 Função Última Ocorrência Algoritmo de Boyer-Moore preprocessa o padrão P e o alfabeto A para construir a função última ocorrência L() L() mapeia todas as letras de A para inteiros L(x) é definido como: // x é uma letra em A O maior índice i tal que P[i] = x ou -1 se tal índice não existe
24 L() - Exemplo A a b c d P abacab P a b a c a b x a b c d L(x) L() armazena índices em P[]
25 T: P: Boyer-Moore: Exemplo 2 a b a c a a b a d c a b a c a b a a b b a b a c a b a b a c a b a b a c a b a b a c a b a b a c a b a b a c a b x a b c d L(x)
26 Análise O pior caso do Boyer-Moore é O(nm + A) Mas, Boyer-Moore é rápido quando o alfabeto (A) é grande, lento quando o alfabeto é pequeno Bom para português, ruim para binário Boyer-Moore é significantemente mais rápido que o força bruta para busca em texto em português
27 Exemplo de Pior Caso T: "aaaaa a" P: "baaaaa" T: P: a a a a a a a a a b a a a a a b a a a a a b a a a a a b a a a a a
28 Aho-Corasick Algoritmo apresentado por Alfred Aho e Margaret Corasick Otimização de um sistema de banco de dados de referências bibliográficas Excelentes resultados em relação aos algoritmos da época
29 Aho-Corasick Envolve a construção de um autômato finito determinístico que representa as palavras em K Para essa construção são aplicadas algumas idéias do algoritmo KMP Resolve o problema de busca de padrões para o caso em que o padrão é uma palavra
30 O Problema Seja K = {y 1, y 2,..., y k } um conjunto finito de palavras em * chamadas palavras-chave Seja x, também em *, uma palavra qualquer chamada texto O problema a resolver é localizar e identificar todos os fatores de x que são também palavras-chave Em outras palavras, se quer saber quais palavras do dicionário K ocorrem no texto x
31 Modelo de Solução de Aho e Corasick Utiliza um autômato que reconhece a linguagem * K O autômato recebe como entrada o texto x e gera uma saída contendo as posições em x onde alguma palavra-chave aparece como fator Essa é a fase de busca (O(x), mas pode depender de )
32 Modelo de Solução de Aho e Corasick Há uma fase de construção do autômato feita em duas etapas 1. Construir, a partir de K, uma máquina de estados 2. A partir da máquina de estados, obtém-se o autômato finito determinístico que reconhece *K
33 O Algoritmo de Aho e Corasick Inicialmente, constrói um autômato que reconhece *K A construção é feita em etapas A primeira constrói um autômato que reconhece as palavras-chave Para K = {he, she, her, his}
34 O Algoritmo de Aho e Corasick
35 O Algoritmo de Aho e Corasick A partir dessa estrutura, o algoritmo constrói uma máquina de estados semelhante a um autômato A diferença dessa máquina é que ela possui uma segunda função de transição, chamada falha Essa função utiliza as mesmas idéias do algoritmo KMP
36 O Algoritmo de Aho e Corasick
37 O Algoritmo de Aho e Corasick Numa busca do texto na máquina de estados, a transição de falha de um estado é usada quando a transição δ não está definida para esse estado Ela indica o estado para o qual devemos voltar e repetir a busca
38 O Algoritmo de Aho e Corasick Por exemplo Busca pelo texto shine 0, s, 3, h, 4, i, 1, i, 8, n, 0, e, 0 Note que a máquina já é capaz de reconhecer *K, ou seja, resolver o problema
39 O Algoritmo de Aho e Corasick A última fase é a construção de um autômato finito determinístico a partir da máquina de estados
40 O Algoritmo de Aho e Corasick
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 maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Problema do casamento de cadeias Algoritmo
Leia maisCasamento de Padrões
Casamento de Padrões Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Casamento de Padrões Fevereiro, 2013 1 / 34 CV Nome: Ricardo Terra Email: rterrabh [at] gmail.com www:
Leia maisStrings (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 maisAlgoritmos 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 maisUniversidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação. Processamento de Cadeias
Universidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação Processamento de Cadeias 1 Introdução Processar documentos é atualmente uma das principais funções dos computadores. São inúmeras
Leia maisAULA 21. Algoritmos p.760/792
AULA 21 Algoritmos p.760/792 Busca de palavras (string matching) CLRS 32 Algoritmos p.761/792 Busca de palavras em um texto Dizemos que um vetor P [1.. m] ocorre em um vetor T [1.. n] se P [1.. m] = T
Leia maisLicenciatura 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 maisTeoria 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 maisLFA 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 olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa
Leia maisAnálise e Projeto de Algoritmos
Análise e Projeto de Algoritmos 2018.2 Modelo de Computação Determinação de como os cálculos são realizados pelo computador e que funcionalidades ele possui. Máquina de Turing É um modelo de computação
Leia maisUNIVERSIDADE 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 maisBusca 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 marcelo.aguiar@ufes.br
Leia maisBusca 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 COM10078 Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br
Leia maisTabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I
Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa
Leia maisCompiladores - 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 maisCompiladores - Autômatos
Compiladores - Autômatos Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp Especificação x Implementação Usamos expressões regulares para dar a especificação léxica da linguagem Mas como podemos
Leia maisCompiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 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 maisLinguagens 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 maisLinguagens Formais e Problemas de Decisão
Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas
Leia maisLinguagens 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 maisLinguagens 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 maisCurso 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 maisReduce: reduz o que está imediatamente à esquerda do foco usando uma produção
Shift e reduce Shift: move o foco uma posição à direita A B C x y z A B C x y z é uma ação shift Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Se A x y é uma produção, então
Leia maisLinguagens 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 maisPesquisa Linear. Adriano J. Holanda 15/3/2016
Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária
Leia maisExercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )
Exercicios 7.1 Escreve expressões regulares para cada uma das seguintes linguagens de Σ = {a, b}: (a) palavras com não mais do que três as (b) palavras com um número de as divisível por três (c) palavras
Leia maisINE5317 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 maisVariantes de Máquinas de Turing
Variantes de Máquinas de Turing 1 Máquinas de Turing Input-Output TM s Input/output (ou IO ou transdutoras) diferem de TM s reconhecedoras por terem um estado de parada neutro q halt, ao invés de estados
Leia maisHeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
Leia maisLinguagens e Programação Automátos Finitos. Paulo Proença
Linguagens e Programação Automátos Finitos Autómatos finitos Formalismo, que permite representar de uma forma clara, um qualquer processo composto por um conjunto de estados e transições entre esses estados.
Leia maisLinguagens Formais - Preliminares
Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas
Leia maisPré-Processamento de Documentos
Pré-Processamento de Documentos Introdução Pré-Processamento : Análise léxica; Stopwords; Stemming; Vocabulário; Thesaurus Compressão: Fundamentos; Método Estatístico; Método Dicionário; Arquivos Invertidos
Leia maisLista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)
Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501) Prof. Moacir P. Ponti Jr. 24 de novembro de 2010 1 Hashing 1. Suponha uma tabela hash de tamanho 10 com endereçamento aberto para
Leia maisAlfabeto, Cadeias, Operações e Linguagens
Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter
Leia maisAula 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 maisAnálise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR
Análise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR Análise Sintática LR Analisadores sintáticos LR(k): L, verificação da entrada da esquerda para direita R, constrói a derivação
Leia maisi a[i]
Técnicas de Hashing Outra forma de se fazer busca em uma tabela, é construir-se a tabela de forma a facilitar a busca, colocando-se cada elemento numa posição pré-determinada. Tal posição é obtida aplicando-se
Leia maisLinguagens e Autômatos
167657 - Controle para Automação Curso de Graduação em Engenharia de Controle e Automação Departamento de Engenharia Elétrica Universidade de Brasília Linguagens e Autômatos Geovany A. Borges gaborges@ene.unb.br
Leia maisConceitos Básicos. Vocabulário Cadeias Linguagens Problema
Conceitos Básicos Vocabulário Cadeias Linguagens Problema Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto. Ex: {A,B,C,.Z} alfabeto latino (maiúsculas)
Leia maisLFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem
LFA Aula 04 Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem Linguagens Formais Linguagens formais se preocupam com os problemas sintáticos das linguagens. Sintaxe e Semântica Sintaxe
Leia maisTeoria 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 maisModelos de Computação Folha de trabalho n. 8
Modelos de Computação Folha de trabalho n. 8 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada
Leia maisAprendizado de Máquina
Aprendizado de Máquina Template Matching Luiz Eduardo S. Oliveira Universidade Federal do Paraná Departamento de Informática http://lesoliveira.net October 25, 2012 Luiz S. Oliveira (UFPR) Aprendizado
Leia maisAutómatos de Pilha e Linguagens Livres de Contexto
Folha Prática Autómatos de Pilha e Linguagens Livres de Contexto 1 Autómatos de Pilha e Linguagens Livres de Contexto Autómatos de Pilha Não Determinísticos (APND) 1. Considere a seguinte tabela de transição
Leia maisEstruturas de Dados 2
Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Força Bruta IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/36 Técnica de Projeto de Algoritmos por Força
Leia maisIntrodução Definição Conceitos Básicos de Linguagem
Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para
Leia maisCapítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma
Leia maisComo 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 delamaro@icmc.usp.br Como construir
Leia maisTeoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.
Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos
Leia maisLINGUAGENS FORMAIS E AUTÔMATOS
LINGUGENS FORMIS E UTÔMTOS Introdução reve Histórico Em 1936, lan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.
Leia mais1. Uma linguagem de uma máquina de Turing
Linguagem de uma Máquina de Turing 1. Uma linguagem de uma máquina de Turing, é. 2. Linguagens aceitas por uma MT são chamdas recursivamente enumeráveis. O recursivo nesta caso significa decidível, ou
Leia maisConcurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba
Questão 01 No processo de construção de compiladores, é essencial compreender e manipular as expressões regulares e suas equivalências. Dentro desse contexto, seja o alfabeto = {a, b, c, d, e} e a seguinte
Leia maisTeoria 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 maisCompressã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 maisLinguagens Formais e Autômatos. Apresentação do Plano de Ensino
Linguagens Formais e Autômatos Apresentação do Plano de Ensino Linguagens Formais e Autômatos LFA Código - CMP4145 Turma C01 Engenharia da Computação e Ciência da Computação Horário: Segunda e Quinta:
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes A classe P consiste nos problemas que podem ser resolvidos em tempo Polinomial (Problemas tratáveis) A classe NP consiste nos problemas que podem ser verificados em tempo polinomial (Problemas
Leia maisModelos Universais de Computação
Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)
Leia maisJônatas Lopes de Paiva Instituto de Matemática e Estatística Universidade de São Paulo. 06 de maio de 2011
Jônatas Lopes de Paiva jlp@ime.usp.br Instituto de Matemática e Estatística Universidade de São Paulo 06 de maio de 2011 Introdução String-matching O que é? Em que é utilizado Tipos GPU GPGPU String-matching
Leia maisLFA 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 olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos
Leia maisAutômatos Finitos Determinís3cos (AFD)
Linguagens Formais e Autômatos Autômatos Finitos Determinís3cos (AFD) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Introdução Exemplos Sumário
Leia maisInstituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Leia maisTeoria 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 maisPesquisa em Memória Primária Hashing
Pesquisa em Memória Primária Hashing Livro Projeto de Algoritmos Nívio Ziviani Capítulo 5 Seções 5.5 http://www2.dcc.ufmg.br/livros/algoritmos/ ( Hashing ) Transformação de Chave Os registros armazenados
Leia maisAutômatos Finitos e Não-determinismo
Autômatos Finitos e Não-determinismo Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Autômatos Finitos e Não-determinismo
Leia maisProva 1 PMR3201 Computação para Automação 1o. semestre 2016 Prof. Thiago de Castro Martins
Prova 1 PMR3201 Computação para Automação 1o. semestre 2016 Prof. Thiago de Castro Martins 1. (25 pontos) A listagem a seguir mostra o código de uma função que converte uma cadeia de caracteres com a representação
Leia maisINE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares
INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja
Leia maisUNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO SCC-602 Algoritmos e Estruturas de Dados I - EC Profa. Graça Nunes 2º. Semestre de 2010 Prova 1(Gabarito) 16/09/2010 Nome: Nro
Leia maisLista 02: Pilhas & Filas
MAC122 Princípios de Desenvolvimento de Algoritmos DCC IME USP 2º Semestre de 2018 Prof.: Dr. Paulo Miranda pmiranda@vision.ime.usp.br Lista 02: Pilhas & Filas Para as questões envolvendo pilhas, assuma
Leia maisAlgoritmos Combinatórios: Introdução
lucia@site.uottawa.ca UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?
Leia maisINTRATABILIDADE e NP-COMPLETUDE
INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS Junho/2008 Grafos e Análise de Algoritmos Introdução Para alguns problemas
Leia maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Leia maisLista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Leia maisAula 3: Autômatos Finitos
Teoria da Computação Primeiro Semestre, 25 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor
Leia maisLinguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo
Linguagens Formais e Autômatos Linguagens Regulares Prof. Anderson Belgamo Linguagens Regulares Linguagens Regulares ou Tipo 3 formalismos operacionais ou reconhecedores Autômato Finito Determinístico
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 16. Ordenação Revisão para a prova
CURSO BÁSICO DE PROGRAMAÇÃO AULA 16 Ordenação Revisão para a prova Algoritmos de Ordenação São algoritmos que organizam uma sequência (por exemplo, os elementos de um vetor) em ordem crescente ou decrescente.
Leia maisTabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Leia maisQUESTÕES DE PROVAS ANTIGAS
CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus
Leia maisLógica e Programação - Folha de trabalho n. 7
Os exercícios 1, 2, 5, 6, 7, 8 e 12 são de Alguns Problemas de Prolog, Miguel Filgueiras, Pedro Ribeiro DCC-FCUP 2004-2006. Todos os exercícios são para ser resolvidos em linguagem Prolog. 1 Listas 1 Define
Leia maisAlinhamento de Sequências e Genômica Comparativa
Encontro França-Brasil de Bioinformática Universidade Estadual de Santa Cruz (UESC) Ilhéus-BA - Brasil Alinhamento de Sequências e Genômica Comparativa Maria Emília M. T. Walter Departamento de Ciência
Leia maisCentro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional
Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional Disciplina: Algoritmos e Estruturas de Dados Professor: Flávio Cardeal Lista de
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 25 Cap 7.2 A classe P Profa. Ariane Machado Lima ariane.machado@usp.br 1 Cap 7.2 A classe P 2 Tempo polinomial e exponencial Ex: Máquina de tempo n 3 (tempo
Leia mais4 Casamento de Padrões
4 Casamento de Padrões O casamento de padrões é uma técnica que tem por objetivo localizar os elementos constituintes de uma seqüência em um conjunto de outras seqüências. Chamemos de padrão a seqüência
Leia maisLinguagens 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 olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Leia maisAnálise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br A Classe de Problemas P A classe de algoritmos P é formada pelos procedimentos
Leia maisEXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ
PROTÓTIPO TIPO PARA TRANSFORMAÇÃO DE UMA EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE 1 OBJETIVO DESTE TRABALHO ALGUNS CONCEITOS BÁSICOS
Leia maisSIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA
SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA Neste trabalho você deverá construir e testar, com a ferramenta JFLAP, uma MT multifita que simula o funcionamento de um computador
Leia maisTeoria da Computação. Máquinas de Turing: variações
Teoria da Computação Máquinas de Turing: variações 1 Máquina de Turing Modelo mais completo, feito com circuitos digitais http://aturingmachine.com 2 Máquina de Turing Modelo mais simplificado, feito com
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisLINGUAGENS FORMAIS E AUTÔMATOS
LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.
Leia maisEstruturas de Dados Tabelas de Espalhamento
Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações
Leia maisFunções de Dispersão Prontas
Funções de Dispersão Prontas E laborar uma função de dispersão é, em boa proporção, uma arte. Assim é sempre melhor usar uma função de dispersão reconhecidamente boa (i.e., que tenha sido exaustivamente
Leia maisComplexidade computacional
Complexidade computacional Classifica os problemas em relação à dificuldade de resolvê-los algoritmicamente. CLR 36 ou CLRS 34 Algoritmos p. 1 Palavras Para resolver um problema usando um computador é
Leia mais1 INTRODUÇÃO E CONCEITOS BÁSICOS
1 INTRODUÇÃO E CONCEITOS BÁSICOS Inicia com uma breve história do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computação é baseada. Formalização dos conceitos
Leia maisAnálise de Algoritmos
Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1/36 Complexidade computacional Classifica os problemas em relação
Leia maisMedida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Leia maisUNIVERSIDADE 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 TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar
Leia maisBCC242. 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