• No se han encontrado resultados

3. M´etodo para obtener la Expresi´on regular que denota a un AF dado.

N/A
N/A
Protected

Academic year: 2022

Share "3. M´etodo para obtener la Expresi´on regular que denota a un AF dado."

Copied!
6
0
0

Texto completo

(1)

Teor´ıa de Aut´omatas y Lenguajes Formales

Bolet´ın de Autoevaluaci´on 4: ¿C´omo se calcula la Expresi´on Regular asociada a un AFD?.

1. Objetivos.

El objetivo de este bolet´ın es ilustrar uno de los m´etodos que permiten calcular la expresi´on regular que denota el mismo lenguaje que un Aut´omata Finito reconoce mediante ejemplos y, adem´as, proporcio- nar la soluci´on a alguno de los problemas propuestos en el bolet´ın para que pod´ais comprobar si hab´eis aplicado bien este m´etodo.

2. Idea Principal.

Los teoremas de Kleene, el de An´alisis y el de S´ıntesis, establecen la equivalencia entre los AFs y las expresiones regulares. En concreto, el de An´alisis permite afirmar que dado un AFD, existe una expresi´on regular que lo denota. Su demostraci´on ya establece un m´etodo para calcular dicha expresi´on regular, pero en la pr´actica no es el m´etodo que se suele utilizar para realizar dicho c´alculo.

En su lugar, es m´as aconsejable el uso de la Regla de Arden. Para aplicarla, hay que establecer un sistema de ecuaciones lineales en expresiones regulares y resolverlo. Cada ecuaci´on de un sistema de ecuaciones lineales en expresiones regulares tiene la siguiente forma general

X = rX + s

en la que r y s son expresiones regulares sobre un alfabeto Σ. Dependiendo de que λ ∈ r o λ 6∈ r se tienen dos soluciones para dicha ecuaci´on:

- λ 6∈ r y, entonces, X = rs. Para comprobarlo, basta ver que

X = rX + s = r(rs) + s = (rr+ λ)s = rs = X.

- λ ∈ r y, entonces, hay infinitas soluciones X = r(s + t), donde t es una expresi´on regular cual- quiera sobre Σ (normalmente, este caso no nos afectar´a). Este resultado puede comprobarse de la siguiente forma,

X = rX + s = r(r(s + t)) + s = (rr+ λ)s + rrt = (r++ λ)s + r+t.

Como r= r+si λ ∈ r, entonces lo anterior queda,

(r++ λ)s + r+t = (r+ λ)s + rt = r(s + t) = X.

3. M´etodo para obtener la Expresi´on regular que denota a un AF dado.

El m´etodo se basa en el establecimiento de un sistema de ecuaciones lineales en expresiones regulares a partir del AF. Sea A,

A = hΣ, Q, f, q0, F i

(2)

un AFD o un AFN; a A se le puede asociar un sistema de ecuaciones lineales en expresiones regulares de la siguiente forma:

1. Se asocia una variable a cada estado: ∀qi ∈ Q, se le asocia Xi.

2. Las ecuaciones se construyen en funci´on de las transiciones: si qj ∈ f (qi, a), entonces en la ecuaci´on de la variable Xiaparece el t´ermino aXjen su parte derecha: Xi = ... + aXj+ ....

3. Adem´as, se asocia el t´ermino λ a los estados finales: si qi ∈ F , entonces en la ecuaci´on de la variable Xiaparece λ en su parte derecha: Xi= ... + λ + ....

El lenguaje reconocido por el AF es la expresi´on regular de la variable asociada a su estado inicial.

3.1. Ejemplo 1.

Hay que calcular la expresi´on regular que denota el lenguaje reconocido por el aut´omata que se muestra en la siguiente figura:

q0

0, 1

q3

q1

1 0

q2

0

1 1

0 X2

X3

X0 X1

Sobre la figura se ha asociado ya a cada estado su correspondiente variable. De acuerdo al segundo y tercer paso del m´etodo, el sistema de ecuaciones lineales que hay que resolver es el siguiente:

X0 = 0X1+ 1X1+ λ = (0 + 1)X1+ λ X1 = 0X2+ 1X3+ λ

X2 = 1X2+ 0X1

X3 = 0X3+ 1X1

Recordemos que la soluci´on de la ecuaci´on general, X = rX + s es X = rs. En la ´ultima ecuaci´on, si identificamos t´erminos con r y s se tiene:

X3 = 0

|{z}r

X3+ 1X1

| {z }

s

.

Por lo tanto,

X3 = 01X1.

(3)

De forma similar, se puede operar con X2, X2 = 1

|{z}r

X2+ 0X1

| {z }

s

, ⇒ X2= 10X1.

Se tienen X2y X3en funci´on de X1. Al substituir en la ecuaci´on de X1 se obtiene X1= 0X2+ 1X3+ λ = 010X1+ 101X1+ λ = (010 + 101)X1+ λ

Agrupando t´erminos se llega a X1= (010 + 101)

| {z }

r

X1+ λ

|{z}s

, ⇒ X1= (010 + 101)λ = (010 + 101).

