Variantes de Máquina de Turing Teoria da Computação.

24
Variantes de Máquina Variantes de Máquina de Turing de Turing Teoria da Computação Teoria da Computação

Transcript of Variantes de Máquina de Turing Teoria da Computação.

Page 1: Variantes de Máquina de Turing Teoria da Computação.

Variantes de Máquina Variantes de Máquina de Turingde Turing

Teoria da ComputaçãoTeoria da Computação

Page 2: Variantes de Máquina de Turing Teoria da Computação.

Máquinas de Turing com Máquinas de Turing com Várias FitasVárias Fitas

Page 3: Variantes de Máquina de Turing Teoria da Computação.

Definição :Definição :Mk = (Q, Σ, Γ, δ, q0, qa, qr)

k = número de fitas

ESTADOS SIMBOLOS DE INPUT TRANSIÇÃO

DE ESTADOS

ESTADO INICIAL

Estado de Aceitação

SIMBOLOS DA FITA - inclui o simbolo B (branco)B Σ

Estado de Rejeição

δ : Q x Γk Q x Γk x {L,R}k

δ(q,(s1,s2,...,sk)) = (q’,(s’1,s’2,...,s’k),(L,R,R,L...,R))

Page 4: Variantes de Máquina de Turing Teoria da Computação.

0 0 0 2 1 0 2 B B B B

B B B B B B B B B B B

qo

qo

qo

B B B B B B B B B B B

δ(q0,(0,B,B)) = (q1,(1,0,1),(R,R,R))

Fita 1

Fita 2

Fita 3

Page 5: Variantes de Máquina de Turing Teoria da Computação.

1 0 0 2 1 0 2 B B B B

0 B B B B B B B B B B

q1

q1

q1

1 B B B B B B B B B B

δ(q1,(0,B,B)) = (q2,(0,0,0),(L,R,L))

Page 6: Variantes de Máquina de Turing Teoria da Computação.

1 0 0 2 1 0 2 B B B B

0 0 B B B B B B B B B

q2

q2

1 0 B B B B B B B B B

δ(q1,(0,B,B)) = (q2,(0,0,0),(L,R,L))

q2

Page 7: Variantes de Máquina de Turing Teoria da Computação.

Linguagem aceitaLinguagem aceita

• M = máquina de Turing com k fitasM = máquina de Turing com k fitas

• L(M) = conjunto dos strings aceitos por L(M) = conjunto dos strings aceitos por MM

• String aceito por M = a partir da String aceito por M = a partir da configuração inicial é possível chegar configuração inicial é possível chegar numa configuração de aceitação numa configuração de aceitação (estado final q(estado final qaa).).

Page 8: Variantes de Máquina de Turing Teoria da Computação.

TeoremaTeorema

• Seja M uma máquina de Turing com k Seja M uma máquina de Turing com k fitas. Então existe uma máquina de Turing fitas. Então existe uma máquina de Turing S simples (com uma fita) tal que :S simples (com uma fita) tal que :

L(M) = L(S)L(M) = L(S)

Isto é: Toda máquina de Turing com k fitas é Isto é: Toda máquina de Turing com k fitas é equivalente a uma máquina de Turing equivalente a uma máquina de Turing simples (com 1 única fita)simples (com 1 única fita)

Page 9: Variantes de Máquina de Turing Teoria da Computação.

Como simular uma Como simular uma configuração de Mconfiguração de M’’ numa numa máquina com 1 fita:máquina com 1 fita:

1 0 B B B B

0 0 B B B B B B B B B

q2

q2

1 0 B B B B B B B B B

q2

# 1 0 B ##

B B B B B

0 0 1 0#

Page 10: Variantes de Máquina de Turing Teoria da Computação.

S = No input w faça:S = No input w faça:1.1. Transforme o input w no correspondente input Transforme o input w no correspondente input

ww ’’ que simula w na fita 1 de M que simula w na fita 1 de M ’’..2.2. Para simular um movimento de S:Para simular um movimento de S:

1.1. Varra a fita de S, a partir do primeiro # até o (k+1) – Varra a fita de S, a partir do primeiro # até o (k+1) – ésimo, e ésimo, e ““memorizememorize”” os k simbolos com pontinhos. os k simbolos com pontinhos.

