Вы находитесь на странице: 1из 35

Lenguajes Formales y Autómatas

Luis M. Estrada

luism@iib.unam.mx
fi-unam

Agenda

• Minimización de autómatas
• Propiedades de cierre de Lenguajes regulares
• Lema del Bombeo

Semestre 2019-I
fi-unam

Minimización de AFD

• Por cuestiones de eficiencia estamos interesados


en autómatas que tengan el menor número de
estados posibles
• La minimización consiste en la simplificación del
autómata de modo que tenga el menor número
posible de estados y siga aceptando el mismo
lenguaje que antes de la minimización.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


3/35
fi-unam

Minimización de AF

Dos estados p y q son distinguibles sii:

Caso base: q ∈ F y p ∈
/F

Caso inductivo: r y s son estados distinguibles y δ(q, a) = r y


δ(q, a) = s para alguna a ∈ Σ

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


4/35
fi-unam

Minimización de AFD
Minimización por tabla de estados distinguibles

Sea A = (Q, Σ, δ, s, F ) un AFD, con Q = {q1 , ..., qk }:

1 Se construye una tabla de k × k donde el renglón i


corresponde al estado qi y la columna j al estado qj . Se
marcan todas las todos los pares (i, j) para los que qi es final
y qj no.
2 Se repite lo siguiente hasta que ya no haya cambios: Si para
algún a ∈ Σ la casilla correspondiente a δ(qi , a) y δ(qj , a) está
marcada entonces se marca (i, j)
3 Al terminar el paso anterior, qi es equivalente a qj sii el la
entrada (i, j) no está marcada.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


5/35
fi-unam

Simplificación y minimización de
AF
Ejemplo de minimización:

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


6/35
fi-unam

Simplificación y minimización de
AF
Ejemplo de tabla de estados distinguibles

2
3
4
5
1 2 3 4

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


7/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0
5 0
1 2 3 4

Al inicio se marcan los pares de estados en los que uno es final y el


otro no. Por ejemplo, el par (4,1)
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
8/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0
5 0
1 2 3 4

Iteración 1: Analizando el par (3, 2) para el sı́mbolo a:


δ(3, a) = 4 y δ(2, a) = 4
Ambas transiciones van al mismo estado por lo tanto el par (3, 2)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
9/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0
5 0
1 2 3 4

Iteración 1: Analizando el par (3, 2) para el sı́mbolo b:


δ(3, b) = 1 y δ(2, b) = 1
Ambas transiciones van al mismo estado por lo tanto el par (3, 2)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
10/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0
5 0
1 2 3 4

Iteración 1: Analizando el par (4, 2) para el sı́mbolo a:


δ(4, a) = 4 y δ(2, a) = 4
Ambas transiciones van al mismo estado por lo tanto el par (4, 2)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
11/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1
5 0
1 2 3 4

Iteración 1: Analizando el par (4, 2) para el sı́mbolo b:


δ(4, b) = 2 y δ(2, b) = 1
El par (2, 1) está marcado, por lo tanto se marca también el par
(4, 2)
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
12/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1
5 0
1 2 3 4

Iteración 1: Analizando el par (5, 2) para el sı́mbolo a:


δ(5, a) = 4 y δ(2, a) = 4
Ambas transiciones van al mismo estado por lo tanto el par (5, 2)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
13/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1
5 0 1
1 2 3 4

Iteración 1: Analizando el par (5, 2) para el sı́mbolo a:


δ(5, b) = 3 y δ(2, b) = 1
El par (3, 1) está marcado, por lo tanto se marca también el par
(5, 2)
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
14/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1
5 0 1
1 2 3 4

Iteración 1: Analizando el par (4, 3) para el sı́mbolo a:


δ(4, a) = 4 y δ(3, a) = 4
Ambas transiciones van al mismo estado por lo tanto el par (5, 2)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
15/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1
1 2 3 4

Iteración 1: Analizando el par (4, 3) para el sı́mbolo b:


