Sie sind auf Seite 1von 61

Lenguajes Regulares

Departamento de Informtica e Ingeniera de Sistemas C.P.S. Universidad de Zaragoza

ltima revisin: Feb. 2003

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

ndice
z z z

Problema de especificacin de lenguajes Lenguajes regulares Expresiones regulares

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Especificacin de lenguajes: Introduccin


z

Hasta ahora ha sido sencillo especificar qu cadenas pertenecen a un determinado lenguajes sobre algn alfabeto . Ldgitos = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}

Objetivo: Encontrar formalismos que me permitan definir lenguajes ms complejos.

Cuntos lenguajes diferentes puedo definir sobre un determinado alfabeto ?


Clculo

*.

del nmero de palabras del lenguaje universal

Clculo

del nmero de subconjuntos, en este caso sublenguajes, que puedo formar con las palabras del lenguaje universal *.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Especificacin de lenguajes (II)


z

Teorema: Para todo , * es infinito


numerable.
Consideremos

el alfabeto = {a, b}

Orden lexicogrfico: , a, b, aa, ab, ba, bb, aaa, ... Numeramos las palabras por orden lexicogrfico: 0 a 1 b 2 aa 3 ab 4 ba 5 ...
Conclusin

(informal): dado que hemos construdo una funcin biyectiva de * a N, se tiene que * es infinito numerable.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Especificacin de lenguajes (III)


z

Teorema: El conjunto de todos los lenguaje sobre no es numerable. Demostracin: Supongamos que el conjunto de todos los lenguajes sobre (L) es numerable. Si es numerable L = {A0, A1, A2,...} Como * es numerable, *={w0, w1, w2,...} Sea B = {wi | wi Ai}, palabras que no pertenecen al lenguaje con su mismo ndice. B es un lenguaje sobre luego B = Ak para algn k. Si wk B, entonces wk Ak (= B), luego wk B Si wk B, entonces wk Ak (= B), luego wk B. Conclusin: La suposicin de que el conjunto de todos los lenguajes sobre es numerable es falsa. Luego el conjunto es no numerable.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Especificacin de lenguajes: Conclusiones Cul es la magnitud del problema de especificar lenguajes sobre un ? Existe algn mtodo suficientemente expresivo capaz de especificar todos los lenguajes sobre un ? Con qu mtodo podemos especificar todos esos lenguajes ?

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Lenguajes regulares
z

Sea el alfabeto . El conjunto de lenguajes regulares se define de manera recursiva como sigue:
1) 2) 3) 4)

es un lenguaje regular. {} es un lenguaje regular. Para todo a , {a} es un lenguaje regular. Si A y B son lenguaje regulares, entonces AB, AB y A* son lenguajes regulares. Ningn otro lenguaje sobre es regular

5)

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Lenguajes regulares: ejemplos.


z

Dado = {a,b}, las siguientes afirmaciones son ciertas:


y {} son lenguajes regulares {a} y {b} son lenguajes regulares {a, b} es un lenguaje regular {ab} es un lenguaje regular {a, ab, b} es un lenguaje regular {ai | i 0} es un lenguaje regular {aibj | i 0 y j 0} es un lenguaje regular {(ab)i | i 0} es un lenguaje regular

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Lenguajes regulares: ejemplos (II)


z

Dado = {a,b,c}, El lenguaje de todas las cadenas sobre el que no contiene ninguna subcadena ac es regular? {c}, {a}, {b} son L.R. (3) {c}* es un L.R. (4, *) {b}{c}* es un L.R. (4, ) {a}{b}{c}* es un L.R. (4, ) ({a}{b}{c}*)* es un L.R. (4, *) {c}*({a}{b}{c}*)* es un L.R. (4, ) Es este lenguaje el que buscbamos?

Resulta engorroso construir y especificar lenguajes regulares.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

Expresiones regulares
z

Las expresiones regulares permiten representar de manera simplificada un lenguaje regular. Las expresiones regulares sobre un y el lenguaje que denotan se define recursivamente como:
1) 2) 3)

es una e.r y denota el lenguaje vaco es una e.r y denota el lenguaje {} Para cada a , a es una e.r y denota el lenguaje {a} Si , son dos e.r que denotan los lenguajes A y B, entonces: 1) + es una e.r que denota A B 2) es una e.r que denota A B 3) * es una e.r que denota A*

