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

Teoria da Computao Cap.

9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
299
CAPTULO 9
MQUINAS DE TURING
9.1. Introduo 301
9.2. A Mquina de Turing padro 302
9.3. Diagrama de estados ou de transio da MT 309
9.4. MT como aceitador de linguagens 311
9.5. MT como transdutores 319
9.6. Combinaes de mquinas de Turing para tarefas complicadas 324
9.7. A tese de Turing 325
Bibliografia 328
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
300
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
301
9.1. Introduo
Uma pesquisa no Google em 6 de Dezembro de 2007 com turing machine deu 1.820.000
resultados. Este nmero mostra a importncia do tema.
As Mquinas de Turing (MT) estiveram no centro do desenvolvimento dos computadores e
da computao durante os ltimos 70 anos. Alain Turing (1912-1954) foi um brilhante
matemtico, em Cambridge, Inglaterra, numa poca efervescente de desenvolvimento da
lgica e da matemtica que haveria de resultar no computador digital, os anos 30 e 40 do
sculo passado. geralmente considerado como o fundador das cincias da computao.
Outros matemticos famosos, como Gdel, Bertrand Russel na Europa, Church nos EUA,
foram contemporneos de Alain Turing. Existe em Portugal um blog como seu nome,
http://turing-machine.weblog.com.pt, que merece uma visita.
Em 1940 Alan Turing procura formalizar a noo de algoritmo, identificando as operaes
fundamentais e primitivas que possam servir de base ao clculo matemtico. Depois, definiu
uma mquina abstracta capaz de executar essas operaes segundo regras bem definidas. A
MT foi assim concebida para ser um modelo de computao, formalizando um conjunto de
operaes bsicas s quais se pode reduzir qualquer computao.
Os autmatos finitos so para as linguagens regulares, os autmatos de pilha para as
linguagens livres de contexto. E as MT? Com que linguagens se relacionam?
J encontrmos linguagens que no so livres de contexto, como por exemplo a
n
b
n
c
n
. Por
isso no possvel construir um autmato de pilha que as aceite.
Ser que uma MT suficientemente poderosa para aceitar linguagens dependentes do
contexto? Todas elas? Qual o autmato mais poderoso? Quais os limites da computao?
So questes s quais as MT respondem.
Mquina de Turing
Um modelo abstracto de computao
Problemas resolveis e
irresolveis
Figura 9.1.1. Importncia da Mquina
de Turing. At hoje no foi ainda
inventado um computador capaz de
resolver um problema que a MT no
possa resolver. Este facto mantm ainda
vlida a tese de Church-Turing
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
302
9.2. A mquina de Turing padro
A mquina de Turing um autmato, com uma unidade de controlo e com um dispositivo
especial que funciona simultaneamente como entrada (onde l), armazenamento, e sada (onde
escreve). Esse dispositivo uma fita unidimensional que contm um nmero ilimitado de
clulas cada uma das quais pode conter um nico smbolo. Essa a sua caracterstica
distintiva em relao aos autmatos finitos (que no tm dispositivo de armazenamento) e
aos autmatos de pilha (que armazenam numa pilha ).
A fita da MT prolonga-se indefinidamente em ambos os sentidos e por isso pode conter
uma quantidade infinita de informao. Esta informao pode ser lida e alterada em qualquer
ordem e da o potencial da MT.
Associada fita est uma cabea de leitura-escrita que se pode mover sobre a fita para a
esquerda ou para a direita, podendo escrever ou ler um nico smbolo em cada movida.
Figura 9.2.1 Componentes da Mquina de Turing
Definio 9.2.1.
Uma mquina de Turing M definida pelo septeto
M = (Q, E, I, o, q
0
, , F)
em que
Q o conjunto de estados internos da unidade de controlo
E o alfabeto de entrada
UNIDADE
DE
CONTROLO
FITA
R/W

Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
303
I o conjunto finito alfabeto da fita
o a funo de transio
q
0
o estado inicial
e I o carcter branco, smbolo especial de I
F _ Q o conjunto de estados finais (aceitadores)
O alfabeto de entrada igual ao alfabeto da fita, com excepo do smbolo (branco, um
carcter novo, no confundir com ) que no existe no alfabeto de entrada. Portanto
E = I - {}
A funo de transio em geral uma funo parcial em QI
o : QI QI {L, R}
em que R significa movida para a direita e L movida para a esquerda. Os dois argumentos de
entrada da funo de transio e os trs de sada so os seguintes:
Figura 9.2.2 Funo de transio de uma Mquina de Turing
A movida da cabea faz-se depois da escrita do novo smbolo na fita.
Exemplo 9.2.2.1
Sejam
E = { a, b }
I= { a, b, }
o: ( Q I ) ( Q I { L, R } )
e a transio
o ( q
0
, a ) = ( q
1
, b, R )
Esta transio ilustrada na figura seguinte.
estado actual unidade de
controlo
carcter de fita a ser lido no
momento
q, prximo estado da unidade de controlo
escrever na fita um novo smbolo em
substituio do presente
fazer uma movida para a direita ou para a
esquerda
R/
o
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
304
Figura 9.2.3. Movida da MT do exemplo 9.2.1.
Lendo a,
-apaga-o e escreve b no seu lugar
-move a cabea de leitura uma clula para a direita, ficando a apontar para b.
Uma mquina se Turing pode ser encarada como um computador muito simples. De facto:
- tem uma unidade de processamento com memria finita (nmero finito de estados);
- tem uma segunda unidade de armazenamento de capacidade infinita;
- a funo de transio o programa do computador. uma funo parcial.
O autmato inicializado (no estado inicial q
0
) com alguma coisa j escrita na fita.
Executa depois uma sequncia de operaes, uma computao, definidas pela funo o.
Como o uma funo parcial, pode chegar a uma configurao para a qual no est
definita nenhuma transio. O autmato fica ento no estado parado (halt).
Nunca se definem transies a partir dos estados finais e por isso uma mquina de Turing
pra sempre que atinge um estado final.
Exemplo 9.2.2.
Seja a mquina de Turing definida por
Q = {q
0
, q
1
}
E = {a, b}
I = {a, b, }
F = {q
1
}
a b c
q
0
b b c
q
1
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
305
e
o (q
0
, a) = (q
0
, b, R)
o (q
0
, b) = (q
0
, a, R)
o (q
0
, ) = (q
0
, , R)
Figura 9.2.4. Movidas do exemplo 9.2.2
No fim obtm-se o seguinte contedo da fita
Se para a mesma mquina a funo de transio for
o (q
0
, a) = (q
0
, a, R)
b b a a a b
a
q
3
b b b a
q
0
b a b b b a
q
0
o (q
0
, a) = (q
0
, b, R)
b b b b b a
q
0
b b a b b a
q
0
o (q
0
, b) = (q
0
, a, R)
b b a a b a
q
0
b b a a a a
q
0
o (q
0
, b) = (q
0
, a, R)
b b a a a b
q
0
b b a a a b
q
0
o (q
0
, ) = (q
0
, , R)
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
306
o (q
0
, b) = (q
1
, b, R)
o (q
0
, ) = (q
0
, , R)
o (q
1
, a) = (q
0
, b, L)
o (q
1
, b) = (q
0
, b, L)
o (q
1
, ) = (q
0
, , L)
obtm-se um funcionamento em ciclo infinito, como se pode ver para a cadeia aabbba:
Figura 9.2.5 Movidas para o exemplo 9.2.2, segundo caso.
A mquina de Turing padro tem as seguintes caractersticas:
1- Uma fita ilimitada em ambas as direces, permitindo um nmero arbitrrio de
movidas esquerda e direita.
2- determinstica na medida em que o define no mximo uma movida para cada
configurao, no havendo escolhas possveis.
3- No existe qualquer ficheiro de entrada especial. Pressupe-se que no instante inicial a
fita tem algum contedo especificado a introduzido pelo programador. Parte deste
a a b b b a
q
0
q
0
q
0
o (q
0
, a) = (q
0
, a, R)
a a b b b a
q
0
q
1
o (q
0
, b) = (q
1
, b, R)
o (q
1
, b) = (q
0
, b, L)
a a b b b a
q
1
q
0
a a b b b a
q
0
q
1
o (q
0
, b) = (q
1
, b, R)
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
307
pode ser considerado a entrada. Sempre que a mquina pare (halt), algum do contedo
da fita pode ser considerado como sada.
Como veremos posteriormente, existem outras verses de mquinas de Turing mas que se
baseiam neste modelo base, estendendo algumas caractersticas (mas no aumentando o seu
potencial limite de computao).
A configurao da mquina de Turing definida pela sua descrio instantnea composta
por trs partes:
- estado actual da unidade de controlo
- o contedo da fita
- a posio da cabea de leitura/escrita.
Utiliza-se a notao seguinte para a descrever uma configurao
x
1
qx
2
ou
a
1
a
2
...a
k-1
qa
k
a
k+1
...a
n
correspondente figura seguinte. A cabea aponta para a clula que contm o smbolo que
segue q, i.e., a
k
.
Figura 9.2.6 Configurao de uma MT
A descrio instantnea s mostra uma parte da fita. Assume-se que a restante parte
contm apenas smbolos brancos, que so considerados irrelevantes e por isso no
necessrio mostr-los. No entanto se a posio dos brancos for relevante, deve ser
especificada na descrio instantnea.
Para representar as movidas de uma MT utiliza-se a notao de configurao em configurao
a
1
a
2
a
k
.

