UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Documentos relacionados
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

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

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

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

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação. Computabilidade e complexidade computacional

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

Máquinas de Turing - Computabilidade

Computabilidade e Complexidade (ENG10014)

SCC-5832 Teoria da Computação

Teoria da Computação

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

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

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

Universidade Federal de Alfenas

Linguagens Livres de Contexto

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

Máquinas de Turing (MT)

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

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

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

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

SCC Teoria da Computação e Linguagens Formais

Resolução Exe 2.12 Monolítico Recursivo

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

Linguagens Regulares. Prof. Daniel Oliveira

Teoria da Computação. Computabilidade

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

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

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Computabilidade e Complexidade (ENG10014)

Linguagens Formais e Autômatos Decidibilidade

Linguaguens recursivamente enumeráveis e recursivas

Linguaguens recursivamente enumeráveis

Teoria da Computação. Computabilidade e complexidade computacional

Universidade Federal de Alfenas

Teoria da Computação. Aula 01

Linguagens recursivamente enumeráveis

SCC Introdução à Teoria da Computação

PCC104 - Projeto e Análise de Algoritmos

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

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

Máquina de Turing. Controle finito

Máquina de Turing. Controle finito

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

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

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

Problemas Computáveis

Turing e Complexidade

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

Universidade Federal de Alfenas

Linguagens Formais e Problemas de Decisão

Variações de Máquinas de Turing

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

1. Uma linguagem de uma máquina de Turing

Aula 9: Máquinas de Turing

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

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

Máquinas de Turing 3

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

1 INTRODUÇÃO E CONCEITOS BÁSICOS

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

Introdução à Computação

Introdução à Computação

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

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

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

a n Sistemas de Estados Finitos AF Determinísticos

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

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

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

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

SCC 205 Teoria da Computação e Linguagens Formais

Autômatos Finitos Determinís3cos (AFD)

Turma A - Segundas e Quartas das 8h30min - 10h10min Turma B - Segundas e Quartas das 10h30min - 12h10min

Modelos Universais de Computação

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

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

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

Capítulo 2: Procedimentos e algoritmos

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

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

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado?

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Gramática. Gramática

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos P. Blauth Menezes

Transformação de AP para GLC

Máquina de Turing e máquina de Turing universal

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada

Transcrição:

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br

Teoria da Computação Ciência da Computação Ênfase teórica: idéias fundamentais e modelos computacionais; Ênfase prática: projeto de sistemas computacionais; Prof. Yandre Maldonado - 2 As tecnologias computacionais são construídas a partir de fundamentos da computação. Aquelas são passageiras, enquanto estes estão por trás da tecnologia em qualquer tempo.

Teoria da Computação Histórico da Computação: Computar: do latim computare, que significa calcular, avaliar, contar; Prof. Yandre Maldonado - 3 Ábaco China, aprox. 3500 a.c. Máquina de Babbage R.U., 1823. ENIAC EUA, 1946.

Teoria da Computação Os fundamentos estão por trás da tecnologia em qualquer tempo. Tecnologias Computacionais Prof. Yandre Maldonado - 4 Fundamentos Teóricos da Computação Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais

Máquina de Turing Prof. Yandre Maldonado - 5 Introduzida por Alan Turing em 1936; Ferramenta para estudar a capacidade dos processos algorítmicos; Modelo abstrato, concebido antes mesmo de uma implementação tecnológica;

Máquina de Turing Prof. Yandre Maldonado - 6 Formaliza a idéia de uma pessoa que realiza cálculos; Simulação de uma situação na qual uma pessoa, equipada com um instrumento de escrita e um apagador, realiza cálculos numa folha de papel; A Máquina de Turing ainda hoje é aceita como a formalização de um procedimento efetivo, ou seja, uma seqüência finita de instruções, as quais podem ser realizadas mecanicamente, em tempo finito. (Menezes, 1998).

Máquina de Turing Prof. Yandre Maldonado - 7 MT pode ser vista como a mais simples máquina de computação, servindo para determinar quais funções são computáveis e quais não são (Delamaro, 1998).