4)

5)

Orden de precedencia operadores * + (se pueden usar parntesis)

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

10

Expresiones regulares: Ejemplos


z

Dado el alfabeto = {a,b,c}:

Lenguaje Universal * (a+b+c)*

L = { w | |w| es mltiplo de 3} ((a+b+c) (a+b+c) (a+b+c))*

L = { w | |w|a es par} ((b+c)* a (b+c)* a (b+c)*)* + (b+c)* L = { w | w contiene la subpalabra abc} (a+b+c)* abc (a+b+c)*

Nota: Usaremos la notacin |w|a para denotar el nmero de ocurrencias del smbolo a en la palabra w

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

11

Expresiones regulares: Equivalencia


z

Cuando sea necesario diferenciar entre expresin regular r y el


lenguaje denotado por la misma, usaremos L(r) para denotar el lenguaje.

Dos expresiones regulares r y s sobre un mismo se dice que son equivalentes, si L(r) = L(s)
Ejemplo: r = (a*b)* s = +(a+b)*b L(r) = L(s) = {palabras con 0 o ms aes y bes que son la palabra vaca o tienen una b al final}

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

12

Expresiones Regulares: Ejemplo de Equivalencia


z

Sean r, s dos e.r, Son equivalentes las siguientes expresiones regulares? r (sr)* = (rs)* r

Conclusin: Se podr simplificar expresiones regulares reemplazndolas por otras por otras equivalentes pero menos complejas.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

13

Expresiones regulares: Simplificacin


z

Teorema: Sean r, s, t expresiones regulares sobre un mismo alfabeto . Entonces:


1. r + s = s + r 2. r + = r = + r 3. r + r = r 4. (r + s) + t = r + (s + t) 5. r = r = 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*=(+r)*=r*(r+)=(r+)r*= +rr* 10. (r+s)*=(r*+s*)*=(r*s*)*=(r*s)*r*=r*(sr*)* 11. r(sr)*=(rs)*r 12. (r*s)*= +(r+s)*s 13. (rs*)*= +r(r+s)* 14. s(r+ )*(r+ )+s=sr* 15. rr*=r*r

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

14

Reconocimiento de Palabras
z

Objetivo: Construir diagramas que nos ayuden a determinar si una palabra w pertenece a un lenguaje L. Diagramas de Transicin:
Tienen Dos

forma de grafo dirigido con informacin adicional. tipos de elementos:

Nodos (estados): representan hasta que lugar ha sido reconocida la cadena. Aristas (transiciones) etiquetadas con smbolos del : si el siguiente carcter de la palabra corresponde con el smbolo de alguna de las aristas de salida del nodo actual, nos desplazamos al estado al que nos lleva esa arista.
Dos

tipos de Nodos (estados) especiales:

Nodo Inicial: donde comenzamos el reconocimiento de la palabra. Nodos Final o de Aceptacin: aquellos que determinan que una palabra es legal.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

15

Reconocimiento de Palabras: Ejemplos


z

L = {akb | k 0} sobre = {a,b}


a b

a,b

a,b

L = {(ab)i | i 1} sobre = {a,b}


a,b

b a

a b

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

16

Reconocimiento de Palabras: Ejemplos(II)


z

L = {(ab)i | i 0} sobre = {a,b}


b a

a,b

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

17

Reconocimiento de Palabras: Ejemplos(II)


z

L = {(ab)i | i 0} sobre = {a,b}


b a

q0
b a

q1

q2
a,b

Podemos representar el Diagrama de Transicin por medio de una tabla:


Entrada

a q0
Estado Actual

b q2 q0 q2

q1 q2 q2

q1 q2

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

18

Autmata Finito Determinista


z

Un Autmata Finito Determinista M es una coleccin de cinco elementos:


Un

alfabeto de entrada. coleccin Q finita de estados. estado inicial s (s Q).

Una Un

Una

coleccin F de estados finales o de aceptacin (F Q). funcin : Q x Q que determina el NICO estado siguiente para el par (qi, ) correspondiente al estado actual y a la entrada.

