LenguajesRegulares

55
 Lenguajes regulares Teoría del Autómata

Transcript of LenguajesRegulares

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 1/55

 

Lenguajes regulares

Teoría del Autómata

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 2/55

 

LENGUAJES REGULARES

Lenguajes sobre alfabetos

Para un alfabeto S = {a1,a2,…,an} se pueden numerar las

palabras de S* de la siguiente manera:

e 0

a1 1

a2 2

. .

an  n

a1a1  n+1

a1a2  n+2

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 3/55

 

para S = {a, b}, podemos numerar sus cadenas con dígitos

binarios 1 y 2 en vez de 0 y 1. Sea a el 1 y b el 2, entonces se

obtiene

e 0

a 1

b 2

aa 11 = 3bb 12 = 4

abaa 1211 = 19

de esta manera se representa cada cadena como un entero único.

Y cualquier número podemos representarlo como una secuencia

de a’s y b’s, por ejemplo el 32 se convierte a 11112 y luego a

aaaab.

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 4/55

 

Teorema 1. Para todo alfabeto S, S* es infinito enumerable.

Teorema 2. El conjunto de todos los lenguajes sobre S no es

numerable.

Demostración. Llamemos  L al conjunto de todos los lenguajes

sobre S, si L es numerable, por tanto podemos enumerarlo como A0, A1, A2, … 

S* puede numerarse como w0, w1, w2, … Sea B = {wi | w

i   Ai}. B 

contiene las palabras que no pertenecen al lenguaje que tienen el

mismo índice que las mismas. Pero como B es un lenguaje B = Ak  para algún k . Si wk    B, entonces wk    Ak  = B. Y por lo tanto wk  

esta y no esta en Ak . Lo mismo sucede si suponemos w

k    B. Por

lo tanto L no es numerable.

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 5/55

 

El teorema 2 estipula que hay una cantidad innumerable de

lenguajes sobre un alfabeto particular.

Por tanto, no existe ningún método de especificación delenguajes que sea capaz de definir todos los lenguajes sobre

un alfabeto.

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 6/55

 

Lenguajes regulares yexpresiones regulares

Sea S un alfabeto. El conjunto de los lenguajes regulares sobre

S se define recursivamente como sigue:

1. es un lenguaje regular

2. {e} es un lenguaje regular

3. Para todo a  S {a} es un lenguaje regular

4. Si A y B son lenguajes regulares, entonces  A   B, A ·  B ,

 A* son lenguajes regulares

5. Ningún otro lenguaje sobre S es regular.

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 7/55

ejemplo

Por ejemplo. El lenguaje de todas las cadenas sobre {a, b, c}

que no tienen ninguna subcadena ac es un lenguaje regular, y

puede expresarse por

 A = {c}* ({a} {b}{c}*)* 

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 8/55

Simplificación

Se puede simplificar la notación mediante el uso de

expresiones regulares. Las equivalencias son:

a  b denota {a} {b}

ab denota {ab}

a* denota {a}* 

a+ denota {a}+ 

 Ejemplo: A = {c}* ({a} {b}{c}*)* = c* (a  bc*)*

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 9/55

Expresiones regulares

Los operadores tienen precedencia (*, · , ). Entonces, una

expresión regular sobre el alfabeto S, es

1. y e son expresiones regulares.

2. a es una expresión regular para todo a  S. 

3. Si r y s son expresiones regulares, entonces r   s, r · s , r * 

también lo son.

4. Ninguna otra secuencia de símbolos es una expresión

regular.

 

R l i

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 10/55

Reglas para expresionesregulares

1. r   s = s  r .

2. r   = r =   r .

3. r   r = r .

4. (r   s) t = r   (s  t ).

5. er = r e = r .

6. r = r  = .

7. (rs)t = r (st ).

8. r (s  t ) = rs  rt  y (r   s)t = rt   st .

9. r * = r ** = r *r * = (e  r )* = r *(r   e) = (r   e)r * = e  rr *.

10. (r   s)* = (r *  s*)* = (r *s*)* = (r *s)*r * = r *(sr *)* .

11. r  (sr )* = (rs)*r .

12. (r *s)* = e  (r   s)*s.

13. (rs*)* = e  r (r   s)*.

14. s(r   e)*(r   e) s = sr *.

15. rr  * = r *r .

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 11/55

Autómata finito determinista

Podemos usar un diagrama de transición para ayudar a determinar si una

cadena pertenece o no a un lenguaje.

