0% encontró este documento útil (0 votos)
309 vistas30 páginas

Relación entre Autómatas Finitos y Expresiones Regulares

El documento describe las relaciones entre autómatas finitos y expresiones regulares. Explica que los autómatas finitos pueden construirse para aceptar lenguajes unitarios y el lenguaje vacío. También describe cómo unir autómatas para aceptar la unión, concatenación y cerradura de estrellas de los lenguajes que aceptan. Finalmente, establece que los lenguajes regulares y los lenguajes aceptados por autómatas finitos son equivalentes.

Cargado por

Daniel Cuadras
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
309 vistas30 páginas

Relación entre Autómatas Finitos y Expresiones Regulares

El documento describe las relaciones entre autómatas finitos y expresiones regulares. Explica que los autómatas finitos pueden construirse para aceptar lenguajes unitarios y el lenguaje vacío. También describe cómo unir autómatas para aceptar la unión, concatenación y cerradura de estrellas de los lenguajes que aceptan. Finalmente, establece que los lenguajes regulares y los lenguajes aceptados por autómatas finitos son equivalentes.

Cargado por

Daniel Cuadras
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

AUTOMATAS FINITOS

Y EXPRESIONES
REGULARES

José Daniel Cuadras Ríos


Lenguajes Formales y Autómatas
Maestría en ciencias de la Ingeniería
Autómatas finitos y expresiones regulares
Hasta ahora, hemos tratado de la relación entre autómata finito
y expresiones regulares de una forma intuitiva. En esta sección,
formalizaremos dicha relación por medio del teorema de Kleene.
De momento vamos a ver algunas propiedades de los lenguajes
aceptados por autómatas finitos.
Autómatas finitos y expresiones regulares
Para un alfabeto 𝛴 se puede construir los AFN (y los AFD) que acepten
palabras unitarios. Por ejemplo, el AFN de la Figura a acepta el lenguaje
unitario {a}. Para ello se puede construir, incluso, una AFN que acepte el
lenguaje vacío ∅. Dicho AFN se muestra en la figura b. Observe que este
autómata no acepta ninguna cadena.

q1 a q2 q1

Figura a Figura b
Autómatas finitos y expresiones regulares
Supongamos que M1 = (Q1, 𝛴1, s1, F1, ∆1) y M2 = (Q2, 𝛴2, s2, F2, ∆2) son AFN.
podemos unir M1 y M2 en un nuevo AFN que acepte L(M1) ⋃ L(M2),
añadiendo un nuevo estado inicial s y dos 𝜀-transiciones, una de s a s1 y otra
de s a s2. La construcción formal de este nuevo AFN M(Q, 𝛴, s, F, ∆) viene dado
por 𝛴= 𝛴1 ⋃ 𝛴2, F=F1 ⋃ F2, Q= Q1 ⋃ Q2 ⋃{s}, donde s es el nuevo estado inicial
y ∆ se define de forma que se incluyan todas las transiciones de ∆1, ∆1 y las
dos nuevas 𝜀-transiciones de s a s1 y s2.
Autómatas finitos y expresiones regulares
• 
Conviene considerar las relaciones de transición ∆1 y ∆2 como colecciones de
ternas ordenadas de Q1 x 𝛴 x Q1 y Q2 x 𝛴 x Q2, donde (q, 𝜎, p) significa que
existe una transición de q a p mediante el carácter 𝜎 (es decir, p ∊ ∆i (q, 𝜎)).
Usando esta notación se puede definir

Por ejemplo, los AFN de las figuras siguientes, los cuales aceptan ab* y (ab)*,
respectivamente, se pueden unir formando el autómata con -transiciones, el cual
puede aceptar ab* (ab)*.
Autómatas finitos y expresiones regulares
b

a b

q’1 q’2 q’3

q’’1 q’’2
Autómatas finitos y expresiones regulares
b

a b

𝜀 q’1 q’2 q’3

b
q
𝜀
a

q’’1 q’’2
Autómatas finitos y expresiones regulares
Sean M1 = (Q1, 𝛴1, s1, F1, ∆1) y M2 = (Q2, 𝛴2, s2, F2, ∆2) dos AFN. Podemos
unirlos para formar un AFN que acepte L (M1) L (M2). Se necesita un AFN que
reconozca una cadena de L (M1) y después reconozca una de L (M2). Es decir,
un recorrido hasta un estado de aceptación para admitir la cadena en su
totalidad, primero debe pasar por un estado de aceptación de M1 y después
pasar (y terminar) en un estado de aceptación de M2. Esto se realiza de forma
no determinista pasando del estado final de M1 al estado inicial de M2 por
medio de una 𝜀-transición.
Autómatas finitos y expresiones regulares
Por ejemplo, los AFN de la Figura siguiente aceptan los lenguajes {a} y {b},
respectivamente. Uniéndolos como hemos dicho, se obtiene un AFN que
acepta el lenguaje {ab}.
a b