Una

Abreviatura de un AFD: M = (, Q, s, F, )

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

19

Autmata Finito Determinista: Ejemplos


z

L = {(ab)i | i 0} sobre = {a,b}


b a

q0
b a

q1

q2
a,b

M = (, Q, s, F, ) = {a,b}

Q = {q0, q1, q2} s = q0 F = {q0}

q0 q1 q2

a
q1 q2 q2

b
q2 q0 q2

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

20

Autmata Finito Determinista: Ejemplos (II)


z

Sea M = (, Q, s, F, ),
= {a, b} Q = {q0, q1} s = q0 F = {q0}
q0 q1 a q0 q1 b q1 q0

Sea M = (, Q, s, F, ),
= {a, b} Q = {q0, q1 , q2, q3} s = q0 F = {q0, q1 , q2}

q0 q1 q2 q3

a
q0 q0 q0 q3

b
q1 q2 q3 q3

Cules son sus diagramas de transicin? Qu lenguaje acepta cada autmata?


DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez LenguajesRegulares..ppt 27/03/2006 21

Autmatas Finitos Deterministas y Lenguajes: Definiciones


z

Sea M un AFD, el lenguaje aceptado por M es, L(M) = {w* | w es aceptada por M } es decir, el conjunto de cadenas que hace que M pase de su estado inicial a uno de sus estados de aceptacin.

Ejemplo (AFD ejemplo anterior):


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

Sean M1 y M2 dos AFD, se dice que son equivalentes, si L(M1) = L(M2) Ejemplo: Sea = {a}, son equivalentes Mi?
M1 a a M2 a a

M3

a a

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

22

Autmata Finito No Determinista


z

Los autmatas M1 y M2 reconocer el mismo lenguaje L?


b a q2 b a q1 a,b b q4 a a,b q5 a,b

M1 q0

a q3 q6

b M2 a q0 b a q4 q1 a

b q2

q3

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

23

Autmata Finito No Determinista


z

Ambos autmatas reconocen el lenguaje a*b + ab*

Entonces, cules son las diferencias entre M1 y M2 ?:

Cada estado de M1 tiene una nica transicin para cada smbolo del ( es una funcin). Cada estado de M2 tiene cero, una o ms transiciones para cada smbolo del (regla de transicin) Indeterminismo.

En ocasiones resulta ms conveniente disear autmatas finitos No deterministas (como por ejemplo, M2)

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

24

Autmata Finito No Determinista


z

Un Autmata Finito No Determinista M es una coleccin de cinco elementos:


Un

alfabeto de entrada. coleccin Q finita de estados. estado inicial s (s Q).

Una Un

Una

coleccin F de estados finales o de aceptacin (F Q). relacin : Q x Q que se llama relacin de transicin, (qi, ) Q, tal que qiQ y

Una

Abreviatura de un AFN: M = (, Q, s, F, )

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

25

Autmata Finito No Determinista: Ejemplos


z

Sea el AFN M = (, Q, s, F, ):
= {a, b} Q = {q0, q1, q2, q3, q4} s = q0 F = {q2, q3, q4}
q0 q1 q2 q3 q4 a {q1, q4} {q1} b {q3} {q2} {q4}

Diagrama de Transicin de M q0 b

a q1 a

b q2

q3

q4

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

26

Autmata Finito No Determinista: Ejemplos (II)


z

Sea el AFN M = (, Q, s, F, ):
= {a, b} Q = {q0, q1, q2} s = q0 F = {q0}
q0 q1 q2 a {q1} {q0} b {q0, q2}

Cul es el diagrama de transicin que representa el AFN M? Cul es lenguaje regular que acepta el AFN M? Pertenece la palabra aba al lenguaje regular aceptado por el AFN M?

z z

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

27

Autmatas Finitos No Deterministas y Lenguajes: Definiciones


z

Sea M un AFN, el lenguaje aceptado por M es, L(M) = {w* | w es aceptada por M } ,es decir, el conjunto de cadenas que hace que M pase de su estado inicial a uno de sus estados de aceptacin.

Dado su carcter indeterminista, para afirmar que una cadena w no est en L(M) debemos agotar todas las formas posibles de recorrer el diagrama para dicha cadena.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

