Sunteți pe pagina 1din 118

Maquinas de Turing

Maquinas de Turing

Rodrigo Gabriel Ferreira Soares

DEINFO - UFRPE

Julho, 2014
Maquinas de Turing
Introduo

Motivao

Autmatos finitos nem autmatos de pilha no so modelos


gerais de computao
No so capazes de reconhecer L = {an b n c n : n > 0}
Uma Maquina de Turing (MT) so capazes de reconhecer essa
e outras linguagens mais complexas.
Maquinas de Turing
Introduo

Definio

Uma MT consiste de um controle finito, uma fita e um


cabeote que pode ser utilizado para efetuar leituras e
gravaes na fita.
MTs no so suplantadas por outro modelo. Por mais
elementares que essas maquinas paream ser, nenhuma
tentativa de fortalece-las se mostra eficaz.
Qualquer computao que pode ser realizada em uma maquina
mais sofisticada tambm poder ser realizada com uma MT.
A computabilidade de funes numricas (tal como x + 2x )
tambm esta ligada a MTs.
Maquinas de Turing
Introduo

Definio

A unidade de controle opera em passos discretos, em cada um


realiza duas operaes
1 Levar unidade de controle para um novo estado
2 1 Gravar um simbolo na celula apontada pelo cabeote,
substituindo algum simbolo la encontrado ou
2 Mover o cabeote de leitura/gravao para apontar uma celula
a esquerda ou a direita na fita em relao a posio atual.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Os smbolos e denotam movimentos para a esquerda e
direita, respectivamente. E no fazem parte de nenhum
alfabeto.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Os smbolos e denotam movimentos para a esquerda e
direita, respectivamente. E no fazem parte de nenhum
alfabeto.
A cadeia de entrada e gravada na previamente nas celulas mais
a esquerda da fita, logo apos B.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Os smbolos e denotam movimentos para a esquerda e
direita, respectivamente. E no fazem parte de nenhum
alfabeto.
A cadeia de entrada e gravada na previamente nas celulas mais
a esquerda da fita, logo apos B.
O restante da fita e preenchido com espaos em branco t.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Os smbolos e denotam movimentos para a esquerda e
direita, respectivamente. E no fazem parte de nenhum
alfabeto.
A cadeia de entrada e gravada na previamente nas celulas mais
a esquerda da fita, logo apos B.
O restante da fita e preenchido com espaos em branco t.
A MT e livre para modificar o contedo da fita, bem como
para gravar nas celulas em branco.
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Os smbolos e denotam movimentos para a esquerda e
direita, respectivamente. E no fazem parte de nenhum
alfabeto.
A cadeia de entrada e gravada na previamente nas celulas mais
a esquerda da fita, logo apos B.
O restante da fita e preenchido com espaos em branco t.
A MT e livre para modificar o contedo da fita, bem como
para gravar nas celulas em branco.
Dado que a MT pode apenas mover uma celula por vez,
conclui-se que, apos uma computao finita, apenas um
Maquinas de Turing
Introduo

Definio
A fita e delimitada fisicamente a esquerda, mas estende-se
indefinidamente para a direita
A extremidade a esquerda e marcada com B.
Sempre que a MT encontrar B, sua posio sera movida
imediatamente a direita.
Os smbolos e denotam movimentos para a esquerda e
direita, respectivamente. E no fazem parte de nenhum
alfabeto.
A cadeia de entrada e gravada na previamente nas celulas mais
a esquerda da fita, logo apos B.
O restante da fita e preenchido com espaos em branco t.
A MT e livre para modificar o contedo da fita, bem como
para gravar nas celulas em branco.
Dado que a MT pode apenas mover uma celula por vez,
conclui-se que, apos uma computao finita, apenas um
Maquinas de Turing
Introduo

Definio

Figura : Maquina de Turing.


Maquinas de Turing
Introduo

Definio

Definio formal
Uma MT e uma quntupla (K , , , s, H), onde
K e um conjunto de estados;
e o alfabeto de entrada, que contem o simbolo de espao em
branco t e o simbolo de extremidade esquerda B, mas que no
contem os smbolos e ;
s K e o estado inicial; H K e o conjunto de estados de parada;
, a funo de transio, e uma funo de (K H) para
K ( {, }), tal que
1 q K H, se (q, B) = (p, b), ento b =
2 q K H e a , se (q, a) = (p, b), ento b 6= B
Maquinas de Turing
Introduo

Exemplo 1

Considere a MT M = (K , , , s, {h}) onde K = {q0 , q1 , h},


= {a, t, B}, s = q0 e e dado por