Los nodos del diagrama se denominan estados y se utilizan para señalar hasta

donde se ha analizado la cadena.

Las aristas se denominan transiciones y se etiquetan con los símbolos del

alfabeto.

Existe un estado, llamado estado inicial, que es de donde parte el análisis de

toda cadena.

Algunos estados se marcan como estados de aceptación para determinar si

una cadena es legal o no.

La cadena es legal si se termina su análisis en un estado de aceptación.

Los estados de aceptación se representan encerrados en un círculo.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 12/55

El siguiente diagrama acepta cadenas de la forma ak b.

El siguiente diagrama acepta el lenguaje A = {(ab)i | i  1}.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 13/55

El siguiente diagramaacepta cadenas de la

forma (ab)*.

El mismo autómata con estados

etiquetados q0, q1, q2

Estado/Estrad

aa b 

q 0 q 1 q 2

q 1 q 2 q 0

q 2 q 2 q 2 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 14/55

Autómata Finito Determinista

Definimos un autómata finito determinista  M  como una colección decinco elementos:

1. Un alfabeto de entrada S.

2. Una colección finita de estados Q.

3. Un estado inicial s.

4. Una colección F de estados de aceptación o finales.

5. Una función d: Q  S  Q que determina el único estado siguiente para

el par (qi, s) correspondiente al estado actual y la entrada.

Se usará la notación M = (S, Q, s, F , d) para indicar un AFD (autómata

finito determinista) M .

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 15/55

Ejemplo

Por ejemplo, el AFD del diagrama anterior se representa mediante M = (S, Q,

s, F , d) donde

Q = {q0, q1, q2}

S = {a, b}

s = q0 

F = {q0}

y d se define por la tabla 

d a b 

q 0 q 1 q 2

q 1 q 2 q 0

q 2 q 2 q 2

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 16/55

Construcción de diagramas detransición

Para construir un diagrama de transiciones a partir de una

descripción de un autómata, se procede como sigue.

Se dibujan nodos para cada estado del autómata, luego setrazan flechas desde cada estado qi hacia el q j etiquetándolas

con el símbolo de entrada correspondiente, se marca el estado

inicial y los estados de aceptación.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 17/55

AFD y lenguajes

Definimos el lenguaje aceptado por un AFD M como

 L( M ) = {w  S | w es aceptada por M }

Por tanto,  L( M ) es el conjunto de las cadenas que hacen que

 M  pase del estado inicial a un estado de aceptación. Por

ejemplo, el siguiente AFD M = (S, Q, s, F , d) donde

Q = {q0, q1, q2, q3}

S = {a, b}

s = q0 

F = {q0, q1, q2}

y d definida por la tabla

d a b 

q 0 q 0 q 1

q 1 q 0 q 2

q 2 q 0 q 3

q 3 q 3 q 3 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 18/55

Tiene el siguiente diagrama de transición

acepta el lenguaje

 L( M ) = {w  {a, b}* | w no contiene tres bes consecutivas}

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 19/55

Se puede aplicar recursivamente una serie de caracteres de una

cadena dada al AFD.

Por ejemplo, la aplicación de la cadena bbab en el caso

anterior dará d(d(d(d(q0,b),b),a),b) = q1.

Esto puede abreviarse como d(q0,bbab).

Diremos que dos AFD  M 1 y  M 2 son equivalentes si  L( M 1) =

 L( M 2).

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 20/55

Autómata finito no determinista

Un autómata finito es no determinista si se permite que desde

un estado se realicen cero, una o más transiciones para el

mismo símbolo de entrada.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 21/55

El lenguaje a*b  ab* tiene el siguiente AFD asociado.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 22/55

Consideremos ahora el siguiente diagrama de transición, este

reconoce las mismas cadena, sin embargo es mucho más

simple.

Note que el diagrama de transiciones no representa una función

de Q ´ S en Q.

a

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 23/55

Definición

Definimos un autómata finito no determinista  M como una

colección de cinco elementos:

1. Un alfabeto de entrada S.

2. Una colección finita de estados Q.

3. Un estado inicial s.

4. Una colección F de estados de aceptación o finales.

5. Una relación D sobre (Q  S)  Q y se llama relación

de transición.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 24/55

Por ejemplo, el AFN anterior se describe por medio de

Q = {q0, q1, q2, q3, q4}

F = {q2, q3, q4}

s = q0 

S = {a, b}

y D dada por la tabla

D  a b

q0 {q1, q4} {q3}

q1 {q1} {q2}