Máquina de Turing Prof. Yandre Maldonado - 8 Outros modelos foram propostos, mas todos mostraram ter, no máximo, poder computacional equivalente ao da MT; Estas são chamadas Máquinas Universais: Máquinas capazes de expressar a solução para qualquer problema algorítmico.

Máquina de Turing Prof. Yandre Maldonado - 9 A Máquina de Turing consiste de: Uma Unidade de Controle Que pode ler e escrever símbolos em uma fita por meio de um cabeçote de leitura e gravação e pode se deslocar para a esquerda ou direita; A fita estende-se infinitamente em uma das extremidades e é dividida em células. Utilizada como dispositivo de entrada, saída e memória de trabalho; Estas células podem armazenar qualquer elemento de um conjunto finito de símbolos, um alfabeto.

Máquina de Turing Programa ou Função de Transição: função que comanda as leituras e gravações, o sentido de movimento da cabeça e define o estado da máquina que será ativado. Prof. Yandre Maldonado - 10 Controle ( ) a b b a b b... * Como o símbolo estabelece o limite da extremidade esquerda da fita, não se pode apagá-lo e nem realizar movimentos para a esquerda deste símbolo.

Máquina de Turing Prof. Yandre Maldonado - 11 Funcionamento da Máquina de Turing A MT deve assumir sempre em um estado, pertencente à um conjunto finito de estados; O processamento de uma MT começa sempre em um estado especial, chamado estado inicial; Inicialmente a primeira célula da fita é preenchida com, que indica o início da mesma; A cabeça de leitura é posicionada inicialmente na segunda célula da fita, a célula seguinte a ; As células em branco, que não fazem parte da palavra a ser processada, são preenchidas com o símbolo ;

Máquina de Turing Prof. Yandre Maldonado - 12 Funcionamento da Máquina de Turing O processamento em uma MT consiste em uma seqüência de passos que consistem em: Observar o estado e o símbolo corrente da fita (aquele em que o cabeçote está posicionado); Escrever um símbolo nesta célula da fita; Mover o cabeçote para a esquerda ou direita; Mudar o estado corrente; A ação exata a ser executada é determinada por um programa (função de transição) que comunica à unidade de controle o que deve ser feito com base na configuração (estado + símbolo corrente da fita) em que a MT se encontra.

Máquina de Turing Prof. Yandre Maldonado - 13 Funcionamento da Máquina de Turing O processamento cessa quando a máquina atinge uma configuração para a qual não existe função prevista, neste caso: Se a máquina estiver com um estado final ativo, a palavra de entrada é aceita; Se o estado ativo não for final, a palavra de entrada não é aceita; Se a máquina não parar (looping), a entrada de entrada não é aceita.

Máquina de Turing Definição da MT, uma octupla: Prof. Yandre Maldonado - 14 : alfabeto de símbolos de entrada; Q : conjunto de estados possíveis, o qual é finito; : programa ou função de transição : Q ( V {, }) Q ( V {, }) {E, D} a qual é uma função parcial; q 0 : estado inicial da máquina, q 0 Q; F : conjunto de estados finais, F Q; V : alfabeto auxiliar (pode ser vazio); : símbolo especial para células em branco; : símbolo especial marcador de início da fita.

Máquina de Turing Prof. Yandre Maldonado - 15 A Máquina de Turing pode ser empregada como modelo de natureza reconhecedora ou transdutora: Reconhecedora: processa a palavra de entrada aceitando-a ou rejeitando-a. Neste caso, o conjunto de palavras aceitas corresponde à linguagem descrita pela MT; Transdutora: máquina para computar uma função. Aplica uma função sobre o conteúdo inicial da fita e o resultado produzido é lançado na própria fita.

AFND Máquina de Turing Prof. Yandre Maldonado - 16 Representação de MT por diagrama: Indica estado inicial da MT Semelhante à representação de AFD; Os rótulos das setas, que representam as funções de transição são de acordo com a seguinte legenda: S 0 S 1 S f (a 1, a 2,m) (a 1, a 2,m) Símbolo a ser lido Símbolo a ser gravado Sentido do movimento Estado final da MT

