Slides - Andrei Formiga
Download
Report
Transcript Slides - Andrei Formiga
Exercícios
Capítulo 3 – A Tese de Church-Turing
Sipser – Introdução à Teoria da Informação
Erick Vagner Cabral
Igor Lucena
Vitor Baptista
Exercicío 3.1
d) 000
Exercicío 3.2
a)
Exercicío 3.4
Definindo um Enumerador:
7-upla (Q, ∑, Γ, δ, q0 , qaceita, qimprime)
δ: QxΓ
Q x Γ x {E,D} x ∑€
FITA DE IMPRESSÃO
FITA DE TRABALHO
mt
abbba
δ define se a cada passo, escreverá na fita de impressão
δ(q0, a) = (q1,a, R, m)
δ(q1, b) = (qprint,a, R, t)
Sempre que entrar no qimprime, “limpa” a fita de impressão
e volta o cabeçote da fita de impressão para o inicio
Pará quando entrar no qaceita
Exercício 3.6
Definição válida para enumerador?
E = “Ignore a entrada
1. Repita o que se segue para i = 0,1,2,...
2. Rode M sobre si.
3. Se ela aceita, imprime si.”
Se M entrar em loop para uma certa entrada si?
E nunca irá testar as entradas posteriores à si(si+1, si+2, ...).
Logo o enumerador irá falhar para L(M).
Exercício 3.7
Por que não é legítima?
M = “A entrada é um polinômio p sobre as x1, x2,..., xk ”
1. Tente todas as possíveis valorações de x1, x2,..., xk para valores
inteiros.
2. Calcule o valor de p sobre todas essas valorações.
3. Se alguma dessas valorações torna o valor de p igual a 0, aceite;
caso contrário, rejeite.”
- Não é uma descrição legítima.
- O erro está no fato de que uma sequencia x1, x2,..., xn tem um
conjunto infinito de possibilidades. E em uma MT é necessário que
possamos descrever cada estágio em uma sequencia finita de
passos.
Problema 3.9
Seja um k-AP um autômato de pilha que tem k pilhas.
Portanto, um 0-AP (AFN) < 1-AP (AP convencional).
a) 2-AP’s são mais poderosos que 1-AP’s?
Resposta:
Seja A = {an bn cn | n ≥ 0} , pelo lema do bombeamento,
provamos um autômato de pilha não é capaz de reconhecer
essa linguagem.
Já se temos 2 pilhas podemos reconhecer essa linguagem
facilmente, fazendo os seguintes passos.
Problema 3.9
cont. 2-AP’s são mais poderosos que 1-AP’s?
A = {an bn cn | n ≥ 0}
-Empilha todos os a’s que aparecerem no
a)
começo da cadeia na Pilha A.
-Empilha todos os b’s que aparecerem
após os a’s na pilha B.
-Lembre-se da ordem! Se aparecer algum
a enquanto estava empilhando b’s. REJEITA.
-Por fim, a partir do primeiro c visto,
Desempilha um a e um b para cada c.
-Se restar algum a ou algum b. REJEITA.
- Se as pilhas A e B estão vazias no fim, ACEITA.
Pilha A
Pilha B
Problema 3.9
cont. 2-AP’s são mais poderosos que 1-AP’s?
-EXEMPLO: w = aabbcc
A = {an bn cn | n ≥ 0}
a)
ACEITA!
a
b
a
b
Pilha A
Pilha B
Problema 3.11
Para provarmos que uma MT M com fita duplamente infinita é
semelhante a uma MT comum, basta provarmos que
podemos simular uma MT comum em uma MT com fita
duplamente infinita.
... a b a a b b b ...
Problema 3.11
Podemos simular uma MT com fita duplamente infinita,
utilizando uma MT com 2-fitas, que é equivalente a uma MT
comum.
a b a b a a ...
M
...
A idéia é separar a fita duplamente infinita em 2 partes.
Problema 3.12
Máquina de Turing com reinicialização à esquerda.
δ: QxΓ
Q x Γ x {D, REINICIA}
Para provarmos que uma MT M com reinicialização
reconhecem a classe de linguagens Turing-recinhecíveis, basta
provarmos que podemos simular uma MT comum em uma
MT com reinicialização à esquerda.
Problema 3.12
Máquina de Turing com reinicialização à esquerda.
δ: QxΓ
Prova:
Q x Γ x {E, D}
a a b b c c a b a ...
FITA MT COMUM
Problema 3.12
Máquina de Turing com reinicialização à esquerda.
δ: QxΓ
Prova:
Q x Γ x {D, REINICIA}
.
a a b b c c a b a ...
FITA MT REINICIA
Problema 3.13
Essa variação da máquina de turing pode ser simulada por um
autômato finito não-determinístico.
Assim como os autômatos essa variante não pode tornar a ler
símbolos que já foram lidos. A leitura do próximo símbolo
é equivalente a andar para a direita. A ação de permanecer
no mesmo local pode ser simulada pelos movimentos
vazios que podem ocorrer nesses autômatos e dispensam a
leitura do próximo símbolo.
Problema 3.15 – Turing-Decidíveis
Concatenação
Para quaisquer 2 linguagens decidíveis L1 e L2 , sejam M1 e M2
MT’s que as decidem. Contruímos uma MT M’ que decide
a concatenação de L1 e L2:
“Sobre a entrada w:
1. Dividir w em 2 partes w1, w2 para cada combinação.
2. Rode M1 sobre w1
3. Rode M2 sobre w2
4. Se as duas aceitarem. Aceite. Continue com os próximos w1
, w2
5. Se todos foram testados sem obter sucesso, Rejeite.
b)
Problema 3.16 – Turing-Reconhecíveis
Concatenação
Para quaisquer 2 linguagens Turing-Reconhecíveis L1 e L2 , sejam M1 e M2 MT’s
que as reconhecem. Contruímos uma MT M’ que reconhece a concatenação
de L1 e L2:
“Sobre a entrada w:
1.
Dividir w em 2 partes w1, w2 para combinação escolhida nãodeterminiscamente.
2.
Rode M1 sobre w1, se parar e rejeitar, Rejeite. Se aceitar, Aceite e vá para o
próximo passo.
3.
Rode M2 sobre w2, se parar e rejeitar, Rejeite. Se aceitar, Aceite.
b)
OBS:
- M’ aceitará porque chega a seu estado de aceitação após um número finito
de passos.
- Se uma delas entrarem em loop, M’ entrará em loop.
Problema 3.15 – Turing-Decidíveis
DICAS:
c) Estrela
Dica: w = w1, w2, ..., wn
Se aceitar à cada w, no término aceitará.
d) Complementação
Roda M. Então se M aceita, REJEITE, Se M rejeitar, ACEITE.
e) Intersecção
Só aceitará se M1 e M2 ambos aceitarem.