q2     

q3     

q4    {q4}

a

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 25/55

Lenguaje aceptado por un AFN

Si M es un AFN, el lenguaje aceptado por M se define como

 L( M ) = {w  S | w es aceptada por M }

Para poder decidir si una cadena no es aceptada por un AFN

deben recorrerse todas las rutas posibles en el AFN para esa

cadena, y determinar que ninguna de estas lo lleva al algúnestado de aceptación.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 26/55

EjemploSi X   Q, vamos a interpretar D( X , s  ) como el conjunto { p | q 

  X y p  D(q, s  )}.

Para el autómata de la figura que reconoce el lenguaje (a* b*)* 

(aa  bb) (a* b*)* .

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 27/55

Para este ejemplo D({q0, q2, q3}, b) = {q0, q1} {q2}   =

{q0, q1, q2}.

Para una secuencia de símbolos, por ejemplo abaab, se

puede escribir D(q0, abaab) = D(D(D(D(D(q0, a)b)a)a)b) =

{q0

, q1

, q4

}.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 28/55

Equivalencia de AFD y AFN

La definición de equivalencia se extiende a los AFN, es decir,

dos autómatas (AFD o AFN) M 1 y M 2 son equivalentes si L( M 1)

= L( M 2).

a

a,b

a

a,b

b

a,b

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 29/55

Consideremos el AFND(q0, a) = {q1, q2}

D(q0, b) =

D({q1, q2}, a) =

D({q1, q2}, b) = {q3}

D(, a) = D(, b) =

D(q3, a) = {q2}

D(q3, b) =

D(q2, a) =

D(q2, b) = {q3}

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 30/55

AFD equivalente

a b a

b

b

a ba

a,b

{q0}{q1,q2} {q3} {q2}

f

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 31/55

e-transiciones

Una e-transición es una transición entre dos estados que no consumeningún símbolo.

e

a

q0  q1 

a,e

a

q0  q1 

b

q2 

D a b e

q0 {q1} f f

q1  f {q2} f

q2 {q0} f {q0}

Acepta: a*

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 32/55

e-cerradura

Si un AFN tiene e-transiciones, la relación de transición D asocia pares deQ   (S  {e})  Q  con subconjuntos de Q .

Para todo estado q   Q definimos la e-cerradura de q como

e-c(q ) = {p | p es accesible desde q sin consumir nada en la entrada}

Ampliaremos esta definición para todo estado del conjunto de estados dela siguiente manera

e e 

c q q q c qi i i ik  

n

n1 2

1

, , ,

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 33/55

Estados que siguen a q

Para q   Q y s  S se define

d (q , s) = {p | hay una transición de p a q etiquetada con s}

Ampliaremos esta definición para todo estado del conjunto de estados de

la siguiente manera

d q q q d qi i i ik  

n

n1 2

1

, , , , , , s s  

A partir de un AFN M = (S, Q , s , F , D) con e-transiciones, se puede construiruna AFN sin e-transiciones que acepte el mismo lenguaje. Se define M = (S, Q ,s , F ', D') como

F ' = F   {q | e-c(q )  F   }

yD

(q ,s

) =e-c(d (

e-c(q ),

s)).

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 34/55

Ejemplo: eliminación de e-transiciones

q 0  q 1 

a  

e  b  

b  

q 4 

q 2 

q 3  q 5 

a  

e-c(q0) = {q0,q1}

d ({q0, q1},a) = {q3, q4}

e-c({q3, q4}) = {q1, q3, q4, q5}

D(q0,a) = {q1, q

3, q4, q

5}

d ({q0, q

1},b) = {q2}

e-c({q2}) = {q2}

D(q0,b) = {q2} 

e-c(q1) = {q1}

d ({q1},a) = {q4}

e-c({q4}) = {q4 ,q5}

D(q1,a) = {q4 ,q

5}

d ({q1},b) = {q

2}

e-c({q2}) = {q2}

D(q1,b) = {q2} 

e-c(q2) = {q2}

d ({q2},a) = {}

e-c({}) = {}

D(q2,a) = {}

d ({q2},b) = {}

e-c({}) = {}

D(q2,b) = {} e-c(q3) = {q

1, q3}

d ({q1, q

3},a) = {q4}

e-c({q4}) = {q4 ,q5}

D(q3,a) = {q4 ,q5}

d ({q1, q

3},b) = {q2 ,,q

4}

e-c({q2 ,,q

4}) = {q2 ,,q

4 ,q

5}

