Você está na página 1de 49

5.

Lenguajes Regulares
Araceli Sanchis de Miguel Agapito Ledezma Espino Jos A. Iglesias Mar<nez Beatriz Garca Jimnez Juan Manuel Alonso Weber

Grado Ingeniera InformDca Teora de Autmatas y Lenguajes Formales

AUTMATAS FINITOS Y G3
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Gramtica asociada a un AF
L(G3LD) = L(A).
Es decir, el lenguaje que genera la gramDca es el mismo que reconoce el Autmata
Veamos como obtener la gramDca G={T, N, S, P} a parDr del AF= {Q, , q0, f, F}.
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Sea el AF, A = (, Q, q0, f, F), existe una G3 LD tal que

Gramtica asociada a un AF
T= ; N= Q ; S = qo P= { }
1. transicin f(p,a) =q si q no es estado nal p::= a q 2. q F y f(p,a) = q p::= a y p::= a q 3. p0 F p0 ::= 4. si f(p, ) = q si q no es estado nal p ::= q; 5. q F y f(p, ) = q p ::= q y q::=
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Se construye la gramDca G3LD (G= G={T, N, S, P}) de la siguiente forma a parDr del Autmata (AF= {Q, , q0, f, F}):

AF asociado a una G3LD


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Sea la G3LD, G = (T, N S, P), existe un AF, A, tal que: L(G3LD) = L(A)
Como se construye AF a parDr de G3LD:
= T Q = N U {F} , con F N qo = S F = {F} f: Si A ::= a B f(A,a) = B Si A ::= a f(A,a) = F Si S ::= f( S, ) = F

AF asociado a una G3 (cuando es LD)


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Se ha visto el procedimiento para obtener el AF que aceptaba el lenguaje descrito por una G3LD, sin embargo, ese procedimiento no siempre conduce a un AFD. Lo habitual es: G3 AFND AFD Ejemplo. Sea la G3LD hallar el AF correspondiente. G = ({d,c}, {A,S,T}, A, {A ::= cS, S::= d|cS|dT, T::= dT|d})

AF asociado a una G3 (cuando es LD)


De AF G3: Ejemplo

Sea el AF descrito por la siguiente tabla, hallar la G3 LD que genera el lenguaje por ella descrito. Comprobar que los lenguajes son iguales

0 A A B A C* C

1 C C B

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

AF asociado a una G3
G3LI G3LD AF
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Y si queremos obtener un AF a parDr de una G3LI?

Y si queremos obtener una G3LI a parDr de un AF? AF G3LD G3LI

EXPRESIONES REGULARES
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Expresiones y Lenguajes Regulares Equivalencias Teoremas

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Denicin

10

DeIinicin de ER(I)
Metalenguaje para expresar el conjunto de palabras aceptadas por un AF (es decir, para expresar lenguajes de Dpo 3 o regulares)
Kleene, 1956
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

11

DeIinicin de ER(I)
Ejemplo
Dado el alfabeto = {0,1}, La ER 0*10* es una palabra del metalenguaje que representa las innitas palabras del lenguaje regular formado por un 1, precedido y seguido de 0, 1 o innitos 0s. El lenguaje * puede representarse mediante la ER: (0+1)* El lenguaje {01, 101} puede representarse mediante la ER: 01 + 101 La ER 1(1+0)* representa todas las cadenas que empiezan por el smbolo 1.
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

12

DeIinicin de ER(II)
Dados los smbolos : , (conjunto vaco), (cadena vaca) y las operaciones: + (unin), (concatenacin), *(cierre o clausura) se cumple que: es una ER es una ER cualquier a es una ER si y son EERR entonces + y son EERR si es una ER entonces * es una ER, donde *= U i
i=0
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

13

DeIinicin de ER(III)
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Solo son EERR las que se obDenen de aplicar las reglas anteriores un nmero nito de veces sobre smbolos de , , La prioridad de las operaciones es la siguiente: * +

14

