Escolar Documentos
Profissional Documentos
Cultura Documentos
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Teoria da Computacao
Maquinas de Turing
Sim
ao Melo de Sousa
Computer Science Department
University of Beira Interior, Portugal
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Plano
1
Introduc
ao
Definic
ao
O que e uma m
aquina de Turing?
O Processo de Execuc
ao
Linguagens e M
aquinas de Turing
Linguagem Aceite e Linguagem Decidida
Linguagem Decidida e Aut
omatos
Linguagens Recursivas e Linguagens Recursivamente Numer
aveis
Tese de Church-Turing
Funco
es Comput
aveis
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Aviso Previo
A redacc
ao dos apontamentos da disciplina documento baseou-se
fortemente na bibliografia indicada. Parece-nos ent
ao
obvio que a
leitura e a aprendizagem directa pelas obras originais
e recomendada,
e mesmo essencial `
a compreens
ao profunda das noc
oes aqui
apresentadas;
O portugu
es n
ao
e a lngua materna do autor e o presente
documento encontra-se em fase (constante) de
elaborac
ao/melhoramento pelo que se agradece e at
e se incentiva
qualquer sugest
ao ou correcc
ao;
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Referencias bibliograficas
(Principal) C. H. Papadimitriou, H. R. Lewis. Elements of the Theory of
Computation por Prentice Hall, 1997. Traduc
ao brasileira: Elementos de Teoria
da Computac
ao, 2a Edic
ao. Bookman, Porto Alegre, 2000.
(Introdut
orio, em franc
es - embora deva existir algo em ingl
es algures)
P. Wolper. Introduction `
a la calculabilit
e, 3a edic
ao, Dunod, 2006.
(introdut
orio e de leitura agrad
avel) P. Linz. An introduction to formal
languages and automata. Jones and Bartlett Publisher, 2006.
(Uma obra de refer
encia e muito completo... um must) John E. Hopcroft,
Rajeev Motwani, Jeffrey D. Ullman. Introduction to Automata Theory,
Languages, and Computation (3nd Edition). Addison Wesley, 2006 (existe em
portugu
es do Brasil).
(Abordagem abrangente) M. Sipser. Introducton to the Theory of Computation.
PWS Publishing, 2006.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Plano
1
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Introducao
Os aut
omatos com pilha tem acesso a uma mem
oria potencialmente
infinita, mas mesmo assim n
ao conseguem reconhecer linguagens como
an b n c n .
Mas parece simples reconhecer esta linguagem por um processo baseado
em estados:
let rec
match
[] ->
| a
else
| b
recognize l n m estado =
l with
estado = 3 && n = 0
:: li -> if estado = 1 then (recognize li (n+1) m 1)
false
:: li -> if estado = 1 then (recognize li n 1 2)
else if estado = 2 then (recognize li n (m+1) 2)
else false
| c :: li -> if estado = 2
then if m=n then (recognize li (n-1) m 3)
else false
S. Melo
Sousa
da Computa
c
ao
else
if de
estado
= Teoria
3 then
(recognize
li (n-1) m 3)
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Introducao
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Plano
1
Introduc
ao
Definic
ao
O que e uma m
aquina de Turing?
O Processo de Execuc
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Definicao
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Numa imagem
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
As transicoes
uma transic
ao entre estados (q1 , a, b, d, q2 ) denota a seguinte situac
ao:
Se a m
aquina se encontra no estado q1 e
que a cabeca de leitura aponta para um a
ent
ao escrever b (a e assim substituido por b na fita),
deslocar a cabeca para a celula seguinte (se d e a celula seguinte e a
celula a esquerda, se d e a celula seguinte e a celula a direita)
e finalmente entrar no estado q2 .
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Definicao Formal
Definition (M
aquina de Turing)
Uma m
aquina de Turing e um 7-tuplo (Q, , , , s, B, F ) onde
Q e um conjunto de finito de estados
e o alfabeto de fita
( ) e o alfabeto de entrada (alfabeto utilizada para as palavras
inicialmente colocados na fita)
s Q e o estado inicial
F ( Q) e o conjunto dos estado finais
B e o smbolo branco (notac
ao habitual: ])
: (Q ) (Q {L, R}) e a func
ao de de transic
ao.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Configuracoes
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Configuracoes
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Configuracoes
Definition (Configurac
ao duma m
aquina de Turing)
Uma configurac
ao e um elemento do conjunto
Q ({} .( {B}))
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Derivacoes
Definition (Derivac
ao num passo e Derivac
ao generalizada)
Seja C = (q, 1 , 2 ) uma configurac
ao duma m
aquina M. Vamos assumir
que temos sempre a situac
ao 2 = b20 . No caso de 2 = , tomamos
b = ]. As configuraco
es deriv
aveis de C s
ao definidas da seguinte forma:
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
S. Melo de Sousa
(com p F )
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Exemplos
uma m
aquina
o seu grafo
M = (Q, , , , s, B, F )
com
Q = {q0 , q1 , q2 , q3 , q4 }
= {a, b, X , Y , ]}
= {a, b}
s = q0
B=]
F = {q4 }
a
(q1 , X , R)
(q1 , a, R)
(q2 , a, L)
(q2 , Y , L)
S. Melo de Sousa
(q0 , X , R)
Y
(q3 , Y , R)
(q1 , Y , R)
(q2 , Y , L)
(q3 , Y , R)
Teoria da Computac
ao
(q4 , ], R)
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
O que
e uma m
aquina de Turing?
O Processo de Execuc
ao
Exemplos
uma m
aquina
a sua execuc
ao
M = (Q, , , , s, B, F )
com
Q = {q0 , q1 , q2 , q3 , q4 }
= {a, b, X , Y , ]}
= {a, b}
s = q0
B =]
F = {q4 }
a
(q1 , X , R)
(q1 , a, R)
(q2 , a, L)
(q2 , Y , L)
(q0 , X , R)
Y
(q3 , Y , R)
(q1 , Y , R)
(q2 , Y , L)
(q3 , Y , R)
S. Melo de Sousa
(q4 , ], R)
Teoria da Computac
ao
(q0 , , aaabbb)
(q1 , X , aabbb)
(q1 , Xa, abbb)
(q1 , Xaa, bbb)
(q2 , Xa, aYbb)
(q2 , X , aaYbb)
(q2 , , XaaYbb)
(q0 , X , aaYbb)
(q1 , XX , aYbb)
.
.
.
(q1 , XXXYY , b)
(q2 , XXXY , YY )
(q2 , XXX , YYY )
(q2 , XX , XYYY )
(q0 , XXX , YYY )
(q3 , XXXY , YY )
(q3 , XXXYY , Y )
(q3 , XXXYYY , )
(q4 , XXXYYY ], )
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Plano
1
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Linguagem Aceite e Linguagem Decidida
Linguagem Decidida e Aut
omatos
Linguagens Recursivas e Linguagens Recursivamente Numer
aveis
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Execucao
Definition (Execuc
ao)
A execuc
ao duma m
aquina de Turing M numa palavra w e a sequencia de
configurac
ao (s, , w ) `M C1 `M C2 `M . . . `M Ck `M . . . m
axima, isto e:
e infinita, ou
termina numa configurac
ao em que o estado e final ou
termina numa configurac
ao em que o estado n
ao e final.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
(com p F )
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Func
oes Comput
aveis
Plano
1
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Funco
es Comput
aveis
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Func
oes Comput
aveis
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Func
oes Comput
aveis
Definicao
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Func
oes Comput
aveis
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Plano
1
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Plano
1
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
Plano
1
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao
Definic
ao
Linguagens e M
aquinas de Turing
Tese de Church-Turing
Variantes e extens
oes
M
aquina de Turing Universal
Programac
ao com M
aquinas de Turing
S. Melo de Sousa
Teoria da Computac
ao