D(q3,b) = {q2 ,,q

4 ,q

5} 

e-c(q4) = {q4,q5}

d ({q4, q

5},a) = {}

e-c({}) = {}

D(q4,a) = {}

d ({q4, q

5},b) = {}

e-c({}) = {}

D(q4,b) = {} 

e-c(q5) = {q5}

d ({q5},a) = {}

e-c({}) = {}

D(q5,a) = {}

d ({q5},b) = {}

e-c({}) = {}

D(q5,b) = {} 

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 35/55

Ejemplo: eliminación de e-transiciones

D'  a  b 

q0  {q

1, q3, q

4, q5}  {q

2} 

q1  {q4 ,q5}  {q2} 

q2  {}  {} q3  {q4 ,q5}  {q2 ,,q4 ,q5} 

q4  {}  {} 

q5  {}  {} 

q 1 

a  

a  

b  

b  

a,b  

q 4 

q 2 

q 3  q 5 

a  

a  a  

a,b  

b  

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 36/55

Autómatas finitos y expresionesregulares

Para un alfabeto S se pueden construir AFN (o AFD) que acepten palabrasunitarias y el lenguaje vacío como se muestra en la figura

Sean M 1 = (S1, Q 1, s 1, F 1, D1) y M 2 = (S2, Q 2, s 2, F 2, D2) dos AFN. Podemos

unir M 1 y M 2 para que acepte L(M 1)  L(M 2), añadiendo un nuevo estadoinicial s y dos e-transiciones una de s a s 1, y otra de s a s 2. La construcciónformal del nuevo AFN M = (S, Q , s , F , D) esta dada por S = S1  S2, F = F 1  F 2 y Q = Q 1   Q 2  {s }.

a

q1  q2

  q1 

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 37/55

Autómatas finitos y expresionesregulares

Se pueden considerar las transiciones D1 y D2 como ternas ordenadas de Q 1  S  Q 1 y Q 2  S  Q 2, donde (q , s, p ) significa que existe una transición de q a p  mediante el carácter s. De aquí

D = D1  D2  {(s , e, s 1),(s , e, s 2)}

Para los autómatas anteriores, se puede formar un AFN que acepte L(M 1)L(M 2).Para esto, se agregan e-transiciones entre cada estado de aceptación de M 1 y elestado inicial de M 2. El autómata que se obtiene es

Q = Q 1   Q 2 

s = s 1 

F = F 2 

D= D1  D2  {F 1  {e} {s 2}}

Ds 2  D(q , e) para todo q   F 1  

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 38/55

Autómatas finitos y expresionesregulares

Es posible obtener L(M 2)* de la siguiente forma. Primero se añade un estado

inicial de aceptación s ’. Se agrega una e-transición de este estado a s . Seagrega además, una e-transición entre todos los estados de aceptación y elestado inicial s ’. El autómata resultante será M ' = (Q ', S, s ', F ', D'), donde

Q = Q 1  {s ’} 

s = s 1 

F = {s ’} 

D' = D1  {(s ’, e, s )} (F 1 ´ {e} ´ {s ’}) 

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 39/55

Teorema 5

El conjunto de lenguajes aceptados por un autómata finito sobre el alfabeto S contiene y los lenguajes unitarios {a } para todo a   S. Este conjunto escerrado con respecto a la unión, concatenación y la cerradura de estrella.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 40/55

Consideremos un autómata finito M = (S, Q , s , F , D) y supongamos que s = q 0 es el estado inicial. Para todo estado q i sea 

Ai = {w   S | D(q i , w )  F   }

Es decir, Ai es el conjunto de las cadenas sobre S que hacen que M pase

desde q i hasta un estado de aceptación. Obsérvese que A0 = L(M ).

para el autómata de la figura. se tiene

A5 = , A2 = e 

A4 = e, A1 = b  

A3 = a , A0 = ab  ba 

a

q0 q2 

b

q3 

q1 

q4 

q5 a,b

a,b

a

b

b

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 41/55

Supongamos que q  j   D(q i , s  ). Entonces Ai contiene a s  A j . De hecho, se tiene que

Ai = {s  A j  | q  j   D(q i , s  )}

Por ejemplo, el anterior autómata

A0 = aA1  bA2, A3 = aA4  bA5 

A1 = bA2  aA5, A4 = e  aA5  bA5 

A2

= e  aA5

  bA5

, A5

=

Sustituyendo se obtiene que L(M ) = ab  ba .

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 42/55

Lema de Arden