δ(4, b) = 2 y δ(3, b) = 1
El par (2, 1) está marcado, por lo tanto se marca también el par
(4, 3)
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
16/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1
1 2 3 4

Iteración 1: Analizando el par (5, 3) para el sı́mbolo a:


δ(5, a) = 4 y δ(3, a) = 4
Ambas transiciones van al mismo estado por lo tanto el par (5, 3)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
17/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1 1
1 2 3 4

Iteración 1: Analizando el par (5, 3) para el sı́mbolo b:


δ(5, b) = 3 y δ(3, b) = 1
El par (3, 1) está marcado, por lo tanto se marca también el par
(5, 3)
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
18/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1 1
1 2 3 4

Iteración 1: Analizando el par (5, 4) para el sı́mbolo a:


δ(5, a) = 4 y δ(4, a) = 4
Ambas transiciones van al mismo estado por lo tanto el par (5, 4)
no se marca
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
19/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1 1
1 2 3 4

Iteración 1: Analizando el par (5, 4) para el sı́mbolo b:


δ(5, b) = 3 y δ(4, b) = 2
El par (3, 2) no está marcado, por lo tanto no se marca el par (5, 4)
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
20/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1 1
1 2 3 4

Iteración 2: Se repite el proceso anterior para los pares no


marcados, sin embargo resulta que en esta iteración ya no se
marca ningún par, lo cual es la condición de paro del algoritmo.
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
21/35
fi-unam

Simplificación y minimización de
AF

2 0
3 0
4 0 1 1
5 0 1 1
1 2 3 4

Por lo tanto los pares de estados no marcados se pueden fusionar


en un solo estado ya que son indistinguibles. El resultado es el
autómata mı́nimo.
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
22/35
fi-unam

Propiedades de cierre de los


Lenguajes Regulares

Los lenguajes regulares son cerrados bajo las operaciones de:


• Unión
• Intersección
• Complemento
• Concatenación
• Cerradura

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


23/35
fi-unam

Propiedades de cierre de los


Lenguajes Regulares

Los lenguajes regulares son cerrados bajo las operaciones de:


• Unión (por definición)
• Intersección
• Complemento
• Concatenación (por definición)
• Cerradura (por definición)

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


24/35
fi-unam

Si un lenguaje es regular su
complemento es regular

Demostración:

Si A = (Q, Σ, ∆, s, F ) es un AFD entonces el autómata


Ac = (Q, Σ, δ, s, Q − F ) acepta el lenguaje complemento de L(A),
es decir:

L(Ac ) = Σ∗ − L(A)

Obsérvese que el autómata Ac se obtiene haciendo los estados


finales no finales y viceversa.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


25/35
fi-unam

La intersección de dos lenguajes


regulares es regular

Demostración:

Se sigue de la demostración anterior, ya que si A y B son dos


lenguajes regulares, entonces A ∩ B = A ∪ B es regular ya que el
complemento de regulares es regular.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


26/35
fi-unam

Limitaciones de los autómatas


finitos
El lenguaje {an bn } no es regular.

Demostración: Supongamos que lo es y que A es un autómata


determinista con k estados y L(A) = {an bn }. Consideremos la
cadena am bm con m > k. Ya que |am | = m > k es mayor que el
número de estados, necesariamente el autómata debe haber
pasado al menos dos veces por un mismo estado al procesar las a’s
en la cadena. Sea q dicho estado. Ahora dividimos la cadena am bm
en u, v y w en donde v es la cadena de a’s leı́da entre las
repeticiones del estado q. Por lo tanto:
δ ∗ (q0 , u) = q
δ ∗ (q, v ) = q
δ ∗ (q, w ) = f ∈ F
Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@
27/35
fi-unam

Limitaciones de los autómatas


finitos
Continuación de la demostración...
Sea |v | = j > 0
Dado que
δ ∗ (q0 , u) = q
δ ∗ (q, v ) = q
δ ∗ (q, w ) = f ∈ F
Entonces
δ ∗ (q0 , uv 0 w ) = δ ∗ (q0 , uw ) = δ ∗ (δ ∗ (q0 , u), w ) = δ ∗ (q, w ) = f ∈ F
Es decir, la cadena uw ∈ L(A), lo cual es una contradicción ya que
uw = u(v j )0 w = am−j bm y j > 0, es decir la cadena uv tiene
menos as que bes.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


