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

Post on 16-Apr-2015

117 views 4 download

Transcript of 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

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

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))

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

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))

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

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).).

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)

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#

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

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

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

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

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

Á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

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

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).

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’.

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

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

• 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

δδ(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

δδ(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

δδ(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