Expresiones y Lenguajes Regulares Equivalencias Teoremas

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Denicin

15

EERR y LR
A cada ER , se le asocia un subconjunto de *, L(), que es el LR descrito por . Este lenguaje se dene con:
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Cada Expresin Regular (ER) describe o expresa un lenguaje regular

si = , L() =
si = , L() = {} si = a, a , L() = {a} si y son EERR L( + ) = L() L() si y son EERR L( ) = L() L() si * es una ER L( *) = L()*

16

Expresiones y Lenguajes Regulares Equivalencias Teoremas

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Denicin

17

Equivalencia de EERR (I)


Se cumple:
1) 2) 3) 4) 5) 6) 7) 8) ( + ) + = + ( + ) (+ es asociaDva) + = + (+ es conmutaDva) ( ) = ( ) ( es asociaDva) ( + ) = ( ) + ( ) (+ es distribuDva ( + ) = ( ) + ( ) respecto de ) = = ( Dene elemento neutro) + = + = (+ Dene elemento neutro) * = = =
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Dos EERR son equivalentes, = , si describen el mismo lenguaje regular, si L( ) = L()

18

Equivalencia de EERR (II)


9) * =

10) * * = * 11) * = * 12) ( *)* = * 13) * = + + 2 + .. + n + n+1. * 14) * = + * (13 con n=0) (IMPORTANTE) 15) * = ( + )n-1 + n * (de 14, susDtuyendo) 16) Sea f una funcin, f:En E se verica:
f(, , ..., ) + ( + + ... + )* = ( + + ... + )* 17) Sea f una funcin, f:En E se verica: (f(*, *, ..., *))* = ( + + ... + )*

(IMPORTANTE)

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

19

Equivalencia de EERR (III)


19) ( )* = ( )* 20) (* )* * = ( + )* 21) (* )* = + ( + )* (de 14 con 20) 22) Reglas de Inferencia: Dadas tres EERR (L, A y B), sea la ecuacin
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

18) (* + *)* = (* *)* = ( + )* (IMPORTANTE)

L = AL + B,
donde A, entonces se verica que

L = A*B

20

Expresiones y Lenguajes Regulares Equivalencias Teoremas

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Denicin

21

Teoremas de anlisis y sntesis de Kleene


Todo lenguaje aceptado por un AF es un lenguaje regular.
Solucin al problema de anlisis: Encontrar el lenguaje asociado a un determinado AF: Dado un AF, A, encontrar la ER que describe L(A).
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Teorema de anlisis de Kleene

Teorema de sntesis de Kleene


Todo lenguaje regular es el lenguaje aceptado por un AF.
Solucin al problema de sntesis: Encontrar un reconocedor para un lenguaje regular dado: Dada una ER que representa a un lenguaje regular, construir un AF que acepte ese lenguaje regular.

22

Solucin al problema de anlisis. Ecuaciones caractersticas.


Problema Anlisis: AF -> ER Resolucin: Dado un AF, escribir las ecuaciones caractersDcas de cada uno de sus estados, resolverlas y obtener la ER buscada.
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

23

Solucin al problema de anlisis. Ecuaciones caractersticas.


ECUACIONES CARACTERSTICAS
Se escribe una ecuacin xi por estado qi Primer miembro: xi El segundo miembro Dene un trmino por cada rama que salga de qi
o

Las ramas Denen la forma aijxj donde aij es la eDqueta de la rama que une qi con qj, xj es la variable correspondiente a qj Se aade un trmino aij por cada rama que une qi con un estado nal Se aade si qi es nal. si es nal: xi = si no es nal: xi = Si de un estado qi no sale ninguna rama, el segundo miembro ser:
l l

o o o

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Describen todas las cadenas que se pueden reconocer desde un estado dado

24

Solucin al problema de anlisis. Ecuaciones caractersticas.


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ecuaciones CaractersDcas de un AF Ejemplo 1: b b a p q a

X0