a
n
q
x
1
x
2
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
308
configurao (k) |configurao (k+1)
Por exemplo para a transio
o (q
1
, c) = (q
2
, e, R)
em termos de configuraes escreve-se, admitindo que na fita temos por exemplo abcd e que
a cabea aponta para c,
abq
1
cd |abeq
2
d
Figura 9.2.7. Uma movida entre duas configuraes instantneas
O smbolo
-
, indica um nmero arbitrrio de movidas. Se houver necessidade de
distinguir entre diversas MTs, usa-se
-
,
M
.
Definio 9.2.2 Movida
Seja M = ( Q, E, I, o, q
0
, , F) uma MT.
Ento qualquer cadeia a
1
a
2
.....a
k-1
q
1
a
k
a
k+1
...a
n
com a
i
e I e q
1
e Q, uma descrio
instantnea de M.
possvel uma movida
a
1
a
2
.....a
k-1
q
1
a
k
a
k+1
...a
n
|a
1
a
2
.....a
k-1
bq
2
a
k+1
...a
n
se e s se existir a transio
configurao (k) |configurao (k+1)
a b c d
q
1
a b e d
q
2
o (q
1
, c) = (q
2
, e, R) abq
1
cd | abeq
2
d
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
309
o (q
1
, a
k
) = (q
2
, b, R)
possvel uma movida
a
1
a
2
.....a
k-1
q
1
a
k
a
k+1
...a
n
|a
1
a
2
.....q
2
a
k-1
ba
k+1
...a
n
se e s se existir a transio
o (q
1
, a
k
) = (q
2
, b, L)
Diz-se que M parou partindo de alguma configurao inicial x
1
q
i
x
2
se
x
1
q
i
x
2
-
,y
1
q
j
ay
2
para algum q
j
e algum a, para os quais o (q
j
, a) seja indefinido.
Chama-se computao sequncia das configuraes que levam a MT do estado inicial ao
estado de paragem (halt).
A situao em que a MT entra num ciclo infinito, nunca parando, nem de l podendo sair,
denota-se por
x
1
qx
2
-
,
Esta situao, de ciclo infinito, em que a mquina nunca mais pra, muito importante na
aplicao da teoria das MT.
9.3. Diagrama de estados ou de transio da MT
A notao da funo de transio da MT diferente no JFLAP e no DEM:
JFLAP e Linz o: ( Q I ) ( Q I { L, R } ) i.e. o (q
0
, b) = (q
1
, b, R)
DEM e Taylor o : ( Q I ) (I {L, R }) Q i.e. o (q
0
, ) = (R, q)
So necessrias, no DEM, mais instrues para a mesma funcionalidade : primeiro escreve,
e depois desloca-se. Usaremos preferencialmente a do JFAP.
Os diagramas de estados so uma forma alternativa escrita da funo de transio, tal
como nos outros autmatos estudados.
Exemplo 9.3.1.
Consideremos a MT, com uma fita completamente em branco, que faz o seguinte:
- inicializada lendo uma casa em branco,
- escreve os caracteres ab e
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
310
- pra lendo o carcter a.
Figura 9.3.1a Movidas e grafo no JFLAP da MT do Exemplo 9.3.1
No DEM teremos um grafo diferente:
a
q
1
a b
q
f

