A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teorema da Recursão Teoria da Computação

Apresentações semelhantes


Apresentação em tema: "Teorema da Recursão Teoria da Computação"— Transcrição da apresentação:

1 Teorema da Recursão Teoria da Computação
Pós-graduação em Ciência da Computação Profa. Sandra de Amo

2 Auto-referência Máquina de Turing SELF SELF = No input w
Apaga w da fita; Insere na fita o string <SELF> <SELF> = código da máquina SELF

3 Como construir a máquina SELF
Passo 1 : Máquina Pw = máquina que imprime w na fita Pw = No input x Ignora x Imprime w na fita Exemplo : w = 00 Código da máquina P00 δ(q0,x) = (q1,0,R), para qualquer simbolo x da fita δ(q1,x) = (q2,0,R), para qualquer simbolo x da fita δ(q2,x) = (q2,B,R), para x ≠ B δ(q2,B) = (qa,B,R).

4 Como construir a máquina SELF
Passo 2 : Máquina Q = máquina que no input w imprime o código da máquina que imprime w. Máquina de 2 fitas: Q = No input w 1. Constrói o string <Pw> na fita 2 2. Apaga w da fita 1 3. Copia <Pw> na fita 1 w <Pw> Q Input = w Output = <Pw> (código da máquina Pw)

5 Como construir a máquina SELF
Passo 3 : Máquina B B = No input <M> Computa Q(<M>) = < P<M>> Imprime na fita < P<M> . M > Pára < P<M> . M > é o código “concatenado” de < P<M>> e <M> δ(q0,..) = (q1,...) δ(q’_0, ...) = δ(q0,...)= (q1,...) δ(q,..) = (qa,..) δ(q’,..) = (q’a,....) δ(q,...) = (q’_0,...) δ(q’,...) = (q’a,...) < M > <P< M > >

6 Como construir a máquina SELF
Passo 4 : Máquina A A = P<B> Passo 5 : Máquina SELF SELF = A . B

7 Máquina SELF Self = No input x faça Ignora x
Executa A: Imprime código da máquina B na fita Executa B sobre o string da fita (no caso <B>) : Imprime código da máquina que imprime B na fita seguido do código de B Resultado na fita = <A.B>

8 Máquina SELF = A.B < B > < A .B >
Input w a1 a2 a3 a4 a5 A < B > qB0 q1 R # q1 ... B < A .B > qA0 q4 1 L # qB0 q1 R # q1 < P <B> > = <A> < B >

9 Teorema da Recursão Seja T máquina de Turing a duas fitas que recebe como input dois strings : w na primeira fita e u na segunda fita T : (w, u)  z Então existe máquina de Turing R com uma fita tal que R(u) = T(<R>, u)

10 Prova do Teorema da Recursão
Considere a máquina Pw a duas fitas Pw = No input x Transporta x para a segunda fita Imprime w na primeira fita Seja A = P <BT> R = A.B.T

11 < P <BT> > = <A> < B.T >
Input w a1 a2 a3 a4 a5 1a fita A < B.T > qBT0 q1 R # q1 ... 1a fita B 1a fita < A.B.T > qA0 q4 1 L # qBT0 q1 R # q1 < P <BT> > = <A> < B.T > a1 a2 a3 a4 a5 2a fita T LOGO : ABT (a1a2....a5) = T(<ABT>,a1a2...a5)

12 Característica da Máquina R
Constrói uma réplica de seu próprio código. Continua o restante de seu cálculo que pode incluir ações envolvendo seu próprio código. Programas de vírus contém construção análoga à descrita na prova do teorema da recursão.

13 Outra formulação do Teorema da Recursão
Seja T máquina de Turing a duas fitas. Para cada w fixo, seja a máquina de Turing a uma fita Tw : u  z Existem infinitas máquinas deste tipo. O teorema da Recursão afirma que existe uma máquina de Turing R a uma fita tal que T<R> = R

14 Aplicações do Teorema da Recursão
Virus: Dada uma máquina T, é possivel construir uma máquina T’ equivalente a T que replica seu próprio código na fita. T’ = A.B.T T’: No input x faça Executa A Executa B % Após a execução do passo 2, tem-se o código de T’ na fita 1 e x na fita 2 Executa T sobre x (que está na 2a fita) Se T aceita x, aceita. Se T rejeita x, rejeita.

15 Aplicações do Teorema da Recursão
Outra prova que o Problema da Parada é indecidível. Suponha que Halt fosse decidível. Seja H uma MT que decide Halt. Considere a máquina H que retorna o oposto de H: H(<M,w>) = qa se H(<M,w>) = qr H(<M,w>) entra em loop se H(<M,w>) = qa Considere a máquina H’ = ABH H’ : No input w faça: 1) Executa A 2) Executa B % Após a execução do passo 2, tem-se o código <H’ > de H’ na fita 1 e w na fita 2 3) Executa H em <H’,w> H’(w) = qa (pára) se H(H’,w) = qr (isto é, se H’ não pára ao ser executada em w) H’(w) entra em loop (não pára) se H(H’,w) = qa (isto é, se H’ pára ao ser executada em w) ABSURDO !

16 Aplicações do Teorema da Recursão
M é uma máquina minimal se não é possivel encontrar máquina M’ equivalente com código mais curto. Problema MIN = {<M> | M é uma MT minimal} não é Turing Reconhecível. É fácil ver que o MIN é infinito (existem infinitas máquinas que são minimais).

17 Prova Suponha que MIN fosse Turing Reconhecível.
Seja E uma máquina enumeradora de MIN. Seja E a seguinte máquina: E : No input x faça: Aciona o enumerador E A primeira vez que aparece um código de máquina de Turing D no dispositivo de impressão de E que seja maior do x, simule D em x. Repare que como MIN é infinito, sempre vai aparecer um código D maior do que x no dispositivo de impressão de E.

18 Prova (continuação) Considere a máquina M’ = ABE M’ = No input w faça
1) Executa A 2) Executa B % Após a execução do passo 2, tem-se o código <M’ > de M’ na fita 1 e w na fita 2 3) Executa E em <M’> M’(w) = D(w). Como o código de D é maior do que o de M’ então D não pode estar em MIN. Mas o código de D aparece na enumeração dos códigos de MIN !! ABSURDO

19 Teorema do Ponto Fixo Seja f: ∑*  ∑* uma função computável qualquer.
f pode ser aplicada sobre códigos de máquina de Turing, produzindo como resposta um string que pode ou não ser código de máquina de Turing. Teorema do Ponto Fixo: Existe uma máquina de Turing F tal que f(<F>) é um código de MT equivalente a F Isto é: o comportamento da máquina F fica inalterado após a transformação de seu código via f.

20 Prova do Teorema do Ponto Fixo
Considere a seguinte máquina G G(<M,w>) = f(<M>)(w) Considere a máquina F = ABG. Vamos mostrar que F é equivalente à máquina f(<F>) F = No input w faça: Execute A Execute B % Após a execução do passo 2, tem-se o código <F > de F na fita 1 e w na fita 2 Execute G em (<F,w>) Logo: F(w) = G(<F,w>) = f(<F>)(w). Portanto F é equivalente a f(<F>).


Carregar ppt "Teorema da Recursão Teoria da Computação"

Apresentações semelhantes


Anúncios Google