Вы находитесь на странице: 1из 34

Computao e Algoritmos

Mquina de Turing Universal Problema da Parada Tese de Church

profa. Las do Nascimento Salvador E-mail: laisns@dcc.ufba.br

Linguagens Recursivas e Recursivamente Enumerveis


Uma linguagem recursivamente enumervel (r.e.) uma linguagem reconhecida (semidecidida) por uma Mquina de Turing (mT)
A mT pra quando analisa uma palavra pertencente linguagem e entra em loop infinito quando analisa uma cadeia que no pertence linguagem. w L se e somente se mT pra na entrada w.

Uma linguagem recursiva uma linguagem aceita por uma mT que sempre pra. Ela decidida por uma mT

Linguagens Recursivas e Recursivamente Enumerveis


Se uma mT decide uma linguagem ou computa uma funo, isso pode ser considerado como um algoritmo que executa correta e constantemente uma tarefa computacional Uma mT que semidecide uma linguagem L pode no ser proveitosa para dizer se w est em L, porque se w L, nunca saberemos quanto tempo esperar para obter uma resposta.
mTs que semidecidem linguagens no so algoritmos.

Tese de Church
As mquinas de Turing que param em todas as entradas so verses formais da idia intuitiva de algoritmo, e nada ser considerado como um algoritmo se no puder ser reproduzido como uma mquina de Turing, cuja parada garantida em todas as entradas. Por que esta afirmao uma tese mas no um teorema?

Tese de Church
Porque no um resultado matemtico Algoritmo conceito informal X mT conceito matemtico A Tese de Church pode ser desprovada? Sim, se algum propuser um modelo de computao mais poderoso que a mT
Ningum considera isso possvel.

Modelos Equivalentes mTs


Uma das razes para considerar a Mquina de Turing como o mais geral dispositivo de computao o fato de que todos os demais modelos e mquinas propostos, bem como diversas modificaes da Mquina de Turing, possuem, no mximo, o mesmo poder computacional da Mquina de Turing. [Menezes 1998]

Modelos Equivalentes mTs


a) Autmato com Mltiplas Pilhas b) Mquina de Turing No-Derminstica. A facilidade de no-determinismo no aumenta o poder computacional da Mquina de Turing; c) Mquina de Turing com Fita Infinita Esquerda e Direita. d) Mquina de Turing com Mltiplas Fitas. e) Mquina de Turing com Mltiplas Cabeas.

Uma pergunta:

Qual o limite das mT ? Elas resolvem todos os problemas computacionais?

Mquina de Turing Universal


Uma limitao das mTs: Mquinas de Turing so hardwired

elas executam apenas um programa


Computadores reais so re-programveis

Mquina de Turing Universal


Soluo: Mquina de Turing Universal Atributos:

Reprogramvel
Simula qualquer outra mT

Mquina de Turing Universal


mT Universal

simula qualquer outra mT Ela recebe como entrada: Descrio de

M M

Contedo inicial da fita de

Trs fitas

Fita 1

Descrio de Mquina de Turing Universal


Fita 2

Contedo da Fita de
Fita 3

Estado de

Mquina de Turing Universal


Fita 1

Descrio de

A mT M descrita como uma cadeia de smbolos usando-se um alfabeto pr-determinado

Mquina de Turing Universal


Exemplo de codificao sobre = {0,1}

Codificao do Alfabeto:
Smbolos:

Codificao: 111

1111 11111 111111

Mquina de Turing Universal


Codificao dos Estados: Estados:

q1

q2

q3

q4

Codificao: 1

11

111

1111

Mquina de Turing Universal


Codificao do movimento do cursor: Movimento: L Codificao: 1

11

Mquina de Turing Universal


Codificao da Transio
Transio:
f( q1, a) ( q2, b )

Codificao:

1011101101111
Separador 0 para distinguir elementos de uma tupla da funo de transio

Mquina de Turing Universal


Codificao da Mquina Transies:
f( q1, a) ( q2, L )
f( q2, a) ( q3, c )

Codificao:

1011101101 001101110111011111
Separador 00 para distinguir as tuplas da funo de transio

Mquina de Turing Universal

Contedo da Fita 1 da mT Universal: codificao da mquina simulada como uma string de 0s e 1s

Trs fitas

Fita 1

Codificao binria de
Mquina de Turing Universal
Fita 2

Codificao binria do Contedo da Fita de Fita 3

Codificao binria do estado de

Mquina de Turing Universal