q (q, )
q0 a (q1 , t)
q0 t (h, t)
q0 B (q0 , )
q1 a (q0 , a)
q1 t (q0 , )
q1 B (q1 , )
Maquinas de Turing
Introduo

Exemplo 2

Considere a MT M = (K , , , s, {h}) onde K = {q0 , h},


= {a, t, B}, s = q0 e e dado por

q (q, )
q0 a (q0 , )
q0 t (h, t)
q0 B (q0 , )
Maquinas de Turing
Introduo

Configuracao

Uma configurao da MT M = (K , , , s, H) e algum membro de


K B ( ( {t}) {})
Toda configurao se inicia com o simbolo B e nunca
terminam com t
Exemplos: (q, Ba, aba), (h, B t tt, ta)
No so configuraes validas: (q, Bbaa, abcB), (q, Baa, ba)
Uma configurao cujo estado componente seja o estado de
parada H sera chamada configurao de parada.
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
`M (q0 , B t t t aa) (5)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
`M (q0 , B t t t aa) (5)
`M (q1 , B t t t ta) (6)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
`M (q0 , B t t t aa) (5)
`M (q1 , B t t t ta) (6)
`M (q0 , B t t t ta) (7)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
`M (q0 , B t t t aa) (5)
`M (q1 , B t t t ta) (6)
`M (q0 , B t t t ta) (7)
`M (q1 , B t t t tt) (8)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
`M (q0 , B t t t aa) (5)
`M (q1 , B t t t ta) (6)
`M (q0 , B t t t ta) (7)
`M (q1 , B t t t tt) (8)
`M (q0 , B t t t t t t) (9)
Maquinas de Turing
Introduo

Computao
Sejam duas configuraes de M, (q1 , w1 a1 u1 ) e (q2 , w2 a2 u2 ), onde
a1 , a2 .
(q1 , w1 a1 u1 ) `M (q2 , w2 a2 u2 )
Seja o exemplo anterior, sua computao e como segue:
(q1 , Btaaaa) `M (q0 , B t aaaa) (1)
`M (q1 , B t taaa) (2)
`M (q0 , B t taaa) (3)
`M (q1 , B t ttaa) (4)
`M (q0 , B t t t aa) (5)
`M (q1 , B t t t ta) (6)
`M (q0 , B t t t ta) (7)
`M (q1 , B t t t tt) (8)
`M (q0 , B t t t t t t) (9)
Maquinas de Turing
Introduo

Exemplos

w e w no contem espaos em branco


Maquinas de Turing
Introduo

Exemplos

w e w no contem espaos em branco


Maquina de copiar C , que transforma tw t em tw t w t.
Maquinas de Turing
Introduo

Exemplos

w e w no contem espaos em branco


Maquina de copiar C , que transforma tw t em tw t w t.
Maquina de deslocamento a esquerda S , que transforma
tw t em w t.
Maquinas de Turing
Introduo

Exemplos

w e w no contem espaos em branco


Maquina de copiar C , que transforma tw t em tw t w t.
Maquina de deslocamento a esquerda S , que transforma
tw t em w t.
Maquina M que apaga todos os as em sua fita.
Maquinas de Turing
Introduo

Exemplos

w e w no contem espaos em branco


Maquina de copiar C , que transforma tw t em tw t w t.
Maquina de deslocamento a esquerda S , que transforma
tw t em w t.
Maquina M que apaga todos os as em sua fita.
Maquinas de Turing
Computaes usando maquinas de Turing

Computaes usando maquinas de Turing

MT substituem, como reconhecedores de linguagens, todos os


tipos de autmatos vistos ate agora
Para usar M como reconhecedor de linguagens, temos as
seguintes convenes:
a cadeia de entrada w no tem espaos em branco e gravada
Btw t.
a configurao inicial de M = (K , , , s, H) com entrada
w ( {t, B})? (s, Btw ).
Maquinas de Turing
Computaes usando maquinas de Turing

Computaes usando maquinas de Turing

Definio
Seja M = (K , , , s, H), tal que H = {y , n} (y e n denotam sim e
no, respectivamente). Qualquer configurao que tenha y como
estado componente dita configurao de aceitao, enquanto
uma configurao com n dita configurao de rejeio.
Dizemos que M aceita uma entrada w ( {t, B})? , se
(s, Btw ) levar a uma configurao de aceitao. E M rejeita w , se
(s, Btw ) leva a uma configurao de rejeio.
Seja 0 {t, B} um alfabeto de entrada de M. Dizemos
que M decide a linguagem L ?0 , se, para qualquer cadeia
w ?0 , se w L, ento M aceita w ; e se w / L, ento M rejeita
w.
Finalmente, dizemos que L recursiva se houver uma MT que a
decide.
Maquinas de Turing
Computaes usando maquinas de Turing

Exemplo

Uma MT decide L se, quando iniciada com a entrada w , ela


sempre para em um estado de parada que corresponde a resposta
correta a entrada w , isto , y se w L, e n se w
/ L.
Maquinas de Turing
Computaes usando maquinas de Turing

Exemplo

Uma MT decide L se, quando iniciada com a entrada w , ela


sempre para em um estado de parada que corresponde a resposta
correta a entrada w , isto , y se w L, e n se w
/ L.
Considere a linguagem L = {an b n c n : n 0}, que, ate aqui,
no pode ser capturada por nenhum dos tipos de
reconhecedores.
Maquinas de Turing
Computaes usando maquinas de Turing

Exemplo

Uma MT decide L se, quando iniciada com a entrada w , ela


sempre para em um estado de parada que corresponde a resposta
correta a entrada w , isto , y se w L, e n se w
/ L.
Considere a linguagem L = {an b n c n : n 0}, que, ate aqui,
no pode ser capturada por nenhum dos tipos de
reconhecedores.
Nesse diagrama, utilizamos duas novas maquinas bsicas: y ,
que leva a MT ao estado de aceitao y e n, que a leva ao
estado de rejeio n.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Ao contrario de outros reconhecedores de linguagens, MTs


podem simplesmente no responder nem sim nem no,
simplesmente deixando de parar.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Ao contrario de outros reconhecedores de linguagens, MTs


podem simplesmente no responder nem sim nem no,
simplesmente deixando de parar.
Dada uma MT, ela pode ou no decidir uma linguagem e no
h um modo obvio de se verificar isso.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Ao contrario de outros reconhecedores de linguagens, MTs


podem simplesmente no responder nem sim nem no,
simplesmente deixando de parar.
Dada uma MT, ela pode ou no decidir uma linguagem e no
h um modo obvio de se verificar isso.
MTs podem produzir sadas mais elaboradas que sim ou
no.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Definio
Seja M = (K , , , s, {h}) uma MT, 0 {t, B} um
alfabeto, e w ?0 . Suponha que M para ao operar sobre a
entrada w e que (s, Btw ) `M (h, Btz) para algum z ?0 . Ento
z dito sada de M para entrada w e denotado M(w ).
Seja f qualquer funo ?0 ?0 . Dizemos que M computa f , se,
para todo w ?0 , M(w ) = f (w ). Assim, para todo w ?0 , M
para e sua fita contem a cadeia B t f (w ).
Uma funo f dita recursiva, se houver uma MT que computa f .
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Exemplo: A funo : ? ? definida como (w ) = ww pode


