Вы находитесь на странице: 1из 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
2

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

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

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

Gramtica asociada a un AF

Se construye la gramDca G3LD (G= G={T, N, S, P}) de la siguiente


forma a parDr del Autmata (AF= {Q, , q0, f, F}):

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

Gramtica asociada a un AF

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

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

AF asociado a una G3LD

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})

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

AF asociado a una G3 (cuando es LD)

AF asociado a una G3 (cuando es LD)


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

De AF G3: Ejemplo

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


G3LI G3LD AF

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


AF G3LD G3LI

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

AF asociado a una G3

EXPRESIONES REGULARES
9

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

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

DeIinicin de ER(I)

11

DeIinicin de ER(I)
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

Ejemplo

12

DeIinicin de ER(II)
, (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

Dados los smbolos :

13

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:
* +

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

DeIinicin de ER(III)

14

Expresiones y Lenguajes Regulares


Equivalencias
Teoremas

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

Denicin

15

Cada Expresin Regular (ER) describe o expresa un lenguaje


regular
A cada ER , se le asocia un subconjunto de *, L(), que
es el LR descrito por . Este lenguaje se dene con:

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()*

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

EERR y LR

16

Expresiones y Lenguajes Regulares


Equivalencias
Teoremas

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

Denicin

17

Dos EERR son equivalentes, = , si describen el mismo


lenguaje regular, si L( ) = L()
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

Equivalencia de EERR (I)

18

Equivalencia de EERR (II)


10) * * = *
11) * = *
12) ( *)* = *

(IMPORTANTE)

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(*, *, ..., *))* = ( + + ... + )*

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

9) * =

19

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


19) ( )* = ( )*
20) (* )* * = ( + )*
21) (* )* = + ( + )* (de 14 con 20)
22) Reglas de Inferencia:
Dadas tres EERR (L, A y B), sea la ecuacin

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

L = A*B

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

Equivalencia de EERR (III)

20

Expresiones y Lenguajes Regulares


Equivalencias
Teoremas

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

Denicin

21

Teorema de anlisis 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).

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.

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

Teoremas de anlisis y sntesis de Kleene

22

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

23

Solucin al problema de anlisis.


Ecuaciones caractersticas.
Describen todas las cadenas que se pueden reconocer desde un estado dado
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 de un estado qi no sale ninguna rama, el segundo miembro ser:


l

si es nal: xi =

si no es nal: xi =

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

ECUACIONES CARACTERSTICAS

24

Solucin al problema de anlisis.


Ecuaciones caractersticas.

X0 = b X0 + a X1 + a

Porque q es un
estado nal

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

Ecuaciones CaractersDcas de un AF Ejemplo 1:



b
b
a

X1 = b X1 + a X0+ b +

Porque q es un
estado nal

25

X0

X1

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.

Ejemplo 2:
a

a
b

X0

X1

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

b
r

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

26

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

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

Algoritmo de resolucin problema de


Anlisis.

27

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


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.

(solucin de Arden o reduccin al absurdo)


La solucin es: X = A* B

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

Solucin de las ecuaciones


caractersticas.

28

Ejemplo 1:
a

b
b

X0

X1

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

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

29

Ejemplo 1:
a

b
b

X0

X1

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

Recuerda:
L=AL+B

L=A*B

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

30

Ejemplo 1:
a

b
b

X0

X1

Recuerda:
L=AL+B

L=A*B

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

31

Ejemplo 1:
a

b
b

X0

X1

Recuerda:
L=AL+B

L=A*B

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

32

Ejemplo 1:

b
b

X0

X1

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

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

33

Ejemplo 1:

b
b

X0

X1

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

Recuerda:
L=AL+B

L=A*B

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

34

Ejemplo 1:

b
b

X0

X1

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

Recuerda:
L=AL+B

L=A*B

X2

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

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

35

Ejemplo 1:

b
b

X0

X1

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

Recuerda:
L=AL+B

L=A*B

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

36

Ejemplo 1:

b
b

X0

X1

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

Recuerda:
L=AL+B

L=A*B

X2

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

Solucin al problema de anlisis.


Ecuaciones caractersticas.

37

Dada una ER que representa a un lenguaje regular,


construir un AF que acepte ese lenguaje regular.
Sea una Expresin Regular
si = , el autmata ser:

si = , el autmata ser:

si = a, a, el autmata ser:

*q

a

*q
*q

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

Problema de Sntesis: Algoritmo


Recursivo (I)

38

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

el resultado es:

p

p1

p2

q1
q2


*q

*q1
*q2

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

Problema de Sntesis: Algoritmo


Recursivo (II)

39

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

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

Problema de Sntesis: Algoritmo


Recursivo (III)

40

Dada una ER que representa a un lenguaje regular,


construir un AF que acepte ese lenguaje regular. (cont.)
p1

si =*, con el autmata de


el resultado es:

p

p1

q1

*q

*q1

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

Problema de Sntesis: Algoritmo


Recursivo (IV)

41

Ejemplo: Sea = b a*

b
p
b:
1
*q1 a*:



Entonces: b a*

b

p1

q1


p2

p3 a

q2

*q3



p2

p3 a

q2

*q3

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

Problema de Sntesis: Algoritmo


Recursivo (IV)

42

Ejemplo:
Sea =(b a*)*

p0

p1 b q1


p2

p3 a

q2

q3 *q0

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

Problema de Sntesis: Algoritmo


Recursivo (IV)

43

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

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

Problema de Sntesis: Derivada de una ER.

44

Problema de Sntesis: Derivada de una ER


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) =

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

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

ER -> AF (Derivar la ER -> G3LD -> AF. Da(R) = { x | ax R }

45

Denicin: Dab(R)=Db(Da(R))
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

Solucin al problema de Sntesis.


Derivada de una ER

46

Obtener las G3 LD equivalentes a las ER dadas:


R = a a* b b*, ={a,b}

R = a a* b b* es igual que
R = a a* b 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)= a*bb*
Dab(R)= b*

(Daa(R))=
(Dab(R))=

Dabb(R)= b*

(Dabb(R))=

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

Ejemplos. Derivada Expresiones


Regulares

47

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

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

R2=b*

Da(R)=S RaS
R0 aR1
R1 aR1
R1 bR2
R2 bR2

(Da(R))= Ra

----------

----------

R1 b

R2 b

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

Ejemplos. Derivada Expresiones


Regulares

48

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

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

BibliograIa

49

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