Linguagens Formais e Autômatos (LFA)

Documentos relacionados
Linguagens Formais e Autômatos (LFA)

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

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

Universidade Federal de Alfenas

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

Aula 9: Máquinas de Turing

Máquina de Turing. Controle finito

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

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Autômatos Finitos Determinís3cos (AFD)

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

I.2 Introdução a Teoria da Computação

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

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

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Modelos de Computação Folha de trabalho n. 10

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Turing e Complexidade

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Construção de Compiladores Aula 16 - Análise Sintática

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

Máquinas de Turing (MT)

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

LINGUAGENS FORMAIS E AUTÔMATOS

a n Sistemas de Estados Finitos AF Determinísticos

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

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

Autômatos com Pilha: Reconhecedores de LLCs

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguagens Formais e Autômatos (LFA)

Linguagens Regulares. Prof. Daniel Oliveira

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Universidade Federal de Alfenas

BCC242. Auômato Finito Determinístico

Linguagens Formais e Autômatos

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

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.

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Aula 10: Decidibilidade

Aula 10: Decidibilidade

Linguagens Formais e Autômatos (LFA)

Linguagens Livres de Contexto

a n Sistemas de Estados Finitos AF Determinísticos

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Análise Sintática. Fabiano Baldo

Terceira Lista de Exercícios 2004/2...

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

Universidade Federal de Alfenas

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Gramáticas Livres de Contexto Parte 1

Máquina de Turing. Teoria da Computação. Teoria da Computação. Histórico da Computação:

Autômatos de Pilha (AP)

Faculdade de Computação

Limites da Computação Algorítmica: Problemas Indecidíveis

Capítulo 2: Procedimentos e algoritmos

Prova 1 de INF1626 Linguagens Formais e Autômatos

Máquinas de Turing: uma introdução

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Linguagens Formais e Autômatos P. Blauth Menezes

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

Linguagens Formais e Autômatos P. Blauth Menezes

Aula 7: Autômatos com Pilha

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos

IME, UFF 7 de novembro de 2013

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

Compiladores. Parser LL 10/13/2008

Aula 10: Tratabilidade

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

Análise Sintática Introdução

Linguagens Formais e Autômatos (LFA)

Teoria da Computação. Aula 01

COMPUTABILIDADE. 1. Máquinas de Turing

Máquinas de Turing 3

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

Apostila 04. Objetivo: Estudar a Máquina de Turing

Uma forma de classificação

Como construir um compilador utilizando ferramentas Java

Teoria da Computação 19 de Abril de 2017 Teste 1A Duração: 1h30

Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.

Fundamentos da Teoria da Computação

AutomataDefense 3.0: Inclusão do conceito de Máquina de Turing para complementação pedagógica

Análise Sintática II: Analisadores Descendentes Preditivos

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

14.1 Linguagens decidíveis ou Turing reconhecíveis

Compiladores - Análise Ascendente

Linguagens Formais e Autômatos

Universidade Federal de Alfenas

Expressões Regulares. Processamento Estatístico da Linguagem Natural. Expressões Regulares. Mais Expressões Regulares. Mais Expressões Regulares

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

Transcrição:

Linguagens Formais e Autômatos (LFA) Aula de 18/11/2013 Linguagens Recursivamente Enumeráveis, Complexidade (Custo) de Tempo/Espaço, Transdutores para exibir complexidade de Tempo/Espaço 1

Linguagens Recursivamente Enumeráveis Se LINGUAGEM RECURSIVA é aquela para a qual existe uma Máquina de Turing que para quando reconhece uma cadeia que a ela pertence e também para quando não reconhece uma outra cadeia que não pertence, uma LINGUAGEM RECURSIVAMENTE ENUMERÁVEL é aquela para a qual existe uma Máquina de Turing que para quando reconhece uma cadeia que a ela pertence, mas que pode parar ou não ao processar uma cadeia que a ela não pertence. 2

Linguagens Recursivas são também chamadas de LINGUAGENS DECIDÍVEIS. Linguagens Recursivamente Enumeráveis Se LINGUAGEM RECURSIVA é aquela para a qual existe uma Máquina de Turing que para quando reconhece uma cadeia que a ela pertence e também para quando não reconhece uma outra cadeia que não pertence, uma LINGUAGEM RECURSIVAMENTE ENUMERÁVEL é aquela para a qual existe uma Máquina de Turing que para quando reconhece uma cadeia que a ela pertence, mas que pode parar ou não ao processar uma cadeia que a ela não pertence. 3

Linguagens Irrestritas ou de Tipo 0 São reconhecidas por Máquinas de Turing de fita ilimitada; para toda cadeia pertencente à linguagem, a MT para e aceita-a. São definidas (especificadas) por Gramáticas Irrestritas; para toda cadeia pertencente à linguagem, há uma árvore de derivação completa cuja raíz é o símbolo inicial da gramática e cujas folhas (concatenadas) correspondem à cadeia em questão. Linguagens recursivas e recursivamente enumeráveis são linguagens irrestritas ou de tipo 0. 4