AFND Máquina de Turing Exemplo 1: uma MT transdutora que devolve o complemento de uma entrada binária. Prof. Yandre Maldonado - 17 (0,1,D) (1,1,E) (1,0,D) (0,0,E) S 0 S 1 S f (,,E) (,,D)

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 18 S 0 S 1 S f Unidade de Controle Estado atual: S 0 (,,E) (,,D) 1 0 1 0...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 19 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 0 (,,D) 0 0 1 0...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 20 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 0 (,,D) 0 1 1 0...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 21 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 0 (,,D) 0 1 0 0...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 22 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 0 (,,D) 0 1 0 1...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 23 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 1 (,,D) 0 1 0 1...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 24 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 1 (,,D) 0 1 0 1...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 25 S 0 S 1 S f (,,E) Unidade de Controle Estado atual: S 1 (,,D) 0 1 0 1...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 26 S 0 S 1 S f Unidade de Controle Estado atual: S 1 (,,E) (,,D) 0 1 0 1...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 27 Unidade de Controle Estado atual: S 1 S 0 S 1 S f (,,E) (,,D) 0 1 0 1...

Máquina de Turing Processamento de 1010 : (0,1,D) (1,0,D) (1,1,E) (0,0,E) Prof. Yandre Maldonado - 28 S 0 S 1 S f Unidade de Controle Estado atual: S f (,,E) (,,D) * O reposicionamento da cabeça de leitura na sua posição original pode ser útil para realizar combinações de Máquinas de Turing. 0 1 0 1...

AFND Máquina de Turing Prof. Yandre Maldonado - 29 Exemplo : uma MT com alfabeto de entrada {a} que páre se, e somente se, a palavra de entrada for da forma a 2n para n>=0 (,,D) S 0 S 1 S f (a, a,d) (a, a,d)

AFND Máquina de Turing Exemplo : Processamento de aaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 30 Unidade de Controle Estado atual: S 0 S f a a a...

AFND Máquina de Turing Exemplo : Processamento de aaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 31 Unidade de Controle Estado atual: S 1 S f a a a...

AFND Máquina de Turing Exemplo : Processamento de aaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 32 Unidade de Controle Estado atual: S 0 S f a a a...

AFND Máquina de Turing Exemplo : Processamento de aaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 33 S f Unidade de Controle Estado atual: S 1 CADEIA REJEITADA a a a...

AFND Máquina de Turing Exemplo : Processamento de aaaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 34 Unidade de Controle Estado atual: S 0 S f a a a a...

AFND Máquina de Turing Exemplo : Processamento de aaaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 35 Unidade de Controle Estado atual: S 1 S f a a a a...

AFND Máquina de Turing Exemplo : Processamento de aaaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 36 Unidade de Controle Estado atual: S 0 S f a a a a...

AFND Máquina de Turing Exemplo : Processamento de aaaa (a, a,d) S 0 S 1 (a, a,d) (,,D) Prof. Yandre Maldonado - 37 S f Unidade de Controle Estado atual: S f a a a a... CADEIA RECONHECIDA

Máquina de Turing Prof. Yandre Maldonado - 38 Exercício 1 (lista Yandre 1a): Construa uma MT transdutora que receba como entrada um número binário e devolva o quádruplo do mesmo. (0,0,D) (1,1,D) S 0 S 1 S f (,0,D) (,0,E) S 2 (0,0,E) (1,1,E) (,,D)

AFND Máquina de Turing Prof. Yandre Maldonado - 39 Exercício 2: Construa uma MT com menor número de estados possível que reconheça a linguagem denotada pela ER a(a+b)*, assumindo o alfabeto {a,b} S 0 (a, a,d) (a,a,d) (b,b,d) S f

Máquina de Turing Exercício 3: Construa uma MT com menor número de estados possível que reconheça a linguagem denotada {a n b n n 0} (lista Yandre 3c) Prof. Yandre Maldonado - 40

AFND Exercício 3 (A, A,D) (a,a,d) (B,B,D) (b, B,E) (a, A,D) S 1 S 3 (a,a,e) Prof. Yandre Maldonado - 41 S 0 (B, B,D) (,,D) S 2 (B,B,D) (,,E) S f (B,B,E)