28

Equivalencia entre AFN y AFD


z

Dados dos autmatas finitos M y M, independientemente si son AFD o AFN, se dice que son equivalentes si L(M) = L(M). Los AFN no son ms potentes que los AFD respecto a los lenguajes que aceptan. Objetivo: Demostrar que todo lenguaje aceptado por un AFN es tambin aceptado por un AFD equivalente.
Subobjetivo:

A partir de un AFN, obtener el AFD equivalente que reconoce el mismo lenguaje.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

29

Equivalencia entre AFN y AFD


z

Sea M=(, Q, s, F, ) un AFN. Definimos un AFD M=(, Q, s, F, ) equivalente tal que:


Q s F

= = 2Q (coleccin de todos los subconjuntos de Q) = {s}

= coleccin de todos los subconjunto de Q con algn estado en F como, ({qi1, qi2, ..., qin}, ) = {p1, p2, ..., pk} tal que, ({qi1, qi2, ..., qin}, ) = {p1, p2, ..., pk} : Q Q

Definimos

Notad que tenemos que ampliar la definicin de : si XQ, y , (X, )=(qX) (q, )
z

En la prctica, no todos los posibles subconjuntos de Q son estados accesibles desde el estado inicial. Aadir slo aquellos que sean el resultado de una transicin desde un estado previamente aadido.
27/03/2006 30

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

Equivalencia entre AFN y AFD: Ejemplo


z

Ejemplo: Sea el AFN M con el siguiente diagrama de transicin:


a q0 a q2 q1 a b q3

L (M) = a + (ab)+
z

Para el AFN tenemos,


(q0, a) = {q1, q2} (q0, b) = ({q1,q2}, a) = ({q1,q2}, b) = {q3} (, a) = (, b) = ({q3}, a) = {q2} ({q3}, b) = ({q2}, a) = ({q2}, b) = {q3}

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

31

Equivalencia entre AFN y AFD: Ejemplo


z

A partir de definimos el AFD equivalente, = = {a, b} Q = {, {q0},, {q1,q2}, {q2},{q3}} s = {q0} F = {{q1,q2}, {q3}} definida tal que,
{q0} {q1,q2} {q2} {q3} a {q1,q2} {q2} b {q3} {q3}

{q0}

{q1,q2}

{q3}

b a a

{q2}

a b

a, b

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

32

Equivalencia entre AFN y AFD


z

Teorema: Sea M=(, Q, s, F, ) un AFN. Entonces, existe un AFD M=(, Q, s, F, ) que es equivalente a M. Idea de la demostracin: Construir un AFD a partir de un AFN aplicando el mtodo de transformacin visto, probar que reconoce las mismas palabras y verificar que es un AFD.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

33

-Transiciones
z

Podemos ampliar la definicin de los AFN aadiendo nuevos elementos no deterministas. Las -Transiciones son un tipo de transiciones entre dos estados que no consumen ningn smbolo de entrada. La decisin de elegir una -Transiciones se realiza de la misma forma que la eleccin de una transicin con eleccin mltiple para un smbolo de entrada.
Basndose

en algo que no determina el modelo.

a q0 a, q2 b

q1

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

34

-Transiciones
z

Problema: Dado un AFN con -Transiciones Cmo calcular el conjunto de los estados siguientes?
Hay

que tener en cuenta las -Transiciones anteriores y posteriores a la transicin etiquetada con el smbolo de entrada .

Ejemplo:
q0 a b b q5 q4 q1 b q2 b a q3

(q0, a) = {q1, q4} (q1, b) = {q0, q2, q5} (q0, ababbb) = ???

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

35

-Transiciones
z

Objetivo: Sistematizar el proceso de determinar el conjunto de los siguientes estados de un AFN con -Transiciones. Definimos la -Cerradura de un estado q como, -c(q)={p| p es accesible desde q sin consumir nada en la entrada} podemos ampliar la definicin, -c({qi1,qi2,...,qin})= -c(qik) para k=1..n Adems, para qQ, se define, d(q,)={p| hay una transicin de q a p etiquetada con } podemos ampliar la definicin, d({qi1,qi2,...,qin},)= d(qik,) para k=1..n

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

36