28/35
fi-unam

Limitaciones de los autómatas


finitos

Continuación de la demostración...

Similarmente es posible ver que uv i w ∈ L(A) para toda i > 0, lo


cual también es una contradicción pues v es una cadena de a’s y
en consecuencia uv i w siempre tendrá más a’s que b’s .

En resumen: podemos repetir (bombear) la cadena v tantas veces


como queramos y el autómata A la aceptarı́a.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


29/35
fi-unam

Lema del bombeo

El razonamiento anterior se formaliza como sigue.

Lema del bombeo (pumping lemma):

Para cualquier lenguaje regular L existe un entero natural k > 0 tal


que para toda x ∈ L con |x| ≥ k, existen u, v , w ∈ Σ∗ tal que:
1 x = uvw
2 |uv | ≤ k
3 |v | ≥ 1
4 uv i w ∈ L para todo i ≥ 0

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


30/35
fi-unam

Cómo usar el Lema del bombeo

1 Suponer que L es regular. Luego L cumple el lema del


bombeo.
2 Escoger una cadena de longitud mayor que k, donde k es la
constante del lema del bombeo. (elegir sabiamente la cadena)
3 Sabemos que v está en los primeros k caracteres. Después
bombeamos o desinflamos v para obtener una nueva cadena.
4 Demostrar que la nueva cadena no está en L.
Pero como supusimos que L es regular por el L.B. esta cadena
debe estar en L. Entonces hemos llegado a una contradicción
al suponer que L era regular. Por lo tanto L no es regular.
5 Fin de la demostración.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


31/35
fi-unam

Cómo usar el Lema del bombeo


2
Demostrar que el lenguaje {an } no es regular.
2
Supongamos que {an } es regular.

Demostración: Supongamos que es regular. Sea.


2
• x = ak en donde k es la constante del lema del bombeo
• Entonces
k 2 = |uvw | < |uv 2 w | = |uvw | + |v | ≤ k 2 + k <
k 2 + k + (k + 1) = (k + 1)2
Es decir k 2 < |uv 2 w | < (k + 1)2 por lo tanto uv 2 w ∈
/ L ya
que su longitud no puede ser el cuadrado de un número. Ası́
concluimos que L no es regular.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


32/35
fi-unam

Otras formas de demostración de


no regularidad

Demostrar que L = {w ∈ {a, b}∗ | #a(w ) = #b(w )} no es


regular.
Supongamos que L es regular:
• El lenguaje {a∗ b ∗ } es regular.
• {a∗ b ∗ } ∩ {w ∈ {a, b}∗ | #a(w ) = #b(w )} = {an b n }
• Los lenguajes regulares son cerrados bajo ∩ .
• Entonces {an b n } es regular, pero esto es una contradicción.
• L no es regular.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


33/35
fi-unam

Otras formas de demostración de


no regularidad

L = {w ∈ {a, b}∗ | #a(w ) 6= #b(w )} ¿Es regular?


Lc = {w ∈ {a, b}∗ | #a(w ) = #b(w )}
Pero ya demostramos que Lc no es regular. Pero los lenguajes
regulares son cerrados por complemento, por lo tanto L no es
regular.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


34/35
fi-unam

Resumen de lenguajes regulares

Hemos visto cuatro formas de caracterizar los lenguajes regulares


(Tipo 3):

• Expresiones Rulares
• Autómatas Finitos Deterministas
• Autómatas Finitos No Deterministas
• Gramáticas Regulares

Además hemos demostrado que hay lenguajes que no pueden ser


reconocidos por autómatas finitos.

Luis M. Estrada[3ex]luism@iib.unam.mx[3ex] — Lenguajes Formales y Autómatas@—Semestre 2019-I@


35/35

Вам также может понравиться