X1
Porque q es un estado nal Porque q es un estado nal

El AF Dene 2 estados, por lo que tendr 2 ecuaciones caractersDcas:


Conjunto de palabras que permiten pasar desde el estado p a un estado nal.

X0 = b X0 + a X1 + a X1 = b X1 + a X0+ b +

25

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p b b q r
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 2:

X0

X1

X2

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

26

Algoritmo de resolucin problema de Anlisis.


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

1. Escribir las ecuaciones caractersDcas del AF 2. Resolverlas 3. Si el estado inicial es q0, X0 nos da el conjunto de cadenas que conducen desde q0 a qf y por tanto el lenguaje aceptado por el AF

27

Solucin de las ecuaciones caractersticas.


X: conjunto de cadenas que permiten pasar de qi a qf F A: conjunto de cadenas que permiten, parDendo de un estado q, llegar a q. B: conjunto de cadenas que permiten llegar al estado nal, sin volver a pasar por el qi de parDda.
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Son la Ecuacin CaractersDca de la forma: X = AX + B, donde:

(solucin de Arden o reduccin al absurdo)


La solucin es: X = A* B

28

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

X0

X1

X2

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

29

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

X2

Recuerda: L=AL+B L=A*B


Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

30

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

X2

Recuerda: L=AL+B L=A*B


Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b + X2 = b* (b + ) = b* + b* = b*

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

31

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

X2

Recuerda: L=AL+B L=A*B


Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b + X2 = b* (b + ) = b* + b* = b* X1 = bb* + aX1 + b X1 = aX1 + bb* + b X1 = a*(bb*+b) = a*bb*

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

32

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

X0

X1

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

X2

33

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

X2

Recuerda: L=AL+B L=A*B


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

34

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

X2

Recuerda: L=AL+B L=A*B


X2 = b* (b + ) = b* + b* = b*

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

35

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

X2

Recuerda: L=AL+B L=A*B


X2 = b* (b + ) = b* + b* = b* X1 = bb* + aX1 + b X1 = aX1 + bb* + b X1 = a*(bb*+b) = a*bb*

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

36

Solucin al problema de anlisis. Ecuaciones caractersticas.


a p a b q r b

X0

X1

Ecuaciones Caracters/cas: X0 = a X1 X1 = b X2 + a X1 + b X2 = b X2 + b +

X2

Recuerda: L=AL+B L=A*B


X2 = b* (b + ) = b* + b* = b* X1 = bb* + aX1 + b X1 = aX1 + bb* + b X1 = a*(bb*+b) = a*bb* X0 = aa*bb*

A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo 1:

37

Problema de Sntesis: Algoritmo Recursivo (I)


construir un AF que acepte ese lenguaje regular. Sea una Expresin Regular
si = , el autmata ser: p p p a *q *q *q
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Dada una ER que representa a un lenguaje regular,

si = , el autmata ser: si = a, a, el autmata ser:

38

Problema de Sntesis: Algoritmo Recursivo (II)


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Dada una ER que representa a un lenguaje regular, construir un AF que acepte ese lenguaje regular (cont.) si =+, con los autmatas de y
p1 p2 *q1 *q2

el resultado es:
p p1 p2 q1 q2 *q

39

Problema de Sntesis: Algoritmo Recursivo (III)


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Dada una ER que representa a un lenguaje regular, construir un AF que acepte ese lenguaje regular. (cont.) si = , con los autmatas de y el resultado es:
p1 q1 p2 *q2 p1 p2 *q1 *q2

40

Problema de Sntesis: Algoritmo Recursivo (IV)



A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Dada una ER que representa a un lenguaje regular, construir un AF que acepte ese lenguaje regular. (cont.) si =*, con el autmata de el resultado es:
p p1 q1 p1 *q1

*q

41

Problema de Sntesis: Algoritmo Recursivo (IV)


p2 p3 a p2 p3 a q2 *q3 q2 *q3
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo: Sea = b a* b p b: 1 *q1 a*: Entonces: b a* b


