J.L.Rangel - 1
Linguagens Formais: Lista 2
Rangel 5/7/99
1. Mostre que a linguagem { a2n bn cn | n>0 } é sensível ao contexto, construindo um all
que reconheça a linguagem.
2. Mostre que o conjunto Int2 = Int × Int de pares de inteiros é recursivamente
enumerável, construindo uma mT que justifique a afirmativa.
3. Construa um autômato de pilha A que aceita { ai bi | i ≥ 1 } simultaneamente, por
pilha vazia e por estado final.
4. Classifique a linguagem { ambncmdn | m, n ≥ 0 }, dizendo se ela é ou não
recursivamente enumerável, recursiva, tipo 0, tipo 1, tipo 2, tipo 3.
5. Mostre que a classe das linguagens sensíveis ao contexto é fechada para a interseção.
6. Mostre que a concatenação de dois conjuntos recursivamente enumeráveis é sempre
recursivamente enumerável, mostrando como é possível construir uma mT que aceita a
concatenação das linguagens de duas mT’s dadas.
7. Definição: a reversão da linguagem L é a linguagem LR = { x | xR ∈ L }. Prove ou desprove:
(a)
(b)
(c)
(d)
(e)
(f)
A classe das linguagens regulares é fechada para a reversão.
idem, livres de contexto.
idem, determinísticas
idem, sensíveis ao contexto.
idem, recursivas.
idem, recursivamente enumeráveis.
8. Construa uma máquina de Turing determinística que aceite a linguagem
{xx | x ∈{ a, b }* }.
Mostre a sequência de configurações da máquina que levam à aceitação da cadeia
aaabaaab.
9. Mostre que a linguagem { ai bj | i≠j } é determinística.
10. Prove ou des-prove: A interseção de uma linguagem livre de contexto e uma
linguagem regular é livre de contexto.
11. Mostre que a linguagem { xi $ xj | Mi aceita xj } é recursivamente enumerável,
descrevendo uma máquina de Turing que enumera os elementos da linguagem.
12. Prove ou desprove: as linguagens L = { x xR | x ∈ { 0, 1 }* } e seu complemento são
não determinísticas.
J.L.Rangel - 2
13. (*) Usando o fato de que todo subconjunto de um conjunto enumerável é enumerável,
mostre que todo subconjunto de um conjunto recursivamente enumerável é
recursivamente enumerável.
14. Mostre que, se A e B são conjuntos recursivamente enumeráveis, então A×B também
é recursivamente enumerável.
15. Construa um all que reconheça a linguagem da gramática G
S → aSa | bSb | T
T → cT | c
simulando derivações em G.
16. Mostre que a linguagem { an bn cn dn | n>0 }é sensível ao contexto, construindo um
all que reconheça a linguagem.
17. Classifique a linguagem L={ ai bj | i é múltiplo de j }, dizendo se L é recursivamente
enumerável, recursiva, regular, sensível ao contexto, livre de contexto, tipo 0.
18. Justifique a afirmação “A classe dos conjuntos recursivos é fechada para a operação de
complemento.” usando uma definição de algoritmo baseada em máquinas de Turing.
19. Prove ou desprove: a linguagem { x c y | x, y ∈ {a, b}* e |x| > |y| } é determinística.
20. Mostre como construir uma mT que aceite a união de duas linguagens reconhecidas
por mT’s.
21. Seja x0, x1, x2,... uma enumeração das cadeias em um alfabeto S; seja M0, M1, M2,...
uma enumeração das máquinas de Turing.
Mostre que a linguagem { i#j | Mi aceita xj } (no alfabeto S = {0, 1, # } ) é recursivamente
enumerável. Os números i e j são representados em notação binária.
22. Construa um automato de pilha não determinístico que aceite por pilha vazia a
linguagem { ai bj ck | j=i+k }
23. Construa um automato de pilha não determinístico que aceite por estado final a
linguagem
{ a2n+1 bn | n > 0 }
24. Mostre que a linguagem { x c y | x, y ∈ {a, b}* e |x| > |y| } é livre de contexto,
construindo um apnd que reconheça a linguagem.
25. Construa uma máquina de Turing que aceite a linguagem
{x#y#z | x,y,z∈{0,1}*, e z é a representação em binário da soma dos
J.L.Rangel - 3
naturais representados por x e y}
26. Seja Σ = { 0, 1, c }. Construa uma máquina de Turing determinística que aceita a
linguagem { xcy | x, y ∈ {0, 1}*, e |x| ≠ |y| }.
27. Idem, não determinística.
28. Construa uma máquina de Turing universal. Defina cuidadosamente as codificações
envolvidas.
29. Defina um a2pnd (autômato de duas pilhas, não determinístico) da seguinte maneira:
Um a2pnd é uma construção A = < K, Σ, Γ1, Γ2, δ, i, I1, I2 > onde
K é um conjunto finito de estados
Σ é o alfabeto de entrada
Γ1 e Γ2 são os alfabetos das duas pilhas
δ:K×(Σ∪{ε})×Γ1×Γ2 → P( K×Γ1*×Γ2*)
i é o estado inicial
I1 e I2 são os símbolos iniciais das duas pilhas.
Adicionalmente, duas restrições se aplicam:
• se (p, α, β) ∈ δ(q, a, X, Y), então |α| = |β|.
• δ(q, a, X, Y) é sempre um conjunto finito
Uma configuração de um a2pnd é um elemento de K×Σ*×Γ1*×Γ2*. A configuração inicial
para a entrada x ∈ Σ* é ( i, x, I1, I2 ). Uma configuração é final se pertence a
K×{ε}×{ε}×{ε}, ou seja, a aceitação do a2pnd é por “pilhas vazias”. A relação mudança
de configuração | é dada por:
( q, ay, X1α1, X2α2 ) | ( p, y, γ1α1, γ2α2 ) se ( p, γ1, γ2 ) ∈ δ( q, a, X1, X2 )
e a linguagem do a2pnd A é
L(A) = { x ∈ Σ* | ( i, x, I1, I2 ) |* (p, ε, ε, ε ), para algum p∈K.
Caracterize precisamente a classe das linguagens aceitas por um a2pnd.
Justifique seus resultados.
30. Construa (mesmo) uma máquina de Turing determinística que aceite a linguagem L2 =
{ x ∈ {a,b}* | número de a’s em x = número de b’s em x }.
Download

Linguagens Formais: Lista 2 Rangel 5/7/99 1. Mostre que a linguagem