Máquina de Turing Prof. Yandre Maldonado - 42 Exercício 4: Construa uma MT com menor número de estados possível que reconheça a linguagem denotada {W pertence {a,b} o número de a s em W é igual ao número de b s}.

AFND Exercício 4 (<, <,D) (B,B,D) Prof. Yandre Maldonado - 43 (B,B,D) (A,A,D) S 0 (a, A,D) (,,E) (b, B,D) S f (<, <,D) S 1 S 2 (a,a,d) (b, B,E) (b,b,d) (A,A,D) (a, A,E) S 3 S 4 (a,a,e) (B,B,E) (A,A,E) (b,b,e) (a,a,e) (B,B,E) (A,A,E) (b,b,e)

Máquina de Turing Prof. Yandre Maldonado - 44 Exercício 8: Construa uma MT com menor número de estados possível que reconheça por estado final e com cabeçote imóvel a seguinte linguagem de alfabeto {a,b,c,d} {a m b n c m d n m, n pertence a N}

AFND (A, A,D) (B,B,D) (C,C,D) (D,D,D) (a, A,D) S 1 (a,a,d) (b,b,d) (c, C,E) S 3 (a,a,e) (C,C,E) (b,b,e) Prof. Yandre Maldonado - 45 S 0 (,,E) (b, B,D) S f (B, B,D) S 2 (b,b,d) (D,D,D) (C,C, D) (d, D,E) S 4 (D,D,E) (C,C,E) (b,b,e)

Exercícios para casa: 1. Construa uma Máquina de Turing para a seguinte linguagem (com o mínimo de estados): { a n b n c n n 0} (Yandre 3d) Prof. Yandre Maldonado - 46 2. Construa uma MT que reconheça a linguagem { w pertence {a,b}* w w R }, ou seja, o conjunto das palavras sobre {a,b} que não são palíndromos. 3. Construa uma MT com fita bidirecional e alfabeto {a} que pare se a fita contiver célula em branco.

AFND Exercício 2 (b,b,d) (a,a,d) S f (b,b,e) (a,,d) S 1 (,,E) S 3 (a,,e) S 0 (,,D) S6 (a,a,e) (b,b,e) Prof. Yandre Maldonado - 47 (b,,d) (,,E) S 5 S 2 (a,a,d) (b,b,d) (,,E) S 4 S f (a,a,d) (b,,e)

Máquina de Turing Máquina de Turing Prof. Yandre Maldonado - 48 Dada a sua natureza conceitual, a MT pode ser implementada de diversas formas; Os computadores modernos são MT (exceto pelo fato de terem memória finita) O processador corresponde à unidade de controle, cujos estados podem ser definidos pelos padrões de bits que podem ser associados aos registradores; A memória da máquina corresponde ao sistema de armazenamento em fita; Os padrões de bits (0 e 1) correspondem ao alfabeto da fita.

Máquina de Turing Prof. Yandre Maldonado - 49 Importância da MT para a Ciência da Computação: A potência computacional da MT é tão grande quanto a de qualquer sistema algorítmico; Se um problema não puder ser resolvido por uma MT, não poderá ser resolvido por qualquer sistema algorítmico; MT representa a fronteira teórica da capacidade computacional para as máquinas modernas reais.

MÁQUINA UNIVERSAL Prof. Yandre Maldonado - 50 Se for possível representar qualquer algoritmo como um programa em uma máquina simples e poderosa então tal máquina é de fato uma MÁQUINA UNIVERSAL

Máquina deveria ser Simples para permitir estudos de propriedades sem a necessidade de considerar características não-relevantes, bem como permitir estabelecer conclusões gerais sobre a classe de funções computáveis Prof. Yandre Maldonado - 51 Poderosa capaz de simular qualquer característica de máquinas reais ou teóricas, de tal forma que os resultados provados fossem válidos para modelos aparentemente com mais recursos e para que qualquer função computável possa ser nela representada.