ser computada pela maquina CS .
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Cadeias sobre o alfabeto binrio {0, 1}? podem ser usadas para
representar inteiros no-negativos na notao binaria usual.
Qualquer cadeia w = a1 a2 . . . an {0, 1}? representa o numero
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Cadeias sobre o alfabeto binrio {0, 1}? podem ser usadas para
representar inteiros no-negativos na notao binaria usual.
Qualquer cadeia w = a1 a2 . . . an {0, 1}? representa o numero

num(w ) = a1 2n1 + a2 2n2 + + an .


Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Cadeias sobre o alfabeto binrio {0, 1}? podem ser usadas para
representar inteiros no-negativos na notao binaria usual.
Qualquer cadeia w = a1 a2 . . . an {0, 1}? representa o numero

num(w ) = a1 2n1 + a2 2n2 + + an .

Qualquer natural pode ser representado de modo nico por


0 1(0 1)? .
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Cadeias sobre o alfabeto binrio {0, 1}? podem ser usadas para
representar inteiros no-negativos na notao binaria usual.
Qualquer cadeia w = a1 a2 . . . an {0, 1}? representa o numero

num(w ) = a1 2n1 + a2 2n2 + + an .

Qualquer natural pode ser representado de modo nico por


0 1(0 1)? .
MTs que computam funes de {0, 1}? para {0, 1}? podem ser
pensadas como funes que computam nmeros naturais a partir
de nmeros naturais.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Cadeias sobre o alfabeto binrio {0, 1}? podem ser usadas para
representar inteiros no-negativos na notao binaria usual.
Qualquer cadeia w = a1 a2 . . . an {0, 1}? representa o numero

num(w ) = a1 2n1 + a2 2n2 + + an .

Qualquer natural pode ser representado de modo nico por


