BCC244-Teoria da Computação
Prof. Lucília Figueiredo
DECOM
ICEB - UFOP
Lista de Exercícios 03
Máquinas de Turing - Computabilidade
1. Seja L uma linguagem não livre de contexto. Mostre que:
(a) Se X uma linguagem finita, então L − X não é livre de contexto.
Seja X finita e suponha, por contradição, que L − X seja livre de contexto. Como X
é finita, temos que L ∩ X é finita e, portanto, é livre de contexto, Como a classe das
linguagens livres de contexto é fechada em relação à interseção, teríamos que (L − X) ∪
(L ∩ X) é livre de contexto. Mas (L − X) ∪ (L ∩ X) = L e L não é livre de contexto.
Portanto, se X é finita, então L − X não é livre de contexto.
(b) Se X é uma linguagem regular, então L − X pode ser livre de contexto ou pode não ser.
Considere L − Σ∗ = ∅. Temos que Σ∗ é regular e ∅ é livre de contexto. Por outro lado,
considere L − ∅ = L. Temos que ∅ é regular e L não é livre de contexto. Portanto, se L
não é livre de contexto e X é regular, L − X pode ser livre de contexto ou não.
2. Construa uma MT que reconheça a linguagem a∗ b∗ .
b → b, D
a → a, D
t → t, D
b → b, D
3. Descreva, em linguagem de alto nível, uma MT que reconheça a linguagem {an bn cn | n ≥ 0}.
while current-symbol == a
escreve x, anda para a direita
while current-symbol <> b
escreve o mesmo simbolo lido, anda para direita
escreve y, anda para a direita
while current-symbol <> c
escreve o mesmo simbolo lido, anda para direita
escreve z, anda para a esquerda
while current-symbol <> x
escreve o mesmo simbolo lido, anda para esquerda
escreve x, anda para a direita
if current-symbol == t then aceita else rejeita.
OBS: Note que, se o número de a’s for maior do que o número de b’s ou do que o número de
c’s, a máquina entra em loop e, portanto, o string não será aceito. Se o número de b’s ou de c’s
for maior do que o número de a’s, o símbolo encontrado no final do loop mais externo não será
branco e, portanto, o string não será aceito.
4. Prove que a classe das linguagens Turing-decidíveis (ou recursivas) é fechada em relação as
operações de união, interseção e concatenação.
5. Prove que a classe das linguagens Turing-reconhecíveis (ou recursivamente enumeráveis) é
fechada em relação as operações de união, interseção e concatenação.
6. Seja L uma linguagem não recursiva.
(a) Mostre que, se X é finita então L − X é não recursiva.
(b) Mostre que L é não recursiva.
(c) Mostre que, se L é LRE, então L não é LRE.
7. POSCOMP 2008 - Assinale a afirmativa INCORRETA:
Existe uma Máquina de Turing U que simula qualquer outra Máquina de Turing M sobre
qualquer entrada w.
A Tese de Church-Turing afirma que o conceito informal de procedimento efetivo é capturado pelo conceito formal de Máquina de Turing.
Uma linguagem é recursivamente enumerável se, e somente se, ela é aceita por alguma
Máquina de Turing.
Existe uma Máquina deTuring T que, dada uma Máquina de Turing M e uma entrada w
para M , T determina, em um número finito de passos, se M pára ou não para a entrada w.
Toda linguagem recursiva é recursivamente enumerável, mas o inverso nem sempre é
verdadeiro.
8. Sejam L e L uma linguagem e o seu complemento, respectivamente. Marque as situações
abaixo que não podem ocorrer:
L e L são ambas recursivas.
L é recursivamente enumerável, mas não é recursiva, e L não é recursivamente enumerável.
L e L são ambas recursivamente enumeráveis, mas não são recursivas.
L é regular e L não é regular.
L é livre de contexto e L não é livre de contexto.
9. Assinale as afirmativas CORRETAS:
Toda Linguagem enumerável é recursivamente enumerável.
Toda Linguagem Livre de Contexto é decidível.
Existem linguagens Regulares que não são decidíveis.
Toda linguagem é reconhecível ou é co-reconhecível.
O conjunto de todos os strings sobre um alfabeto Σ é recursivamente enumerável.
O conjunto de todas as MTs é enumerável, mas não é recursivamente enumerável.
O conjunto de todos as MTs cuja linguagem é vazia é enumerável mas não é recursivamente enumerável.
10. Com relação a linguagens e seus aceitadores (ou reconhecedores), marque as afirmativas a
seguir que são corretas.
{w wR | w ∈ {a, b}∗ } é aceita por autômato de pilha determinista.
{w c wR | w ∈ {a, b}∗ } é aceita por autômato finito não determinista.
{a2n bm | n, m ≥ 0} é aceita por autômato finito não determinista.
{w c w | w ∈ {a, b}∗ } é aceita por autômato de pilha determinista.
{M | M é uma MT e M pára para alguma entrada } é reconhecida por uma Máquina de
Turing não determinista.
{w w | w ∈ {a, b}∗ } é aceita por uma máquina de Turing que sempre pára.
11. Considere as seguintes linguagens, sobre um dado alfabeto Σ:
ARE = {hD, si | o AFD D aceita a string s}
ERE = {hDi | a linguagem reconhecida pelo AFD D é ∅}
AT M = {hM, si | a máquina de Turing M aceita a string s}
ET M = {hM i | a linguagem reconhecida pela máquina de Turing M é ∅}
ALLT M == {hM i | a linguagem reconhecida pela máquina de Turing M é Σ∗ }
Marque a afirmativas CORRETA:
Todas as linguagens acima são enumeráveis.
Todas as linguagens acima são decidíveis.
Apenas as linguagens ET M e ALLT M não são reconhecíveis.
A linguagem ET M é co-reconhecível.
A linguagem ALLT M não é reconhecível, nem co-reconhecível.
A linguagem AT M é reconhecível e co-reconhecível.
12. Um problema de decisão é um problema cuja resposta é sim ou não. Por exemplo, determinar se
um string w pertence a uma linguagem L, ou determinar uma máquina de Turing M reconhece
a linguagem vazia, ou determinar se x + y = z. Uma instância de um problema de decisão é um
caso particular deste problema. Por exemplo, 3 + 2 = 5 é uma instância positiva do problema
x + y = z e 2 + 3 = 10 é uma instâncoa negativa deste problema. Dizemos que um problema
de decisão P é decidível, se existe uma máquina de Turing que decide este problema, isto é,
que é capaz de determinar, dada uma instância qualquer do problema como entrada, se esta é
uma instância positiva ou não é.
Dizemos que um problema de decisão P reduz para outro problema de decisão P 0 , se existe um
algoritmo (ou máquina de Turing) que converte cada instância do Problema P em uma instância
do problema P 0 .
Considere três problemas de decisão P1 , P2 e P3 . Sabemos que P1 é decidível e P2 não não é
decidível. Marque a afirmativa CORRETA:
P3 é decidível se P1 reduz para P3 .
P3 não é decidível se P3 reduz para P2 .
P3 não é decidível se P2 reduz para P3 .
P3 é decidível se P3 reduz para o complemento de P2 .
13. (1,0 ponto) O "poder computacional" de um computador consiste na classe de problemas que
podem ser resolvidos por meio de programas executados nesse computador. Considere um
computador moderno usual, tal como o seu PC. Com base nos resultados da teoria de máquinas
de Turing, analise as seguintes afirmativas e marque aquelas que são CORRETAS:
Um computador com vários processadores, que pode executar computações em paralelo,
tem o mesmo poder computacional que outro que tenha um único processador.
Um computador que tenha uma memória com acesso apenas sequencial tem menor poder
computacional do que outro que tenha acesso direto a qualquer posição de memória.
Um computador com vários dispositivos de memória tem maior poder computacional que
outro computador com apenas uma área de memória, com a mesma capacidade total de
todos os dispositivos de armazenamento do primeiro.
Se o computador tem vários dispositivos de memória e pode ler dados simultaneamente
em cada um desses dispositivos, ele tem maior poder computacional do que se apenas
pudesse ler dados de um único dispositivo de cada vez.
Um computador que tenha apenas um tipo de instrução, que pode ler o valor em uma posição qualquer de memória e determinar o valor a ser escrito na memória e a próxima instrução a ser executada tem o mesmo poder computacional que um computador moderno, que
inclui instruções para carregar e armazenar dados, com diversos tipos de endereçamento à
memória, intruções de teste e desvio, intruções para realizar operações aritméticas etc.
14. A tabela a seguir resume informações que aprendemos ao longo do curso sobre a hierarquia
de linguagens formais – Hierarquia de Chomsky. Preencha as lacunas da tabela, usando como
modelo as informações já preenchidas.
Obesrvações:
(a) Utilize a seguinte simbologia: AF (Autômato de Estados Finitos), AP (Autômato de Pilha), MT (Máquina de Turing), ER (Expressão Regular), GLC (Gramática Livre de Contexto), GSC (Gramática Sensível ao Contexto), GI (Gramática Irrestrita).
(b) Na coluna entitulada "Exemplo", dê uma exemplo de uma linguagem que pertença à classe
indicada e que não pertença à classe imediatamente anterior.
(c) Na coluna entitulada "ND", responda à pergunta "Não determinismo introduz maior poder
computacional ao modelo?".
(d) Na coluna entitulada "Fecho", indique em relação a quais das seguintes operações a classe
de linguagens é fechada: ∪ (união), • (concatenação), ? (fecho de Kleene), ∩ (interseção)
e (complemento).
Classe
Regular
Livre
de
Contexto
Sensível ao
Contexto
Recursiva
Recursiv.
enumerável
Hierarquia de Linguagens
Especificação Exemplo
Reconhecedor
?
(0|1)
{0p | p é primo} MT limitada
linearmente
Gramática
irrestrita
Gramática
irrestrita
ND
Fecho
?
∪, •, ?, ∩,
não
∪, •, ?, ∩,
Download

ex03 - Decom