Máquinas Universais Prof. Yandre Maldonado - 52 As evidências de que máquina é de fato universal, podem se classificadas como: EVIDÊNCIA INTERNA Demonstração de que qqr extensão das capacidades da máquina proposta computa, no máximo a mesma classe de funções, ou seja, não aumenta o poder computacional EVIDÊNCIA EXTERNA Consiste no exame de outros modelos que definem a noção de algoritmo, juntamente com a prova de que são, no máximo, computacionalmente equivalentes.

Máquinas Universais O modelo de máquina universal mais utilizado é a Máquina de TURING Prof. Yandre Maldonado - 53 A MT possui tantas células de armazenamento de dados quanto necessário Em 1936, Alonzo Church apresentou a Hipótese de Church

Máquinas Universais Hipótese de Church: Prof. Yandre Maldonado - 54 Qualquer função computável pode ser processada por uma MT, ou seja, Existe um algoritmo expresso na forma de MT capaz de processar a função. Mas essa noção intuitiva de algoritmo não é matematicamente precisa.

Máquinas Universais Prof. Yandre Maldonado - 55 Modelos equivalentes à MT: Máquina Norma Máquina de registradores onde o conjunto de registradores é infinito Máquina de Post Baseada na estrutura de dados do tipo fila (o primeiro dado armazenado é o primeiro a ser recuperado) Máquinas com Pilhas São necessárias pelo menos duas pilhas para simular o mesmo poder computacional de um fita ou fila

Extensões da MT não aumentam seu poder computacional Prof. Yandre Maldonado - 56 Extensões: Não determinismo: Permite que a máquina possa tentar diversos caminhos alternativos para uma mesma situação Múltiplas fitas Múltiplas unidades de controle Fitas infinitas nas duas extremidades

Máquinas de Turing Prof. Yandre Maldonado - 57 Existem 3 maneiras de abordar o estudo das Máquinas de Turing e de seus modelos equivalentes: Reconhecimento de Linguagens Linguagens que podem ser reconhecidas e suas propriedades Processamento de Funções Funções computáveis e suas propriedades Solucionabilidade de Problemas: problemas solucionáveis e não-solucionáveis, problemas parcialmente solucionáveis (computáveis) e completamente insolúveis (não computáveis) e suas propriedades.

Máquina de Turing Prof. Yandre Maldonado - 58 Reconhecimento de Linguagens

Máquinas que param sempre e que param se aceitam. Prof. Yandre Maldonado - 59 MT que aceitam a linguagem das palavras no alfabeto {a,b,c} que não têm ab como prefixo, ou seja, {a,b,c}*- ({ab}{a,b,c}*)

Máquinas que param sempre e que param se aceitam. S 0 S 1 (a,a,d) (b,b,e) S 2 Máquina que pára sempre Prof. Yandre Maldonado - 60 (a,a,d) S 0 S 1 (b,b,e) Máquina que pára se aceita

MT como Reconhecedores de Linguagens Prof. Yandre Maldonado - 61 A linguagem aceita por M, denotada por ACEITA(M) ou L(M), é o conjunto de todas as palavras pertencentes a * aceitas por M, ou seja: ACEITA(M)= {w M ao processar w *, pára em um estado qf F}

MT como Reconhecedores de Linguagens A linguagem rejeitada por M, denotada por REJEITA(M), é o conjunto de todas as palavras de * rejeitadas por M, ou seja: Prof. Yandre Maldonado - 62 REJEITA(M) = {w M ao processar w *, pára em um estado q F}

MT como Reconhecedores de Linguagens Prof. Yandre Maldonado - 63 A linguagem para a qual M fica em loop infinito, denotada por LOOP(M) é conjunto de todas as palavras de * para as quais M fica processando indefinidamente.

MT como Reconhecedores de Linguagens * ACEITA(M) REJEITA(M) Prof. Yandre Maldonado - 64 LOOP(M)

MT como Reconhecedores de Linguagens * ACEITA(M) REJEITA(M) Prof. Yandre Maldonado - 65 LOOP(M) ACEITA(M) REJEITA(M) = ACEITA(M) LOOP(M) = REJEITA(M) LOOP(M) = ACEITA(M) REJEITA(M) LOOP(M) = ACEITA(M) REJEITA(M) LOOP(M) = *