0 1(0 1)? .
MTs que computam funes de {0, 1}? para {0, 1}? podem ser
pensadas como funes que computam nmeros naturais a partir
de nmeros naturais.
Funes de mltiplos argumentos podem ser executadas por MTs
que computam funes de {0, 1, ; }? para {0, 1}? , onde ; o
simbolo para separar argumentos binrios.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Definio
Seja M = (K , , , s, {h}) uma MT tal que 0, 1, ; e seja f
qualquer funo de Nk para N, para algum k 1. Dizemos que M
computa f , se para todo w1 , . . . , wk 0 1(0 1)? ,
num(M(w1 ; . . . ; wk )) = f (num(w1 ), . . . , num(wk )).
Uma funo f : Nk N dita recursiva se houver uma MT M
que computa f .
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Exemplo: A funo sucessora suc(n) = n + 1.


Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivas

Exemplo: A funo sucessora suc(n) = n + 1.


O preo que devemos pagar pela capacidade computacional
das MTs o fato de que no podermos afirmar se uma MT
computa de fato uma dada funo, isto , se ela para para
qualquer cadeia de entrada.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Pelo fato de uma MT decidir uma linguagem ou computar uma


funo, pode-se considerar razovel interpreta-la como um
algoritmo, que executa corretamente uma tarefa computacional.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Pelo fato de uma MT decidir uma linguagem ou computar uma


funo, pode-se considerar razovel interpreta-la como um
algoritmo, que executa corretamente uma tarefa computacional.
Definio
Seja M = (K , , , s, H) uma MT. Seja 0 {t, B} um
alfabeto e L ?0 uma linguagem. Dizemos que M semidecide L
se, para qualquer cadeia w ?0 , w L se e somente se M para
em resposta a entrada w . Uma linguagem L recursivamente
enumervel se e somente se existir uma MT que semidecide L.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Quando M acionada com w L, exige-se que pare ao final.


No importa a configurao de parada que M atinge, bastando
que M pare.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Quando M acionada com w L, exige-se que pare ao final.


No importa a configurao de parada que M atinge, bastando
que M pare.
Se, entretanto, w ?0 , ento M nunca deve atingir o estado
de parada. Ela continuarah sua computao indefinidamente.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Quando M acionada com w L, exige-se que pare ao final.


No importa a configurao de parada que M atinge, bastando
que M pare.
Se, entretanto, w ?0 , ento M nunca deve atingir o estado
de parada. Ela continuarah sua computao indefinidamente.
uma funo completamente definida.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Quando M acionada com w L, exige-se que pare ao final.


No importa a configurao de parada que M atinge, bastando
que M pare.
Se, entretanto, w ?0 , ento M nunca deve atingir o estado
de parada. Ela continuarah sua computao indefinidamente.
uma funo completamente definida.
Exemplo: Seja
L = {w {a, b}? : w contem pelo menos um a}. Ento L
semidecidida por uma MT a seguir.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Escreve-se M(w ) =% se M falhar em parar em resposta ah


entrada w . M(w ) =% se e somente se w
/ L.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Escreve-se M(w ) =% se M falhar em parar em resposta ah


entrada w . M(w ) =% se e somente se w
/ L.
Prosseguir indefinidamente percorrendo espaos em branco
apenas uma das maneiras pelas quais M pode deixar de parar.
Exemplo: (q, a) = (q, a).
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Escreve-se M(w ) =% se M falhar em parar em resposta ah


entrada w . M(w ) =% se e somente se w
/ L.
Prosseguir indefinidamente percorrendo espaos em branco
apenas uma das maneiras pelas quais M pode deixar de parar.
Exemplo: (q, a) = (q, a).
Um AFD sempre para e verificamos seu estado de parada
(algoritmo).
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Escreve-se M(w ) =% se M falhar em parar em resposta ah


entrada w . M(w ) =% se e somente se w
/ L.
Prosseguir indefinidamente percorrendo espaos em branco
apenas uma das maneiras pelas quais M pode deixar de parar.
Exemplo: (q, a) = (q, a).
Um AFD sempre para e verificamos seu estado de parada
(algoritmo).
Em contraste, uma MT que semidecide uma linguagem L pode
no ser adequada para verificar se w L.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Escreve-se M(w ) =% se M falhar em parar em resposta ah


entrada w . M(w ) =% se e somente se w
/ L.
Prosseguir indefinidamente percorrendo espaos em branco
apenas uma das maneiras pelas quais M pode deixar de parar.
Exemplo: (q, a) = (q, a).
Um AFD sempre para e verificamos seu estado de parada
(algoritmo).
Em contraste, uma MT que semidecide uma linguagem L pode
no ser adequada para verificar se w L.
Se w / L, ento nunca saberemos quando teremos esperado o
suficiente para obter uma resposta.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Escreve-se M(w ) =% se M falhar em parar em resposta ah