Una ecuación de la forma X = AX   B , donde e  A, tiene una soluciónúnica X = A*B .

Demostración. A*B = (A  e)B = A+B   B = A(A*B )  B , entonces A*B essolución.

Sea X = A*B   C solución donde C   A*B   . Sustituyendo

A*B   C = A(A*B   C )  B  

= A+B   AC    B  

= A+B   B   AC  

= (A+

  e)B   AC  = A*B   AC  

Realizando la intersección con C en ambos lados nos da C = AC   C . Portanto C   AC . Pero e  A, por tanto la cadena más corta de AC debe sermás larga que la cadena más corta de C . Esto solo se cumple si C = .

Por tanto A*

B es la única solución. 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 43/55

Lema 2. Sea M un autómata finito. Entonces existe una expresión regular r  para la cual L(r ) = L(M ).

Teorema 6 (Teorema de Kleene). Un lenguaje es regular si y sólo si esaceptado por un autómata finito.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 44/55

Ejemplo

a q0  q2 

b

q3 q1 q4 

b

b

a a 

a  b

 A0 = aA1 

 A1 = aA2  bA4

 A2 = aA3  bA4

 A3 = e  aA3  bA4 

 A4 = b* 

 A3 = aA2  b+ e

= a*b* 

 A2 = a+b*  bb* 

 A1 = a(a+b*  b+) b+

= aa+b*  ab+ b+ 

 A0

= a2a+b*  a2b+ ab+ 

 

P i d d d l l j

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 45/55

Propiedades de los lenguajesregulares

Sea un AFD M = (S, Q, s, F , d), donde Q contiene n estados. Si L( M ) es infinito,

podemos encontrar w = a1, a2, …, an+1, que pertenezca a L( M ). Si

q1 = d(s, a1) 

q2 = d(q1, a2)

y así sucesivamente, obtendríamos los n+1 estados, q1, q2, …, qn+1 .

Como Q tiene n estados, los qi no serán todos distintos. Para algunos índices j y k , con 1  

 j <  k   n+1, se tendrá que q j = qk . Por lo tanto, habrá un ciclo para llegar al estado de

aceptación. Como se muestra en la figura

q0  q1 

q j = qk 

q j+1 

qk+1  qn+1 

El lazo tiene longitud de al menos 1. Las cadenas w = a1, a2, …, a j, (a j+1,…, ak )m 

ak +1,…, an+1 estarán en L( M ) para m  0. 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 46/55

Lema del bombeo

Sea L un lenguaje regular infinito. Entonces hay una constante n de forma que, si

w es una cadena de L cuya longitud es mayor o igual a n, se tiene que w = uvx,

siendo uvi x   L para todo i  0, con | v | 1 y | ux |  n.

Este lema es utilizado para probar si un lenguaje es o no regular.