-Transiciones: Ejemplo
z

Ejemplo: Sea el AFN,


q0 a b q3 q4

q1

q2

entonces, -c(q0)={q0, q1, q2} -c(q4)={q1, q2, q4} d(q0, a)={q3} d(q0, b)= d({q3,q4}, b)={q0, q4}

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

37

-Transiciones
z

En base a las definiciones previas, dado un AFN con -Transiciones, el conjunto de siguientes estado a q mediante el smbolo de entrada se define como:

-c(d(-c(q), ))
z

Ejemplo: Sea el AFN con -Transiciones,


q0 a q3

q1 a

q2

q4 q5

conjunto de siguientes estados para q0 para el smbolo de entrada a, -c(q0)={q0, q1} d(-c(q0), a)={q3, q4} -c(d(-c(q0), a))={q1, q3, q4, q5}

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

38

-Transiciones: Equivalencia
z

A partir de un AFN con -Transiciones M=(,Q,s,F,) se puede construir un AFN sin mismo lenguaje, siendo F = F {q| -c(q) F } (q, )= -c (d(-c(q), ))

-Transiciones M=(,Q,s,F,) que acepte el

La coleccin de lenguajes aceptada por AFN con -Transiciones es la misma que la aceptada por AFN sin -Transiciones. Ejemplo: Transformar AFN con -Transiciones a un AFN sin -Transiciones.
q0 a q3

q1 a

q2

q4 q5

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

39

A.F. y Expresiones Regulares


z

Objetivos:
Dada

una Expresin Regular construir un Autmata Finito que la reconozca. un Autmata Finito calcular la Expresin Regular que reconoce.

Dado

Repaso: Las expresiones regulares sobre un y el lenguaje que denotan se define recursivamente como:
1) 2)

es una e.r y denota el lenguaje vaco es una e.r y denota el lenguaje {} cada a , a es una e.r y denota el lenguaje {a}

3) Para 4) Si

, son dos e.r que denotan los lenguajes A y B, entonces: 1) + es una e.r que denota A B 2) es una e.r que denota A B 3) * es una e.r que denota A*

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

40

A.F. y Expresiones Regulares


z

Para un determinado es posible construir AFN que acepten:


Lenguaje

Vaco ():
q0

Lenguaje

{}:
q0

Lenguajes

unitarios de :
q0 a q1

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

41

A.F. y Expresiones Regulares


z

Dados dos AFN M1=(1, Q1, s1, F1, 1) y M2= (2, Q2, s2, F2, 2). Podemos UNIR M1 y M2 para crear un AFN que reconozca el lenguaje L(M1)L(M2). La construccin formal del nuevo autmata viene dada por M=(,Q,s,F,) tal que:
Q s F

= 1 2 = Q1 Q2 {s} = F1 F2 = es un nuevo estado inicial aadido.

se construye para que incluya las transiciones de 1 y de 2, y adems, se incluyen dos -transiciones desde el nuevo estado s a los estados iniciales de M1 y M2. = 1 2 {(s, , s1), (s, , s2)}

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

42

A.F. y Expresiones Regulares: Ejemplo.


z

Ejemplo: Tenemos los AFN que aceptan ab* y (ab)*, y queremos construir un AFN que acepte ab* + (ab)*.
q0 a q1 b b q2

ab*

q0

b a

q1

(ab)*

q0 s


q0

a b a

q1

b b

q2

q1

ab*+(ab)*

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

43

A.F. y Expresiones Regulares


z

Dados dos AFN M1=(1, Q1, s1, F1, 1) y M2= (2, Q2, s2, F2, 2). Podemos CONCATENAR M1 y M2 para crear un AFN que reconozca el lenguaje L(M1)L(M2). La construccin formal del nuevo autmata viene dada por M=(,Q,s,F,) tal que:

= 1 2 Q = Q1 Q2 s = s1 F = F2 = 1 2 { F1 {} {s2} } q F1, (q, , s2)

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

44

A.F. y Expresiones Regulares: Ejemplo.


z

Ejemplo: Tenemos los AFN que aceptan a y b, y queremos construir un AFN que acepte ab.
q0 q1

q0

q1

q0

q1

q0

q1

ab

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

45