entrada w . M(w ) =% se e somente se w
/ L.
Prosseguir indefinidamente percorrendo espaos em branco
apenas uma das maneiras pelas quais M pode deixar de parar.
Exemplo: (q, a) = (q, a).
Um AFD sempre para e verificamos seu estado de parada
(algoritmo).
Em contraste, uma MT que semidecide uma linguagem L pode
no ser adequada para verificar se w L.
Se w / L, ento nunca saberemos quando teremos esperado o
suficiente para obter uma resposta.
MTs que semidecidem linguagens no so algoritmos.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Qualquer linguagem recursiva tambm recursivamente


enumervel.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Qualquer linguagem recursiva tambm recursivamente


enumervel.
Podemos converter uma MT que decide L em uma MT que a
semidecide atravs da transformao do estado de rejeio n
em uma estado que no seja de parada e se garanta que a MT
no irah parar.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Qualquer linguagem recursiva tambm recursivamente


enumervel.
Podemos converter uma MT que decide L em uma MT que a
semidecide atravs da transformao do estado de rejeio n
em uma estado que no seja de parada e se garanta que a MT
no irah parar.
Teorema: Se uma linguagem recursiva, ento ela
recursivamente enumervel.
Maquinas de Turing
Computaes usando maquinas de Turing

Funes recursivamente enumerveis

Qualquer linguagem recursiva tambm recursivamente


enumervel.
Podemos converter uma MT que decide L em uma MT que a
semidecide atravs da transformao do estado de rejeio n
em uma estado que no seja de parada e se garanta que a MT
no irah parar.
Teorema: Se uma linguagem recursiva, ento ela
recursivamente enumervel.
H linguagens recursivamente enumerveis que no so
recursivas.
Maquinas de Turing
Extenses da Maquina de Turing

Extenses da Maquina de Turing

A fim de melhorar o entendimento sobre o poder


computacional das MTs, devemos estudar extenses do
modelo em varias direes.
Maquinas de Turing
Extenses da Maquina de Turing

Extenses da Maquina de Turing

A fim de melhorar o entendimento sobre o poder


computacional das MTs, devemos estudar extenses do
modelo em varias direes.
Em cada caso, os recursos adicionados nada acrescentam as
classes de funes computveis e linguagens decidveis.
Maquinas de Turing
Extenses da Maquina de Turing

Extenses da Maquina de Turing

A fim de melhorar o entendimento sobre o poder


computacional das MTs, devemos estudar extenses do
modelo em varias direes.
Em cada caso, os recursos adicionados nada acrescentam as
classes de funes computveis e linguagens decidveis.
Esses melhoramentos podem ser simulados pelo modelo de
MT convencional.
Maquinas de Turing
Extenses da Maquina de Turing

Extenses da Maquina de Turing

A fim de melhorar o entendimento sobre o poder


computacional das MTs, devemos estudar extenses do
modelo em varias direes.
Em cada caso, os recursos adicionados nada acrescentam as
classes de funes computveis e linguagens decidveis.
Esses melhoramentos podem ser simulados pelo modelo de
MT convencional.
MT , de fato, o modelo computacional definitivo.
Maquinas de Turing
Extenses da Maquina de Turing

Extenses da Maquina de Turing

A fim de melhorar o entendimento sobre o poder


computacional das MTs, devemos estudar extenses do
modelo em varias direes.
Em cada caso, os recursos adicionados nada acrescentam as
classes de funes computveis e linguagens decidveis.
Esses melhoramentos podem ser simulados pelo modelo de
MT convencional.
MT , de fato, o modelo computacional definitivo.
Estamos livres para explorar novos recursos para problemas
particulares, sabendo que nossa dependncia a esses recursos
podem ser eliminados.
Maquinas de Turing
Extenses da Maquina de Turing

Fitas mltiplas

Cada fita conectada ao controle finito por meio de um


cabeote correspondente.
Maquinas de Turing
Extenses da Maquina de Turing

Fitas mltiplas

Cada fita conectada ao controle finito por meio de um


cabeote correspondente.
A computao ocorre em todas as k fitas.
Maquinas de Turing
Extenses da Maquina de Turing

Fitas mltiplas

Cada fita conectada ao controle finito por meio de um


cabeote correspondente.
A computao ocorre em todas as k fitas.
Uma configurao deve incluir informaes sobre o contedo
de todas as fitas.
Maquinas de Turing
Extenses da Maquina de Turing

Fitas mltiplas

Cada fita conectada ao controle finito por meio de um


