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

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

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação. Máquinas Universais Máquina de Turing

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

Linguagens Livres de Contexto

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

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

Linguagens Regulares. Prof. Daniel Oliveira

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo

Teoria da Computação

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

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

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

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

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

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Teoria da Computação. Computabilidade e complexidade computacional

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Máquinas de Turing - Computabilidade

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

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

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Modelos Universais de Computação

Teoria da Computação. Máquinas de Turing: variações

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Linguagens Formais e Autômatos P. Blauth Menezes

Máquinas de Turing (MT)

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

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

Computabilidade e Complexidade (ENG10014)

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

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

SCC 205 Teoria da Computação e Linguagens Formais

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing

Linguagens Formais e Autômatos Apresentação da Disciplina

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

PCC104 - Projeto e Análise de Algoritmos

Linguaguens recursivamente enumeráveis

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

Análise e Projeto de Algoritmos

Linguaguens recursivamente enumeráveis e recursivas

Máquina de Turing. Controle finito

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Linguagens Formais e Autômatos (LFA)

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

Autômatos Finitos Determinís3cos (AFD)

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens recursivamente enumeráveis

Linguagens Formais e Autômatos P. Blauth Menezes

Aula 9: Máquinas de Turing

1. Uma linguagem de uma máquina de Turing

Máquina de Turing. Controle finito

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

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

S. C. Coutinho. Máquina de Turing Universal p. 1/22

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Teoria da Computação. Computabilidade e complexidade computacional

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto

Noção de Computabilidade

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

SCC-5832 Teoria da Computação

Turing e Complexidade

SCC Teoria da Computação e Linguagens Formais

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

Linguagens Formais e Autômatos (LFA)

Universidade Federal de Alfenas

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

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

BCC242. Auômato Finito Determinístico

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

PCS3616. Programação de Sistemas (Sistemas de Programação) Visão Geral

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

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Gramáticas Livres de Contexto Parte 1

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos Decidibilidade

Teoria da Computação. Computabilidade

Universidade Federal de Alfenas

Variações de Máquinas de Turing

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

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

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

Projeto de máquina de Turing com múltiplas fitas reconhecedora de número primo

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

Problemas Computáveis

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Universidade Federal de Alfenas

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

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de

Resolução Exe 2.12 Monolítico Recursivo

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

INE5622 INTRODUÇÃO A COMPILADORES

Transcrição:

ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação é o estudo sistematizado relativo à Computação. Originou-se na Grécia com os algoritmos de Euclides (século III A.C.) e na Babilônia, com estudos sobre complexidade e redutibilidade de problemas. Em 1936 Alan Mathieson Turing, matemático inglês, propôs um modelo que ficou conhecido como Máquina de Turing, atualmente aceito como uma formalização do conceito de procedimento, isto é, uma seqüência finita de instruções que podem ser realizadas mecanicamente em um tempo finito. Ainda em 1936, Alonzo Church apresentou uma hipótese que ficou conhecida como a Hipótese de Church, segundo a qual qualquer função computável pode ser representada por uma Máquina de Turing. Como o conceito de procedimento é matematicamente impreciso, não é possível provar que a Máquina de Turing é realmente o dispositivo computacional mais genérico possível. Entretanto nenhum modelo computacional desenvolvido até o presente conseguiu apresentar capacidade computacional superior ao modelo de Turing, o que reforça a Hipótese de Church. As Linguagens Enumeráveis Recursivamente (LER), ou do Tipo Zero, são as linguagens que podem ser reconhecidas por uma Máquina de Turing e portanto esta classe de linguagem representa o conjunto de todas as linguagens que podem ser reconhecidas mecanicamente e em um tempo finito. Para gerar as LER emprega-se um formalismo axiomático ou gerador na forma de uma gramática denominada Gramática Irrestrita (não possui qualquer restrição quanto ao formato das produções). As Linguagens Sensíveis ao Contexto (LSC), ou do Tipo 1, estão contidas propriamente no conjunto das LER. Gramáticas Sensíveis ao Contexto (GSC): É o formalismo gerador das LSC. O lado esquerdo das produções pode ser uma palavra de variáveis ou terminais definindo um contexto de derivação. Máquina de Turing com Fita Limitada: É o mecanismo reconhecedor das LSC. Sua fita é limitada e portanto finita.. Não se sabe se o não-determinismo aumenta ou não o poder computacional das Máquinas de Turing com Fita Limitada.