q’1 q’2 q’’1 q’’2

a 𝜀 b

q’1 q’2 Q’’1 q’’2


Autómatas finitos y expresiones regulares
Obsérvese que el autómata que se obtiene tiene como estado inicial el estado
inicial de M1 y como estado(s) final(es) el(los) estado(s) final(es) de M2. Por
tanto, el AFN M = (Q, Z, s, F, ∆) que acepta L(M1)L(M2) viene dado por:

Q = Q1 ⋃ Q2 ; S = S 1; F = F 2; ∆ = ∆1 ⋃ ∆2 ⋃ (F1 x {𝜀} x {s2})

La relación de transición ∆ incluye todas las transiciones presentes en los dos


AFN junto con todas las ternas de la forma (q, 𝜀, s2), donde q es un estado de
aceptación de M1. Es decir, s2 ∊ ∆ (q, 𝜀) para todo q ∊ F1.
Autómatas finitos y expresiones regulares
Se puede deducir un procedimiento para construir una AFN que acepte L(M)*
para el AFN M = (Q, 𝛴, s, F, ∆), como sigue. Primero, se añade un nuevo estado
inicial s’; se hará que este estado sea además un estado de aceptación con el
fin de que 𝜀 sea aceptada. Entonces, se permite una 𝜀-transición desde s’ a el
antiguo estado inicial s. Por tanto, M comenzará una vez que M’ se encuentre
en s’. Se tendrá además, una 𝜀-transición desde todos los estados de
aceptación hasta el estado inicial s’.
Autómatas finitos y expresiones regulares
Una vez que la cadena de L(M) ha sido agotada, el análisis puede continuar a
partir del estado inicial de M o terminar en s’. El autómata resultante será M’
= (Q’, 𝛴, s', F’, ∆'), donde

Q’ = Q ⋃ {s ‘}; F’={s’}; ∆' = ∆ ⋃ { (s’,𝜀,s)} ⋃ (F x {𝜀} x {s’})

Obsérvese que en la definición de ∆' se incluyen las e-transiciones necesarias


además de las del AFN M original.
De la discusión anterior se obtiene el siguiente teorema.
Autómatas finitos y expresiones regulares
Teorema 2.8.1. El conjunto de lenguajes aceptados por un autómata finito
sobre el alfabeto 𝛴 contiene ∅ y los lenguajes unitarios {a} para todo a ∊ 𝛴.
Este conjunto es cerrado con respecto a la unión, concatenación y la
cerradura de estrella.
Autómatas finitos y expresiones regulares
Basado en el ejemplo anterior. Para los AFN que aceptan los lenguajes {a} y
{b} respectivamente, podemos obtener {ab}, {ba}, {a*b}, {b*a}, {a*b*}, {ab}*
entre otros muchos.
Autómatas finitos y expresiones regulares
Dada una expresión regular r para construir un AFN (con 𝜀-transiciones en
todos los casos excepto para expresiones regulares triviales), podemos
aplicar las técnicas precedentes a los términos de las expresiones regulares.
Por lo tanto, todo lenguaje regular es aceptado por un autómata finito. Lo
recíproco también es cierto, como veremos en el Lema 2.8.3. Es decir, todo
lenguaje aceptado por un autómata finito es también un lenguaje regular. Por
lo tanto, el conjunto de los lenguajes regulares es el mismo que el conjunto de
los lenguajes aceptados por un autómata finito (Teorema 2.8.4).
Autómatas finitos y expresiones regulares
Consideremos el autómata finito M = (Q, 𝛴, s, F, ∆) y supongamos que
s = q0 es el estado inicial. Para todo estado qi, sea
Ai = {w ∊ 𝛴* | ∆ (qi, w)⋂F≠∅}
Es decir, Ai es el conjunto de las cadenas sobre 𝛴 que hacen que M pase desde
qi hasta un estado de aceptación. Se dice que Ai es el conjunto de las cadenas
aceptadas por el estado qi. Obsérvese en que A0 = L (M). Adviértase, también,
que es posible que Ai = ∅. Si qi ∊ F, entonces se obtiene que 𝜀 ∊ Ai.
Autómatas finitos y expresiones regulares
Como ejemplo, consideremos el autómata finito de la Figura siguiente.
q0 q1 q2 En el mismo, se tiene que
a b
A5 = ∅, A2 = 𝜀,
A4 = 𝜀, A1 = b,
a a, b
q5
A3 = a, A0 = ab ⋃ ba
b
b a, b
a

