Beruflich Dokumente
Kultur Dokumente
LenguajesRegulares..ppt
27/03/2006
ndice
z z z
LenguajesRegulares..ppt
27/03/2006
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}
*.
Clculo
del nmero de subconjuntos, en este caso sublenguajes, que puedo formar con las palabras del lenguaje universal *.
LenguajesRegulares..ppt
27/03/2006
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.
LenguajesRegulares..ppt
27/03/2006
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.
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 ?
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)
LenguajesRegulares..ppt
27/03/2006
LenguajesRegulares..ppt
27/03/2006
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?
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)
LenguajesRegulares..ppt
27/03/2006
10
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
LenguajesRegulares..ppt
27/03/2006
11
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}
LenguajesRegulares..ppt
27/03/2006
12
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.
LenguajesRegulares..ppt
27/03/2006
13
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
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
Nodo Inicial: donde comenzamos el reconocimiento de la palabra. Nodos Final o de Aceptacin: aquellos que determinan que una palabra es legal.
LenguajesRegulares..ppt
27/03/2006
15
a,b
a,b
b a
a b
LenguajesRegulares..ppt
27/03/2006
16
a,b
LenguajesRegulares..ppt
27/03/2006
17
q0
b a
q1
q2
a,b
a q0
Estado Actual
b q2 q0 q2
q1 q2 q2
q1 q2
LenguajesRegulares..ppt
27/03/2006
18
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, )
LenguajesRegulares..ppt
27/03/2006
19
q0
b a
q1
q2
a,b
M = (, Q, s, F, ) = {a,b}
q0 q1 q2
a
q1 q2 q2
b
q2 q0 q2
LenguajesRegulares..ppt
27/03/2006
20
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
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.
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
LenguajesRegulares..ppt
27/03/2006
22
M1 q0
a q3 q6
b M2 a q0 b a q4 q1 a
b q2
q3
LenguajesRegulares..ppt
27/03/2006
23
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)
LenguajesRegulares..ppt
27/03/2006
24
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, )
LenguajesRegulares..ppt
27/03/2006
25
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
LenguajesRegulares..ppt
27/03/2006
26
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
LenguajesRegulares..ppt
27/03/2006
27
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.
LenguajesRegulares..ppt
27/03/2006
28
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:
LenguajesRegulares..ppt
27/03/2006
29
= 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
LenguajesRegulares..ppt
L (M) = a + (ab)+
z
LenguajesRegulares..ppt
27/03/2006
31
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
LenguajesRegulares..ppt
27/03/2006
32
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.
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
a q0 a, q2 b
q1
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) = ???
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
LenguajesRegulares..ppt
27/03/2006
36
-Transiciones: Ejemplo
z
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}
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
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}
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), ))
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
LenguajesRegulares..ppt
27/03/2006
39
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*
LenguajesRegulares..ppt
27/03/2006
40
Vaco ():
q0
Lenguaje
{}:
q0
Lenguajes
unitarios de :
q0 a q1
LenguajesRegulares..ppt
27/03/2006
41
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
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)}
LenguajesRegulares..ppt
27/03/2006
42
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)*
LenguajesRegulares..ppt
27/03/2006
43
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:
LenguajesRegulares..ppt
27/03/2006
44
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
LenguajesRegulares..ppt
27/03/2006
45
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)
LenguajesRegulares..ppt
27/03/2006
46
Ejemplo: Tenemos un AFN que acepta ab, y queremos construir un AFN que acepte (ab)*.
q0 q1 q2
ab
q0
q1
q2
(ab)*
LenguajesRegulares..ppt
27/03/2006
47
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).
LenguajesRegulares..ppt
27/03/2006
48
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
qi
LenguajesRegulares..ppt
27/03/2006
49
Entonces, A5 = A4 = A3 = a A2 = A1 = b A0 = ab +ba
LenguajesRegulares..ppt
27/03/2006
50
A0 = L(M) = ab + ba
LenguajesRegulares..ppt
27/03/2006
51
Lema de Arden: Una ecuacin de la forma X=AX+B donde A, tiene como solucin nica X=A*B.
LenguajesRegulares..ppt
27/03/2006
52
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).
LenguajesRegulares..ppt
27/03/2006
53
Objetivo: Encontrar propiedades que sean compartidas por todos los lenguajes regulares infinitos y que no estn presentes en los lenguajes no regulares.
LenguajesRegulares..ppt
27/03/2006
54
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
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.
LenguajesRegulares..ppt
27/03/2006
56
L=
2 i {a
| i 1}
L = {ambm | m 0}
LenguajesRegulares..ppt
27/03/2006
57
LenguajesRegulares..ppt
27/03/2006
58
LenguajesRegulares..ppt
27/03/2006
59
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.
LenguajesRegulares..ppt
27/03/2006
60