Escolar Documentos
Profissional Documentos
Cultura Documentos
Mquinas de Turing MTs e Funes Inteiras Linguagens recursivamente enumerveis Artifcios para o projeto de MTs Variaes de MTs Mquinas equivalentes a MTs
A Mquina de Turing
Baseada em sequncias de operaes elementares. No apresenta limitaes de memria ou tempo. Vrias possveis realizaes. Realizao computacional de um procedimento. a mquina computacional abstrata mais poderosa. Isto no significa ser capaz de computar qualquer funo...
Matemtico e filsofo ingls, um dos fundadores da Cincia da Computao. Projetou a mquina Bombe, para decifrar cdigos em mensagens alems criptografadas (2a. Guerra Mundial). Artigos pioneiros e importantes (vrios decisivos) em Inteligncia Artificial e Cincia Cognitiva. Trabalhos em Biologia, Fsica e Qumica. Pesquisador extremamente original, um dos grandes gnios do sculo.
Allan Turing (1912-1954)
... a
...
...
Controle
1. Modifica-se o estado do controle 2. Imprime-se um smbolo na clula lida, apagando-se o que estava. 3.Move-se a cabea para direita ou esquerda. O poder computacional adicional da MT em relao a um 2-AF est em sua capacidade de escrever na fita.
CTC34 - Automata e Linguagens Formais 3
Uma configurao instantnea de uma MT um tripla 1q2 em que q o estado e 12 a string de * correspondente ao contedo da fita at o smbolo diferente de B mais direita ou at o smbolo esquerda da cabea de leitura (o que estiver mais direita). A cabea est sobre o smbolo mais esquerda de 2 (se 2 = a cabea est sobre o smbolo B).
q0: Estado inicial; revisitado imediatamente antes da substituio do 0 mais esquerda por um X. Ao ler um Y, muda para estado q3. q1: Usado para se buscar para a direita, ignorando-se 0s e Ys at se encontrar o 1 mais esquerda. Ao se encontrar o 1, muda-se para Y e entra-se no estado q2. Caso se encontre um B ou X antes do 1, a string rejeitada. q2: Usado para se fazer uma busca para a esquerda por um X, muda ento para estado q0 e move cabea para direita, at se encontrar o 0 mais esquerda. q3: Varre sequencia de Ys, e checa se no existem 1s remanescentes. Se os Ys so seguidos por um B, entra-se estado q4 e aceita, caso contrrio rejeita.
CTC34 - Automata e Linguagens Formais 6
Estado q0 q1 q2 q3 q4
0 (q1,X,R) (q2,0,L) -
1 -
X -
Y (q3,Y,R) (q1,Y,R)
B -
(q1,0,R) (q2,Y,L)
(q0,X,R) (q2,Y,L) -
(q3,Y,R) (q4,B,R)
Exemplos de computao
CTC34 - Automata e Linguagens Formais 7
Parada em uma fita com contedo 0m: f(i1,i2,...,ik) = m, onde f e a funo calculada (computada) pela MT. OBS1: Uma mesma MT pode computar uma funo de um argumento, uma outra funo de dois argumentos, etc. OBS2: Domnio da funo pode ser um subconjunto de k.
Fim da operao:
Ao procurar um 0 quando avanando a cabeca, M encontra um B. Nesse caso, os n 0s em 0m10n foram mudados para 1, e n+1 dos m 0s foram mudados para B. M entao substitui os n+1 1s por um 0 e n Bs, deixando m-n 0s na fita. Ao iniciar um ciclo, M no consegue encontrar um 0 a ser transformado em B, pois os primeiros m 0s j foram modificados. Neste caso, n m e portanto m-n = 0. M ento substitui todos os 0s e 1s restantes por Bs. Um exemplo de computao.
CTC34 - Automata e Linguagens Formais 9
O problema de parada pode portanto inviabilizar um procedimento mecnico (tal como ocorre com AFDs) para determinar se uma dada string ou no reconhecida por uma MT.
10
11
Armazenamento da Informao
Estado pode ser escrito como um par de elementos:
Primeiro elemento: controle Segundo elemento: informao
12
Exemplo
Uma MT que:
L o primeiro smbolo da fita (0 ou 1). Registra o smbolo como parte do estado. verifica se o smbolo no aparece mais na fita.
13
M=(Q, {0,1}, {0,1,B}, , [q0, B], B, F} Q={[q0, 0], [q0, 1], [q0, B], [q1, 0], [q1, 1], [q1, B]} 1) A partir do estado inicial ([q0, B]): avana para estado seguinte e armazena smbolo lido como segundo componente do estado: ([q0,B],0) = ([q1,0],0,R) ([q0,B],1) = ([q1,1],1,R)
2) A partir do estado ([q1, X]): se o smbolo armazenado no estado for diferente do smbolo da fita, simplesmente avana: ([q1,0],1) = ([q1,0],1,R) ([q1,1],0) = ([q1,1],0,R)
14
3) M entra no estado final ([q1, B]) caso chegue a um B sem ter antes encontrado um smbolo igual quele armazenado no estado. Escreve o smbolo repetido no lugar do B, para referncia, e volta a cabea: ([q1,0],B) = ([q1,B],0,L) ([q1,1],B) = ([q1,B],1,L)
15
c B B
1 0 B B 1 0
1 B 0
1 1 1
1 0 0
1 1 1
$ B B
B B B ...
Controle
CTC34 - Automata e Linguagens Formais 16
c B B
1 0 B B B B
1 B B
1 B B
$ B B
B B B ...
B B B B
Controle
17
2. Copia contedo da primeira fita para terceira fita, escreve dois em binrio na segunda:
c c c
1 0 1 0 1 0
1 $ 1
1 B 1
1 1
$ B $
B B B ...
B B
1
Controle
3. Subtrai contedo da segunda do contedo da terceira, tantas vezes quantas forem possveis. O que sobra na terceira fita portanto o resto da diviso.
c c c
1 0 1 0 1 0
1 $ 1
1 B 1
1 0
$ B $
B B B
18
B B
1
...
c c c
1 0 1 0 1
0
1 $ 1
.. .
1 B 0
1 1
$ B $
B B B ...
B B
1
c c c
1 0 1 0 1 $
1 1 B
1 1 B
1 1
1 1
$ $ B
B B B ...
B B
Controle
4. Copio contedo da primeira fita para terceira fita, incremento o contedo da segunda de uma unidade:
c c c
1 0 1 1 1 0
1 $ 1
1 B 1
1 1
$ B $
B B B ...
B B
1
Controle
5. Contedo da segunda fita igual ao da primeira? Nmero primo, pra com aceitao. Seno volto ao passo 3.
20
Checagem de Smbolos
til para visualizar reconhecimento de linguagens definidas por smbolos repetidos. til para comparar comprimentos de substrings em linguagens do tipo aibjck. Truque: utilizar uma fita extra que marca se o smbolo correspondente da outra fita foi ( ) ou no (B) considerado.
21
Exemplo
Uma MT que reconhece {wcw | w (a+b)*}
Idia: 1. Marca o primeiro smbolo e registra-o no estado, avana sobre todos os smbolos no-marcados at achar o c.
B a
B B b b
B c
B a
B B b
b
B B
B B ...
B B a b b
B c
B a
B B b
b
B B
B B ...
22
2. Aps achar c, continua avanando, agora sobre smbolos marcados. Se o primeiro aps c for igual ao registrado no estado, marca-o e volta para primeira posio aps o smbolo marcado. Recomea o processo a partir de 1. Caso contrrio, pra sem aceitao.
3
B B a b b
B c
B a
B B b
b
B B
B B ...
B B
4
B c
a
B B b
b
B B
B B ...
b b
23
3. Quando terminar (ou seja, aps marcar o ltimo antes de c), tem que conferir se no sobrou nenhum no-marcado aps o c.
B a b b c
a
B B ...
B a b b c
a
. . .
B B ...
10
B a b b c
a
B B ...
24
Formalmente, M=(Q, ,, , q0, B, F} onde 1. Q={[qi, d] | q {q1,q2,...,q9} e d=a,b ou B} 2. ={[B,d] | d=a,b ou c}, ou seja: um smbolo de entrada sempre um smbolo comum acompanhado do B (que fica na segunda fita). 3. ={[X,d] | X=B ou e d=a,b,c ou B} 4. q0=[q1,B] 5. F={[q9,B]}
25
Achou um smbolo no-marcado aps o c. Muda p/ estado q4, limpa a memria, marca a posio e inicia a volta.
26
8. ([q5,B],[B,d])=([q6,B],[B,d],L)
Smbolo esquerda de c no marcado: muda estado, continua avano p/ esquerda. Se estiver marcado, tenho que fazer teste (transio 11).
9. ([q6,B],[B,d])=([q6,B],[B,d],L)
Achou um smbolo marcado antes do c. Muda p/ estado q1, limpa a memria, e reinicia a ida (transio 1)
27
O estado q5 indica que o c foi encontrado na ltima transio, aps a qual a cabea foi p/ esquerda (transio 7). Smbolo esquerda de c marcado, comea o teste: muda p/ estado q7, volta p/ direita
12. ([q7,B],[B,c])=([q8,B],[B,c],R)
Termina o teste: achou [B,B], vai p/ estado final e pra (com aceitao). P/ qualquer outro [X,Y] na fita com estado q8, ocorre parada sem aceitao.
28
Deslocamento de Smbolos
Uma operao til: deslocar smbolos diferentes de B para a direita. Idia:
L o smbolo da fita, armazena-o no estado. Substitui o smbolo da fita por aquele que havia sido lido quando da leitura realizada quando cabea estava na posio imediatamente a esquerda.
29
Subrotinas
A operao de MTs pode ser decomposta em um conjunto de subrotinas, que correspondem a diferentes partes de um programa. Idia: uso estados especficos para controlar as chamadas e retornos da subrotina. Um exemplo: Ex. 7.7, Hopcroft/Ullman
30
Exemplo 1:
Y/Y,R
0/X,R 0
1/Y,L 1
0/0,L Y/Y,L
X/X,R q 3 q B/B,R 4
L = 0 n1n
31
Y/Y,R
CTC34 - Automata e Linguagens Formais
Exemplo 2
B/B,R 0/0,R 1/1,R 1/1,R q 2 0/1,L q 3 0/0,L 1/1,L q B/B,R 6 q B/0,R 5 q
0/B,R
1/B,R
B/B,L
0/B,R 1/B,R
0/0,L 1/B,L
L=?
32
4.
33
0/X,R
B/0,L
3 1/1,L
X/X,R 4 5
0/0,L
X/0,L
Rotina copy
34
B/B,R
9 0/0,L
8 B/B,R
12
11
10
0/B,R
CTC34 - Automata e Linguagens Formais 35
Teorema: L reconhecida por um MT com fita infinita nas duas direes sss L reconhecida por uma MT usual.
36
37
38
40