MT como Reconhecedores de Linguagens Critério para o Reconhecimento de Linguagens. Prof. Yandre Maldonado - 66 Se a máquina pára para toda palavra da linguagem sobre o alfabeto de entrada, ela é reconhecida pela Máquina de Turing.

Linguagem Enumerável Recursivamente Uma linguagem aceita por uma Máquina de Turing é dita enumerável recursivamente. Prof. Yandre Maldonado - 67 Enumerável deriva do fato de que as palavras de qualquer linguagem enumerável recursivamente podem ser enumeradas ou listadas por uma Máquina de Turing. Recursivamente é um termo matemático, anterior ao computador, com significado similar ao de recursão, utilizado na computação.

Linguagem Enumerável Recursivamente A classe das Linguagens Enumeráveis Recursivamente inclui as Prof. Yandre Maldonado - 68 linguagens livre do contexto e algumas outras linguagens para as quais não se pode, mecanicamente, determinar se uma dada palavra pertence ou não à linguagem.

Linguagem Enumerável Recursivamente Se L é uma dessas linguagens, então para qualquer máquina M que aceita a linguagem L, existe pelo menos uma palavra w, não pertencente a L, que, ao ser processada por M, resulta que a máquina entre em loop infinito. Prof. Yandre Maldonado - 69 Se w pertence a L, M pára e aceita a entrada Se w não pertence a L, M pode parar, rejeitando a palavra, ou permanecer processando indefinidamente (loop).

Exemplos Linguagem Enumerável Recursivamente As seguintes linguagens são exemplos de linguagens Enumeráveis Recursivamente: Prof. Yandre Maldonado - 70 Duplo_Bal = { a n b n n 0} Triplo_Bal = { a n b n c n n 0} Palavra_Palavra = { ww w é palavra sobre os símbolos a e b} { w / w tem o mesmo número de símbolos a que b} { a i b j c k i=j ou j=k}

Classe das Linguagens Recursivas Uma sub-classe da Classe das Prof. Yandre Maldonado - 71 Linguagens Enumerável Recursivamente, denominada Classe das Linguagens Recursivas, é composta pelas linguagens para as quais existe pelo menos uma Máquina de Turing que pára para qualquer entrada, aceitando ou rejeitando.

Classe das Linguagens Recursivas A máquina não entra em loop Definição Linguagem Recursiva Uma linguagem é dita recursiva se existe uma Máquina de Turing tal que: Prof. Yandre Maldonado - 72 ACEITA(M) = L REJEITA(M) = * - L. LOOP(M) =

Classe das Linguagens Recursivas Pode-se afirmar que a classe das Linguagens Recursivas representa todas as linguagens que podem ser reconhecidas mecanicamente. Prof. Yandre Maldonado - 73 Existem conjuntos que não são Enumeráveis Recursivamente, ou seja, linguagens para as quais não é possível desenvolver uma MT que as reconheça.

Propriedades das Linguagens Recursivas Prof. Yandre Maldonado - 74 Se uma linguagem L sobre um alfabeto qualquer é recursiva, então seu complemento, ou seja, *-L, é recursivo.

Propriedades das Linguagens Recursivas Uma linguagem L sobre um alfabeto qualquer é recursiva se, e somente se, L e seu complemento são enumeráveis recursivamente. Prof. Yandre Maldonado - 75

Propriedades das Linguagens Recursivas A Classe das Linguagens Recursivas está contida propriamente na Classe das Linguagens Enumeráveis Recursivamente. Prof. Yandre Maldonado - 76 Linguagens Enumeráveis Recursivamente Linguagens Recursivas

Linguagens Enumeráveis Recursivamente. entrada Máquina de Turing aceita rejeita Loop Prof. Yandre Maldonado - 77 TURING RECONHECÍVEL Não pára

Linguagens Recursiva Param para toda entrada entrada aceita Prof. Yandre Maldonado - 78 Máquina de Turing TURING DECIDÍVEL A MT sempre pára rejeita

Linguagens Recursiva TURING DECIDÍVEIS Prof. Yandre Maldonado - 79 As linguagens decidíveis são fechadas sob as operações União, Concatenação Kleene, Complemento Interseção

