Teoria da Computação 2008/09 Ficha de trabalho Autómatos finitos deterministas (palavra aceite, linguagem reconhecida, concepção) 1. Considere o autómato finito D=<Q,q0,I,δ, F> em que Q={q0,q1,q2,q3,q4}, F={q3}, I={a,b} e cujo diagrama de estados é o seguinte Verifique se a sequência abbaabb é aceite por D. Caracterize a linguagem LD. 2. Seja I={a,b} um alfabeto. Construa autómatos finitos deterministas que aceitem as seguintes linguagens: a) {baa, ab, abb} b) Palavras que começam por a ou terminam em b; c) Palavras que não terminam em ba; d) Palavras que contêm um número ímpar de sequências ab; e) Palavras cujo tamanho não é divisível por 6. f) Palavras que contêm vários triplos de a’s g) Palavras que contêm dois b’s ou dois a’s; h) Palavras que terminam com aa ou bb; i) Palavras que não terminam com aa ou bb; j) Palavras que não contêm bbb; k) Palavras que não contêm ab; l) Palavras cujo número de a’s é divisível por 3; m) Palavras que contêm sequências de b’s de tamanho ímpar; n) Palavras que contêm sequências de a’s de tamanho par e sequências de b’s de tamanho ímpar. o) Palavras, tais que entre dois a’s consecutivos, existe no máximo um b. 3. Considere a linguagem L sobre o alfabeto {0,1,x,+} cujas palavras se escrevem da forma αxβ ou da forma α+β, onde α e β são sequências não vazias de 0’s e de 1’s que começam por 1. Construa um autómato finito que aceite L. Departamento de Matemática / Universidade dos Açores 1 Teoria da Computação 2008/09 Ficha de trabalho 4. Considere a linguagem L sobre o alfabeto {x, ., @} cujas palavras se escrevem da forma α@β, onde α∈{x}+ e β∈{x, .}+ é uma sequência que começa e termina em x e não contém dois .’s consecutivos. Construa um autómato finito que aceite L. Verifique se as seguintes sequencias fazem parte da linguagem reconhecida: (i) [email protected]; (ii) xx@x; (iii) [email protected]. . 5. Considere o alfabeto I={0,1,2}. Construa um autómato finito que aceite cada uma das seguintes linguagens sobre I: a. Palavras que terminam em 12; b. Palavras que terminam em 2 e têm pelo menos dois 2’s e palavras que terminam em 1 e não têm 2’s; c. Palavras que terminam em 2 e têm um número par de dois 2’s e palavras que terminam em 1 e não têm 2’s; d. Palavras que têm exactamente dois 0’s entre dois 1’s consecutivos; e. Palavras cuja soma de cada dois dígitos consecutivos é igual ou inferior a 2; f. Palavras cuja soma de cada dois dígitos consecutivos é ímpar; g. Palavras que têm dois 0’s consecutivos e terminam em 2; h. Palavras que não têm dois 0’s consecutivos e terminam em 2; i. Palavras que têm um número ímpar de 1’s e terminam em 22; j. Palavras que não começam com 1, terminam em 2 e têm um número ímpar de 0’s. 6. Considere a seguinte descrição informal de um sistema: Imagine que existem três interruptores 1, 2 e 3 que controlam a iluminação da entrada de um edifício composta por duas lâmpadas: uma situada a norte e a outra situada a sul. Os interruptores funcionam do seguinte modo: o interruptor 1 acende ou apaga a lâmpada situada a norte, consoante esta se encontre apagada ou acesa, respectivamente; o interruptor 2 acende ou apaga cada uma das lâmpadas, consoante estas se encontrem apagadas ou acesas, respectivamente; o interruptor 3 acende ou apaga a lâmpada situada a sul, consoante esta se encontre apagada ou acesa, respectivamente. Departamento de Matemática / Universidade dos Açores 2 Teoria da Computação 2008/09 Ficha de trabalho Suponha que inicialmente as lâmpadas se encontram apagadas. Construa um autómato finito que verifica se as duas lâmpadas se encontram acesas, ou seja, deverá aceitar sequências em {1,2,3}* se e só se após a execução, o efeito produzido das lâmpadas seja o de estas se encontrarem acesas. Por exemplo, deverá aceitar a sequência 2132, uma vez que esta corresponde a acender as lâmpadas, apagá-las em seguida e acendê-las novamente. No entanto a sequência 23213 deverá ser rejeitada, pois após a respectiva sequência de movimentos, a luz situada a sul está apagada. 7. Considere a linguagem L formada por todas as sequências sobre o alfabeto {0,1,2} cujo somatório seja divisível por 3. Construa um autómato finito D que aceite L. Verifique se 1201 é aceite por D. 8. Considere o seguinte protocolo de transmissão de mensagens binárias entre dois computadores. • O início e o fim da transmissão é marcado pelos caracteres 00 e 11, respectivamente. • As mensagens são obrigatoriamente iniciadas por dois bits, indicativos do seu comprimento. • Entre duas mensagens há um separador constituído pelo padrão 101. • Em todas as transmissões há, no mínimo, uma mensagem a transmitir. Um exemplo de transmissão válida de mensagens é dado por: init size msg sep size msg end 00 10 11 101 01 1 11 Construa um autómato finito que aceite o conjunto das mensagens válidas. 9. Construa um autómato finito que aceite a linguagem formada pelos números reais de vírgula fixa, mas sem 0’s supérfluos à esquerda ou à direita da vírgula. Por exemplo a linguagem inclui 0,0 e 123,01 mas não inclui 0,00 nem 010,0. Departamento de Matemática / Universidade dos Açores 3