1o semestre de 2012 DCC/ICEx/UFMG Entrega: até 7/5/2011 às 18h Fundamentos da Teoria da Computação Professor: Newton José Vieira Segunda Lista de Exercı́cios Importante: Questões ilegı́veis não serão corrigidas (nota zero). Quem copiar ou deixar copiar uma questão terá nota zero na lista. Locais de recebimento: salas 3018, 4010 e 4023. Após as 18h do dia 7/5 começa o primeiro dia de atraso. 1. Construa AFNs para as seguintes linguagens, com o menor número de estados que conseguir: (a) O conjunto das palavras de {a, b}∗ em que o último sı́mbolo (se houver) seja idêntico ao primeiro (se houver). Note que λ, a e b são palavras da linguagem. (b) O conjunto das palavras de {a, b}∗ em que o último sı́mbolo tenha ocorrido antes. Cada palavra da linguagem tem no mı́nimo dois sı́mbolos. (c) O conjunto das palavras de {a, b}∗ em que o último sı́mbolo (caso exista) tenha ocorrido antes no máximo uma vez. (d) {x1y ∈ {0, 1}∗ | n1 (x) mod 3 = 1 e n0 (y) mod 3 = 1} onde ns (w) é o número de ocorrências do sı́mbolo s na palavra w. 2. Seja o AFN com o diagrama de estados a seguir: b 1 a a 3 b 2 Construa um AFD equivalente usando o método visto em aula (subset construction). Apresente apenas seu diagrama de estados, com cada estado do AFD nomeado com os estados respectivos do AFN e com estados de erro, se houver. 3. Obtenha um AFN K com um único estado inicial, equivalente ao AFN da questão anterior, que contenha todos os estados e transições lá contidos. Em seguida, obtenha uma gramática regular para L(K) usando o método visto em aula. 4. Sejam as linguagens: • A = {w ∈ {a, b}∗ | o número de as em w é par} • B = {w ∈ {b, c}∗ | o número de bs em w é ı́mpar} • C = {w ∈ {a, c}∗ | o número de cs em w é par} Obtenha um AFN M tal que L(M ) = ABC assim: (a) obtenha AFDs para A, B e C; (b) obtenha um AFNλ para ABC a partir dos três AFDs; (c) converta o AFNλ para um AFN equivalente usando o método visto em aula. 1 5. Prove que {x#xR | x ∈ {0, 1}∗ } não é linguagem regular usando o lema do bombeamento. 6. Prove que os seguintes conjuntos não são linguagens regulares, usando propriedades de fecho: (a) {0m 1n | m 6= n}. (b) {w ∈ {0, 1}∗ | o número de 0s em w é par e o de 1s é primo}. 7. Sejam as linguagens L1 = {w ∈ {0, 1}+ | η(w) mod 3 = 0}, sendo η(w) o número representado por w na base dois, e L2 = {1}∗ ({0}{1}∗ {0}{1}∗ )∗ . (a) Prove que L1 − L2 é regular usando propriedades de fecho. (b) Construa um autômato finito para L1 − L2 . 8. Encontre expressões regulares que denotem: (a) {1}∗ ({0}{1}∗ {0}{1}∗ )∗ (b) A linguagem ABC da questão 4. (c) A linguagem {x#xR | x ∈ {0, 1}∗ } da questão 5. 9. Encontre expressões regulares para as linguagens da questão 1. 2