cabeote correspondente.
A computao ocorre em todas as k fitas.
Uma configurao deve incluir informaes sobre o contedo
de todas as fitas.
(q, (w1 a1 u1 , . . . , wk ak uk )) uma configurao e
(p, (a1 , . . . , ak )) = (b1 , . . . , bk ) uma transio.
Maquinas de Turing
Extenses da Maquina de Turing

Fitas mltiplas

Exemplo: Maquina de copiar C , que transforma tw t em


tw t w t.
Maquinas de Turing
Extenses da Maquina de Turing

Fitas mltiplas

Exemplo: Maquina de copiar C , que transforma tw t em


tw t w t.
Corolrio: Qualquer funo computada ou linguagem decidida
ou semidecidida por uma MT de k fitas tambm
respectivamente computada, decidida ou semidecidida por uma
MT convencional.
Maquinas de Turing
Extenses da Maquina de Turing

Fita infinita em ambas as direes

Todas as celulas contem espaos em branco, exceto as que


contem a cadeia de entrada.
Maquinas de Turing
Extenses da Maquina de Turing

Fita infinita em ambas as direes

Todas as celulas contem espaos em branco, exceto as que


contem a cadeia de entrada.
B desnecessrio.
Maquinas de Turing
Extenses da Maquina de Turing

Fita infinita em ambas as direes

Todas as celulas contem espaos em branco, exceto as que


contem a cadeia de entrada.
B desnecessrio.
No proporcionam poder adicional, pois pode ser simulada por
uma MT convencional.
Maquinas de Turing
Extenses da Maquina de Turing

Mltiplos cabeotes

Uma soh fita e vrios cabeotes.


Maquinas de Turing
Extenses da Maquina de Turing

Mltiplos cabeotes

Uma soh fita e vrios cabeotes.


Todos os cabeotes lem os smbolos correspondentes e
podem mover-se ou escrever independentemente.
Maquinas de Turing
Extenses da Maquina de Turing

Mltiplos cabeotes

Uma soh fita e vrios cabeotes.


Todos os cabeotes lem os smbolos correspondentes e
podem mover-se ou escrever independentemente.
Assim como o uso de fitas mltiplas, a aplicao de mltiplos
cabeotes podem simplificar drasticamente a construo de
uma MT.
Maquinas de Turing
Extenses da Maquina de Turing

Mltiplos cabeotes

Uma soh fita e vrios cabeotes.


Todos os cabeotes lem os smbolos correspondentes e
podem mover-se ou escrever independentemente.
Assim como o uso de fitas mltiplas, a aplicao de mltiplos
cabeotes podem simplificar drasticamente a construo de
uma MT.
Uma verso da maquina de copiar C poderia funcionar de
modo mais natural do que a verso com um soh cabeote.
Maquinas de Turing
Extenses da Maquina de Turing

Mltiplos cabeotes

Uma soh fita e vrios cabeotes.


Todos os cabeotes lem os smbolos correspondentes e
podem mover-se ou escrever independentemente.
Assim como o uso de fitas mltiplas, a aplicao de mltiplos
cabeotes podem simplificar drasticamente a construo de
uma MT.
Uma verso da maquina de copiar C poderia funcionar de
modo mais natural do que a verso com um soh cabeote.
No proporcionam poder adicional.
Maquinas de Turing
Extenses da Maquina de Turing

Fita bidimensional

Sua fita uma grade bidimensional infinita.


Maquinas de Turing
Extenses da Maquina de Turing

Fita bidimensional

Sua fita uma grade bidimensional infinita.


Pode permitir dimensionalidade mais alta.
Maquinas de Turing
Extenses da Maquina de Turing

Fita bidimensional

Sua fita uma grade bidimensional infinita.


Pode permitir dimensionalidade mais alta.
Extenses da MT podem ser combinadas:
MTs com varias fitas, todas ou algumas sendo infinitas nas
duas direes, com mais de um cabeote ou ainda podem ser
multidimensionais.
Maquinas de Turing
Extenses da Maquina de Turing

Fita bidimensional

Sua fita uma grade bidimensional infinita.


Pode permitir dimensionalidade mais alta.
Extenses da MT podem ser combinadas:
MTs com varias fitas, todas ou algumas sendo infinitas nas
duas direes, com mais de um cabeote ou ainda podem ser
multidimensionais.
Qualquer linguagem decidida ou semidecidida e qualquer
funo computadas por MTs com varias fitas, vrios
cabeotes, fitas infinitas nas duas direes ou fitas
multidimensionais, podem ser decididas, semidecididas ou
computadas, respectivamente, por uma MT convencional.
Maquinas de Turing
Maquinas de Turing no-determinsticas

Maquinas de Turing no-determinsticas

Aplicamos o no-determinismo ahs MTs.


