Você está na página 1de 3

UFG - Instituto de Informática Bacharelado em Ciência da Computação

Introdução à Computabilidade e à Complexidade Computacional


Professor: Julliano Nascimento1

Lista de Exercícios

2 – Linguagens
1. Construa uma definição recursiva do tamanho de uma cadeia sobre o alfabeto Σ. Use a operação primitiva
de definição de cadeia.

2. Construa uma definição recursiva para cada linguagem abaixo:

(a) L1 = {ai bj | i ≥ 0, j = 2i}.


(b) L2 = {xcxR | x ∈ {a, b}∗ }.
(c) L3 = {w ∈ {a, b}∗ | w termina com b e todo a em w é seguido de b}

3. Considere a linguagem L.

(a) Em que situação L∗ é infinita? e finita?


(b) Em que situação L∗ = L+ ?
(c) Em que situação L+ = ∅?
(d) Dê um exemplo de linguagem L para a qual L = L∗ .

4. Dê uma definição recursiva de wi , em que w é uma cadeia e i é um inteiro não negativo.

5. Use a questão anterior e prove por indução matemática que |wi | = i · |w|.

6. Considere o alfabeto Σ. Prove, usando indução sobre o tamanho da cadeia, que (wR )R = w para toda
cadeia w ∈ Σ∗ .

7. Dada uma linguagem L, L∗ ou L+ pode ser igual a ∅? Justifique a sua resposta.

8. Apresente, para cada item abaixo, uma expressão regular que descreva o respectivo conjunto de cadeias.

(a) Cadeias sobre o alfabeto {a, b}, nas quais a subcadeia aa ocorre exatamente uma vez.
(b) Cadeias sobre {a, b, c} que não contém a subcadeia aa.
(c) Cadeias sobre {a, b, c} que começam com a, contém exatamente dois b0 s e termina com c.
(d) Cadeias sobre {a, b, c} nas quais todo b é seguido por pelo menos um c.
(e) Cadeias sobre {a, b} que contém as subcadeias aa e bb.
(f) Cadeias sobre {a, b, c} com comprimento menor que três.

9. Escreva expressões regulares que descrevam as seguintes linguagens especificadas sobre o alfabeto {0, 1}.

(a) L = {w | w começa com 1 e termina com 0}


(b) L = {w | w contém pelo menos três 1s}
(c) L = {w | w contém a subcadeia 0101}
(d) L = {w ||w| ≥ 5}
(e) L = {w | toda posição ímpar de w contém o símbolo 1}

10. Para cada uma das linguagens listadas a seguir, desenhe o diagrama de estados de um DFA (autômato
determinístico) que a aceite:
1
e-mail: jullianonascimento@ufg.br

1
(a) L(M1 ) = {w ∈ {a, b, c}∗ | em w todos os a’s precedem todos os b’s que precedem todos os c’s}
(b) L(M2 ) = {w ∈ {a, b, c}+ | w começa com a, contém exatamente dois b’s e termina com cc}
(c) L(M3 ) = {w ∈ {a, b}+ | w tem número ímpar de a’s e número par de b’s}
(d) L(M4 ) = {w ∈ {a, b, c}∗ | em w cada b é seguido por pelo menos um c}
(e) L(M5 ) = {w ∈ {a, b}∗ | w não contém bb}

11. Para cada uma das expressões regulares listadas a seguir, desenhe o diagrama de estados de um NFA que
aceite a linguagem correspondente:

(a) (ab)∗ ∪ a∗
(b) (ba ∪ bb)∗ ∪ (ab ∪ aa)∗

12. Seja o NFA N = h{s1 , s2 , s3 }, {a, b}, δ, s1 , {s1 , s3 }i com a função de transição:

δ a b 
s1 ∅ {s2 } {s2 }
s2 {s2 } {s3 } ∅
s3 {s1 } ∅ {s2 }

(a) Construa o diagrama de estados de um DFA M que aceite L(N ).


(b) Escreva uma expressão regular para (M ) (converta o DFA obtido no item anterior em um GNFA e o
converta em uma expressão regular).

13. Construa o diagrama de estados de um DFA que aceite cadeias sobre o alfabeto {a, b} que terminem com
abba. Desenhe o diagrama de estados de um NFA com seis estados que aceite a mesma linguagem.

14. Converta os NFA’s N1 = h{a, b}, {s1 , s2 }, {s1 }, δ1 , {s1 }i e N2 = h{a, b}, {s1 , s2 , s3 }, {s1 }, δ2 , {s2 }i em DFA’s.

δ a b 
δ a b
s1 {s3 } ∅ {s2 }
δ1 = s1 {s1 , s2 } {s2 } δ2 =
s2 {s1 } ∅ ∅
s2 ∅ {s1 }
s3 {s2 } {s2 , s3 } ∅

15. Seja N = h{a, b, c}, {s0 , s1 , s2 }, {s0 }, δ, {s1 }i o seguinte NFA-:

δ a b c 
s0 {s0 } ∅ {s1 } {s2 }
δ=
s1 ∅ ∅ {s1 } ∅
s2 ∅ {s1 , s2 } ∅ ∅

(a) Calcule o Fecho (F (si )) para i = 0, 1, 2.


(b) Faça a conversão de N para um DFA M que aceite L(N ).
(c) Escreva uma expressão regular para L(M ).

16. Seja G a gramática livre de contexto definida por:



 S → ASB|
G= A → aAb|
B → bBa|ba

(a) Mostre uma derivação mais à esquerda da cadeia aabbba.


(b) Mostre uma derivação mais a direita de abaabbbabbaa

17. Escreva gramáticas livres de contexto que gerem as linguagens a seguir:

(a) L1 = {w ∈ {0, 1}∗ | w começa e termina com o mesmo símbolo}

2
(b) L2 = {w ∈ {0, 1}∗ | w contém um número ímpar de símbolos}
(c) L3 = {w ∈ {0, 1}∗ | w = wR , ou seja, w é um palíndromo}
(d) L4 = {ai bj ck | i, j, k ≥ 1 e i = j ou j = k}

18. Converta a gramática livre de contexto abaixo para a forma normal de Chomsky.

A → BAB|B|
G=
B → 00|

19. Mostre que se G é um a gramática livre de contexto na forma normal de Chomsky, então a derivação de
qualquer cadeia w ∈ L(G), com |w| ≥ 1, é feita em exatamente 2|w| − 1 passos.

20. Mostre que a classe das linguagens livres de contexto é fechada em relação às operações de união, concate-
nação e fecho estrela.

21. Construa um autômato de pilha para cada linguagem livre de contexto abaixo:

(a) L1 = {an b2n |n > 0}


(b) L2 = {w ∈ {a, b}∗ |w tem mesma quantidade de a’s e b’s}

22. Use o pumping lemma para mostrar que as linguagens a seguir não são regulares:

(a) L1 = {an bn cn |n ≥ 0}
n
(b) L2 = {a2 |n ≥ 0}

Você também pode gostar