Para a mt Universal (U) simular a computao de uma mT M qualquer, quando esta recebe como entrada a cadeia X, a idia a seguinte: U recebe uma entrada m na Fita1 e x na Fita2, onde m e x so as representaes de M e X em algum alfabeto ; U simula M com entrada X; U aceita m x se M aceita X.

Outra pergunta:

A mt Universal resolve tudo?


Ela resolve todos os problemas computacionais?

Problema da Parada
Assuma como hiptese a existncia de um programa chamado halts escrito numa linguagem L, que realiza a seguinte proeza: Pega como entrada qualquer programa P em L e um entrada X de P. Realiza uma engenhosa anlise e sempre determina corretamente se P ir parar na entrada X (halts retorna true) ou se P entrar em loop infinito (halts retorna false) Este o programa halts(P,X)

Problema da Parada
Verdade : P pra com X

P: programa

Halts
X: Entrada para P

Falso : P no pra com X

Problema da Parada
Observe este outro programa: diagonal (X) a: se halts (X,X) ento goto a, seno pare O que faz diagonal (X)? Se halts decide que X pra com o prprio X como entrada,
ento diagonal(X) entra em loop infinito caso contrrio, diagonal(X) pra

Problema da Parada - Atividade


Novamente: diagonal (X) a: se halts (X,X) ento goto a, seno pare A funo diagonal(diagonal) pra? Chegamos numa contradio. Logo a hiptese inicial falsa: o programa halts(P,X) no existe.

Uma linguagem no recursiva


H = {M x : a mT M pra na entrada X}
Esta linguagem reconhecida por alguma mT? H uma linguagem r.e., ela semidecidida pela mT U (universal) De fato, na entrada M x, U pra precisamente quando a entrada est em H. H o problema da parada na forma de linguagem.

Problemas Indecidveis
Como H no uma linguagem recursiva e com base na tese de Church-Turing, conclumos que: No h algoritmo que decida, para uma dada arbitrria mT M e uma string de entrada w, se M aceita w ou no. (Problema da Parada) Os problemas para os quais no existem algoritmos so chamados de indecidveis ou insolveis.

Problemas Indecidveis
Outros problemas no decidveis: Dada uma mT M e uma string de entrada w, como fazer M parar na entrada w Dadas duas mTs M1 e M2, elas param na mesma entrada? Dadas duas gramticas G1 e G2, determinar se L(G1) = L(G2)
Equivalncia de Compiladores

Uma linguagem no recursivamente enumervel


L = { xi : xi no aceita por Mi } Fato: L no recursivamente enumervel. Dem.: Vamos mostrar, por contradio, que L no aceita por nenhuma mquina de Turing. Para isso, suponha que L aceita pela mT M. Como toda mT, M faz parte da enumerao das mT's, ou seja, para algum i, M = Mi, de forma que L = L(Mi). Vamos verificar se xi L:

Uma linguagem no recursivamente enumervel


se tivermos xi L, como L = L(Mi), temos que Mi aceita xi, e portanto xi L. se, alternativamente, tivermos xi L, ou seja, xi L(Mi), naturalmente, M no aceita xi, e portanto xi L. Estabelecida a contradio, conclumos que L no aceita por nenhuma mT M, e que L no recursivamente enumervel.

Uma linguagem no recursivamente enumervel


Para a linguagem L, portanto, no existem:
um procedimento reconhecedor de L um procedimento enumerador de L uma gramtica, tipo 0 ou no, que gere L.

Hierarquia de Chomsky
Tipo Nome das linguagens geradas De estrutura de frase = Recursivamente enumerveis Recursivas Restries s regras de produo XY X = qualquer cadeia com no terminais Y = qualquer cadeia Mquinas que aceitam estas linguagens Mquinas de Turing 0

Mquinas de Turing que terminam garantidamente

Sensveis ao contexto

X = qualquer cadeia com no terminais Y = qualquer cadeia de comprimento maior ou igual ao comprimento de X
X = qualquer no terminal Y = qualquer cadeia

Mquinas de Turing com fita finita (tamanho proporcional entrada)


Autmatos de pilha Autmatos de pilha deterministas

Livres contexto Livres de contexto deterministas

Regulares

X = qualquer no terminal Y = tN ou Y=t, em que t um terminal e N um no terminal

Autmatos finitos

Referncias
Esta aula baseada em: Notas de aula do prof. Jos Lucas Rangel http://www.inf.puc-rio.br/~inf1626/ E-book: Linguagens Formais e Autmatos Paulo Blauth Menezes 1998 http://teia.inf.ufrgs.br/library.html Elementos de Teoria da Computao H. R. Lewis & C.H. Papadimitriou. 2. Edio. Editora Bookman.

Вам также может понравиться