Departamento de Ciência de Computadores FCUP Modelos de Computação CC1004 2014/2015 Folha Prática 2 NB: Nos exercı́cios seguintes, consideramos a associatividade da união e da concatenação e a precedência relativa das operações (união, concatenação e fecho de Kleene) para simplificar as expressões regulares, removendo parentesis desnecessários. Por exemplo, a expressão regular (ε+(((aa)b)((bb)? ))) será escrita como ε+aab(bb)? . Do mesmo modo, ((bb) + (((a(a? )) + (((aa)(bb))(b? )))) corresponderá a bb + aa? + aabbb? , o que nos permite mais facilmente ver qual é a linguagem que a expressão descreve. 1. Descreva informalmente as linguagens que são caraterizadas pelas expressões regulares ε + aab(bb)? e bb + aa? + aabbb? sobre Σ = {a, b}. 2. Justificando a sua resposta, indique uma expressão regular sobre Σ = {a, b} que caraterize a linguagem formada pelas palavras de Σ? que: a) têm no máximo três a’s. b) não têm ba como prefixo. c) têm pelo menos dois a’s consecutivos e pelo menos dois b’s consecutivos. d) têm no máximo dois a’s, no mı́nimo dois b’s e não terminam em b. e) têm aab como sufixo e têm pelo menos três a’s consecutivos. f ) têm aab como subpalavra e têm no máximo dois b’s. g) têm bbab como subpalavra e têm número par de b’s. 3. Para o par de expressões r e s sobre {a, b} indicado em cada alı́nea, averigue se L(r) = L(s), isto é, se r e s são expressões regulares equivalentes. a) r = (abb? + a)? e s = (ab? + a)? b) r = ε + (a + b)? bb e s = ((a + b)? bb)? c) r = ab? a(a + b)? + baaa? (a + b)? e s = b? a(a + b)? ab? 4. Descreva informalmente a linguagem de alfabeto {a, b} que é reconhecida por cada um dos AFDs representados e apresente uma expressão regular que a defina. d) a) /s 0 a,b /s 1 a,b /s 2 /s 0 b a,b a a b) /s 0 a,b /s 1 a,b /s 2 b b / s1 a / s2 O a,b a,b /s 0 a,b /s 1 a,b /s 2 f) b a b e) a,b c) / o s0 O / s1 O b # s3 O a /s 2 a /s 3 a,b a /s 0 1 a,b /s 1 a,b /s 2 b /s 3 a,b 5. Seja M = ({q0 , q1 , q2 ), {0, 1}, δ, q0 , {q0 , q2 }) um autómato finito determinı́stico em que a função de transição δ é definida por {(q0 , 1, q0 ), (q0 , 0, q1 ), (q1 , 1, q2 ), (q1 , 0, q1 ), (q2 , 1, q2 ), (q2 , 0, q2 )}. a) Represente o diagrama de transição do autómato. b) Quais das palavras ε, 0011, 1100, 00101, 101 e 001 pertencem à linguagem reconhecida pelo autómato? c) Descreva informalmente a linguagem L(M ) de {0, 1}? reconhecida pelo autómato. d) Apresente uma expressão regular que caraterize L(M ). 6. Para cada uma das linguagens indicadas no exercı́cio 2. e, depois, para as indicadas no exercı́cio 1., defina um autómato finito determinı́stico que a reconheça. Justifique, apresentando uma propriedade que caraterize as palavras que levam tal autómato a cada um dos seus estados. 7. Para cada uma das linguagens seguintes de alfabeto {0, 1}, apresente um AFD que a reconheça e indique uma propriedade que carateriza as palavras que levam tal autómato a cada um dos seus estados. a) b) c) d) {0}? {0}? ∪ {1}? {0}? {1}? {01, 00}{0, 1}? e) f) g) h) {0, 1}? {101, 111} {0, 1}? {11, 00}{0, 1}? {0, 1}? \ {0}? {000, 1}? ∩ {00, 1}? 8. Para cada uma das linguagens seguintes de alfabeto {a, b}, apresente um autómato finito determı́nistico que a reconheça. a) {x | x termina em b mas não em bb} b) {x | x tem comprimento maior ou igual a três} c) {x | x tem comprimento inferior a três} d) {x | x não tem três b’s consecutivos} e) {x | o número de b’s em x é múltiplo de quatro} f ) {x | o número de b’s consecutivos em x não excede três e x não tem a’s consecutivos} g) {x | x tem prefixo bbaab} h) {x | x não tem sufixo aab} i) {x | x tem aab e baa como subpalavras} 9. Caraterize por uma expressão regular e por um autómato finito determı́nistico a linguagem constituı́da pelas palavras de {0, 1}? que: a) não têm nenhum 1. b) são diferentes da palavra 1. c) têm comprimento não inferior a dois. d) terminam em 1. e) terminam em 1 mas não em 111. f ) têm pelo menos dois 0’s consecutivos. g) terminam em 1 e têm pelo menos dois 0’s consecutivos. h) não contêm 101 como subpalavra. i) têm um número ı́mpar de 0’s ou um número par de 1’s. j) têm no máximo um par de 0’s consecutivos e no máximo um par de 1’s consecutivos. k) não terminam em 1101 nem em 1011. l) contêm pelo menos três 0’s seguidos mas não contêm dois ou mais 1’s seguidos. m) se têm algum par de 0’s adjacentes, este aparece antes de qualquer par de 1’s adjacentes. 2 n) têm igual número de 0’s e 1’s e nenhum seu prefixo tem um número de 0’s que excede em dois o número de 1’s nem um número de 1’s que excede em dois o número de 0’s. o) são representação em binário de inteiros positivos múltiplos de 4 (sem 0’s não significativos). 10. Seja L a linguagem das palavras em {a, b, 3}? que têm comprimento maior que dois, não têm 33 como subpalavra e começam e acabam em 3. a) Justifique a veracidade ou falsidade de cada uma das afirmações: 3b3ababb3 ∈ / L; 3ab3aa3b3bb3 ∈ L; ba3 ∈ L; 3ba ∈ L; 33 ∈ / L; 3b33abb3 ∈ L. b) Indique uma expressão regular que descreva L. Explique. c) Descreva um autómato finito determinı́stico que aceite L e caraterize as linguagens das palavras que levam o autómato do estado inicial a cada um dos estados que considerou. 11. Descreva informalmente a linguagem de {a, b}? definida pela expressão regular (a + b)(aa + bb)? (b + a) e apresente um autómato finito determinı́stico que a aceite. Indique uma propriedade que caraterize a linguagem das palavras que levam o autómato a cada um dos estados que definiu. 12. Pn−1 Recorde que uma sequência bn−1 · · · b2 b1 b0 de {0, 1}? \ {ε} representa um inteiro não negativo i=0 2i em binário. Se bn−1 6= 0 quando o inteiro não é zero, isto é, se a sequência não incluir dı́gitos não significativos, então a representação é única. No que se segue, assuma que a representação em binário pode ter 0’s não significativos. a) Justifique que se x ∈ {0, 1}? \ {ε} representa k então x0 e x1 representam 2k e 2k + 1. Use esse facto para justificar que: se k é múltiplo de 3 então o inteiro representado por x011 também é múltiplo de 3; se k é múltiplo de 5 então x011 dá resto três quando dividido por 5. b) Para cada uma das linguagens seguintes, determine um AFD que a reconheça. • Representações em binário de múltiplos de 3. • Representações em binário de múltiplos de 2 mas não de 3. • Representações em binário de múltiplos de 5. • Representações em binário de múltiplos de 12. • Representações em binário de múltiplos de 0. c) (!) Seja Kn a linguagem das representações em binário de múltiplos não negativos de n, com n ∈ N (arbitrário mas fixo). Por exemplo, na alı́nea anterior considerámos K3 , K5 , K12 e K0 , além de K2 ∩ K3 . Usando propriedades do resto da divisão inteira por n, para n 6= 0, justifique que é sempre possı́vel definir um autómato finito determı́nistico que reconheça Kn . 3