Maquinas de Turing
Maquinas de Turing no-determinsticas

Maquinas de Turing no-determinsticas

Aplicamos o no-determinismo ahs MTs.


MTs podem ter, para certas combinaes de smbolos e
estados, mais de uma escolha de procedimento possvel.
Maquinas de Turing
Maquinas de Turing no-determinsticas

Maquinas de Turing no-determinsticas

Aplicamos o no-determinismo ahs MTs.


MTs podem ter, para certas combinaes de smbolos e
estados, mais de uma escolha de procedimento possvel.
A relao `M no precisa mais ter um nico valor: uma
configurao pode produzir varias outras em um passo.
Maquinas de Turing
Maquinas de Turing no-determinsticas

Maquinas de Turing no-determinsticas

Aplicamos o no-determinismo ahs MTs.


MTs podem ter, para certas combinaes de smbolos e
estados, mais de uma escolha de procedimento possvel.
A relao `M no precisa mais ter um nico valor: uma
configurao pode produzir varias outras em um passo.
Assim como ocorre com os demais recursos, o
no-determinismo pode ser eliminado das MTs, ou seja, h MT
determinstica equivalente para toda MT no-determinstica.
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Novo tipo de gerador de linguagem: uma generalizao da
gramatica livre de contexto, chamada de gramatica (ou
gramatica irrestrita).
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Novo tipo de gerador de linguagem: uma generalizao da
gramatica livre de contexto, chamada de gramatica (ou
gramatica irrestrita).
Semelhante a GLC, exceto que os lados esquerdos das regras
podem consistir de mais de um simbolo.
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Novo tipo de gerador de linguagem: uma generalizao da
gramatica livre de contexto, chamada de gramatica (ou
gramatica irrestrita).
Semelhante a GLC, exceto que os lados esquerdos das regras
podem consistir de mais de um simbolo.
O lado esquerdo pode ter qualquer cadeia de terminais e
no-terminais, que contenha pelo menos um no-terminal.
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Novo tipo de gerador de linguagem: uma generalizao da
gramatica livre de contexto, chamada de gramatica (ou
gramatica irrestrita).
Semelhante a GLC, exceto que os lados esquerdos das regras
podem consistir de mais de um simbolo.
O lado esquerdo pode ter qualquer cadeia de terminais e
no-terminais, que contenha pelo menos um no-terminal.
O produto final tambm uma cadeia de terminais.
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Novo tipo de gerador de linguagem: uma generalizao da
gramatica livre de contexto, chamada de gramatica (ou
gramatica irrestrita).
Semelhante a GLC, exceto que os lados esquerdos das regras
podem consistir de mais de um simbolo.
O lado esquerdo pode ter qualquer cadeia de terminais e
no-terminais, que contenha pelo menos um no-terminal.
O produto final tambm uma cadeia de terminais.
Uma regra pode assumir a forma uAv uwv , que pode ser
lida substituir A por w no contexto de u e v .
Maquinas de Turing
Gramaticas

Gramaticas
MTs so reconhecedores de linguagens. A partir delas,
surgiram as linguagens recursivas e recursivamente
enumerveis.
Novo tipo de gerador de linguagem: uma generalizao da
gramatica livre de contexto, chamada de gramatica (ou
gramatica irrestrita).
Semelhante a GLC, exceto que os lados esquerdos das regras
podem consistir de mais de um simbolo.
O lado esquerdo pode ter qualquer cadeia de terminais e
no-terminais, que contenha pelo menos um no-terminal.
O produto final tambm uma cadeia de terminais.
Uma regra pode assumir a forma uAv uwv , que pode ser
lida substituir A por w no contexto de u e v .
Substituio depende do contexto.
Maquinas de Turing
Gramaticas

Exemplo
G = (V , , R, S) gera a linguagem L = {an b n c n : n 1}, onde
V = {S, a, b, c, A, B, C , Ta , Tb , Tc }, = {a, b, c} e
R = {S ABCS (11)
S Tc (12)
CA AC (13)
BA AB (14)
CB BC (15)
CTc Tc c (16)
CTc Tb c (17)
BTb Tb b (18)
BTb Ta b (19)
ATa Ta a (20)
T }. (21)
Maquinas de Turing
Gramaticas

Gramaticas

Teorema: Uma linguagem eh gerada por uma gramatica se e


somente se ela for recursivamente enumervel.
Maquinas de Turing
Gramaticas

Gramaticas

Teorema: Uma linguagem eh gerada por uma gramatica se e


somente se ela for recursivamente enumervel.
Propriedade da semideciso em comum com MTs
Se uma cadeia puder se gerada por uma gramatica, podemos
pacientemente procurar todas as possveis derivaes.
Maquinas de Turing
Gramaticas

