Está en la página 1de 44

Unidad 4

Lema del Bombeo


(“Pumping Lemma”)
Intuición
• Sea el lenguaje

L  {w {a, b} * | n a (w)  n b (w)}


la pregunta es:

¿Existirá un AFD o un AFN capaz de reconocer dicho lenguaje?


Suponga un AF con m estados

• Supongamos una cuerda de longitud mayor que m que pertenece a L reconocido por
este AF.

• ¿Cómo procedería el AF al reconocer esa cuerda con longitud mayor que m?


Forzosamente se tendría que visitar más de una vez algún estado.
Intuición
• Entonces, una vez que se acepta un tipo de cuerda de longitud mayor que m,
el AF se vería obligado a aceptar una infinidad de cuerdas que se formarían a
partir de la cuerda original, al repetir (al “bombear”) una parte de ella un
número arbitrario de veces.

• Esta característica de los Lenguajes Regulares se expresa formalmente


mediante un lema que se conoce como Lema del Bombeo.
Lema del bombeo
Sea L un LR infinito sobre el alfabeto , m   
s  L con s  m, s puede ser descompuesta en tres
subcuerdas x, y, z 

s  xyz   | xy | m    y    
xy k
z  L ,  k  0
Lema del bombeo
Otra manera de enunciar el Lema del Bombeo, para todo LENGUAJE REGULAR
L existe un número n ϵ ℕ tal que:

Carrasco, R. C., Calera Rubio, J., & Forcada Zubizarreta, M. L. (2000). Teoría de lenguajes, gramáticas y
autómatas para informáticos. Digitalia.
Ejemplo
• Mediante el lema del bombeo, demostremos que no es un lenguaje
regular.


L a b |n0
n n

Mediante el Lema del Bombeo
• Se procede por Reducción al Absurdo, es decir se supone inicialmente que L es
regular para obtener una contradicción.

• Sea entonces m, ese número cuya existencia está garantizada por el lema del
bombeo para el lenguaje L, supuestamente Regular.

• Considérese la cuerda:

m 1 m 1
sa b
Mediante el Lema del Bombeo
Evidentemente s = am+1bm+1 tiene una longitud mayor que m.

Sea entonces s=xyz, la descomposición cuya existencia garantiza el


lema del bombeo con las propiedades correspondientes.

La porción “bombeable”, es decir la sub-cuerda “y”, tendría de


manera forzosa que consistir únicamente de letras “a” puesto que,
según el lema, |xy|  m.
Mediante el Lema del Bombeo
Inmediatamente se cae en una contradicción pues al “bombearla”, se
perdería el balance entre letras “a” y letras “b”, contrario a lo que
garantiza el lema del bombeo.

Por lo tanto, la suposición inicial de que L es regular, debe ser falsa.


Unidad 4
Generación de una ER a partir de un AF
Método de conversión
Este método se ilustra por medio de la representación gráfica de un
AF.

Se sustenta en la eliminación de los estados, uno a uno.

El primer paso del algoritmo consiste en “normalizar” el AF original.


Clave del algoritmo
• La clave del algoritmo radica en lo que se hace para eliminar una
estado del AF.

• Al hacerlo es necesario garantizar que las cuerdas que podían


reconocerse antes de la eliminación sigan siendo aceptadas.
Clave del algoritmo

R2

R1 R3
w v x

En este caso eliminaremos el estado V, y el AF


deberá seguir reconociendo las mismas cuerdas
Clave del algoritmo

R2

R1 R3
w v x

R1 R2*R3
w x
Algoritmo para obtener una ER a partir de un AF

Entrada Salida
• Un AF, A • Una ER, R
• Reconoce un • Reconoce
lenguaje, L(A) Algoritmo exactamente
L(A)
Algoritmo de AF a ER

1. Se “normaliza” al construir un AF equivalente, pero


posiblemente de tipo AFN, que posee un solo
estado final (quizás nuevo) del que no sale ninguna
transición, así como un estado inicial (tal vez
también nuevo) al que no llegue ninguna
transición.
Algoritmo de AF a ER

2. Se procede a eliminar, uno a uno, cada estado, V, distinto del


estado inicial y final. Al hacerlo, para garantizar que el AF resultante
siga siendo equivalente, es necesario realizar cambios en las
transiciones entre los estados que permanecen y los posibles casos
en que V haya podido estar involucrado con otros estados, por
ejemplo, W, X:
Suponga que existe:

Una transición anotada con R1, desde W hacia V


Una transición anotada con R2, desde V hacia X
Una transición anotada con R3, desde V hacia V
Algoritmo de AF a ER

Entonces, al eliminar V, es necesario construir una nueva transición,


anotada con: R1(R3)*R2, directamente desde W hacia X. Si no
existe el ciclo directo de V hacia V, entonces la transición desde W
hacia X se simplifica a: R1R2 (los estados W y X pueden, de hecho,
ser el mismo).
Algoritmo de AF a ER
3. Si, además de las transiciones del paso 2 existieran estas otras:

Una transición anotada como R4, desde V hacia otro estado Q


Una transición anotada como R5, desde Q hacia V,

Deberá tenerse el cuidado de añadir a la ER que resultó del


paso anterior, mediante la unión (+) la ER siguiente:
R1(R3)*(R4R5)*(R3)*R2

4. Antes de cada nueva eliminación de estados (incluyendo antes


de la primera eliminación), debe advertirse si existe más de una
transición directa de un estado a otro, en cuyo caso se
combinan esas transiciones en una sola anotada como la unión
(+) de las ER de las transiciones en cuestión.
Algoritmo de AF a ER

5. Cuando se han eliminado todos los estados, excepto el inicial y


el final, los dos estados estarán conectados por una sola
transición, anotada por un ER que será la respuesta final, es
decir, la ER equivalente al AF original.
Ejemplo
• Encontrar una ER equivalente al AF siguiente:

a
4
a 1
b

0 b a

a
2 3
b
Ejemplo

Primero lo primero….
Ejemplo

Debemos “normalizar” el AF
a
4
a 1 b

0 b a

a
2 3
b
Ejemplo

a
4
a 1 b

0 b a
F
a
2 3
b

Agregamos un estado final, llamado “F”, y los estados


finales dejan de serlo
Ejemplo

a
4
a 1 b
λ
0 b a
F
a λ
2 3
b

Agregamos una transición con la cuerda nula de cada uno de


los estados finales que teníamos hacía el nuevo estado final
Ejemplo

a
4
a 1 b
λ
I b a
F
a λ
2 3
b

Al estado inicial ahora llamaremos estado “I”


Ejemplo

a
4
a 1 b
λ
I b a
F
a λ
2 3
b

Ahora eliminaremos el estado 2, tomando en cuenta las


transiciones del estado I al 3 vía el estado 2
Ejemplo

a
4
a 1 b
λ
I b a
F

ab λ
3

Obtenemos la nueva transición del estado I al 3


Ejemplo

a
4
a 1 b
λ
I b a
F

ab λ
3

Ahora eliminemos el estado 4


Ejemplo

ab

a 1
λ
I b a
F

ab λ
3

Obtenemos la transición que se muestra del estado 1


hacia el mismo
Ejemplo
• De igual forma al eliminar el estado 1 deberán considerarse las transiciones:
• Del estado inicial I al estado F, vía el estado 1
• Del estado inicial I al estado final F, vía los estados 1-3-1

ab

a 1
λ
I b a
F

ab 3
λ
Ejemplo
• Del estado inicial I al estado 3, vía el estado 1
• Del estado 3 hacía el mismo, vía el estado 1
• Del estado 3 al estado F, vía el estado 1

ab

a 1
λ
I b a
F

ab 3
λ
Ejemplo

• Analicemos cada transición…


Ejemplo
Eliminación del estado 1:
• Del estado inicial I al estado F, vía el estado 1: a(ab)*
• Del estado inicial I al estado final F, vía los estados 1-3-1: a(ab)*(ba)*(ab)*

ab

a 1
λ
I b a
F

ab 3
λ
Ejemplo
• Del estado inicial I al estado 3, vía el estado 1: a(ab)*b
• Del estado 3 hacía el mismo, vía el estado 1: a(ab)*b
• Del estado 3 al estado F, vía el estado 1: a(ab)*

ab

a 1
λ
I b a
F

ab 3
λ
Ejemplo
• Reetiquetamos las transiciones considerando las expresiones regulares
construidas anteriormente y aquellas transiciones directas que ya
existían.
Ejemplo


I F



3

θ
□ = a(ab)* + a(ab)*(ba)*(ab)*
∆ = ab + a(ab)*b
◊= λ + a(ab)*
θ = a(ab)*b
Ejemplo


I F



3

Finalmente, eliminamos el estado 3


Ejemplo

Z
I F

Obtenemos el AF con solo dos estados en transición por


medio de Z, donde:
Z = □ + ∆θ*◊
Ejemplo

Z
I F

Z = (a(ab)* + a(ab)*(ba)*(ab)*) + ∆θ*◊


Ejemplo

Z
I F

Z = (a(ab)* + a(ab)*(ba)*(ab)*) + (ab + a(ab)*b)θ*◊


Ejemplo

Z
I F

Z = (a(ab)* + a(ab)*(ba)*(ab)*) + (ab + a(ab)*b)(a(ab)*b)*◊


Ejemplo

Z
I F

Z = (a(ab)* + a(ab)*(ba)*(ab)*) + (ab + a(ab)*b)(a(ab)*b)*(λ + a(ab)*)


Nota: Esta expresión regular podría simplificarse aplicando las leyes
algebraicas expuestas en los temas anteriores.

También podría gustarte