1. Máquina de Turing A Máquina de Turing, para ser considerada um modelo de um procedimento deve apresentar, entre outras, as seguintes propriedades: a) A execução do algoritmo deve ser finita. b) Deve consistir de passos (1) discretos, (2) executáveis mecanicamente, (3) num tempo finito. O modelo proposto por Alan Turing em 1936 consistia de 3 partes: a) Fita: usada simultaneamente como dispositivo de entrada, saída e memória de trabalho, b) Unidade de Controle: reflete o estado corrente da máquina. Possui uma unidade de leitura e gravação (cabeça da fita) que acessa uma célula da fita de cada vez, movendo-se para a esquerda e para a direita, e c) Programa ou Função de Transição: comanda as leituras e gravações, o sentido do movimento da cabeça e define o estado da máquina. A fita é finita à esquerda e infinita à direita, sendo dividida em células onde cada uma armazena um símbolo, que podem pertencer ao alfabeto de entrada, ao alfabeto auxiliar ou ser "branco". Inicialmente a palavra a ser processada ocupa as células mais à esquerda da fita, ficando as demais em "branco". A unidade de controle possui um número finito e pré-definido de estados A cabeça de leitura/gravação lê o símbolo contido em uma célula da fita de cada vez e grava um novo símbolo. Após a leitura/gravação a cabeça se move uma célula para a direita ou para a esquerda. O símbolo gravado e o sentido do movimento são definidos pelo programa. Inicialmente a cabeça está posicionada na célula mais à esquerda da fita como pode ser visto na figura, onde representa "branco". a b b c a... Controle O programa é uma função que, dependendo do estado corrente da máquina e do símbolo lido, determina o símbolo a ser gravado, o sentido do movimento da cabeça e o novo estado da máquina.

p (a1, a2, m) q ESTADO ANTERIOR NOVO ESTADO Símbolo lido Símbolo gravado Sentido do movimento Isto é: δ (p, a1) = (q, a2, m) 2. Definição Formal da Máquina de Turing Uma máquina de Turing é uma heptupla: M = (Σ, Q, δ, q 0, F, V, ), onde: Σ é um alfabeto de entrada Q é um conjunto finito de estados possíveis de M δ é um programa ou função de transição parcial: δ:qx(σ V {}) Qx(Σ V {})x{e,d} q 0 é um estado inicial da máquina, q 0 Q F é um conjunto de estados finais da máquina tal que F está contido em Q V é um alfabeto auxiliar (que pode ser vazio) é o símbolo especial "branco" A função de transição considera o estado corrente e o símbolo lido da fita para determinar o novo estado, o símbolo a ser gravado e o sentido do movimento da cabeça, onde esquerda e direita são representadas por E e D respectivamente. O processamento de uma Máquina de Turing, M = (Σ, Q, δ, q 0, F, V, ), para uma palavra de entrada w consiste na sucessiva aplicação da função programa a partir do estado inicial q 0 e da cabeça posicionada na célula mais à esquerda da fita até ocorrer uma condição de parada. O processamento de M para a entrada w pode parar ou ficar em loop infinito. A parada pode ser de duas maneiras: aceitando ou rejeitando a entrada w. As condições de parada são as seguintes: a) A máquina assume um estado final: a máquina pára e a palavra de entrada é aceita. b) A função programa é indefinida para o argumento (símbolo lido e estado corrente): a máquina pára e a palavra de entrada é rejeitada. c) O argumento da função programa determina um movimento para a esquerda e a cabeça já está na posição mais à esquerda da fita: a máquina pára e a palavra de entrada é rejeitada.

Para definir formalmente o comportamento da Máquina de Turing é necessário estender a função programa para usar como argumento um estado e uma palavra. Se M é uma Máquina de Turing: a) ACEITA(M) ou L(M) é o conjunto de todas as palavras de Σ* aceitas por M. b) REJEITA(M) é o conjunto de todas as palavras de Σ* rejeitadas por M. c) LOOP(M) é o conjunto de todas as palavras de Σ* para as quais M entra em loop infinito. 3. Exemplo: Máquina de Turing Seja a linguagem L 1 = { a n b n n 0}. A Máquina de Turing M = ({a, b}, {q 0, q 1, q 2, q 3, q 4 }, δ 1, q 0, {q 4 }, {A, B}, ), onde δ 1 é como na tabela a seguir é tal que: (1) ACEITA(M) = L 1, (2) REJEITA(M) = Σ* - L 1 e (3) LOOP(M) = δ 1 a b A B (, A, D) (, B, D) (,, D) (, a, D) (, B, E) (, B, D) (, a, E) (, A, D) (, B, E) (, B, D) (,, D) (A, A, D) (a, A, D) (b, B, E) (,, D) (a, a, D) (a, a, E) (B, B, E) (,, D)

a a b b A a b b A a b b A a B b A a B b A a B b A A B B A A B b A A B B A A B b A A B B A A B B A A B B A A B B