Gramaticas

Teorema: Uma linguagem eh gerada por uma gramatica se e


somente se ela for recursivamente enumervel.
Propriedade da semideciso em comum com MTs
Se uma cadeia puder se gerada por uma gramatica, podemos
pacientemente procurar todas as possveis derivaes.
Mas se no existir nenhuma derivao, esse processo
continuar indefinidamente, sem prover nenhuma informao
til.
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
1 Funcao nula k-aria zero(n1 , . . . , nk ) = 0
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
1 Funcao nula k-aria zero(n1 , . . . , nk ) = 0
2 Funcao identidade k-aria idj (n1 , . . . , nk ) = nj
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
1 Funcao nula k-aria zero(n1 , . . . , nk ) = 0
2 Funcao identidade k-aria idj (n1 , . . . , nk ) = nj
3 Funcao sucessor suc(n) = n + 1
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
1 Funcao nula k-aria zero(n1 , . . . , nk ) = 0
2 Funcao identidade k-aria idj (n1 , . . . , nk ) = nj
3 Funcao sucessor suc(n) = n + 1
Combinando funcoes
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
1 Funcao nula k-aria zero(n1 , . . . , nk ) = 0
2 Funcao identidade k-aria idj (n1 , . . . , nk ) = nj
3 Funcao sucessor suc(n) = n + 1
Combinando funcoes
1 Composicao:
f (n1 , . . . , nl ) = g (h1 (n1 , . . . , nl ), . . . , hk (n1 , . . . , nl ))
Maquinas de Turing
Funes numricas

Funes numricas

Exemplo: f (x, y ) = x 2 y + 5x y +2 eh construda com


composio de funes: adio, multiplicao, exponenciao.
Funcoes basicas
1 Funcao nula k-aria zero(n1 , . . . , nk ) = 0
2 Funcao identidade k-aria idj (n1 , . . . , nk ) = nj
3 Funcao sucessor suc(n) = n + 1
Combinando funcoes
1 Composicao:
f (n1 , . . . , nl ) = g (h1 (n1 , . . . , nl ), . . . , hk (n1 , . . . , nl ))
2 Definicao recursiva:

f (n1 , . . . , nk , 0) = g (n1 , . . . , nk )

f (n1 , . . . , nk , m + 1) = h(n1 , . . . , nk , m, f (n1 , . . . , nk , m))


Maquinas de Turing
Funes numricas

Funes recursivas primitivas

Sao funcoes recursivas primitivas todas as funcoes basicas e


tambem todas as funcoes que podem ser obtidas a partir delas
por qualquer numero de aplicacoes sucessivas de composicao e
definicao recursiva.
Maquinas de Turing
Funes numricas

Funes recursivas primitivas

Sao funcoes recursivas primitivas todas as funcoes basicas e


tambem todas as funcoes que podem ser obtidas a partir delas
por qualquer numero de aplicacoes sucessivas de composicao e
definicao recursiva.
Exemplo: A funcao mais2, definida como mais2(n) = n + 2 eh
recursiva primitiva, pois pode ser obtida a partir de suc com
uma composicao com ela mesma.
Maquinas de Turing
Funes numricas

Funes recursivas primitivas

Sao funcoes recursivas primitivas todas as funcoes basicas e


tambem todas as funcoes que podem ser obtidas a partir delas
por qualquer numero de aplicacoes sucessivas de composicao e
definicao recursiva.
Exemplo: A funcao mais2, definida como mais2(n) = n + 2 eh
recursiva primitiva, pois pode ser obtida a partir de suc com
uma composicao com ela mesma.
Dizemos que uma funcao eh -recursiva se ela puder ser
obtida a partir de funcoes basicas pela aplicacao das operacoes
de composicao, definicao recursiva e minimizacao de funcoes
minimizaveis.
Maquinas de Turing
Funes numricas

Funes recursivas primitivas

Sao funcoes recursivas primitivas todas as funcoes basicas e


tambem todas as funcoes que podem ser obtidas a partir delas
por qualquer numero de aplicacoes sucessivas de composicao e
definicao recursiva.
Exemplo: A funcao mais2, definida como mais2(n) = n + 2 eh
recursiva primitiva, pois pode ser obtida a partir de suc com
uma composicao com ela mesma.
Dizemos que uma funcao eh -recursiva se ela puder ser
obtida a partir de funcoes basicas pela aplicacao das operacoes
de composicao, definicao recursiva e minimizacao de funcoes
minimizaveis.
Teorema: A funcao f : Nk N eh -recursiva se e somente se
ela for recursiva.

S-ar putea să vă placă și