DCC063
Linguagens Formais
e Autômatos
Propriedades das linguagens regulares
O conjunto das LRs é fechado sob as operações de:
a) União: a união de LRs resulta em LR.
b) Concatenação: a concatenação de LRs resulta em LR. c) Fecho de Kleene: o fecho (*) de LR resulta em LR.
d) Interseção: a interseção de LRs resulta em LR.
e) Complemento: o complemento (* - L) de LR resulta em LR. 2
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: União
Intuição da união de LR. N = N1N2.
N1
N2
N
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: União
Construindo N = N1N2. Sejam
N = (Q, , , q0, F) e N1 = (Q1, , 1, q1, F1) N2 = (Q2, , 2, q2, F2)
Construa N da seguinte forma:
1. Q = {q0} Q1 Q2.
2. O estado q0 é o estado inicial de N.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: União
4. Definindo . Para qualquer 𝑞 ∈ 𝑄 e qualquer 𝑎 ∈
Σ ∪ 𝜀 : 5
𝑞 ∈ 𝑄1 𝑞 ∈ 𝑄2
𝑞 = 𝑞0 𝑒 𝑎 = 𝜀 𝛿 𝑞, 𝑎 = ൞𝛿𝛿12 𝑞, 𝑎𝑞, 𝑎
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: União
Exemplo.
L(N) = {0k | k é par ou k é multiplo de 3}
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: Complemento
Seja 𝑀 = 𝑄, Σ, 𝑞0, 𝐹 um AFD que aceita 𝐿1.
Então o AFD
𝑀′ = 𝑄, Σ, 𝑞0, 𝑄 − 𝐹
aceita 𝐿1.
O autômato 𝑀 deve ser determinístico e 𝛿 uma
função total.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: Complemento
Basta alterar os estados finais para não finais e
vice-versa. O AF deve ser determinístico e deve
ser total. Seja L(N), onde ={a,b,c,d,e} e N é o
AFD:
E
a,b,c,d
a,b,c,d,e a,b,c a,c,d,e
b,d,e
a b e
c d e
N
8
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: Complemento
O complemento de L(N) = L(N’).
AFD N’
a,b,c,d
a,b,c,d,e a,b,c a,c,d,e
b,d,e
a b e
c d e
N’
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: Complemento
O autômato N abaixo aceita a linguagem 𝑎𝑏∗.
a b
a b
N
a b
a b
M
10
O complemento M de N aceita ε |𝑎𝑏∗ . Está
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Propriedade: Interseção
Considere a linguagem L1 e L2, a seguinte relação
é verdadeira (Lei de De Morgan):
2 1
2
1
L
L
L
L
=
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Linguagens que não são regulares – pumping
lemma (Lema do bombeamento)
É possível criar um AF para L = {0n1n|n0}?
O lema do bombeamento afirma que todas as
linguagens regulares têm uma propriedade especial.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Linguagens que não são regulares – pumping
lemma (Lema do bombeamento)
Se pudermos mostrar que uma linguagem não
tem essa propriedade, temos a garantia de que
ela não é regular. A propriedade diz que todas as
cadeias da linguagem podem ser “bombeadas”
se elas são no mínimo tão longas como um
determinado valor especial, comprimento do
bombeamento.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Linguagens que não são regulares – pumping
lemma (Lema do bombeamento)
Lema do bombeamento. Seja 𝐿 uma linguagem
infinita. Se 𝐿 é regular então, existe um no inteiro
positivo 𝑝 tal que todo 𝑤 ∈ 𝐿, com 𝑤 ≥ 𝑝, 𝑤 pode ser subdividida em 𝑥, 𝑦 e 𝑧 ∈ Σ∗, 𝑤 = 𝑥𝑦𝑧, tais que
1. 𝑥𝑦𝑖𝑧 ∈ 𝐿, ∀𝑖 = 0, 1, 2, ⋯
2. 𝑦 ≥ 1
3. 𝑥𝑦 ≤ 𝑝
Observar que 1) 1 |y| p; 2) x e z podem ser
,Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Descrição das condições:
Para poder ser bombeada, y precisa ter comprimento maior ou igual a 1;
y precisa estar entre os p primeiros caracteres;
Podemos repetir arbitrariamente (e inclusive omitir) a subcadeia y, e a cadeia xyiz resultante
pertencerá a L.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Toda a palavra (suficientemente longa) de L
pode ser dividida em três partes de modo que, com um número qualquer de repetições da parte central, continue a ser uma palavra de L. Assim podemos dizer que a parte central é bombeada:
16
f
s 𝑥 𝑧
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento (Descrição informal)
O lema do bombeamento descreve uma propriedade fundamental das linguagens regulares: para qualquer linguagem regular L, existe um número p tal que qualquer
cadeia w de comprimento igual ou maior que p pode ser
dividida em três subcadeias, w = xyz, tal que a parte do
meio (não-vazia), y, pode ser repetida um número
arbitrário de vezes (inclusive 0 vezes, o que significa remover y), gerando uma nova cadeia que também
pertence a L
Essa repetição é conhecida como "bombeamento". O lema garante que o comprimento de xy será no máximo p, o que
limita as maneiras em que w pode ser dividida
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Exempo1 :dado o AF M = ({q0, q1, q2, q3}, {a, b, c},
, q0, {q3}):
O autômato aceita a cadeia w = abcd
|w| = |Q| = 4 p
Para w há ao menos um estado repetido no
autômato. O único estado repetido é q1.
18
q3 q0 q1
𝑏
𝑎 𝑑
q2
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Exempo 1...
a leitura da subcadeia bc resulta em transições
que iniciam e terminam em q1.
essa subcadeia pode ser repetida (bombeada).
Por exemplo, a cadeia abcbcd L(M).
A subcadeia bc também poderia ser removida e
a cadeia resultante ad L(M).
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Exempo 1...
Pelo lama do bombeamento: w = xyz:
x = a
y = bc
z = d
Ainda assim xyizL(M), pois a(bc)*dL(M)
Existe outra partição xyz para w?
Sim, x = ab, y = cb e z = cd. Pois
ab(cb)*cdL(M)
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Exempo2: dado o AF N1 = ({q0, q1, q2}, {a, b, c}, , q0, {q2}):
1) Considere w = abc, |w| = 3 p
w pode ser reescrito como xyz
|xy| 3, 1 |y| 3 e xyizL(N1). Escolhe-se x = a, y = b e z = c. Assim,
xz = ac, xyyz = abbc, xyyyz = abbbc, ..., L(N1)
21
q2 q0 𝑎 q1 𝑐
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Exempo2...
2) Considere w = abbbc, |w| = 5 p
w pode ser reescrito como xyz
|xy| 3, 1 |y| 3 e xyizL(N1). Pode-se fazer três escolhas distintas de x , y e z:
◼ x = a, y = b, z = bbc. As cadeias (a)b*(bbc) L(N1) ◼ x = a, y = bb, z = bc. As cadeias (a)(bb)*(bc) L(N1) ◼ x = ab, y = b, z = c. As cadeias (ab)(b)*(c) L(N1)
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
Exempo2...
Nem todas as subdivisões de uma cadeia w geram
cadeias que produzem cadeias de L(N1). Para
w = abbbc, |w| = 5:
x = , y = a, z = bbbc. Assim xyiz L(N1)
x = , y = ab, z = bbc. Assim xyiz L(N1)
x = , y = abb, z = bc. Assim xyiz L(N1)
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Lema do bombeamento
O lema do bombeamento não é uma condição
necessária e suficiente para a regularidade de
uma linguagem: se o lema não é satisfeito numa
dada linguagem L, então L não é regular, mas se
o lema é satisfeito para uma dada linguagem L,
então L pode ou não ser regular.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Aplicação do Lema
A principal aplicação do lema consiste na
demonstração da existência de linguagens não regulares.
Tal demonstração pode ser feita por contradição,
seja L uma linguagem (regular?):
i. Admitir, por hipótese, que L é regular;
ii. Demonstrar que L não exibe as propriedades do lema;
iii. Concluir por contradição, que a hipótese não é verdadeira, e que portanto L não é regular.
Linguagens Regulares
–
Gramáticas
Regulares e Autômatos Finitos
Aplicação do Lema
Exemplos... (quadro)