You are on page 1of 16

Informtica Terica Engenharia da Computao

Lema do Bombeamento

O lema do bombeamento diz que qualquer linguagem infinita de dada classe pode ser "bombeada" (pumped) e ainda pertencer quela classe (as linguagens finitas so todas regulares).
A linguagem pode ser bombeada se qualquer cadeia suficientemente longa na linguagem pode ser quebrada em pedaos, alguns dos quais podem ser repetidos um nmero arbitrrio de vezes para produzir uma cadeia mais longa na linguagem.

Lema do Bombeamento para Linguagens Regulares

Para toda linguagem regular A, h um autmato AFD a aceita. Seja o AFD mais simples possvel, isto , aquele com o menor nmero de estados possvel. Seja p, a quantidade de estados desse AFD. Seja s A, t.q. |s| p Logo, existe uma sequncia de estados q1, ..., qf (qf final e q1 inicial), para reconhecer s. Como o AFD tem apenas p estados e |s| p, dever haver ao menos um estado "repetido", i.e. visitado mais de uma vez. (pelo princpio da casa dos pombos). Seja qr o estado repetido.

Lema do Bombeamento para Linguagens Regulares

Vamos dividir s em trs subcadeias: s=xyz. x a parte que aparece antes de qr, y a parte que aparece entre as duas ocorrncias de qr e z a parte restante, que aparece aps a segunda ocorrncia de qr.
y

x
q1

qr

z qf

Lema do Bombeamento para Linguagens Regulares

Ento, para todo i 0, xyiz L

x
q1

qr

z qf

Lema do Bombeamento

O lema do bombeamento descreve uma propriedade fundamental das linguagens regulares. Para qualquer linguagem regular L, existe um nmero p tal que qualquer cadeia s de comprimento igual ou maior que p pode ser dividida em trs subcadeias, s = xyz, tal que a parte do meio (no-vazia), y, pode ser repetida um nmero arbitrrio de vezes (inclusive 0 vezes, o que significa remover y), gerando uma nova cadeia que tambm pertence a L. Esse processo de repetio conhecido como "bombeamento".

Linguagens regulares Lema do Bombeamento

1. 2. 3.

Lema: Seja L uma linguagem regular. Ento existe um inteiro p 1 (chamado "comprimento de bombeamento") tal que cada cadeia s de L com comprimento maior ou igual a p pode ser escrita como s = xyz satisfazendo as seguintes condies: para todo i 0, xyiz L |y| 1 |xy| p

y a subcadeia que pode ser bombeada (removida ou repetida arbitrariamente).

Linguagens regulares Lema do Bombeamento ...cada cadeia s de L, |s| p pode ser escrita como s = xyz satisfazendo as seguintes condies: 1. para todo i 0, xyiz L 2. |y| 1 3. |xy| p Podemos repetir arbitrariamente (e inclusive omitir) a subcadeia y, e a cadeia xyz resultante pertencer a L. Para poder ser bombeada, y precisa ter comprimento maior ou igual a 1; y precisa estar entre os p primeiros caracteres;

Lema do Bombeamento

O lema do bombeamento para linguagens regulares determina se uma dada linguagem no regular. Se regular ento condio. Se no condio ento no regular (contra-positiva)
Ele no pode ser usado para determinar se a linguagem regular. Embora ele seja verdadeiro para todas as LRs. Mas, ele vlido para algumas linguagens no regulares.

Lema do Bombeamento Exemplos

Vamos mostrar como o lema se aplica a LRs. Seja L= a(bc)*a. Ento um AFD para L seria:
p=4 s = xyz x=a, y=bc e z=a

b a

1.i 0, xyiz L a 2. |y| 1


3. |xy| p

Lema do Bombeamento Exemplos

Mostre que o lema se aplica para L = {abna| n >=1 e impar}


b a b a

p=4 s = xyz x=ab, y=bb e z=a

1.i 0, xyiz L
2. |y| 1

3. |xy| p

Lema do Bombeamento Exemplos

Mostre que o lema se aplica para L = {bcdncb | n 0}


d
b c

p=5 s = xyz x=bc, y=d e z=cb

1.i 0, xyiz L
2. |y| 1

3. |xy| p

Lema do Bombeamento Exemplos


1. 2. 3.

Mostre que L = {0n1n | n 0} no regular Vamos fazer uma prova por contradio. Vamos supor que L regular, logo o lema se aplica. Seja s = 0p1p. (|s| p, logo o lema pode se aplicar) Se y possui apenas 0s. Nesse caso, xyyz L. Temos uma contradio. Se y possui apenas 1s. Nesse caso |xy| p, violando a condio 3. Se y possui 0s e 1s, a condio 3 tb violada. Alm disso, xyyz no pertencer linguagem.

Lema do Bombeamento Exemplos


1. 2.

Mostre que L = {ww | w {0,1}*} no regular Vamos supor que L regular. Seja s = 0p10p1 (como |s| p, logo o lema pode se aplicar) Se x= e y possui apenas 0s. Nesse caso, xyyz L. Temos uma contradio. Se x=z=, xyiz L. Mas, |xy| p, violando a condio 3. Observe que a escolha da cadeia deve ser tal que ela mostre a no regularidade da linguagem Por exemplo, a cadeia 0p0p L pode ser bombeada, no seria uma boa escolha.

Lema do Bombeamento Exemplos


Precisamos prestar bastante ateno na escolha da cadeia. Deve ser uma cadeia onde todas as divises (em x,y e z) possveis no obedecem ao lema. Se existir apenas uma diviso onde o lema se aplica, a cadeia pode ser bombeada e portanto no seria um bom exemplo. No exemplo anterior, se s = 0p0p, x = 0p-2, y=02, teramos o lema aplicado.

Lema do Bombeamento Exemplos

Exemplo de linguagem no-regular na qual o lema se aplica: L = {w=uukv | w {0,1}*}.