q
0
q
0
q
1
; a, R
q
1
q
f
; b, L
; b, L
q
0
q
1
; a, R
q
f
a
q
2
a b
q
3
a b
q
f

q
0
a
q
1
DEM
q
0
q
1
: a
q
2
q
3
a : R
: b
q
f
b : L
Figura 9.3.1b.
Movidas e
grafo no DEM
do exemplo
9.3.1
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
311
Exemplo 9.3.2.
Para uma MT com a fita inicial vazia
que faz a MT da Figura seguinte ?
Figura 9.3 2a. MT do exemplo 9.3.2, no JFLAP.
Figura 9.3.2b. MT do exemplo 9.3.2 no DEM
Estando no estado inicial q
0
lendo branco, escreve a, passa ao estado q
1
e vai para a direita,
ficando assim a apontar para branco. Estando em q
2
apontando para branco, escreve b , passa
a q
0
desloca-se para a esquerda. Agora est em q
0
lendo a na fita; no estando nada previsto
para este caso, faz halt e a fica para sempre.
9.4. MT como aceitador de linguagens.
Tal como nos autmatos anteriores, tambm as MT podem funcionar como aceitadores de
linguagens.
O processo de aceitao de uma linguagem pela MT o seguinte:

q
0
q
1
q
2
q
3
: a a : R : b
b : R
q
0
q
1
; a, R
; b, R
JFLAP
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
312
- dada uma cadeia w de caracteres do alfabeto de entrada (note-se que este no inclui
, o carcter vazio), escrita na fita. A cadeia w no contm brancos,
- antes de w esto brancos e depois de w brancos esto,
- a MT inicializa-se no estado q
0
com a cabea de leitura-escrita posicionada no
carcter mais esquerda de w,
- d-se uma sequncia de movidas,
- se a MT entrar num estado final e parar (halt), w aceite,
- se a MT parar (halt) num estado no final, w no aceite,
- se a MT no parar (entrando num crculo infinito), w no aceite.
Note-se que h estados que tm caractersticas especiais, so os estados finais aceitadores.
Definio 9.4.1. Linguagem aceite pela MT.
Seja M = ( Q, E, I, o, q
0
, , F) uma MT. Ento a linguagem aceite por M
L(M) = { w e E
+
: q
0
w
-
,x
1
q
f
x
2
para algum q
f
e F e x
1
, x
2
e I* }
Se a cadeia tivesse brancos, a MT no saberia quando ela terminaria e teria que continuar a
percorrer a fita at ao infinito.
Segundo Taylor (def. 1.3. p. 76), MT aceita uma linguagem se aceita todas as palavras de L
e s essas (all and only the words in L).
Nota: a definio de Linz e de Hopcroft equvoca quanto necessidade de a MT ler toda
a cadeia de entrada antes de fazer halt. A definio de Taylor (tem que parar apontando para
um 1, com o resto da fita em branco, e 1 no pertence ao alfabeto de entrada) implica que toda
a cadeia tenha que ser lida para ser, eventualmente, aceite.
Exemplo 9.4.1
Seja o alfabeto E = {0, 1} e nele a linguagem L= L(00*), composta por todas as cadeias
com um ou mais zeros (sem 1s).
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
313
Construir uma MT que aceite esta linguagem.
Trata-se de uma linguagem regular (porqu, caro leitor ?) e por isso no seria necessria
uma MT para a aceitar. No entanto o exemplo tem objectivos didcticos.
Soluo:
A primeira operao a fazer no projecto da MT (de qualquer MT) definir um algoritmo,
ou seja, uma estratgia de operaes elementares que levem ao fim pretendido.
Admitamos que uma cadeia de zeros est escrita na fita, com brancos e s brancos
esquerda e direita. Admitamos tambm que A MT se inicializa com a cabea de leitura
apontando para o primeiro carcter da cadeia. Estas hipteses so as normalmente aceites.
Ns queremos que a mquina varra a cadeia, da esquerda para a direita, e a aceite se s
tiver zeros e a rejeite de tiver algures algum 1. Ento pode ser assim:
1 L o primeiro zero, deixa estar e desloca-se para a direita
o (q
0
, 0) = (q
0
, 0, R)
Havendo vrios zeros, ela ficou a apontar para o segundo zero. Ento esta transio d-se
novamente, porque ela se mantm no estado q
0
, indo por a alm, at acabarem os zeros. Se
existisse um 1 algures no meio dos zeros a MT pararia (no est definida uma transio para
essa eventualidade).
2 Depois de ler todos os zeros h-de chegar ao primeiro branco direita da cadeia. A
pode seguir para a direita, deixando o branco tal como est. Como correu tudo bem at aqui,
j leu a cadeia toda, deve passar a um estado aceitador, q
f
:
o (q
0
, ) = (q
f
, , R).
Para desenharmos um diagrama de estados para esta funo de transio, no JFLAP ou no
DEM, temos que ter em ateno a notao a usar . A notao de Taylor para a funo de
transio no igual de Linz:
Linz: o: ( Q I ) ( Q I { L, R } ) i.e. o (q
0
, b) = (q
1
, b, R)
Taylor: o : ( Q I ) (I {L, R }) Q i.e. o (q
0
, ) = (R, q)
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
314
O que obriga criao de um estado adicional no DEM.
Por isso o diagrama de estados seguindo Linz e o JFLAP ser
Figura 9.4.1. Grafo JFLAP da MT do exemplo 9.4.1.
Seguindo Taylor e o DEM teremos que criar mais estados:
o (q
0
, 0) = (q
1
, 0)
o (q
1
, 0) = (q
1
, R)
o (q
1
, ) = (q
f
, )
Figura 9.4.2. Grafo DEM da MT do exemplo 9.4.1
Note-se que o uma funo parcial. No definida por exemplo o (q
0
, 1). Se aparece um
1, no estado q
0
, a MT pra (halt) para sempre, indicando que w no aceite, a menos que q
0
fosse um estado final. Mas a definio de estado final deve ser feita previamente resoluo
do problema: um estado final se antes dele s apareceram 0s e se j se chegou ao fim da
cadeia, i.e., se a cabea apontar para um branco. No pode ser q
0
e por isso cria-se um outro
estado q
f
para estado final. Chega-se a ele apenas quando se leu a cadeia toda sem encontrar
qualquer 1.
As MT podem reconhecer algumas linguagens que no so livres de contexto. So
mquinas mais poderosas do que os autmatos estudados anteriormente. Voltaremos a este
assunto mais tarde.
Exemplo 9.4.2. MT aceitadora de Linguagem n
a
=n
b
Seja o alfabeto E={a,b} e a linguagem composta pelas cadeias com um nmero de as igual
ao nmero de bs, em qualquer ordem., por exemplo
ab, ba, abaaabbabbbb, bbaabababbaaa, etc.
q
0
q
f
: : R
0 : 0 : R
q
0
q
1
1
q
f
0 : 0
0 : R
:
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
315
Desenhar o grafo de uma MT capaz de reconhecer esta linguagem
No projecto de uma MT a questo primeira e decisiva a da concepo do algoritmo a
programar: como que uma MT pode contar as e bs ?
Uma soluo possvel: a mquina apaga um a e um b de cada vez; se no fim no sobrar
nenhum carcter, porque o nmero de as era igual ao nmero de bs. Se sobrar um ou mais
as (ou bs) a cadeia no pertence linguagem.
Podemos imaginar varrimentos sucessivos da cadeia , da direita para a esquerda) de tal
modo que em cada varrimento substitui um a e um b por um* (uma forma de apagar).
Chegando ao fim da cadeia (encontra um branco) volta ao princpio, deslocando-se para a
esquerda at encontrar um branco.
Por exemplo para ababab teremos sucessivamente na fita
aaababbb *aa*abbb **a*a*bb ****a**b ********
bbabaa *b*baa ***b*a ******
aabbbabb *a*bbabb ****babb ****b**b
Programa da MT
- Carrega-se a cadeia na fita
- Desloca-se a cabea at ao primeiro carcter, que ser a ou b. Suponhamos que a.
- Apaga-se o a e substitui-se por *. Segue para a direita. A encontra a, b (ou *).
O grafo est na pgina seguinte.
Exemplo 9.4.3.
Seja a MT com E = {a, b}, I = {a, b, }, F = {q
f
}, Q = {q
0
, q
1,
q
f
}
o (q
0
, ) = (q
0
, , R),
o (q
0
, b) = (q
1
, b, R),
o (q
1
, a) = (q
1
, a, R),
o (q
1
,b) = (q
1
, b, R),
o (q
1
, ) = (q
f
, , R).
Que linguagem aceita ?
Analisando as transies, verifica-se que em q
0
com b passa a q
1
(e em q
0
com a pra). Em q
1
l as e bs por qualquer ordem e em qualquer nmero, avanando at ao fim da cadeia. Por
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
316
isso a linguagem aceita pela MT L= L[b(a+b)*], todas as cadeias que se iniciam por b em
{a,b}.
Exemplo 9.4.4
Construir no JFLAP uma MT que aceite a linguagem L = { a
n
b
m
: n > 1, m = n }
Um algoritmo possvel: depois de escrita a cadeia na fita
- em cada viagem da esquerda para a direita apaga um a e um b, marcando-os com *. Vai at
ao fim e volta ao princpio.
a : *
q
0
q
1
q
2
q
4
q
5
q
6
q
7
* : R
* : R
* : R
a : R
b : *
: R
* : L
a : L
b : L
: L
* : R
b : R
* : R
: L
* :
: R
b : *
a : *,R
q
0
q
1
q
2
q
3
q
4
q
5
q
f
* : *, R
* : *, R
a : a, R
b : *, L
: , R
* : *, L
a :a, L
b :b, L
:

,L
a : *, L
b : b, R
* :*, R
: , L
* : , L
: ,L
JFLAP
DEM
Figura 9.4.3. MT
do exemplo 9.4.2.
n
a
=n
b
no JFLAP e
no DEM.
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
317
- recomea o ciclo at que ou acabem os as ou os bs. Se sobrarem as ou bs (ou exclusivo)
a cadeia aceite, terminando a computao no estado SIM. Caso contrrio termina no
estado NO.
A Figura 9.4.5 apresenta um grafo possvel.
Figura 9.4.4. Esta MT decide se uma cadeia pertence linguagem (termina em SIM) ou se
no pertence linguagem (termina em NO).
Exemplo 9.4.5. Desenhar uma MT que aceite a linguagem L = { a
n
b
n
a
n
b
n
: n > 0 }
- procura o prximo a , marca-o, muda de estado e vai para a direita
- encontra o primeiro b, marca-o e muda de estado
- continua at ao prximo a, marca-o e muda de estado
- procura o prximo b, marca-o, muda de estado e regressa ao incio
- continua at que acabem os as e os bs
- aceita quando marcar todos e no sobrar nenhum
- no aceita de ou os as ou ao bs acabarem num dos segmentos da cadeia, sobrando nos
outros.
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
318
Figura 9.4.5. Implementao FLAPP do exemplo 9.4.5 pelo aluno Antnio Damasceno em
2004-5.
Exemplo 9.4.6 O mesmo para o caso L = { a
n
b
2n
: n > 1}
- por cada a apaga dois bs, usando para isso dois estados (a forma de contar dois bs)
- repete at que acabem todos os as e bs
-se sobrar algum a ou algum b no aceita
Figura 9.4.6a. JFLAP do exemplo 9.4.6 pelo aluno Antnio Damasceno em 2004-5.
Uma outra implementao possvel
Figura 9.4.6b.
Implementao JFLAP
pelo aluno Cristvo Pires
em 2004-5 (exemplo
9.4.6).
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
319
Exemplo 9.4.7 Para L = { a
n
b
m
a
n+m
: n > 0, m>1 } temos o algoritmo
- 1 apaga n as esquerda e n cs direita; se os cs no chegarem no aceita;
- 2 apaga m bs esquerda e m cs direita; se os cs no chegarem ou se sobrarem, no
aceita.
Para apagar os n as tem que percorrer n vezes um ciclo de apagar um; por isso cria-se um
ciclo apaga um a e vai apagar um c regressa. Se os cs acabarem antes dos as no aceita.
Analogamente para apagar os bs.
Para distinguir as diversas situaes criam-se estados afectos a cada situao.
Figura 9.4.7. JFLAP do ex. 9.4.7 pelo aluno Antnio Damasceno no ano lectivo 2004-5.
9.5 TM como transdutores
As MT so um modelo abstracto de computadores digitais em geral. Ora um computador
sobretudo um transdutor: transforma uma entrada numa sada, por exemplo fazendo um
clculo. As MT podem funcionar tambm como transdutores.
A entrada para uma computao composta por todos os smbolos no brancos escritos na
fita no instante inicial.
A sada da computao o que resultar escrito na fita, depois de todas as movidas da MT.
Com estes conceitos pode-se encarar a MT M, enquanto transdutor, como implementando
uma funo f definida por
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
320
l
w= f (w),
e portanto com sada
l
w , desde que se verifique que partindo de w no estado inicial aps a
computao de f chega a um estado final q
f
q
0
w
-
,
M
q
f
As especificaes do estado final so feitas pelo programador.
Ser que qualquer funo computvel por uma MT ?
Definio 9.5.1. Funo computvel.
Uma funo f com o domnio D diz-se Turing computvel ou simplesmente computvel
se existir alguma mquina de Turing M = ( Q, E, I, o, q
0
, , F) tal que
q
0
w
-
,
M
q
f
f (w), q
f
e F
para toda a we D.
Esta definio pressupe que a MT pra, depois de calcular f(w), apontando para o
primeiro carcter do resultado do clculo.
Todas as funes matemticas usuais, por mais complicadas que sejam, so Turing-
computveis. Esta afirmao no se pode provar, mas acredita-se que assim seja porque at
hoje ningum foi capaz de propor uma funo matemtica que no fosse computvel.
Vejamos alguns exemplos.
Exemplo 9.5.1. Adio de inteiros (representao unria) (Linz, 233
Para adicionar nmeros inteiros com uma MT, primeiro faz-se a sua representao unria, s
com 1s. Depois temos que especificar como se escrevem as duas parcelas na fita da MT.
Admitamos que as separamos por um 0, ficando brancos esquerda e direita:
Figura 9.5.1. Preparao da adio
1 1 1 1 1 0 1 1 1 1
x=5 x=4
Figura 9.5.1.
Preparao
da fita para a
adio
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
321
e que no fim da computao o resultado deve ser apresentado em unrio (como uma sequncia
de 1s)
Figura 9.5.2. Resultado final da adio
Definido o incio e o fim, temos agora que escrever o programa da MT.
Outros exemplos:
Exemplo 9.5.2. A mquina copiadora (Linz, 234).
Vamos projectar uma MT que copie um nmero escrito em binrio na fita, escrevento a cpia
direita, deixando um branco entre os dois.
A MT inicia-se no primeiro 1 de uma cadeia de n 1s e pra no primeiro 1 de uma cadeia
ininterrupta de n 1s ,seguida por um branco, seguido por uma cadeia ininterrupta de n 1s,
com o indicado na fig. 9.5.4.
Este tambm o Ex. 1.3.2 de Taylor, Copying Machine.tm implementada em DEM, fita 8.tt
Exemplo 9.5.3.
Comparao de dois nmeros positivos, x e y, em representao unria, Linz 235.
Escrevem-se os nmeros na fita separados por um 0, por exemplo, comparar 4 e 6,
11110111111
Um algoritmo possvel
- apagar um 1 da primeira parte e outro 1 da segunda, at os 1s acabarem numa das partes
1 1 1 1 1 1 1 1 1 0
x+ y =9
1 1
q
0
1 1 1 1
q
f

Figura 9.5.3
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
322
Caso 4&6
11110111111 *1110*11111**110**1111***10***111****0****11
Agora quando procura mais 1 do lado esquerdo no encontra, passa pelo zero e continua at
ao ltimo 1, o que provoca a transio para o estado x<y.
Caso 6&4
11111101111*111110*111**11110**11***11101*******110****
Agora ao apagar mais um 1 do lado esquerdo e procurar o outro 1 do lado direito, no o
encontra, chega ao branco e passa ao estado x>y.
No caso de igualdade, quando acabam os 1s em ambos os lados, passa ao estado x=y.
Fica o leitor desafiado a desenhar o respectivo grafo, usando o JFLAP.
Exemplo 9.5.4
Que faz ?
1 Inicializando-se numa fita vazia, l um branco, substitui-o por um a, desloca-se para a
direita e repete estas operaes indefinidamente.
2 Percorre a fita at ao infinito sem escrever nada.
Exemplo 9.5.5. E esta ?
Escreve sucessivamente abababababab.......
q
0
q
1
: a
a : R
q
0
q
1
q
2
q
3
: a a : R : b
b : R
Figura 9.5.4
Figura 9.5.5
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
323
Exemplo 9.5.6.
Construa uma MT que decida a linguagem em E={a,b} composta por todas as cadeias que
contenham a subcadeia baa (isto , que diga se sim ou no uma cadeia pertence linguagem).
Note-se que esta linguagem regular, e por isso tambm se pode desenhar um DFA que faz o
mesmo.
Exemplo 9.5.7
Desenhe uma MT que calcula a funo f(x)=2x, estando x em unrio.
Primeiro devemos conceber um algoritmo que resolva o problema. No existe uma nica
soluo. Uma delas poder ser
1- substituir cada 1 por um x e de seguida adicionar um y no fim da cadeia. Por exemplo para
f(111)= 111111 a fita ter sucessivamente
111 x11yxx1yyxxxyyy
2 - substituir cada x por 1 e cada y por 1
xxxyyyxxxyy1xxxy11 xxx111
xx1111 x11111111111
O grafo da MT ser o da Figura.
Figura 9.5.6
Figura 9.5.7
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
324
Exemplo 9.5.8 Desenhar uma MT que conte o nmero de aa em cadeias no alfabeto {m, a, r,
g, a, r, i, d, a}.
9.6. Combinaes de mquinas de Turing para tarefas complicadas
Muitas funes complicadas podem-se decompor em sequncias de funes simples
computveis (toda a anlise numrica visa esse fim). Tal conceito tambm se pode aplicar ao
nvel da Turing-computabilidade.
Pode-se projectar uma mquina de Turing composta por combinaes de mquinas de
Turing elementares a fim de realizar operaes mais complexas.
Exemplo 9.6.1 (Linz)
Seja a funo f definida por

Podemos decomp-la em trs operaes: uma comparao, uma soma, a um apagamento, que
se podem implementar pelos trs blocos da Figura 9.6.1.
f (x, y)
Somadora
Apagadora
Comparadora
x >
x < y
x, y
f (x, y) =
x + y , se x > y
0, se x< y
Figura 9.5.8. MT
que conta os as
em cadeias de
{m,a,r,g,a,r,i,d,a}
Figura 9.6.1.
Implementao
da funo do
exemplo 9.6.1.
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
325
Agora cada bloco pode ser executado por uma MT. A funo total resulta da combinao
das trs MTs.
9.7. A tese de Turing
Nos anos 30 do sc. XX Turing conjecturou que qualquer computao que possa ser
implementada por processos mecnicos (i.e., por uma mquina) pode tambm ser
implementada por uma mquina de Turing. Pode ser interpretado ao contrrio: uma
computao mecnica se e s se puder ser executada por uma mquina de Turing.
Alguns argumentos a favor da tese de Turing:
1- Qualquer computao que possa ser feita por qualquer computador digital existente
tambm pode ser feita por uma mquina de Turing.
2- Ningum conseguiu ainda encontrar um problema, resolvel por um qualquer
algoritmo, para o qual no possa ser escrito um programa para uma mquina de
Turing.
3- Foram propostos modelos alternativos para a computao mecnica, mas nenhum
deles mais poderoso do que a mquina de Turing.
A tese de Turing (ainda ) uma lei bsica das cincias da computao. Nesses tempos o
desenvolvimento de um algoritmo consistia fundamentalmente na escrita de um programa de
uma MT que o resolvesse. Mesmo actualmente um algoritmo pode-se definir como uma MT,
Se considerarmos uma funo qualquer, f, com um domnio D e o contradomnio R, para
um elemento d do domnio escrito na fita de uma MT, escreve-se um programa tal que
iniciando-se a MT apontando para o primeiro smbolo de d, termina uma computao depois
de escrever na fita o valor de f(d). Teremos assim a seguinte definio de algoritmo.
Definio 9.7.1. Algoritmo.
Um algoritmo para uma funo f : D R uma mquina de Turing M que,
- dada como entrada um qualquer d e D na sua fita
- pra (halt) com uma resposta correcta para f (d) e R na sua fita. Requer-se que
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
326
q
0
d
-
,
M
q
f
f (d), q
f
e F
para todo o d e D.
No DEM existe uma livraria de MTs que executam diversos algoritmos. A tabela seguinte
enumera-os. Alguns deles recorrem a uma MT especial, com vrias fitas (tapes). No Captulo
10 abordaremos essas arquitecturas especiais da MT, que no entanto no alteram as suas
capacidades computacionais, apenas tornam mais fcil a programao de algoritmos.
Tabela 9.7.1 Lista de exemplos do DEM. Os exemplos esto em Taylor.
balpatent balanced parenthesis
beaver busy beaver function w/ 5 arguments
c-interp C- language Compiler/Interpreter Prototype
Cnfsat CNF- Sat (Example 8.5.1) (5 tapes)
Convert Convert to unary
Copying Copia cadeia de caracteres
Cvp Circuit Value Problem (example 8.8.1)
div2mult f(n)=n div 2 (multitape machine)
div2single f(n)=n div 2 (single tape)
Ex12-3-1 Language Emulator (Example 12.3.1)
Ex2-2-3 Example 2.2.3 w=w
R
, odd palindromes
Ex2-6-2 nondeterm accepter a**(2n)+a**(3n), n>0
Ex2-6-3 nondeterm accepter a**(n**2) n>0
Ex2-6-5 nondeterm f(n) = cubicroot(n), se cubo perfeito, indefinida caso contrrio
Ex4.5.1 Markov algorithm simulator 4 tapes
Factoria f(n)= n!
Fspacon f(n) = n**2 is fully space-constructible
God Exodus 3.13-14 I am who I am
Multiply f(n,m)=nm the multiplication machine
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
327
N^n n
n
, the n to n power
Nntravsa Nearest-Neighboor Traveling Salesman Machnine/Exxample 8.10.2
Palindro Palindromes
Recdesct Recursive-descent Parser
Recognzr Reconhecimento da cadeias (pares, impares, carter do meio, palindromes)
Reverse reverse word
Reverse2 reverse word multitape
Samenumb same numbare of as as bs single tape
Samenumb4t same number of as and bs 4 tapes
Selctstr select a string
Sqrt square root (perfect square)
Exemplo 9.7.1 Desenvolver um algoritmo para calcular n
3
Uma soluo possvel:
1 - Escreve-se na fita n0n0n.
2 - Copia n direita um nmero n de vezes, obtendo-se assim nxn=m.
3 - Copia depois m um nmero n de vezes, obtendo-se mxn=nxnxn.
Exemplo 9.7.2. Desenvolver as linhas gerais de um algoritmo para calcular n!
Com sabemos n!=nx(n-1)x..x2x1. Para isso na MT
- escreve-se n na fita, em unrio
- copia-se n direita
- decrementa-se n, (subrao de 1)
- multiplica-se (n-1)n = p
- decrementa-se n-1, vindo n-2
- multiplica-se (n-2)p obtendo-se um novo valor de p.
-
- at se atingir n-i=1, e nesta altura o valor de p o factorial.
Um programa para isso ter uma extenso considervel
Teoria da Computao Cap. 9 Mquinas de Turing
LEI/DEIFCTUC/2009/@ADC Documento de trabalho
328
Bibliografia
An Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett
Computer Science, 2001.
Models of Computation and Formal Languages, R. Gregory Taylor, Oxford University Press,
1998.
Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft,
Rajeev Motwani, Jeffrey Ullman, Addison Wesley, 2001.
Elements for the Theory of Computation, Harry Lewis and Christos Papadimitriou, 2nd Ed.,
Prentice Hall, 1998.
Introduction th the Theory of Computation, Michael Sipser, PWS Publishing Co, 1997.
http://www.turing.org.uk/turing/Turing.html (Alan Turing Home Page).
http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Turing.htm.

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