Família de palavras.ppt com exemplos e exercícios interativos.
Aula 12 revisãodos exercícios
1. Curso: Ciência da Computação
Turma: 7ª Série
Linguagens Formais e Autômatos
Aula 12
Revisão para Avaliação e
Questões das Aulas
2. Notas de Aula
● Próxima quinta é a nossa avaliação.
● 2 de Junho.
● Dia 28 tem reposição de aula.
Linguagens Formais e Autômatos 2/14
3. AFD Complementar
Dado o AFD abaixo que aceita a linguagem L desenvolva o AFD C que aceita a LC . Lc é a linguagem
complementar de L. Portanto o novo autômato deve aceitar todas as strings que não pertencem a L. O
autômato abaixo aceita toda string que começa por a e tiver dois as é aceita e toda string que começa por
b e tiver dois bs é aceita.
q0
a b
L
q1 q2 a M = ({a,b},{q0,q1,q2,qf},δ,q0,qf)
b b
a
qf
q0
a b
a
q1 q2
b
Lc
Mc = ({a,b},{d,q0,q1,q2,qf},δ,q0,{d,q0,q1,q2}) a b
qf
a,b
d
Linguagens Formais e Autômatos 3/14
4. Exercício 4.2 do livro texto
Para cada linguagem abaixo, desenvolva um correspondente autômato finito e exemplifique o lema do
bombeamento para linguagens regulares de forma a ilustrar a existência de mais de um bombeamento
● {anbm | n ≥ 0 e m ≥ 0} Suponha então que w=uvz
w=aaabbb
● {anbmar | n ≥ 0, m ≥ 0 e r ≥ 0}
u=a
v=aa então |uv| ≤ n (3)
Suponha a palavra aaabbb
|v| ≥ 1
q0 q2 qf e v é reconhecida pelo ciclo.
a b
b Portanto para qualquer i ≥ 0 uviz
a deve ser aceita pelo AFD
O que diz o lema.
a(aa)ibbb o que é verdade.
● Se uma linguagem é regular, então é aceita por um autômato finito determinístico o qual possui
um número finito e predefinido de n estados;
● Se o autômato reconhece uma entrada w de comprimento mair ou igual ao número de estados
n, obrigatoriamente o autômato assume algum estado q mais de uma vez e, portanto, existe um
ciclo na função programa que passa por q;
● Logo, w pode ser dividida em três sub-palavras w=uvz tal que |uv| ≤ n, |v| ≥ 1 e onde v é a parte
de w reconhecida pelo ciclo;
● Claramente, tal ciclo pode ser executado (“bombeado”) zero ou mais vezes.
Portanto, para qualquer i ≥ 0, uviz, é aceita pelo autômato (ou seja, é palavra da linguagem)
Linguagens Formais e Autômatos 4/14
5. Fazer
Prove que as linguagens não são regulares (suponha que n Є N e m Є N):
● {ww | w é palavra de {a,b}*}.
● {w | (w=anbm ou w=ambn), n ≥ m}
●
●
Aplicar o lema do bombeamento e ver que falha.
Linguagens Formais e Autômatos 5/14
6. Exercício: Minimização de Autômatos
Seja M um afd com estados A, B, C, D, E e F, sendo A o estado inicial; C e F são os
estados finais. Os símbolos de entrada são a e b, e δ como na tabela abaixo. M aceita as
cadeias que tem um número de a's da forma 6n+2 ou 6n+5. Na realidade, bastaria exigir
que o número de a's fosse da forma 3n+2, o que corresponde a um afd com apenas 3
estados, e, por essa razão, M não é mínimo, e deve ter estados equivalentes.
A tabela de transição de M é
Os pares de estados (representados em ordem alfabética sem os parenteses) a serem
considerados são AB, AC, AD, AE, AF, BC, BD, BE, BF, CD, CE, CF, DE, DF, e EF. Não
há necessidade de incluir pares como AA por causa da reflexividade, nem pares como
BA por causa da simetria: basta incluir AB. Vamos aplicar o algoritmo acima para
determinar os pares de estados equivalentes.
Linguagens Formais e Autômatos 6/14
7. Exercício: Minimização de Autômatos
(marcação dos pares final / não final)
marcamos AC, AF, BC, BF, CD, CE, DF e EF.
(exame de cada par não marcado)
AB: Temos δ(A, a)=B, δ(B, a)=C, e BC está marcado. Logo, marcamos AB.
AD: Temos δ(A, a)=B, δ(D, a)=E, e δ(A, b)=A, δ(D, b)=D. Como BE não está marcado,
incluímos AD na lista de BE. (Note que não há necessidade de incluir AD na lista de AD.)
AE: Temos δ(A, a)=B, δ(E, a)=F, e BF está marcado. Logo, marcamos AE.
BD: Temos δ(B, a)=C, δ(D, a)=E e CE está marcado. Logo, marcamos BD.
BE: Temos δ(B, a)=C, δ(E, a)=F, e δ(B, b)=B, δ(E, b)=E. Como CF não está marcado,
incluímos BE na lista de CF.
CF: Temos δ(C, a)=D, δ(F, a)=A, e δ(C, b)=C, δ(F, b)=F. Como AD não está marcado,
incluímos CF na lista de AD.
DE: Temos δ(D, a)=E, δ(E, a)=F e EF está marcado. Logo, marcamos DE.
(os pares restantes são equivalentes)
Linguagens Formais e Autômatos 7/14
8. Exercício: Minimização de Autômatos
Os pares restantes (não marcados) são AD, BE, CF. Logo, A ≡ D, B ≡ E e C ≡ F.
Naturalmente, além disso, A ≡ A, D ≡ A, etc.
Podemos agora construir o afd mínimo: o conjunto de estados é o das classes de
equivalência. Como previsto, tem apenas 3 estados. Temos:
K' = { [A], [B], [C], [D], [E], [F] } = { {A, D}, {B, E}, {C, F} }
i' = [A] = {A, D}
F' = { [C], [F] }= {C, F}
Linguagens Formais e Autômatos 8/14
10. Exercício: Máquina de Mealy
Desenvolva uma:
Máquina de Mealy;
sobre o alfabeto de entrada {x,β,●}. O objetivo é tratar brancos (β) corretamente em um
texto. Assim, a máquina deve analisar um texto (palavra sobre o alfabeto, garantindo
que:
● Não existam brancos contíguos;
● o texto deve iniciar por x e terminar por ●
● sejam eliminados eventuais β antes de um ●
● antes do ● exista x.
Note-se que o autômato somente pode alterar os brancos no texto. Caso o resto do texto
não esteja de acordo, deve ser rejeitado (neste caso a saída pode ser qualquer).
Por exemplo:
a entrada ββxxββxxββxxββ●βββ deve ser aceita e gera a saída xxβxxβxx●
a entrada ●x deve ser rejeitada.
Linguagens Formais e Autômatos 10/14
12. Gere a expressão x4+[x+x] utilizando a
gramática .
G2=({E},{+,*,[,],x},P2,E), em que:
P2={E → E+E | E*E | [E] | x}
E → E*E → E*E*E → E*E*E*E → E*E*E*E+E → E*E*E*E+
[E] → E*E*E*E+[E+E] → x4 + [ x+x]
Linguagens Formais e Autômatos 12/14
13. Identifique no exemplo de expressões aritméticas
qual produção controla o duplo balanceamento de
colchetes.
P2={E → E+E | E*E | [E] | x}
Linguagens Formais e Autômatos 13/14
14. Autômato Finito com Pilha
Exercício monte um autômato com pilha que fique
em loop.
com a palavra aabb q0
(ε,ε,B)
q1
(ε,B,ε)
Leio vazio da fita e gravo B, leio vazio da fita e
retiro B da pilha.
Linguagens Formais e Autômatos 14/14