q3 q4
Autómatas finitos y expresiones regulares
Supongamos que qj ∊ ∆ (qi, 𝜎). Entonces Ai contiene a 𝜎Aj. De hecho, se tiene
que
Ai = ⋃{𝜎Aj | qj ∊ ∆ (qi, 𝜎 )}

Esto proporciona las técnicas recursivas básicas para obtener una expresión
regular a partir de un autómata finito. Como muestra, consideremos el
ejemplo anterior. Obsérvese que
Autómatas finitos y expresiones regulares
q0 q1 q2
A5 = ∅ A4 = 𝜀 U aA5 U bA5; a b

A3 = aA4 U bA5; A2 = 𝜀 U aA5 U bA5


a a, b
A1 = bA2 U aA5; A0 = aA1 U bA3; q5
b
b a, b

Por tanto, se tiene un sistema de a

ecuaciones que se cumplen para L (M). q3 q4


Se puede resolver por sustitución
obteniendo que L (M) = ab U ba.
Autómatas finitos y expresiones regulares
Considérese el autómata finito dado por la Figura siguiente. Del mismo modo
se obtiene que A1 = 𝜀; A0 = aA0 U bA1
a

q0 q1

Resolviéndolo por sustitución, resulta que A0 = aA0 U b y es imposible


simplificarlo más. El siguiente lema muestra cómo resolver esto para obtener
A0=a*b (que es lo que se espera tras inspeccionar el diagrama de transición).
Autómatas finitos y expresiones regulares
Lema 2.8.2. (Lema de Arden). Una ecuación de la forma X =AX⋃B, donde
𝜀∉A, tiene una solución única X = A*B.
Demostración. Obsérvese que A*B = (A+ ⋃ 𝜀 )B = A+B U B = A (A*B) ⋃ B. Por
tanto, A*B está contenida en toda solución. Supongamos que X = A*B ⋃ C es
una solución, donde C ⋂ A*B = ∅. Si se sustituye la expresión anterior en la
ecuación X = AX U B, se obtiene
Autómatas finitos y expresiones regulares
A*B ⋃ C = A ( A*B ⋃ C ) ⋃ B
= A+B ⋃ AC ⋃ B
= A+B ⋃ B ⋃ AC
= (A+ ⋃ 𝜀 ) B ⋃ AC
= A*B ⋃ AC
Realizando en ambos lados la intersección con C se obtiene C = AC ⋂ C (los otros
términos son ∅). Por tanto, C ⊆ AC . Pero, como 𝜀 ∉ A, la cadena más corta de AC debe
ser más larga que la cadena más corta de C. Esto contradice que C ⊆ AC a menos que C
= ∅. Luego se debe tener que C = ∅ y, por tanto, A*B es la única solución.
Autómatas finitos y expresiones regulares
Consideremos el autómata finito de la Figura siguiente:
A0 = aA1; A1 = aA2 U bA4; A2 = aA3 U bA4; A3 = 𝜀 U aA3 U bA4; A4 = b*

a b

a a a b

q0 q1 q2 q3 q4
b
b
Autómatas finitos y expresiones regulares
Sustituyendo y aplicando el lema de Arden cuando sea necesario, se obtiene;
A4 = b*
A3 = aA3 U b+ U 𝜀 = a*b*
A2 = a+b* U b+
A1 = a (a+b* U b+) U b+ = aa+b* U ab+ U b+
A0 = aA1 = a2 a+b* U a2 b+ U ab+
Entonces se deduce el siguiente lema.
Autómatas finitos y expresiones regulares
Lema 2.8.3. Sea M un autómata finito. Entonces existe una expresión regular r
para la cual L (r) = L (M).
Del Lema 2.8.3 junto con las observaciones anteriores al Teorema 2.8.1, se
obtiene el teorema de Kleene.
Teorema 2.8.4. (Kleene) Un lenguaje es regular si y sólo si es aceptado por un
autómata finito.
Autómatas finitos y expresiones regulares
Ejercicios
Obtener un AFN que acepte (a ⋃ b)* ⋃ (aba)+
Autómatas finitos y expresiones regulares
Ejercicios
Obtener un AFN para (ab)* a partir de los AFN que aceptan {a} y
{b}.
Autómatas finitos y expresiones regulares
Ejercicios
Obtener un AFN para (aa ⋃ b)* (bb ⋃ a)* a partir de los AFN que
aceptan {a} y {b}.
Autómatas finitos y expresiones regulares
Ejercicios
Obtener una expresión regular para el lenguaje aceptado por el
autómata finito de la Figura 2.46.
Autómatas finitos y expresiones regulares
Ejercicios
Obtener una expresión regular para el AFD de la Figura 2.47.

También podría gustarte