p1 q1

42

Problema de Sntesis: Algoritmo Recursivo (IV)


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Ejemplo: Sea =(b a*)*


p1 b q1 p2 p3 a q2 q3 *q0

p0

43

Problema de Sntesis: Derivada de una ER.


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Dada una ER, construir un AF que reconozca el lenguaje que la ER describe.


Solucin: derivar la ER y obtener una G3LD y de ella un AF

Derivada de una ER: Da(R) = { x | ax R }.


Derivada de ER R respecto de a es el conjunto de colas de todas las palabras representadas por R cuya cabeza es a.

Veamos una denicin recursiva

44

Problema de Sntesis: Derivada de una ER


ER -> AF (Derivar la ER -> G3LD -> AF. Da(R) = { x | ax R } Derivada de una ER. Denicin recursiva
a, b y R,S expresiones regulares Da () = Da () = Da (a) = , a Da (b) = , b a, b Da (R+S) = Da (R) + Da (S) Da (R S) = Da(R) S + (R) Da(S) R
R (R) = R (R) =
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Da (R*) = Da(R) R*

45

Solucin al problema de Sntesis. Derivada de una ER


A parDr de la Derivada de una ER. Se obtendr la gramDca regular lineal derecha:
El nmero de derivadas disDntas de una ER es nito. Una vez que se han obtenido todas, se puede obtener la G3 Sea Da(R) = S, con S S R ::= aS P S = R ::= a P Sea (Da(R)) = S (Da(R)) = R::= a P (Da(R)) = no se incluye ninguna regla en P El axioma es R (ER de parDda) T = smbolos que formaban la ER de parDda N = letras que disDnguen cada una de las derivadas disDntas
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Denicin: Dab(R)=Db(Da(R))

46

Ejemplos. Derivada Expresiones Regulares


R = a a* b b*, ={a,b} Da(R) = Da(a) a* b b* = a* b b* Db(R) = Daa(R) = Da(a* b b*) = Da(a*) b b* + Da(b b*) = a*bb* = Da(R) Dab(R) = Db(a* b b*) = Db(a*) b b* + Db(b b*) = b* Daba(R) = Da(b*) = Dabb(R) = Db(b*) = Db(b) b* = b* = Dab(R) Da(R)= a*bb* (Da(R))= (Daa(R))= (Dab(R))= (Dabb(R))=
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Obtener las G3 LD equivalentes a las ER dadas:

R = a a* b b* es igual que R = a a* b b*

Daa(R)= a*bb* Dab(R)= b* Dabb(R)= b*

47

Ejemplos. Derivada Expresiones Regulares


A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

R0=aa*bb* Da(R0)=R1 Da(R1)=R1 Db(R1)=R2 Db(R2)=R2 Da(R)=S RaS R0 aR1 R1 aR1 R1 bR2 R2 bR2

R1=a*bb* (Da(R0))= (Da(R1))= (Db(R1))= (Db(R2))=

R2=b*

(Da(R))= Ra ---------- ---------- R1 b R2 b

48

BibliograIa
A. Sanchis, A. Ledezma, J. Iglesias, B. Garca, J. Alonso

Libro Bsico 1 Bibliograza (AAM). Enrique Alfonseca Cubero, Manuel Alfonseca Cubero, Roberto Moriyn Salomn. Teora de autmatas y lenguajes formales. McGraw-Hill (2007). Apartado 7.2 Libro Bsico 2 Bibliograza (HMU). John E. Hopcro}, Rajeev Motwani, Jerey D.Ullman. Introduccin a la teora de autmatas, lenguajes y computacin (3 edicin). Ed, Pearson Addison Wesley. Tema 3 Libro Bsico 4 Bibliograza (AAM). Manuel Alfonseca, Justo Sancho, Miguel Mar<nez Orga. Teora de lenguajes, gramDcas y autmatas. Publicaciones R.A.E.C. 1997 Tema 7

49

Você também pode gostar