Licenciatura em Engenharia Informática e de Computadores - LEIC Licenciatura em Engenharia de Redes de Comunicações - LERC Exercícios de Teoria da Computação Autómatos finitos não deterministas Secção Ciência da Computação Departamento de Matemática Instituto Superior Técnico 2008/2009
1 Linguagens reconhecidas por autómatos finitos não deterministas Considere o seguinte autómato finito não determinista sem movimentos-ɛ A = (Q, I, δ, q 0, F ) Q = {p, q, r} I = {0, 1, 2} δ(p, 0) = {q}, δ(p, 1) = {p, q} δ(p, 2) = {p} δ(q, 1) = {q, r} δ(r, 2) = {r} δ(q, 0) = δ(q, 2) = δ(r, 0) = δ(r, 1) = q 0 = p F = {q, r}. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato A: (i) 11 (ii) 10 (iii) 120 (iv) 212 (v) 2112 (vi) 2212 (vii) 0112 2. Considere o seguinte autómato finito não determinista sem movimentos-ɛ A = (Q, I, δ, q 0, F ) Q = {p, q, r} I = {x, y, z} δ(p, y) = δ(p, z) = δ(q, x) = {p} δ(r, z) = {q} δ(r, y) = {r} δ(p, x) = δ(q, z) = {q, r} δ(q, y) = δ(r, x) = q 0 = p F = {r}. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato A: (i) xy (ii) zx (iii) xxz (iv) yxy (v) 2112 (vi) zyxx (vii) xzxx 3. Considere o autómato finito não determinista A ɛ = ({q 0, q 1, q 2 }, {0, 1, 2}, δ, q 0, {q 2 }) δ 0 1 2 ɛ q 0 {q 0 } {q 1 } q 1 {q 1 } {q 2 } q 2 {q 2 } 2
Verifique se as sequências (i) 00 (ii) 012 (iii) 022 (iv) 122 (v) 2112 fazem parte da linguagem reconhecida por A ɛ e caracterize a linguagem reconhecida pelo autómato. 4. Considere o autómato finito não determinista A ɛ = ({q 0, q 1, q 2, q 3, q 4, q 5 }, {0, 1, a, b}, δ, q 0, {q 5 }) δ 0 1 a b ɛ q 0 {q 1, q 2 } q 1 {q 3 } {q 1 } q 2 {q 4 } {q 2 } q 3 {q 5 } q 4 {q 5 } q 5 Verifique se as sequências (i) 110 (ii) 101 (iii) ba (iv) abb fazem parte da linguagem reconhecida por A ɛ e caracterize a linguagem reconhecida pelo autómato. 5. Verifique se as sequências (i) ɛ (ii) cc (iii) aba (iv) abb fazem parte da linguagem reconhecida pelo autómato A ɛ = ({q 0, q 1, q 2, q 3 }, {a, b, c}, δ, q 0, {q 2, q 3 }) δ a b c ɛ q 0 {q 1 } {q 3 } q 1 {q 1, q 2 } {q 1 } q 2 {q 0 } q 3 {q 3 } e caracterize a linguagem reconhecida por este autómato. 6. Verifique se as sequências (i) ɛ (ii) 01 (iii) 011 (iv) 1aba fazem parte da linguagem reconhecida pelo autómato A ɛ = ({q 0, q 1, q 2, q 3 }, {0, 1, a, b}, δ, q 0, {q 2 }) 3
δ 0 1 a b ɛ q 0 {q 0 } {q 1 } q 1 {q 1 } {q 0 } {q 2 } q 2 {q 3 } {q 2 } q 3 {q 2 } {q 3 } e caracterize a linguagem reconhecida por este autómato. 2 Concepção de autómatos finitos não deterministas Seja L o conjunto das palavras sobre o alfabeto {0, 1} que têm 1 na penúltima posição. (a) Defina um autómato finito não determinista cuja linguagem seja L. (b) Defina um autómato finito determinista cuja linguagem seja L. 2. Seja L o conjunto das das palavras sobre o alfabeto {0, 1} que têm 1 na antepenúltima posição. (a) Defina um autómato finito não determinista cuja linguagem seja L. (b) Defina um autómato finito determinista cuja linguagem seja L. 3. Seja L o conjunto das sequências não vazias de a s, b s e c s nas quais o último símbolo ocorre pelo menos duas vezes em toda a sequência. Defina um autómato finito não determinista cuja linguagem seja L. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato: (i) aca (ii) bbc (iii) abcb 4. Seja L o conjunto das sequências não vazias de a s, b s e c s nas quais o último símbolo ocorre uma única vez em toda a sequência. Defina um autómato finito não determinista cuja linguagem seja L. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato: (i) aca (ii) bbc (iii) accb 5. Seja L a linguagem constituída pelas palavras sobre o alfabeto {0, 1, 2} do tipo α 1 α 2 α 3 onde α 1 {0}, α 2 {1} +, α 3 {2} e se α 1 é ɛ então α 2 é Defina um autómato finito não determinista A, com três estados, L A = L. 6. Seja L a linguagem constituída pelas palavras sobre {a, b, c} do tipo αβ onde α é uma sequência não vazia e β {a} + ou β {b} +. Defina um autómato finito não determinista A, com três estados, L A = L. 4
3 Eliminação dos movimentos ɛ (a) Considere o autómato finito não determinista sem movimentos ɛ A = ({q 0, q 1, q 2 }, {0, 1, 2}, δ A, q 0, {q 0, q 2 }) δ A 0 1 2 q 0 {q 0, q 1, q 2 } {q 1, q 2 } {q 2 } q 1 {q 1, q 2 } {q 2 } q 2 {q 2 } Caracterize a linguagem de A e compare-a com a linguagem do autómato finito não determinista do exercício 3 da secção Compare os dois autómatos. (b) Considere o autómato finito não determinista sem movimentos ɛ A = ({q 0, q 1, q 2, q 3, q 4, q 5 }, {0, 1, a, b}, δ A, q 0, {q 5 }) δ 0 1 a b q 0 {q 3, q 5 } {q 1 } {q 4, q 5 } {q 2 } q 1 {q 3, q 5 } {q 1 } q 2 {q 4, q 5 } {q 2 } q 3 q 4 q 5 Caracterize a linguagem de A e compare-a com a linguagem do autómato finito não determinista do exercício 4 da secção Compare os dois autómatos. (c) Proponha um algoritmo que a partir de um autómato finito não determinista, A ɛ, construa um autómato finito não determinista sem movimentos ɛ, A, L A = L A ɛ. 2. Use um algoritmo que conheça para construir autómatos finitos não deterministas sem movimentos ɛ que reconheçam as linguagens dos autómatos finitos não deterministas referidos nos exercícios 3, 4, 5 e 6 da secção 4 Eliminação do não determinismo (a) Seja I = {a, b} e considere os autómatos A = (Q A, I, δ A, q0 A, F A) no qual se tem Q A = {q 0, q 1 }, q0 A = q 0, F A = {q 1 } e δ A a b q 0 {q 0, q 1 } {q 1 } q 1 5
D = (Q D, I, δ D, q D 0, F D) no qual se tem Q D = {q 0, q 1, q 0 q 1, }, q D 0 = q 0, F D = {q 1, q 0 q 1 } e δ D a b q 0 q 0 q 1 q 1 q 1 q 0 q 1 q 0 q 1 q 1 Caracterize as linguagens L A e L D. Compare os autómatos A e D. (b) Seja I = {0, 1, 2} e considere os autómatos A = (Q A, I, δ A, q A 0, F A) no qual se tem Q A = {q 0, q 1, q 2, q 3 }, q A 0 = q 0, F A = {q 3 } e δ A 0 1 2 q 0 {q 1, q 2, q 3 } q 1 {q 1, q 3 } q 2 {q 2, q 3 } q 3 {q 3 } D = (Q D, I, δ D, q D 0, F D) no qual se tem Q D = {q 0, q 3, q 1 q 3, q 2 q 3, q 1 q 2 q 3, }, q D 0 = q 0, F D = {q 3, q 1 q 3, q 2 q 3, q 1 q 2 q 3 } e δ D 0 1 2 q 0 q 1 q 2 q 3 q 3 q 3 q 1 q 3 q 1 q 3 q 3 q 2 q 3 q 3 q 2 q 3 q 1 q 2 q 3 q 1 q 3 q 3 q 2 q 3 Caracterize as linguagens L A e L D. Compare os autómatos A e D. (c) Proponha um algoritmo que a partir de um autómato finito não determinista sem movimentos-ɛ A construa um autómato finito determinista D L D = L A. 2. Use um algoritmo que conheça para construir autómatos finitos deterministas que reconheçam as linguagens dos autómatos finitos não deterministas referidos nos exercícios (a) 1a e 1b. (b) 1 e 2 da secção (c) 1, 2, 3, 4, 5 e 6 da secção 2. 6
5 Reunião, concatenação e fecho de Kleene de linguagens (a) Esboce um algoritmo que a partir de dois autómatos finitos não deterministas A 1 e A 2 construa autómato finito não determinista A L A = L A1 L A2. (b) Usando o algoritmo proposto defina um autómato finito cuja linguagem seja L A1 L A2 em que δ 1 0 1 2 p {p, q} {p} {p} A 1 = ({p, q, r}, {0, 1, 2}, δ 1, p, {r}) e q {r} r {r} {r} {r} A 2 = ({s, t, u, v}, {0, 1, 2}, δ 2, s, {v}) e δ 2 0 1 2 s {t} t {t} {u} u {u} {v} v {v} (c) Usando o algoritmo proposto defina dois autómatos finitos cuja linguagem seja L A1 L A2 onde A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (d) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagem seja L A1 L A2 onde A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (e) Tirando partido do algoritmo proposto defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) não têm a s consecutivos; (ii) têm um número ímpar de c s. (f) Tirando partido do algoritmo proposto defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) têm pelo menos dois a s; (ii) têm um número par de c s. 2. (a) Esboce um algoritmo que a partir de dois autómatos finitos não deterministas A 1 e A 2 construa um autómato finito não determinista A L A = L A1 L A2. (b) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagens sejam, respectivamente, L A1 L A2 e L A2 L A1 onde A 1 e A 2 são os autómatos apresentados no exercício 1b desta secção. 7
(c) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagens sejam, respectivamente, L A1 L A2 e L A2 L A1 onde A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (d) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagens sejam, respectivamente, L A1 L A2 e L A2 L A1 onde A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção 3. (a) Esboce um algoritmo que a partir de um autómato finito não determinista A construa um autómato finito não determinista A L A = (L A ). (b) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagem sejam respectivamente, (L A1 ) e (L A2 ) onde A 1 e A 2 são os autómatos apresentados no exercício 1b desta secção. (c) Usando o algoritmo proposto defina um autómato finito cuja linguagem sejam (L A ) onde A é i. o autómato apresentado no exercício 1 da secção ii. o autómato apresentado no exercício 2 da secção iii. o autómato A ɛ apresentado no exercício 3 da secção iv. o autómato A ɛ apresentado no exercício 5 da secção v. o autómato apresentado no exercício 1b da secção 4. 6 Soma, composição sequencial e iteração de autómatos Construa o autómato soma(a 1, A 2 ) e relacione a linguagem deste autómato com as linguagens dos autómatos A 1 e A 2 em que (a) A 1 e A 2 são os autómatos apresentados no exercício 1b da secção 5. (b) A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (c) A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção 2. Tirando partido da operação de soma de autómatos defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) não têm a s consecutivos; (ii) têm um número ímpar de c s. 3. Tirando partido da operação de soma de autómatos defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) têm pelo menos dois a s; (ii) têm um número par de c s. 4. Construa o autómato compseq(a 1, A 2 ) e relacione a linguagem deste autómato com as linguagens dos autómatos A 1 e A 2 em que 8
(a) A 1 e A 2 são os autómatos apresentados no exercício 1b da secção 5. (b) A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (c) A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção 5. Construa o autómato iteração(a) e relacione a linguagem deste autómato com a linguagem do autómato A onde A é (a) o autómato apresentado no exercício 1 da secção (b) o autómato apresentado no exercício 2 da secção (c) o autómato A ɛ apresentado no exercício 3 da secção (d) o autómato A ɛ apresentado no exercício 5 da secção (e) o autómato apresentado no exercício 1b da secção 4. 9