Sesión 18. Lema de bombeo (Pumping lemma)

Anuncio
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Computabilidad y lenguajes formales:
Sesión 18. Lema de bombeo (Pumping lemma)
Prof. Gloria Inés Alvarez V.
Departamento de Ciencias e Ingenierı́a de la Computación
Pontificia Universidad Javeriana Cali
28 de marzo de 2008
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Lenguajes No Regulares
Algunos lenguajes no pueden ser reconocidos mediante autómatas
finitos. Por ejemplo:
L = {0n 1n | n ≥ 0}
Se observa que el autómata debe recordar una cantidad ilimitada
(de ceros) mediante un número limitado de estados y eso no es
posible.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Lenguajes No Regulares
Sin embargo, tampoco significa que todos los lenguajes que
requieren conteo estén por fuera de los lenguajes regulares. Por
ejemplo:
D = {w | w tiene igual número de ocurrencias de 01 y 10 como
subcadenas}
Es decir, que se necesita un método riguroso para determinar si un
lenguaje es regular o no, ya que la mera intuición puede llevar a
conclusiones equivocadas.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Lema de Bombeo
Lema
Si A es un lenguaje regular, existe un número p tal que si s ∈ A y
|s| ≥ p, entonces s puede dividirse en tres partes s = xyz de
manera que se satisfacen las siguientes condiciones:
1
Para cada i ≥ 0, xy i z ∈ A
2
|y | > 0
3
|xy | ≤ p
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Demostración del Lema de Bombeo
Preliminares:
Sea M = {Q, Σ, δ, q0 , F } un DFA que reconoce A, y p el
número de estados de M.
Sea s = s1 , s2 , . . . , sn ∈ A y |s| = n y n ≥ p.
Sea también r = r1 , r2 , . . . , rn+1 la secuencia de estados que
se recorre en M al aceptar la cadena s, es decir,
∀i , 0 ≤ i ≤ n, ri +1 = δ(ri , si )
Entre los primeros p + 1 elementos de la secuencia r , hay dos
que tienen que corresponder al mismo estado (por el principio
de las palomas), sea rj la primera ocurrencia del estado
repetido y rl la segunda, notar que l ≤ p + 1
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Demostración del Lema de Bombeo
Demostración.
Sea x = s1 , . . . , sj−1 , y = sj , . . . , sl−1 y z = sl , . . . , sn . Como x
lleva la máquina desde el estado inicial r1 hasta el estado rj , y leva
la máquina desde rj hasta rj y z la lleva desde rj hasta el estado de
aceptación rn , entonces M tiene que aceptar xy i z para i ≥ 0.
Sabemos que j 6= l , |y | > 0 y l ≤ p + 1 ası́ que |xy | ≤ p por lo que
se satisfacen todas las condiciones del lema.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Uso del lema para probar que un lenguaje no es regular
Se realiza la demostración por contradicción:
Se supone el que lenguaje si es regular
Se aplica el lema que garantiza que existe un valor p.
Finalmente se muestra que no es posible dividir la cadena en
tres partes xyz de manera que las cadenas xy i z para i ≥ 0
pertenezcan también al lenguaje.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Ejemplo 1.
Sea B = {0n 1n | n ≥ 0}, mostrar que B no es un lenguaje regular.
Demostración.
Sea p la longitud de bombeo y sea s = 0p 1p ∈ B y |s| > p. Por el
lema de bombeo ∃xyz = s tal que xy i z ∈ B∀i , i ≥ 0. Surgen
entonces los siguientes casos:
Si y contiene únicamente ceros ó únicamente unos, la cadena
xyyz no pertenece al lenguaje, por tener mayor cantidad de
elementos de un sı́mbolo que del otro.
Si y contiene ceros y unos, la cadena xyyz no pertenece al
lenguaje por no tener todos los ceros juntos y todos los unos
juntos.
Por lo tanto, B no es un lenguaje regular.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Ejemplo 2.
Sea C = {w | w tiene el mismo número de unos y ceros}, mostrar
que C no es un lenguaje regular.
Demostración.
Sea p la longitud de bombeo y sea s = 0p 1p ∈ C y |s| > p. Por el
lema de bombeo ∃xyz = s tal que xy i z ∈ C ∀i ≥ 0. Sea x = ε y
z = ε, en este caso, xyz efectivamente pertenece a C , sin embargo,
la condición 3 requiere además que |xy | ≤ p y esa condición no se
cumple. Por lo tanto, C no es un lenguaje regular.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Ejemplo 3.
Sea F = {ww | w ∈ {0, 1}∗ , mostrar que F no es un lenguaje
regular.
Demostración.
Sea p la longitud de bombeo y sea s = 0p 10p 1 ∈ F y |s| > p. Por
el lema de bombeo ∃xyz = s tal que xy i z ∈ F ∀i ≥ 0. La condición
3 implica que y sólo puede contener ceros y de ese modo xyyz no
pertenecerı́a a F . Por lo tanto, F no es un lenguaje regular.
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Ejemplo 4.
2
Sea D = {1n | n ≥ 0}, mostrar que D no es un lenguaje regular.
Demostración.
Por la condición 3, tenemos que |xy | ≤ p por lo tanto |y | ≤ p.
Tenemos que |xyz| = p 2 y |xyyz| = P 2 + p, pero p 2 + p < (p + 1)2 ,
como la condición 2 requiere que |y | > 0, entonces |xyyz| > p 2 .
Por lo tanto: p 2 < |xyyz| < (p + 1)2 y xyyz 6∈ D. De donde se
deduce que D no es un lenguaje regular.
Descargar