2.2. Aplique a transição de MAplique a transição de M’’ correspondente. correspondente.3.3. Varra a fita de S novamente a partir do primeiro #, Varra a fita de S novamente a partir do primeiro #,

aplicando as modificações ditadas pela transição de Maplicando as modificações ditadas pela transição de M’’ correspondente à sequência de simbolos memorizada.correspondente à sequência de simbolos memorizada.

4.4. Caso um pontinho deva ser colocado em cima de um Caso um pontinho deva ser colocado em cima de um #, escreva B com pontinho neste lugar, e dê um shift #, escreva B com pontinho neste lugar, e dê um shift na fita para a direita a partir desta posição. na fita para a direita a partir desta posição.

Construção da Máquina Construção da Máquina Simples SSimples S

Page 11: Variantes de Máquina de Turing Teoria da Computação.

Máquinas de Turing Não Máquinas de Turing Não DeterministasDeterministas

Page 12: Variantes de Máquina de Turing Teoria da Computação.

ExemploExemploδδ(q0,0) = {(q0,0,R),(q1,1,R)} (q0,0) = {(q0,0,R),(q1,1,R)} δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q1,B,R)}(q0,B) = {(qa,B,R), (q1,B,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

0 B1 1

q0

0

0

q0

q0 q1

q1q0

0

0

q0

1

1

q0B

qa q1

B

qrB B

q1

0q1

q111

1q1

Bqr

q0 q0 qaq0 q0

B0

Page 13: Variantes de Máquina de Turing Teoria da Computação.

ExemploExemploδδ(q0,0) = {(q0,0,R),(q1,1,R)} (q0,0) = {(q0,0,R),(q1,1,R)} δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q1,B,R)}(q0,B) = {(qa,B,R), (q1,B,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

0 B1 1

q0

0

0

q0

q0 q1

q1q0

0

0

q0

1

1

q0B

qa q1

B

qrB B

q1

0q1

q111

1q1

Bqr

q0 q0 q1q0 q0

B0

qr

Page 14: Variantes de Máquina de Turing Teoria da Computação.

ExemploExemploδδ(q0,0) = {(q0,0,R),(q1,1,R)} (q0,0) = {(q0,0,R),(q1,1,R)} δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q1,B,R)}(q0,B) = {(qa,B,R), (q1,B,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

0 B1 1

q0

0

0

q0

q0 q1

q1q0

0

0

q0

1

1

q0B

qa q1

B

qrB B

q1

0q1

q111

1q1

Bqr

q0 q0 q1q0 q0

B0

q1

looping

Page 15: Variantes de Máquina de Turing Teoria da Computação.

Árvore de execução Árvore de execução

• A cada string w está associada uma A cada string w está associada uma árvore de execução Aárvore de execução Aww da máquina M. da máquina M.

• Possibilidades:Possibilidades:– Existe um ramo que termina em qExiste um ramo que termina em qaa

– Nao existem ramos que terminam em qNao existem ramos que terminam em qaa

•Todos os ramos terminam em qTodos os ramos terminam em qrr

•Existem ramos infinitosExistem ramos infinitos

Page 16: Variantes de Máquina de Turing Teoria da Computação.

qr

M aceita w, w pertence a L(M)

qa

looping

M não aceita w

qr

qr

looping

M não aceita wqr

qr

qr

L(M) = Linguagem aceita pela máquina não-determinista M = conjunto dos strings para os quais existe um caminho na árvorede execução que termina em qa

Page 17: Variantes de Máquina de Turing Teoria da Computação.

Se para qualquer string w, sua árvore de execução éfinita, então M decide L(M)

Se existe string w tal que a árvore de execução de M éinfinita, então M não decide L(M)

L(M) é a linguagem aceita por M mas M não decide L(M).

Page 18: Variantes de Máquina de Turing Teoria da Computação.

Equivalência: Máquinas Equivalência: Máquinas deterministas e não-deterministas e não-deterministasdeterministas• Seja Seja M’M’ uma máquina de Turing uma máquina de Turing não-deterministanão-determinista..

Então, existe uma máquina de Turing Então, existe uma máquina de Turing MM DETERMINISTADETERMINISTA tal que tal que

L(M) = L(M’)L(M) = L(M’)

Isto é, os strings aceitos por Isto é, os strings aceitos por MM são são exatamente aqueles aceitos por exatamente aqueles aceitos por M’.M’.

Page 19: Variantes de Máquina de Turing Teoria da Computação.

ProvaProva

• Seja M’ uma máquina não-derministaSeja M’ uma máquina não-derminista

• Seja Seja NN = número máximo de = número máximo de escolhas possíveis para os comandos escolhas possíveis para os comandos de M’de M’

• ExemploExemplo : : δδ(q0,0) = {(q0,0,R),(q0,0) = {(q0,0,R),(q1,1,R)} (q1,1,R)}

δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q0,B) = {(qa,B,R),

(q1,1,R)}(q1,1,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

N = 2

Page 20: Variantes de Máquina de Turing Teoria da Computação.

Vamos construir uma máquina determinista Vamos construir uma máquina determinista M de M de 3 fitas3 fitas equivalente a M’ equivalente a M’

FITA DE INPUT

FITA DE CÁLCULO

FITA DAS POSSIBILIDADES

0 0 1 1

1 1 2

Serão executados 3 passos de M’Passo 1 : opção 1Passo 2 : opção 1Passo 3 : opção 2

Page 21: Variantes de Máquina de Turing Teoria da Computação.

• Ordena-se todos os strings finitos sobre o Ordena-se todos os strings finitos sobre o alfabeto {1,2,…,N} alfabeto {1,2,…,N} – cada string indica o número de passos da cada string indica o número de passos da

máquina M’ que serão executados e as opções máquina M’ que serão executados e as opções consideradas em cada passo.consideradas em cada passo.

• Para cada um destes strings z :Para cada um destes strings z :– Coloca-se z na terceira fitaColoca-se z na terceira fita– Coloca-se o string de input w na primeira fitaColoca-se o string de input w na primeira fita– Utiliza-se a segunda fita para efetuar os passos Utiliza-se a segunda fita para efetuar os passos

indicados na terceira fita em cima do input w indicados na terceira fita em cima do input w da primeira fitada primeira fita

• Se a máquina M’ aceita w então em algum Se a máquina M’ aceita w então em algum momento um destes cálculos termina em momento um destes cálculos termina em qqaa

Page 22: Variantes de Máquina de Turing Teoria da Computação.

δδ(q0,0) = {(q0,0,R),(q0,0) = {(q0,0,R),(q1,1,R)} (q1,1,R)}

δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q0,B) = {(qa,B,R),

(q1,B,R)}(q1,B,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

0 0 1 1 B B

q0

1 1

0 B1 1

q0

0

0

q0

q0 q1

q1q0

0

0

q0

1

1

q0B

qa q1

B

qrB B

q1

0q1

q111

1q1

Bqr

q0

B0

q0

q0

q0q0 q0

B

Page 23: Variantes de Máquina de Turing Teoria da Computação.

δδ(q0,0) = {(q0,0,R),(q0,0) = {(q0,0,R),(q1,1,R)} (q1,1,R)}

δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q0,B) = {(qa,B,R),

(q1,B,R)}(q1,B,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

0 0 1 1 B B

q0

1 2

0 B1 1

q0

0

0

q0

q0 q1

q1q0

0

0

q0

1

1

q0B

qa q1

B

qrB B

q1

0q1

q111

1q1

Bqr

q0

B0

q0

q1

q0q0 q1

B

Page 24: Variantes de Máquina de Turing Teoria da Computação.

δδ(q0,0) = {(q0,0,R),(q0,0) = {(q0,0,R),(q1,1,R)} (q1,1,R)}

δδ(q0,1) = {(q0,1,R)}(q0,1) = {(q0,1,R)}δδ(q0,B) = {(qa,B,R), (q0,B) = {(qa,B,R),

(q1,B,R)}(q1,B,R)}

δδ(q1,0) = {(q1,0,R)}(q1,0) = {(q1,0,R)}δδ(q1,1) = {(q1,1,R)(q1,1) = {(q1,1,R)δδ(q1,B) = {(qr,B,R), (q1,B) = {(qr,B,R), (q1,B,R)}(q1,B,R)}

0 0 1 1 B B

q0

1 1111

0 B1 1

q0

0

0

q0

q0 q1

q1q0

0

0

q0

1

1

q0B

qa q1

B

qrB B

q1

0q1

q111

1q1

Bqr

q0 q0 qaq0 q0

B0

q0

q0 q0 q0 qaq0 q0

B

q0