A.F. y Expresiones Regulares


z

Dado un AFN M1=(1, Q1, s1, F1, 1). Podemos crear un AFN que reconozca el lenguaje L(M1)*. La construccin formal del nuevo autmata viene dada por M=(,Q,s,F,) tal que:

= 1 Q = Q1 {s} s = nuevo estado inicial del AFN M. F = {s} = 1 {s, , s1} { F1 {} {s} } q F1, (q, , s)

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

46

A.F. y Expresiones Regulares: Ejemplo.


z

Ejemplo: Tenemos un AFN que acepta ab, y queremos construir un AFN que acepte (ab)*.
q0 q1 q2

ab

q0

q1

q2

(ab)*

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

47

A.F. y Expresiones Regulares


z

De la discusin previa se deduce, que el conjunto de los lenguajes aceptados por un AF sobre un , contiene los lenguajes de construccin bsica. Adems, este conjunto es cerrado respecto de la unin, de la concatenacin y la estrella de Kleene. Es decir, aplicando las tcnicas previas, somos capaces de construir a partir de una expresin regular el AF que la reconoce (objetivo 1).

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

48

A.F. y Expresiones Regulares


z

El objetivo ahora es a partir de un autmata finito deducir la expresin regular que define el lenguaje que reconoce. Sea M=(,Q,s,F,) un A.F. Suponemos que s=q0. Entonces, para todo estado qi, sea Ai={w* | (qi, w) F } el conjunto de todas las cadenas que hacen que M pase de qi a un estado de aceptacin.
A0 Es

= L(M), por suponer que s = q0

posible que Ai = , por ejemplo, un estado sumidero. F, entonces Ai

qi

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

49

A.F. y Expresiones Regulares: Ejemplo


z

Ejemplo: Dado el siguiente A.F,


q0 a q1 a b q3 b q5 a q4 b q2 a,b a,b

Entonces, A5 = A4 = A3 = a A2 = A1 = b A0 = ab +ba

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

50

A.F. y Expresiones Regulares


z

Si qj (qi, ). Entonces Ai contiene Aj. De hecho, se tiene que Ai = {Aj | qj (qi, )}

Ejemplo: Dado el siguiente A.F,


q0 a q1 a b q3 b q5 a b q2 a,b a,b q4

entonces, A0 = aA1 + bA3 A1 = aA5 + bA2 A2 = + aA5 + bA5

A3 = aA4 + bA5 A4 = + aA5 + bA5 A5 =

A0 = L(M) = ab + ba

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

51

A.F. y Expresiones Regulares


z

Ejemplo: Dado el siguiente A.F,


a b q0 q1

entonces, A0 = aA0 + bA1 A1 = Resolviendo por sustitucin queda, A0 = aA0 + b


z

Lema de Arden: Una ecuacin de la forma X=AX+B donde A, tiene como solucin nica X=A*B.

Por tanto, la solucin ser A0 = a*b

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

52

A.F. y Expresiones Regulares


z

Sea M un AF entonces existe una expresin regular r tal que L(M)=L(r). Teorema de Kleene: Un lenguaje es regular si y slo si es aceptado por un A.F. Es decir, aplicando las tcnicas previas, somos capaces de construir a partir de un AF la expresin regular que especifica el lenguaje que reconoce (objetivo 2).

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

53

Propiedades de los Lenguajes Regulares


z

Dado un lenguaje L, L es regular?:

L es finito L es regular. L es infinito ??

Objetivo: Encontrar propiedades que sean compartidas por todos los lenguajes regulares infinitos y que no estn presentes en los lenguajes no regulares.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

54

Propiedades de los Lenguajes Regulares


z

Suponemos que tenemos un lenguaje L que es regular, aceptado por un AFD M=(,Q,s,F,) donde Q tiene n estados. Si L es infinito entonces existir w=a1a2...an+1. Si tuviramos sucesivamente, (s,a1) = q1 (q1,a2) = q2
...

pasaramos por n+1 estados qi. Q slo tiene n estados, con lo cual no todos ellos son distintos. Entonces, para 1 j < k n+1, qj = qk
qk-1
q1 ... ...

qj+1 qk+1

...

qj = qk

qn+1

