variantes de máquina de turing

Post on 19-Jan-2016

53 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Variantes de Máquina de Turing. Teoria da Computação. Máquinas de Turing com Várias Fitas. Definição :. Mk = (Q, Σ , Γ , δ , q0, qa, qr) k = número de fitas. ESTADOS. SIMBOLOS DE INPUT. Estado de Aceitação. ESTADO INICIAL. TRANSIÇÃO DE ESTADOS. Estado de Rejeição. - PowerPoint PPT Presentation

TRANSCRIPT

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

top related