Análise e Síntese de Algoritmos. Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32
|
|
- Felipe Caires Carvalhal
- 7 Há anos
- Visualizações:
Transcrição
1 Análise e Síntese de Algoritmos Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32
2 Contexto Revisão Algoritmos em Grafos Programação Linear Programação Dinâmica Algoritmos Greedy Emparelhamento de Cadeias de Caracteres Problemas NP-Completos Algoritmos de Aproximação 2006/2007 Análise e Síntese de Algoritmos 2
3 Resumo Emparelhamento de Cadeias de Caracteres (String Matching) Definição do problema Notação Algoritmo elementar Utilização de autómatos finitos Algoritmo de Knuth-Morris-Pratt Outros algoritmos Rabin-Karp 2006/2007 Análise e Síntese de Algoritmos 3
4 Formulação do Problema Texto: array com n caracteres, T[1..n] Padrão: array com m caracteres, P[1..m] Caracteres pertencentes a alfabeto finito Σ Padrão P ocorre com deslocamento s em T se: 0 s n-m T[s+1..s+m] = P[1..m] Exemplo: T = aabababab P = ababab P ocorre em T com deslocamentos 1 e /2007 Análise e Síntese de Algoritmos 4
5 Notação Conjunto de todas as cadeias de caracteres (strings) de comprimento finito: Σ* String vazia: ε ε Σ* Comprimento da string x, x Concatenação de x e y: Representação: xy Comprimento: x + y 2006/2007 Análise e Síntese de Algoritmos 5
6 Notação (Cont.) w é prefixo de x, w < x, se x = wy, com y Σ* w é sufixo de x, w > x, se x = yw, com y Σ* Se w > x, então w x Sejam x, y e z strings tais que x > z e y > z. Então, Se x y, então x > y Se x y, então y > x Se x = y, então x = y Prefixos do padrão pretendido P 0 = ε; P k = P[1..k] T k = T[1..k] 2006/2007 Análise e Síntese de Algoritmos 6
7 Algoritmo Elementar Naive-String-Matcher(T, P) n = length[t] m = length[p] for s = 0 to n - m if P[1..m] = T[s+1..s+m] print Padrão encontrado com deslocação, s Complexidade: Θ((n-m+1)m) Θ(m) Exemplo 2006/2007 Análise e Síntese de Algoritmos 7
8 Utilização de Autómatos Finitos Autómato finito M (Q, q 0, A, Σ, δ): Q é um conjunto finito de estados q 0 é o estado inicial A Q é um conjunto de estados de aceitação Σ é o alfabeto de entrada δ é uma função de Q Σ em Q, designada função de transição de M Autómato no estado q, com caracter de entrada a, novo estado é dado por δ(q,a) Utilizar DFA para aceitar padrão pretendido 2006/2007 Análise e Síntese de Algoritmos 8
9 Autómatos Finitos (Cont.) Função de estados finais: φ(w): estado de M após ter lido string w M aceita w se e só se φ(w) A Definição: φ(ε) = q 0 φ(wa) = δ(φ(w),a), para w Σ*, a Σ 2006/2007 Análise e Síntese de Algoritmos 9
10 Autómatos Finitos (Cont.) Função de sufixo para P[1..m]: σ : Σ* { 0, 1,, m } σ(x) = max { k: P k > x } Comprimento do maior prefixo de P que é sufixo de x Saber em que estado DFA deve estar dada a string x Dado x, qual o maior prefixo de P que é também sufixo de x? Autómato para emparelhamento de strings: Q = { 0, 1,, m } Função de transição: δ(q,a) = σ(p q a) (invariante: φ(t i ) = σ(t i )) Novo estado δ(q,a) corresponde ao prefixo de P com o maior comprimento que é também sufixo de P q a 2006/2007 Análise e Síntese de Algoritmos 10
11 Autómatos Finitos (Cont.) Finite-Automaton-Matcher(T, δ, m) n = length[t] q = 0 for i = 1 to n q = δ(q,t[i]) if q = m s = i - m Print Padrão encontrado com deslocação, s Exemplos 2006/2007 Análise e Síntese de Algoritmos 11
12 Autómatos Finitos (Cont.) Compute-Transition-Function(P, Σ) m = length[p] for q = 0 to m foreach a Σ k = min(m+1,q+2) repeat k = k - 1 until P k > P q a δ(q,a) = k return δ Identificar maior k tal que P k é um sufixo de P q a Complexidade do cálculo de δ: O(m 3 Σ ) Complexidade do algoritmo: O(n + m 3 Σ ) É possível obter O(n + m Σ ) 2006/2007 Análise e Síntese de Algoritmos 12
13 Algoritmo de Knuth-Morris-Pratt Complexidade: O(n + m) Evita cálculo da função de transição δ! Função de prefixo para o padrão P: π : { 1, 2,, m } { 0, 1,, m-1 } π[q] = max { k : k < q e P k > P q } Comprimento do maior prefixo de P que é sufixo de P q Caso o próximo caracter de T não emparelhe, π[q] indica qual o maior prefixo de P que é possível obter como sufixo de P q sabendo que em T existe neste momento (i.e. em T i ) o sufixo P q (e que P[q+1] T[i+1]) 2006/2007 Análise e Síntese de Algoritmos 13
14 Algoritmo de Knuth-Morris-Pratt (Cont.) Se P[k + 1] T[i], então P k+1 não é sufixo de T i Encontrar j tal que P j seja sufixo de T i Observar que: P k > T i-1 P π[k] > P k maior sufixo de P k e T i-1 que é menor que P k P π[π[k]] > P π[k] maior sufixo de P π[k], P k e T i-1 que é menor que P π[k] T i-1 P k P π[k] P π[π[k]] 2006/2007 Análise e Síntese de Algoritmos 14
15 Algoritmo de Knuth-Morris-Pratt (Cont.) KMP-Matcher(T, P) n = length[t] m = length[p] π = Compute-Prefix-Function(P) q = 0 for i = 1 to n while q > 0 e P[q + 1] T[i] q = π[q] if P[q + 1] = T[i] q = q + 1 if q = m Print Padrão encontrado com deslocação, i-m q = π[q] 2006/2007 Análise e Síntese de Algoritmos 15
16 Algoritmo de Knuth-Morris-Pratt (Cont.) Exemplos Compute-Prefix-Function(P, Σ) m = length[p] π[1] = 0 k = 0 for q = 2 to m while k > 0 e P[k + 1] P[q] k = π[k] if P[k + 1] = P[q] k = k + 1 π[q] = k return π 2006/2007 Análise e Síntese de Algoritmos 16
17 Algoritmo de Knuth-Morris-Pratt (Cont.) Complexidade: Compute-Prefix-Function: O(m) k é incrementado de 1 unidade não mais do que uma vez por cada valor de q, com número total de incrementos limitado superiormente por m Valor de k decrementado devido a atribuição k = π[k], mas k > 0 e valor acumulado de decremento limitado a um total de m unidades KMP-Matcher: O(n + m) Análise semelhante à anterior permite obter resultado 2006/2007 Análise e Síntese de Algoritmos 17
18 Revisão Emparelhamento de cadeiras caracteres Algoritmo elementar Utilização de autómatos finitos Algoritmo de Knuth-Morris-Pratt Outros algoritmos Rabin-Karp Boyer Moore... A seguir: Problemas NP-Completos (CLRS, Cap. 34) Algoritmos de aproximação (CLRS, Cap. 35) 2006/2007 Análise e Síntese de Algoritmos 18
AULA 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 maisReconhecimento 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 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 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 maisAnálise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34
Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy
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 maisUm Estudo Teórico e Experimental em Algoritmos Clássicos de Busca em Texto
Um Estudo Teórico e Experimental em Algoritmos Clássicos de Busca em Texto PAULO SÉRGIO R. CARVALHO DEIVE DE OLIVEIRA ALESSANDRA GUARACY ALISSON GOMES FERNADO CESAR DA CONCEIÇÃO JOSEANE FREIRE JONES ALBUQUERQUE
Leia maisAULA 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 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 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 maisLista 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 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 maisAnálise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22
Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca
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 maisPropriedades de Fecho de Linguagens Regulares.
Propriedades de Fecho de Linguagens Regulares. Gerando Linguagens Regulares Recorde a seguinte teorema: THM: Linguagens regulares são aquelas que podem ser geradas a partir de linguagens finitas pela aplicação
Leia maisHistórico e motivação
Expressões regulares 1. Histórico e motivação 2. Definição a) Sintaxe b) Semântica c) Precedência dos operadores 3. Exemplos 4. Leis algébricas 5. Dialetos 6. Aplicações 7. Exercícios Pré-requisito: básico
Leia maisAnálise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Leia maisProcessamento 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 maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Algoritmos Elementares em Grafos [CLRS, Cap. 22] 24/25 Contexto Revisão [CLRS, Cap.-3] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.2-26] Algoritmos elementares
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 maisINSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE
INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo
Leia maisLista 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 maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25 Contexto Algoritmos Elementares em Grafos (CLR, Cap. 22) BFS & DFS Ordenação Topológica & SCCs Árvores Abrangentes
Leia maisINCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS
INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS Acadêmico: Fernando Rafael Piccini Orientador: José Roque Voltolini da Silva Roteiro
Leia maisApostila 01 Fundamentação da Teoria da Computação e Linguagens Formais
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Leia maisCurso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos
Curso: Ciência da Computação Turma: 6ª Série Aula 3 Autômatos Finitos Alfabeto Alfabeto Conjunto finito de símbolos; Normalmente descrito por ; Exemplos: ={a, b} ={1, 2, 3} ={00, 11} Ø Alfabeto romano
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Caminhos Mais Curtos com Fonte Única [CLRS, Cap. 24] 2014/2015 Contexto Revisão [CLRS, Cap.1-13] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.21-26] Algoritmos
Leia maisFunção, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.
Análise léxica Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros Prof. Thiago A. S. Pardo 1 Estrutura geral de um compilador programa-fonte analisador
Leia maisAnálise e Síntese de Algoritmos.
Análise e Síntese de Algoritmos http://fenix.ist.utl.pt/leic-a/disciplinas/asa Corpo Docente Aulas Teóricas: Vasco Manquinho INESC-ID, Sala 329 Email: vasco.manquinho@inesc-id.pt Tel: 21 3100204 (INESC-ID)
Leia maisAnálise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26
Análise e Síntese de Algoritmos Fluxos Máximos em Grafos CLRS, Cap. 26 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais
Leia maisWEBERT TOMAZ ALGORITMOS CLÁSSICOS DE BUSCA EM TEXTO E SUA APLICAÇÃO AO ENSINO A DISTÂNCIA: ESTUDO E AVALIAÇÃO
WEBERT TOMAZ ALGORITMOS CLÁSSICOS DE BUSCA EM TEXTO E SUA APLICAÇÃO AO ENSINO A DISTÂNCIA: ESTUDO E AVALIAÇÃO Monografia de Graduação apresentada ao Departamento de Ciência da Computação da Universidade
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 maisEfficient 1-D and 2-D Parallel Pattern Matching with Scaling
Efficient 1-D and 2-D Parallel Pattern Matching with Scaling H. Mongelli and S. W. Song 26 de abril de 2004 0-0 CGM - Coarse-Grained Multicomputer Interconnection network... n/p n/p n/p n/p n/p Processor
Leia maisAlgoritmo de Minimização de AFD
a * Algoritmo de Minimização de AFD (Menezes, 2002) e no Livro Animado do próprio autor: ttp://teia.inf.ufrgs.br/cgi-bin/moore.pl?curso=livroanimado&estado=81 1 Autômato Finito Mínimo Um Autômato Mínimo
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Algoritmos de Aproximação CLRS, Cap. 35 Resumo Algoritmos de aproximação Algoritmos, com complexidade polinomial, que calculam soluções aproximadas para problemas de optimização
Leia maisMAC5722 Complexidade Computacional
MAC5722 Complexidade Computacional Complexidade Computacional p. 1 MAC5722 Complexidade Computacional Qual é o seu problema? http://qwiki.stanford.edu/wiki/complexity_zoo Complexidade Computacional p.
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 maisAlgoritmos gulosos (greedy)
Algoritmos gulosos (greedy) CLRS 16.1 e mais... Algoritmos p. 1 Algoritmos gulosos Algoritmo guloso procura ótimo local e acaba obtendo ótimo global costuma ser muito simples e intuitivo muito eficiente
Leia maisLinguagens 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 maisEstados Equivalentes. Exemplo R: Sim, b e f. Note que se estamos em b ou f então:
Minimização de AFD Estados Equivalentes. Exemplo Considere os estados de aceitação c e g. Eles são ambos estados que, uma vez atingidos, nunca se sai deles, desde que se leia 0 ou 1. Q: Precisamos desses
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 maisLinguagens Formais e Autômatos
Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Introdução Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto
Leia maisLinguagens Formais e Autômatos
Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto M dos
Leia maisLINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos
LINGUAGENS FORMAIS E AUTÔMATOS Prova 2-10/06/2011 - Prof. Marcus Ramos NOME: _ Colocar seu nome no espaço acima; A prova pode ser feita à lápis ou caneta; A duração é de três horas; As questões da parte
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 maisCT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturs de Ddos, Análise de Algoritmos e Complexidde Estruturl Crlos Alberto Alonso Snches CT-234 7) Busc de pdrões Knuth-Morris-Prtt, Boyer-Moore, Krp-Rbin Pdrões e lfbetos Pdrões (ptterns ou
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 maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Revisão [CLRS, Cap. 7-10] 2014/2015 Contexto Revisão [CLRS, Cap.1-13] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.21-26] Algoritmos elementares Árvores
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 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 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 maisAula de 26/08/2013. Processadores Simbólicos Aspectos de Arquitetura e Implementação
Linguagens Formais e Autômatos (LFA) Aula de 26/08/2013 Processadores Simbólicos Aspectos de Arquitetura e Implementação 1 Tópicos Cadeias, símbolos e linguagens em Ruby Visão geral da arquitetura Descrição
Leia maisLinguagens Formais e Autômatos (LFA)
Linguagens Formais e Autômatos (LFA) Aula de 19/08/2013 Símbolos, Cadeias, Linguagens Propriedades e Representações Formais de Interesse 1 Nota preliminar ( O conceito de decomposição e suas representações
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 1. Linguagens Regulares Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br www.each.usp.br/lauretto
Leia maisAnálise e Síntese de Algoritmos. Programação Linear CLRS, Cap. 29
Análise e Síntese de Algoritmos Programação Linear CLRS, Cap. 29 Conteto Algoritmos em Grafos (CLRS, Cap. 22-26)... Fluos máimos em grafos (CLRS, Cap. 26) Programação Linear (CLRS, Cap. 29) Programação
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 maisProf. Adriano Maranhão COMPILADORES
Prof. Adriano Maranhão COMPILADORES LINGUAGENS: INTERPRETADAS X COMPILADAS Resumo: Linguagem compilada: Se o método utilizado traduz todo o texto do programa, para só depois executar o programa, então
Leia maisEstrutura geral de um compilador programa-fonte
Análise léxica Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros Prof. Thiago A. S. Pardo 1 Estrutura geral de um compilador programa-fonte analisador
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 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 maisTeoria da Computação
1 Teoria da Computação Última atualização: 2/2/2009 1 Autômatos: Introdução e Conceitos Básicos A teoria de autômatos é o estudo de computadores abstratos, também chamados de máquinas. Em 1930, antes de
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 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 maisTEORIA DE COMPLEXIDADE
TEORIA DE COMPLEXIDADE Fundamentos: classes P e N P Mauricio Ayala-Rincón Grupo de Teoria da Computaç~ao http://ayala.mat.unb.br/tcgroup Instituto de Ciências Exatas Universidade de Brasília, Brasília
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 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 maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio
Leia maisLinguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes
Leia maisCompiladores. 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 maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Fluxos Máximos em Grafos CLRS, Cap. 26 Contexto Algoritmos elementares em grafos (CLR, Cap. 22) Árvores abrangentes de menor custo (CLR, Cap. 23) Caminhos mais curtos com
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 maisAnálise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26
Análise e Síntese de Algoritmos Fluxos Máximos em Grafos CLRS, Cap. 26 Contexto Algoritmos elementares em grafos (CLR, Cap. 22) Árvores abrangentes de menor custo (CLR, Cap. 23) Caminhos mais curtos com
Leia maisIV Gramáticas Livres de Contexto
IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S
Leia maisCompiladores. Prof. Bruno Moreno Aula 8 02/05/2011
Compiladores Prof. Bruno Moreno Aula 8 02/05/2011 RECONHECIMENTO DE TOKENS Reconhecimento de Tokens Até aqui aprendemos a identificar tokens Para reconhecimento, a única abordagem utilizada foi árvores
Leia maisMelhores momentos AULA 24. Algoritmos p.906/953
Melhores momentos AULA 24 Algoritmos p.906/953 Problemas polinomiais Analise de um algoritmo em um determinado modelo de computação estima o seu consumo de tempo e quantidade de espaço como uma função
Leia maisTeoria da Computação
Introdução Março - 2009 1 Noções e Terminologia Matemática Conjuntos Um conjunto é um grupo de objetos, chamados elementos ou membros, representado como uma unidade. O conjunto { 3, 41, 57} possui os elementos
Leia maisFUNDAMENTOS DA PROGRAMAÇÃO 1º Teste, 19 de abril de 2013, 1h30m
FUNDAMENTOS DA PROGRAMAÇÃO 1º Teste, 19 de abril de 2013, 1h30m 1. (1.5) Considere a seguinte gramática em notação BNF: ::= , ::= ::=
Leia maisTeoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.
Teoria da Computação e Algoritmos Introdução à Linguagem Pascal 1 Estrutura de um programa INÍCIO FIM. PROGRAM END.
Leia maisLINGUAGENS 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 maisAnálise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 4, 6 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, logaritmos, etc. Exemplos de algoritmos Ordenação Procura Selecção 2007/2008
Leia mais5. Invólucros Convexos no Plano (cont )
5. Invólucros Convexos no Plano (cont ) Antonio Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Mestrado em Matemática e Aplicações Complexidade Algorítmica Notação O Sejam T(n) e f(n)
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 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 maisAutômatos com Pilha: Reconhecedores de LLCs
Autômatos com Pilha: Reconhecedores de LLCs 1 Autômatos com Pilha (AP) Definições alternativas para Linguagens Livres de Contexto Extensão de AFND com uma pilha, que pode ser lida, aumentada e diminuída
Leia maisProcessamento 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 maisCompiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)
Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 08 Maior Subsequência Comum (LCS) Edirlei Soares de Lima Problema Subsequência: sequência de caracteres não necessariamente contínuos, retirados
Leia maisMelhores momentos AULA PASSADA. Complexidade Computacional p. 205
Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing
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 maisAnálise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)
Análise Léxica Fundamentos Teóricos Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores) Geradores X Reconhecedores Gramáticas Tipo 0 Máquinas de Turing G.
Leia maisCompiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 31. Instituto de C
ompiladores Análise Léxica Bruno Lopes Bruno Lopes ompiladores 1 / 31 Front-end Lida com a linguagem de entrada Teste de pertinência: código fonte linguagem fonte? Programa está bem formado? Sintaticamente?
Leia maisCOMPLEXIDADE PARAMETRIZADA PARTE 1. Rafael Coelho.
UMA BREVE INTRODUÇÃO À TEORIA DE COMPLEXIDADE PARAMETRIZADA PARTE 1 Rafael Coelho rcoelho@ime.usp.br Instituto de Matemática e Estatística Universidade de São Paulo Seminários de Teoria da Computação,
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 maisAnálise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 7-10 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, recorrências, etc. Exemplos de algoritmos Ordenação Procura Selecção
Leia maisDivisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos
1 Técnicas de Concepção de Algoritmos (1ª parte): divisão e conquista R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Fevereiro de 2011 2 Divisão e Conquista (divide and
Leia maisAlgoritmos gulosos (greedy) CLRS
Algoritmos gulosos (greedy) CLRS 16.3-16.5 Problema de escalonamento Considere n tarefas indicadas pelos números 1,..., n Problema de escalonamento Considere n tarefas indicadas pelos números 1,..., n
Leia mais1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18
ÍNDICE MÓDULO 1 INTRODUÇÃO À ALGORITMIA 11 1.1 PROGRAMAS E ALGORITMOS 12 Fases da programação 12 Algoritmos e algoritmia 13 Algoritmos em linguagem informal, pseudocódigo e fluxogramas 14 Símbolos utilizados
Leia maisPROGRAMAÇÃO DINÂMICA
PROGRAMAÇÃO DINÂMICA Programação dinâmica é tipicamente aplicada para problemas de otimização. O desenvolvimento de um algoritmo de programação dinâmica pode ser divido em 4 etapas. Caracterizar uma solução
Leia maisLinguagens 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 olivete@fct.unesp.br 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato
Leia mais