y, al substituir en la ecuaci´on de X0se obtiene finalmente,

X0= (0 + 1)X1+ λ = (0 + 1)(010 + 101)+ λ,

⇒ L(AF D) = (0 + 1)(010 + 101)+ λ.

3.2. Ejemplo 2.

El siguiente ejemplo es el mismo que ten´eis en los apuntes de teor´ıa ilustrando el Teorema de An´alisis (y as´ı podr´eis comparar ambos m´etodos). El aut´omata es el siguiente:

Se asocia X1 al estado q1, X2 al estado q2 y X3 al estado q3. El sistema de ecuaciones lineales resultante es:

X1= 0X2+ 1X3

X2= 0X2+ 1X3+ λ X3= 1X3+ 0X2

Podemos comenzar con la ecuaci´on de X3: X3 = 1

|{z}r

X3+ 0X2

| {z }

s

, ⇒ X3= 10X2.

Se substituye la expresi´on obtenida en la ecuaci´on de X2, X2 = 0X2+ 1X3+ λ = 0X2+ 110X2+ λ = 0 + 110

| {z }

r

X2+ λ

|{z}s

, ⇒ X2 = (0 + 110).

(4)

Ahora se substituyen X2y X3en la ecuaci´on de X1:

X1 = 0X2+ 1X3 = 0(0 + 110)+ 110X2 = 0(0 + 110)+ 110(0 + 110) y, si se agrupan t´erminos, se llega a

X1 = (0 + 110)(0 + 110) = ((λ + 11)0)((λ + 11)0) = 10(10) = (10)10 = (1 + 0)0.

Es decir,

L(AF D) = (1 + 0)0.

Nota: Las expresiones regulares tienen un mont´on de propiedades y, a veces, nos asusta el “mo- goll´on”. En el desarrollo anterior hemos usado tres de las que m´as salen; recordadlas, que son muy

´utiles:

(1) (λ + αα) = α, (2) αα= αα y (3) (αβ)α= (α + β).

Otra buena pol´ıtica para evitar “enmogollanarse” es simplificar desde el principio todo lo que poda- mos. Del sistema original,

X1= 0X2+ 1X3

X2= 0X2+ 1X3+ λ X3= 1X3+ 0X2

se sigue que X2 = X1+ λ. Si se usa esa relaci´on, el resultado es bastante m´as simple:

X3= 10X2, X2= X1+ λ ⇒ X3= 10(X1+ λ).

Al substituir en X1:

X1 = 0X2+ 1X3= 0(X1+ λ) + 110(X1+ λ) = (0 + 110)X1+ (0 + 110) = (0 + 110)(0 + 110) se llega con menos pasos al mismo resultado (bueno, falta volver a aplicar las tres propiedades anteriores para obtener la expresi´on simplificada, pero... aplicadlas vosotros y vais entren´andoos ;-).

3.3. Autoevaluaci´on.

1. Construir expresiones regulares que denoten los mismos lenguajes que los reconocidos por los siguientes aut´omatas finitos:

Soluci´on: El primer aut´omata queda denotado por la expresi´on regular 0. La verdad es que se ve a “ojo”... en este problema lo complicado es obtenerla formalmente. Como pistas, las siguientes:

(5)

la expresi´on regular ∅ concatenada con cualquier otra expresi´on regular es ∅ (r∅ = ∅r = ∅, ∀ expr. reg. r: si no concateno nada con r ¿qu´e obtengo? ¡nada!).

Por definici´on ∅ = {λ, ∅} = λ.

Para acabar de liar el problema, ten´eis el segundo aut´omata:

L(AF D) = ((0(10)(0 + 11) + 1(01)(1 + 00))(0(10)(1 + λ) + 1(01)(0 + λ))).

2. Calcular la expresi´on regular asociada al AFD m´ınimo que reconoce el mismo lenguaje que el representado en la figura (obtener antes el AFD m´ınimo).

q4 q0

0

0 q1

1

q5

0

1 1

0

q3 q2

1 0

1 1

0

Soluci´on: AFD m´ınimo: q0 ≡ q1 y q2 ≡ q3. Expr. Reg.: L(AF D) = (0 + 1)1(0 + 1) 3. En el Bolet´ın de Autoevaluaci´on 1, se propuso la transformaci´on del siguiente AFλ a AFD:

AFD equivalente:

f a b c

F {q0} {q1, q3} {q1} ∅ {q1, q3} ∅ {q1} {q2, q4}

{q1} ∅ {q1} {q2} F {q2, q4} ∅ {q1, q3} {q2} F {q2} ∅ {q1, q3} {q2}

Completar el problema dando la expresi´on regular del AFD m´ınimo equivalente.

Soluci´on: L(AF D) = (a + b)(b + c)c + λ.

(6)

4. Obtener el AFD m´ınimo que reconozca el lenguaje reconocido por el siguiente AFλ,

Calcular la expresi´on regular asociada al lenguaje reconocido por el aut´omata anterior.

Soluci´on: Pistas: el AFD m´ınimo tiene 3 estados y los 3 son finales.

L(AF D) = (ac)(a+ b(b + c)).

Referencias

Documento similar