O documento apresenta o conceito de linguagens regulares e o Pumping Lemma, que é usado para provar que uma linguagem não é regular. Discute-se que linguagens regulares podem ser aceitas por autômatos finitos e definidas por gramáticas regulares. Exemplos ilustram como aplicar o Pumping Lemma para provar que linguagens como {anbn} e {ww} não são regulares.
5. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Linguagens Regulares
Uma linguagem sobre um alfabeto Σ ´e regular se ela ´e:
Um conjunto regular (express˜ao) sobre Σ;
Aceita por um DFA, NFA ou NFA- ;
Juliana F´elix Pumping Lemma 3/17
6. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Linguagens Regulares
Uma linguagem sobre um alfabeto Σ ´e regular se ela ´e:
Um conjunto regular (express˜ao) sobre Σ;
Aceita por um DFA, NFA ou NFA- ;
Gerada por uma gram´atica regular.
Juliana F´elix Pumping Lemma 3/17
8. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
L = {anbn|n ≥ 0}
´E poss´ıvel construir um NFA que reconhe¸ca L?
Estados ak’s contam o n´umero de a’s e os estados bk’s
garantem um igual n´umero de b’s.
Figura: Ideia de DFA para reconhecer L = {an
bn
|n ≥ 0}
Juliana F´elix Pumping Lemma 4/17
9. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
O que percebemos?
A m´aquina precisa se lembrar quantos as foram vistos `a
medida que lˆe a entrada;
Como o n´umero de as n˜ao ´e limitado, a m´aquina teria que
registrar um n´umero ilimitado de possibilidades;
Esse tipo de linguagem ´e dita n˜ao-regular.
Juliana F´elix Pumping Lemma 5/17
11. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
O que ´e?
Pumping Lemma, ou lema do bombeamento, ´e usado para
provar que uma linguagem n˜ao ´e regular;
Afirma que todas as linguagens regulares tˆem uma
propriedade especial;
Juliana F´elix Pumping Lemma 6/17
12. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
O que ´e?
Pumping Lemma, ou lema do bombeamento, ´e usado para
provar que uma linguagem n˜ao ´e regular;
Afirma que todas as linguagens regulares tˆem uma
propriedade especial;
Se a linguagem n˜ao tem essa propriedade, ela n˜ao ´e regular.
Juliana F´elix Pumping Lemma 6/17
15. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Defini¸c˜ao
Se A ´e uma linguagem regular, ent˜ao existe um n´umero p (o
comprimento do bombeamento) tal que, se s ´e qualquer
cadeia de A de comprimento no m´ınimo p, ent˜ao s pode ser
dividida em trˆes partes, s = xyz, satisfazendo as seguintes
condi¸c˜oes:
1 para cada i ≥ 0, xyi
z ∈ A
2 |y| > 0, e
3 |xy| ≤ p.
|s| ≥ p
y =
Juliana F´elix Pumping Lemma 8/17
16. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Simplificando
Pumping: constru¸c˜ao de novas cadeias pela repeti¸c˜ao de
subcadeias da cadeia original
s = ababbaaab
s = xyz com x = a, y = bab, e z = baaab
xyi
z = a(bab)i
baaab
Figura: Ilustra¸c˜ao de um DFA que reconhece s
Juliana F´elix Pumping Lemma 9/17
18. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Como utiliz´a-lo
Encontrar uma cadeia da linguagem que, quando bombeada, n˜ao
satisfaz as regras da linguagem. A prova ´e por contradi¸c˜ao.
1 Suponha que L ´e regular.
Juliana F´elix Pumping Lemma 10/17
19. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Como utiliz´a-lo
Encontrar uma cadeia da linguagem que, quando bombeada, n˜ao
satisfaz as regras da linguagem. A prova ´e por contradi¸c˜ao.
1 Suponha que L ´e regular.
2 Use o Pumping Lemma para garantir a existˆencia de p, tal
que toda cadeia s com |s| ≥ p, satisfaz as condi¸c˜oes do lema.
Juliana F´elix Pumping Lemma 10/17
20. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Como utiliz´a-lo
Encontrar uma cadeia da linguagem que, quando bombeada, n˜ao
satisfaz as regras da linguagem. A prova ´e por contradi¸c˜ao.
1 Suponha que L ´e regular.
2 Use o Pumping Lemma para garantir a existˆencia de p, tal
que toda cadeia s com |s| ≥ p, satisfaz as condi¸c˜oes do lema.
3 Encontre uma cadeia w , com |w| ≥ p, que n˜ao satisfaz as
condi¸c˜oes do lema.
Juliana F´elix Pumping Lemma 10/17
21. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Como utiliz´a-lo
Encontrar uma cadeia da linguagem que, quando bombeada, n˜ao
satisfaz as regras da linguagem. A prova ´e por contradi¸c˜ao.
1 Suponha que L ´e regular.
2 Use o Pumping Lemma para garantir a existˆencia de p, tal
que toda cadeia s com |s| ≥ p, satisfaz as condi¸c˜oes do lema.
3 Encontre uma cadeia w , com |w| ≥ p, que n˜ao satisfaz as
condi¸c˜oes do lema.
4 A existˆencia de w contradiz o Pumping Lemma. Logo, L n˜ao
´e regular.
Juliana F´elix Pumping Lemma 10/17
22. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Exemplo 1
L = {anbn|n ≥ 0}
Suponha que L ´e regular.
Se L ´e regular, ent˜ao L ´e aceita por um DFA M com p estados
e satisfaz o pumping lemma.
Seja s = apbp. Ent˜ao s pode ser dividida em:
x = ai
y = aj
z = ap−i−j
bp
onde i + j ≤ p e j > 0.
Juliana F´elix Pumping Lemma 11/17
23. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Exemplo 1 (cont)
Tomando i = 2, temos:
xy2z = ai aj aj ap−i−j bp = apaj bp.
Como xy2z /∈ L, n˜ao existe decomposi¸c˜ao poss´ıvel de s que
satisfa¸ca as condi¸c˜oes do lema.
Portanto, L n˜ao ´e regular.
Juliana F´elix Pumping Lemma 12/17
24. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Considere os trˆes casos para mostrar que o resultado ´e imposs´ıvel
1 A cadeia y cont´em apenas as. Neste caso, a cadeia xyyz tem
mais as que bs e, portanto, n˜ao ´e um membro de L.
Juliana F´elix Pumping Lemma 13/17
25. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Considere os trˆes casos para mostrar que o resultado ´e imposs´ıvel
1 A cadeia y cont´em apenas as. Neste caso, a cadeia xyyz tem
mais as que bs e, portanto, n˜ao ´e um membro de L.
2 A cadeia y cont´em somente bs. Caso an´alogo ao 1.
Juliana F´elix Pumping Lemma 13/17
26. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Considere os trˆes casos para mostrar que o resultado ´e imposs´ıvel
1 A cadeia y cont´em apenas as. Neste caso, a cadeia xyyz tem
mais as que bs e, portanto, n˜ao ´e um membro de L.
2 A cadeia y cont´em somente bs. Caso an´alogo ao 1.
3 A cadeia y cont´em ambos, as e bs. Neste caso, a cadeia xyyz
pode ter o mesmo n´umero de as e bs, mas estar˜ao fora de
ordem, e tamb´em n˜ao pertence a L.
Juliana F´elix Pumping Lemma 13/17
27. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Exemplo 2
L = {ww|w ∈ {0, 1}∗}
Suponha que L ´e regular.
Se L ´e regular, ent˜ao L ´e aceita por um DFA M com p estados
e satisfaz o pumping lemma.
Seja s = 0p10p1. Ent˜ao s pode ser dividida em:
x = 0i
y = 0j
z = 0p−i−j
10p
1
onde i + j ≤ p e j > 0.
Juliana F´elix Pumping Lemma 14/17
28. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Exemplo 2 (cont.)
Tomando i = 2, temos:
xy2z = 0i 0j 0j 0p−i−j 10p1 = 0p0j 10p1.
Como xy2z /∈ L, n˜ao existe decomposi¸c˜ao poss´ıvel de s que
satisfa¸ca as condi¸c˜oes do lema.
Portanto, L n˜ao ´e regular.
Juliana F´elix Pumping Lemma 15/17
29. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Exemplo 2 (cont.)
Tomando i = 2, temos:
xy2z = 0i 0j 0j 0p−i−j 10p1 = 0p0j 10p1.
Como xy2z /∈ L, n˜ao existe decomposi¸c˜ao poss´ıvel de s que
satisfa¸ca as condi¸c˜oes do lema.
Portanto, L n˜ao ´e regular.
E se s fosse 0p0p?
Juliana F´elix Pumping Lemma 15/17
30. Linguagens Regulares
Pumping Lemma
Defini¸c˜ao
Exemplos
Exerc´ıcios
Use o Pumping Lemma para mostrar que cada um dos itens abaixo
n˜ao ´e regular:
1 L = conjunto de pal´ındromes de comprimento par sobre
{a, b}∗
2 L = {ai bj c2j |i, j ≥ 0}
3 L = {ai bj ckdl |i = k ou j = l}
Juliana F´elix Pumping Lemma 16/17