Linguagem Recursiva Enumeráveis TURING RECONHECÍVEIS Prof. Yandre Maldonado - 80 As linguagens RECURSIVAS ENUMERÁVEIS são fechadas sob as operações União, Concatenação Kleene, Interseção

Toda linguagem DECIDÍVEL é TURING RECONHECÍVEL Prof. Yandre Maldonado - 81 Nem toda linguagem TURING RECONHECÍVEL é TURING DECIDÍVEL

DECIDIBILIDADE Prof. Yandre Maldonado - 82 Na teoria da computação e na teoria da complexidade computacional um problema de decisão é uma questão sobre um sistema formal com uma resposta do tipo Sim ou não

DECIDIBILIDADE Dados dois números X e Y Y é divisível por X? Prof. Yandre Maldonado - 83 Dado um número inteiro x X é número primo?

DECIDIBILIDADE Prof. Yandre Maldonado - 84 Um problema de decisão também pode ser formalizado como o problema de verificar se determinada CADEIA DE CARACTERES pertence ou não a uma linguagem formal

DECIDIBILIDADE Prof. Yandre Maldonado - 85 Um problema de decisão é chamado DECIDÍVEL ou EFETIVAMENTE SOLÚVEL se tem uma representação na qual o conjunto de strings aceito é um LINGUAGEM RECURSIVA.

DECIDIBILIDADE Prof. Yandre Maldonado - 86 Um problema de decisão é chamado SEMI-DECIDÍVEL ou SOLÚVEL ou PROVÁVEL se tem uma representação na qual o conjunto de strings aceito é um LINGUAGEM RECURSIVAMENTE ENUMERÁVEL.

DECIDIBILIDADE Prof. Yandre Maldonado - 87 Um problema de decisão é chamado INDECIDÍVEL ou INSOLÚVEL ou IMPROVÁVEL se NÃO HÁ UMA MÁQUINA DE TURING QUE O SOLUCIONE

DECIDIBILIDADE Um exemplo clássico de um problema de decisão é o conjunto dos número primos: Prof. Yandre Maldonado - 88 É possível decidir efetivamente se um número natural é primo

DECIDIBILIDADE Problemas de decisão INDECIDÍVEIS incluem o PROBLEMA DA PARADA Prof. Yandre Maldonado - 89 Dada uma MT arbitrária M e uma palavra arbitrária w, determinar se a computação de M com entrada w pára

Exercício Prof. Yandre Maldonado - 90 Sejam L uma LRE e R uma linguagem recursiva, mostre: a) L R é uma LRE Tem-se que L R = L R. Como R é uma LRec e a clase das LRecs é fechada sob complementação, tem-se que R também é uma LRec e, portanto,uma LRE. Como a classe das LREs é fechada sob interseção,l R é uma LRE. Logo, L R é uma LRE.

Exercício Prof. Yandre Maldonado - 91 Sejam L uma LRE e R uma linguagem recursiva, mostre: L R pode não ser recursiva Seja R = ø uma LR e, portanto, uma LRec. Então, L R = L ø = L. Logo, se L for uma LRE não recursiva, então L-R pode não ser recursiva.

Exercício Prof. Yandre Maldonado - 92 Sejam L uma LRE e R uma linguagem recursiva, mostre: R - L pode não ser um LRE Seja R = Σ* uma LR e, portanto, uma LRec. Então, R - L = Σ* L = L. Como a classe das LRE não é fechada sob complementação, L pode não ser uma LRE.

Bibliografia Prof. Yandre Maldonado - 93 BROOKSHEAR, J. G. Ciência da Computação. Porto Alegre: Bookman, 2000; DELAMARO, Márcio Eduardo. Linguagens Formais e Autômatos. Maringá: UEM, 1998; HOPCROFT, J. E. & ULLMAN, J. D. Formal Languages and Their Relation to Automata. Addison- Wesley, 1969; MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. Porto Alegre: Editora Sagra-Luzzatto, 1998; VIEIRA, Newton José. Introdução aos Fundamentos da Computação. São Paulo: Pioneira Thomson Learning, 2006.