Dado que j < k, el ciclo tiene al menos longitud 1. Entonces, w=a1a2...ajak+1...an+1 L, y w= a1a2...aj (aj+1...ak)m ak+1...an+1 L. Puedo bombear cero o ms veces el ciclo obteniendo palabras que pertenecen a L.
DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez LenguajesRegulares..ppt 27/03/2006 55

Propiedades de los Lenguajes Regulares


z

Lema de 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 que n, se tiene que w=uvx, siendo, uvix L para todo i 0, con |v| 1 y |uv| n.

Nos permite demostrar cuando un lenguaje no es regular Para demostrar que no es regular, para cualquier valor de n lo bastante grande, se tendr al menos una cadena que falle al ser bombeada. Todos los lenguajes regulares cumplen el L.B. y algunos no regulares, tambin! p.ej. L={aibjck | i = 0 j = k} no es regular, pero cumple el L.B.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

56

Propiedades de los Lenguajes Regulares


z

Ejemplos: Son regulares los siguientes lenguajes?


L=

2 i {a

| i 1}

L = {ambm | m 0}

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

57

Utilidades: Equivalencia de AFD


z

Son equivalentes dos AFD M y M?


algoritmo equivalentesAFD (M, M: AFD) principio Construimos una tabla de comparacin; {#columnas = 1 (pares estados) + # smbolos } Insertar fila en tabla (s, s); Mientas que existan filas en tabla hacer {fila (q, q) } Para cada smbolo hacer Insertar columna smbolo (p,p) {pQ, pQ y (q, )=p, (q, )=p} Si (pF and pF) or (pF and pF) entonces return(No_Equivalentes); sino Insertar fila en tabla (p,p) si no est ya; fsi; fpara; fMientrasQue: return (Si_Equivalentes); fin;

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

58

Utilidades: Equivalencia de AFD


algoritmo equivalentesAFD (M, M: AFD) T : TablaComparacion [][1 + # ] := TablaVaca; {n filas, una columna 1 y una columna por cada } principio i := 1; Si (sF and sF) or (sF and sF) entonces return (No_Equivalentes); T[i][1] = (s, s); Mientras que T[i][1] no es nulo hacer (q, q) = T[i][1]; Para cada hacer p := (q, ); p := (q, ); T[i][ ] := (p, p); Si (pF and pF) or (pF and pF) entonces return (No_Equivalentes); {Aadir (p,p) a T[][1] si no estaba ya} fsi; fpara; i := i + 1; fMientrasQue: return (Si_Equivalentes); fin;

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

59

Utilidades: AFD Mnimo


z

Dado un AFD, dos estados p y q son distinguibles si para alguna w*, entonces (p, w)F y (q, w)F o viceversa. Dos estados no distinguibles se dicen equivalentes. Un AFD mnimo no tiene estados redundantes, es decir, todos sus estados son distinguibles. Cmo obtener un AFD Mnimo? Eliminar la redundancia sustituyendo los conjuntos de estados no distinguibles por un nico estado.

DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez

LenguajesRegulares..ppt

27/03/2006

60

Utilidades: AFD Mnimo


z

Construir el AFD Mnimo:


algoritmo AFDMnimo (M:AFD) principio Eliminar estados no alcanzables de M; Construccin tabla [Q,Q]
{Con la mitad es suficiente, las celdas simtricas respecto la diagonal representan los mismos pares de estados}

Marcamos Distinguibles los pares [qF, qF] ;


Para (p,q) no conocidos como Distinguibles hacer Para cada smbolo hacer Calcular (p, q) tq (p,) = p y (q,) = q Si (p, q) son Distinguibles entonces (p,q) Distinguibles y Break; sino (p,q) insertar lista asociada (p, q) fsi; fpara; fpara; Para todas las listas asociadas hacer Si (p, q) son Distinguibles entonces Todos sus (p,q) en su lista Distinguibles; fsi; fpara; Extraer conjunto de estados Distinguibles; Establecer transiciones para el nuevo AFD Mnimo; fin.
DIIS Pedro J. lvarez Prez-Aradros y Rubn Bjar Hernndez LenguajesRegulares..ppt 27/03/2006 61

Das könnte Ihnen auch gefallen