220 likes | 346 Views
Máquinas de Turing. Teoria da Computação. 1. 0. 2. B. 0. 0. 0. 2. 4. B. B. B. q. 1. 1. 0. 0. 2. 2. B. B. 0. 0. 0. 0. 0. 0. 2. 2. 4. B. B. B. B. B. B. q. Definição. M = (Q, Σ , Γ , δ , q0, qa, qr). ESTADOS. SIMBOLOS DE INPUT. Estado de Aceitação.
E N D
Máquinas de Turing Teoria da Computação
1 0 2 B 0 0 0 2 4 B B B q
1 1 0 0 2 2 B B 0 0 0 0 0 0 2 2 4 B B B B B B q
Definição M = (Q, Σ, Γ, δ, q0, qa, qr) 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 Σ
Configuração 1 0 2 B 0 0 0 2 B B B 0 0 0 2 q 1 0 2 q q0 0 0 0 2 1 0 2 Configuração Inicial 0 0 0 2 qa1 0 2 Configuração de Aceitação 0 0 0 2 qr1 0 2 Configuração de Rejeição
Um passo de cálculo Configuração 1 Configuração 2 1 0 2 B 0 0 0 2 4 B B B q 0 0 0 2 q1 0 2 0 0 0 q 2 4 0 2
Um passo de cálculo Configuração 1 Configuração 2 1 0 2 B 0 0 0 2 4 B B B q 0 0 0 2 q 1 0 2 0 0 0 2 4 q0 2
Linguagem Aceita • M = Máquina de Turing • w = 010001 string sobre alfabeto de M • w é aceito por M se existe uma sequência finita de passos de cálculo qo010001 C1 …. Ca Configuração inicial Configuração de Aceitação
Linguagem Aceita • M = Máquina de Turing • L(M) = conjunto dos strings construidos sobre o alfabeto de input e que são aceitos por M
Exemplo : M1 • δ(q0,0) = (q0,0,R) • δ(q0,B) = (qa,B,R) • δ(q0,1) = (q2,1,R) • δ(q2,1) = (q2,1,R) • δ(q2,0) = (qr,0,R) • δ(q2,B) = (qa,B,R) • L(M) = {0n 1m | n≥0, m≥0} • Pergunta: Dado w ϵ {0,1}* quais as possibilidades para M1(w) ?
Exemplo: M2 • δ(q0,0) = (q0,0,R) • δ(q0,B) = (qa,B,R) • δ(q0,1) = (q2,1,R) • δ(q2,1) = (q2,1,R) • δ(q2,0) = (qr,0,R) • δ(q2,B) = (q2,B,R) • L(M) = {0n | n≥0} Pergunta: Dado w ϵ {0,1}* quais as possibilidades para M2(w) ?
Exemplo: M3 • δ(q0,0) = (q0,0,R) • δ(q0,B) = (qa,B,R) • δ(q0,1) = (q2,1,R) • δ(q2,1) = (q2,1,R) • δ(q2,0) = (q3,0,R) • δ(q2,B) = (qa,B,R) • δ(q3,B) = (q3,B,R) • δ(q3,0) = (q3,0,R) • δ(q3,1) = (q3,1,R) • L(M) = {0n 1m | n≥0, m≥0} Pergunta: Dado w ϵ {0,1}* quais as possibilidades para M3(w) ?
Linguagem Turing Decidível • Linguagem aceita por alguma Máquina de Turing que sempre pára (para qualquer input) Exemplo: L = {0n 1m | n≥0, m≥0} L = L(M1) Repare que L = L(M3), mas M3 nem sempre pára.
Linguagens Turing Decidíveis • Uma linguagem pode ser aceita por uma máquina que nem sempre pára e mesmo assim ser Turing decidível. • Pois pode ser aceita por uma outra máquina que pára sempre.
Linguagem Turing Reconhecível • Linguagem L aceita por uma máquina que nem sempre pára. • A Máquina pára em qasomente para os strings da linguagem L. • Quando acionada para os strings fora de L, a máquina pára em qr ou simplesmente não pára.
qa Se w pertence a L M w qr Se w não pertence a L L é aceita por M M sempre pára M decide L L é Turing Decidível
qa Se wpertence a L M w qr Se w não pertence a L L é aceita por M M nem sempre pára M não decide L L é Turing Reconhecivel Isto nãoimplica que L não éTuring Decidivel Loop
Resumo • Linguagem Turing Decidível : Aceita por uma MT que sempre pára • Linguagem Turing Reconhecível : Aceita por uma máquina de Turing (pode ser que não páre sempre) • Linguagem Não-Turing Reconhecível : não é aceita por nenhuma máquina de Turing
Propriedade: Se L é Turing decídivel então L é Turing Decídivel qa qa Se w pertence a L M w qr qr Se w não pertence a L Se w pertence a L M’ w Se w não pertence a L M’ decide L
Propriedades • Turing decidível Turing Reconhecível • Turing Reconhecível Turing Decidível • Se L é Turing Reconhecível e L é Turing Reconhecível L é Turing Decidível
qa Se w pertence a L M1 w qr Se w não pertence a L Loop qa M2 Se w não pertence a L w qr Se w pertence a L Loop
qa M1 qa w pertence a L w OU qr M2 qa w não pertence a L M”