Download - Variantes de Máquina de Turing
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