Post on 16-Apr-2015
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