260 likes | 380 Views
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.
E N D
Variantes de Máquina de Turing Teoria da Computação
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 SIMBOLOS DA FITA - inclui o simbolo B (branco) B Σ δ : 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))
δ(q0,(0,B,B)) = (q1,(1,0,1),(R,R,R)) 1 0 2 B 0 0 0 2 Fita 1 B B B qo Fita 2 B B B B B B B B B B B qo Fita 3 B B B B B B B B B B B qo
δ(q1,(0,B,B)) = (q2,(0,0,0),(L,R,L)) 1 0 2 B 1 0 0 2 B B B q1 B B B B 0 B B B B B B q1 B B B B 1 B B B B B B q1
δ(q1,(0,B,B)) = (q2,(0,0,0),(L,R,L)) 1 0 2 B 1 0 0 2 B B B q2 B B B B 0 0 B B B B B q2 B B B B 1 0 B B B B B q2
Linguagem aceita • M = máquina de Turing com k fitas • L(M) = conjunto dos strings aceitos por M • String aceito por M = a partir da configuração inicial é possível chegar numa configuração de aceitação (estado final qa).
Teorema • Seja M uma máquina de Turing com k fitas. Então existe uma máquina de Turing S simples (com uma fita) tal que : L(M) = L(S) Isto é: Toda máquina de Turing com k fitas é equivalente a uma máquina de Turing simples (com 1 única fita)
Como simular uma configuração de M’ numa máquina com 1 fita: B B B B B B 1 0 B B B q2 B B B B 0 0 B B B B B q2 1 0 B B B B B B B B B q2 # B # 0 0 1 0 # 1 0 #
Construção da Máquina Simples S S = No input w faça: • Transforme o input w no correspondente input w’ que simula w na fita 1 de M’. • Para simular um movimento de S: • Varra a fita de S, a partir do primeiro # até o (k+1) – ésimo, e “memorize” os k simbolos com pontinhos. • Aplique a transição de M’ correspondente. • Varra a fita de S novamente a partir do primeiro #, aplicando as modificações ditadas pela transição de M’ correspondente à sequência de simbolos memorizada. • Caso um pontinho deva ser colocado em cima de um #, escreva B com pontinho neste lugar, e dê um shift na fita para a direita a partir desta posição.
qa q0 q0 q0 q0 q0 Exemplo δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,B,R)} q0 0 1 1 B B 0 0 0 q0 q1 0 0 0 q1 q0 q1 1 1 1 q0 q1 1 1 q0 q1 B B B q1 qa B B qr q1 qr
q0 q0 q0 q0 q0 q1 qr Exemplo δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,B,R)} q0 0 1 1 B B 0 0 0 q0 q1 0 0 0 q1 q0 q1 1 1 1 q0 q1 1 1 q0 q1 B B B q1 qa B B qr q1 qr
q1 q0 q0 q0 q0 q0 q1 Exemplo δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,B,R)} q0 0 1 1 B B 0 0 0 q0 q1 0 0 0 q1 q0 q1 1 1 1 q0 q1 1 1 q0 q1 B B B q1 qa B B qr q1 qr looping
Árvore de execução • A cada string w está associada uma árvore de execução Aw da máquina M. • Possibilidades: • Existe um ramo que termina em qa • Nao existem ramos que terminam em qa • Todos os ramos terminam em qr • Existem ramos infinitos
qa qr looping qr qr qr M não aceita w M aceita w, w pertence a L(M) qr qr looping M não aceita w L(M) = Linguagem aceita pela máquina não-determinista M = conjunto dos strings para os quais existe um caminho na árvore de 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 árvorede execuçãode M é infinita, entãoM não decide L(M) L(M) é a linguagem aceita por M mas M não decide L(M).
Equivalência: Máquinas deterministas e não-deterministas • Seja M’ uma máquina de Turing não-determinista. Então, existe uma máquina de Turing MDETERMINISTA tal que L(M) = L(M’) Isto é, os strings aceitos por M são exatamente aqueles aceitos por M’.
Prova • Seja M’ uma máquina não-derminista • Seja N = número máximo de escolhas possíveis para os comandos de M’ • Exemplo : δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,1,R)} δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} N = 2
FITA DE INPUT Vamos construir uma máquina determinista M de 3 fitas equivalente a M’ 1 1 0 0 FITA DE CÁLCULO FITA DAS POSSIBILIDADES 2 1 1 Serão executados 3 passos de M’ Passo 1 : opção 1 Passo 2 : opção 1 Passo 3 : opção 2
Ordena-se todos os strings finitos sobre o alfabeto {1,2,…,N} • cada string indica o número de passos da máquina M’ que serão executados e as opções consideradas em cada passo. • Para cada um destes strings z : • Coloca-se z na terceira fita • Coloca-se o string de input w na primeira fita • Utiliza-se a segunda fita para efetuar os passos indicados na terceira fita em cima do input w da primeira fita • Se a máquina M’ aceita w então em algum momento um destes cálculos termina em qa
q0 q0 q0 q0 q0 q0 δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,B,R)} δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} q0 B B 0 1 1 0 0 0 q0 q1 q0 0 0 0 q1 0 1 1 B B 0 q0 q1 q0 1 1 1 q0 q1 1 1 q0 q1 B B B 1 1 B q1 qa B B qr q1 qr
q0 q0 q0 q0 q1 q1 δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,B,R)} δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} q0 B B 0 1 1 0 0 0 q0 q1 q0 0 0 0 q1 0 1 1 B B 0 q0 q1 q0 1 1 1 q0 q1 1 1 q0 q1 B B B 1 2 q1 B qa B B qr q1 qr
qa qa q0 q0 q0 q0 q0 q0 q0 q0 q0 q0 δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)} δ(q0,B) = {(qa,B,R), (q1,B,R)} δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} q0 B B 0 1 1 0 0 0 q0 q1 q0 q0 0 0 0 q1 0 1 1 B B 0 q0 q1 q0 1 1 1 q0 q1 1 1 q0 q1 B B B 1 1 1 1 1 q1 B qa B B qr q1 qr