Linguagens recursivamente enumeráveis são INDECIDÍVEIS Tendo em vista que é uma característica das linguagens recursivamente enumeráveis que a MT que as reconhece pode não parar de computar ao receber uma cadeia que não pertença a ela, elas são estritamente falando indecidíveis. Em outras palavras, as MTs que as reconhecem podem necessitar de tempo infinito para decidir que determinada cadeia não pertence a elas. 5

Complexidade (Custo) de Tempo/Espaço em MT s Complexidade de TEMPO (CT): CT é o número máximo de transições processadas por uma computação de MT quando iniciada por uma cadeia de comprimento n, independentemente de a cadeia ser aceita ou não. CT é expresso como uma função de n. Como se trata do número MÁXIMO de transições, trata-se sempre do pior caso. Nem todas as cadeias de mesmo comprimento requerem o mesmo número de transições para serem decididas.. Complexidade de ESPAÇO (CE): CE é o número que expressa a quantidade MÁXIMA de células de MT utilizadas na computação de cadeias de entrada de comprimento n para ler/gravar INFORMAÇÃO DE PROCESSAMENTO (i.e. não são contabilizadas as células da fita utilizadas apenas para a entrada), independentemente de a cadeia ser aceita ou não. Trata-se também do pior caso e CE é expresso como uma função de n. 6

Usando TRANSDUTORES para gerar representações de complexidade / custo O que são TRANSDUTORES (finitos)? De forma geral, transdutores são Máquinas de Turing com fitas (adicionais) de saída. Os exemplos a seguir foram produzidos com o JFLAP 7.0, versão de 2009. Nesta versão, MT s multifitas admitiam por default 3 movimentações: R (direita), L (esquerda), S (parada). No JFLAP da última versão as preferências das Máquinas de Turing têm de ser alteradas para S funcionar como esperado. 7

Complexidade de TEMPO Seja a linguagem L definida sobre Σ = {a,b}; ela aceita cadeias w = a n b m a q para n,m,q > 0 e m = n+q. Observe o comportamento de MT lenta assim definida: MT deve aceitar w se: 1) Para no estado final 2) O cursor está no final da cadeia de entrada Aceita? 8

Rastros da Complexidade de Tempo de MT lenta Aceitação de abba abba = 4 9 transições transdução com sequência de estados visitados 9

Rastros da Complexidade de Tempo de MT lenta Aceitação de aabbbbbaaa aabbbbbaaa = 10 16 transições transdução com sequência de estados visitados 10

Rastros da Complexidade de Tempo de MT lenta Rejeição de aabbbbbbaa aabbbbbbaa = 10 17 transições transdução com sequência de estados visitados 11

Exercício 1: Como tornar MT lenta menos lenta (e correta, se preciso)? -- O exercício é para ser feito idealmente em duplas, com o(a) colega a seu lado. -- A especificação de MT lenta no JFLAP está no slide seguinte. Considera-se como condição de aceitação da cadeia a parada de MT lenta no estado final e o cursor posicionado ao final da cadeia entrada. -- Estas condições, porém, podem ser diferentes (por exemplo, cursor em outra posição, parada em estado não final, etc.). O que não pode mudar é que cadeias não pertencentes a L sejam rejeitadas e cadeias pertencentes sejam aceitas (L é decidível). 12

Deve reconhecer a n b m a q para n,m,q > 0 e m=n+q 13

Exercício 2: Como ε L, podemos dizer que L é uma linguagem de tipo 1? -- Há uma MT de fita limitada que reconhece L? -- Se sua resposta for positiva, compare a complexidade de tempo da MT de fita limitada que reconhece L com a da MT lenta. O que se observa e conclui? Diminuir a complexidade de uma MT é torná-la mais eficiente. Por vezes, eficiência de tempo pode vir em detrimento de eficiência de espaço, ou vice-versa. 14

Fatos interessantes Na apostila online de Chris Cooper (http://www.ics.mq.edu.au/~chris/langmach/chap09.pdf) mostrase como uma MT de fita dupla pode ser convertida em MT equivalente de fita única. O processo começa por uma representação unidimensional do espaço bidimensional: 1. Rotular as fitas superior e inferior com inteiros positivos ímpares (acima) e inteiros positivos pares (abaixo) 2. Em seguida projetar este espaço sobre uma única fita 15

Continuação: 3. Em seguida estabelecem-se as seguintes correspondências: mov UP na MT(bidim) mov LEFT na MT(unidim) mov DOWN na MT(bidim) mov RIGHT na MT(unidim) mov LEFT na MT(bidim) mov LEFT LEFT na MT(unidim) mov RIGHT na MT(bidim) mov RIGHT RIGHT na MT(unidim) Com estas correspondências, a MT da aula passada que computava a função swap(n,m) para n representado em uma fita e m na outra pode ser computada por MT de uma única fita. 16

Exercício 3: para casa com 2 MT s para swap(n,m) Tabela de Transição Bidim Tabela de Transição Unidim 1. Estude os passos de conversão MT(bidim) MT(unidim) 2. Compare a complexidade de tempo das duas MT s 17