Ejemplo: sea

}1{2

ia L i

Toda cadena de L debe tener una longitud que sea un cuadrado perfecto.

Supongamos que cumple el lema del bombeo, entonces

uvxan

2

Se cumple que n2 = |uvx| < |uv2 x| <= n2 + n < (n+1)2

Es decir, |uv2 x| se encuentra entre dos cuadrados perfectos consecutivos y por tanto

no es un cuadrado perfecto. En consecuencia no pertenece al lenguaje L.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 47/55

Otro ejemplo

Sea el lenguaje L = {ambm | m>=0}. L es infinito.

Si se cumple el lema del bombeo se tiene que anbn= |uvx| con | v | 1 y | ux |  n.

Dado que | ux |  n, | v | < n, y por tanto consta solo de aes. Entonces v = as, para s>=1.

Si u = ar , x = an – (s + r )bn.

Por lo tanto |uv2 x| = ar a2san – (s + r )bn = an + sbn.

Dado que s>=1, la cadena no puede pertenecer a L.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 48/55

Teorema 7Sea M un autómata finito de k estados.

1. L( M )   si y solo si M acepta una cadena de longitud menor que k . 

2. L( M ) es infinito si y solo si M acepta una cadena de longitud n, donde k   n  2k .

Demostración.

1. Si M acepta una cadena de longitud menor que k , entonces L( M )  . Si L( M )  

, entonces existe w   L( M ). Supongamos | w |  k . Por el lema del bombeo w =

uvx, y uvi x   L( M ). En particular, ux   L( M ). Si | ux |  k , quedaría probado, el

proceso se puede repetir para esta cadena hasta llegar a una longitud  k .

2. Supongamos w   L( M ) con k   | w | 2k . Pero por el lema del bombeo w = uvx, y

uvi x    L( M ), para todo i, con lo que  L( M ) es infinito. Ahora supongamos que L( M ) es infinito. Habrá cadenas con longitud  k . Supongamos | w | 2k . Pero por

el lema del bombeo w = uvx, y uvi x   L( M ). Entonces ux   L( M ). Si | ux | 2k ,

quedaría probado, si no se puede repetir el proceso hasta encontrar una cadena

que se encuentre entre k y 2k   – 1.

 

A li ió d l l d d

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 49/55

Aplicación de las leyes de deMorgan

Supongamos que L y K son lenguajes sobre S. De las leyes de De Morgan

(S - L) (S - K ) = S - ( L  K )

Por tanto 

 L  K = S - (S - ( L  K ))

= S - ((S - L) (S - K ))

Pero el complemento de un lenguaje es regular si el lenguaje es regular, por lo tanto la

intersección de dos lenguajes será regular si ambos lenguajes son regulares. Este hecho

puede utilizarse para demostrar si un lenguaje es regular o no.

Por ejemplo, sea S = {a, b} y L = {ww I  | w  S}. Probaremos que L no es regular. Sea L1 

= {anb2k an | n, k   0} no regular, y L2 = {ak bnam | k , n, m  0} regular. Obsérvese que L2  

 L =  L1. Si L fuera regular, lo sería L1. Por tanto L no puede ser regular.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 50/55

Indistinguibilidad

Sea M = (Q, S, d, q0, F ) un AFD. Definimos la relación de indistinguibilidad ~ en Q

como:

q, q’ Q, q ~ q’   x,  S* (d(q, x) F  d(q’ , x))

La relación ~ es una relación de equivalencia que induce una partición en Q y vamos

a definir un autómata a partir de M , obtenido mediante la agrupación de estados

pertenecientes al mismo bloque de la partición.

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 51/55

Minimización

q0 

q2 

bq3 q1 

q4 

b

b

a a 

b

q5 

q6 

q7 

b

b

b

b

q6 se elimina porque no es accesible.

La partición inicial es

p0 = {{q0, q1, q2, q3, q5, q7},{q4}}.

Llamamos

 B1 = {q0, q1, q2, q3, q5, q7} y B2 = {q4}.

a b

q0  B1  B1

q1  B1  B1

q2  B1  B2

q3  B2  B1

q5  B1  B1

q7  B1  B2

q4  B1  B2

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 52/55

De tabla anterior se obtiene p1 

La partición es

p1 = {{q0, q1, q5}, {q2, q7}, {q3}, {q4}}.

Llamamos

 B1 = {q0, q1, q5}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4}.

a b

q0  B2  B3

q1  B2  B3

q5  B1  B1

q2  B1  B4

q7  B1  B4

q3  B4  B1

q4  B1  B2

De tabla anterior se obtiene p2 

La partición es

p2 = {{q0, q1}, { q5}, {q2, q7}, {q3}, {q4}}.

Llamamos

 B1 = {q0, q1}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4} y B5 =

{q5}.

Puede verse que p3 es igual a p2. Por lo tanto el AFD ya

está minimizado.

a b

q0  B2  B3

q1  B2  B3

q2  B5  B4

q7  B5  B4

q3  B4  B5

q4  B1  B4

q5  B5  B1

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 53/55

Diagrama de transiciones

 B1

b

 B5 

b

b

ba 

ba 

 B2

 B3

a b

 B1  B2  B3

 B2  B5  B4

 B3  B4  B5

 B4  B1  B4

 B5  B5  B1

 B4 

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 54/55

Tarea

q0

b

ba 

b

ba 

ba 

a b a 

a,b 

a,b 

q1

q2

q3

q4

q6

q5

q7

Minimizar

 

5/14/2018 LenguajesRegulares - slidepdf.com

http://slidepdf.com/reader/full/lenguajesregulares-55a931602fe95 55/55

Aplicaciones de los autómatas finitos

Reconocedor de números enteros

cualquier otro

carácter 

1,2, ..., 9 

q2

q0

q1

0,1,2, ..., 9 

cualquier otro

carácter 

cualquier otro

carácter 

1. i = 1

2. ok = verdadero

3. long = longitud(s)4. si s[i] en num entonces

i = i+1

 mientras i<long y ok

si s[i] en num 

i = i + 1

sino

ok = falso

fin si

fin mientras

sino

ok = falso