Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoria de Automatas y Lenguajes Formales - Pinocho
Teoria de Automatas y Lenguajes Formales - Pinocho
Figura 2.18LENGUAJES REGULARES 65 La tabla para A viene dada por la Figura 2.19 A a be ae | lanant | fama) a | # | a | (ad | (ad a | (as) a | a [tad [tad | Figura 2as La naturaleza recursiva del andlisis de cadenas que vimos para los AFD se maniiene en los AFN si la notaci6n se define con cuidado. Si X < Q, vamos a in- terpretar A(X, 6) como el conjunto de estados {p|qe X y pe A(q,))}. Por tanto, A (X, 6) es el conjunto de todos los estados siguientes a los que se puede llegar desde X con la entrada 0. Obsérvese que A(X, 0) =e x A(q, 6) [re- cuérdese que A (q, 0) es un conjunto para cualquier estado q]. Por eso, en el ejemplo precedente, A ((g0, 925 93}, 8) = (90, 1} Y {42} VB = £40, 41, 92} Ahora obsérvese que para la cadena abaab, se obtiene que A (qo, a) = {qo, g3), con lo que A (qo, ab) = A (A (go, 2), 5) =A({go. gs}, 8) = (go. gi} U8 = {go a1} Por tanto, podemos extender la notacién usada para los AFD a Jos AEN y escribir A (qo, abaab) para abreviar A (A (A (A (A (qo, a), 8), @), a), b). En el Ejemplo 2.5.1, se tiene que A (go, abaab) = (qo, 41, ga}. La coleccién A (qo, abaab) es el conjunto de todos los estados de M a los que se llega cuando se analiza la cadena abaab. Esta coleccién tienen en cuenta todos los posibles caminos 0 recorridos de M con esta cadena de entrada. A (go, abaab) contiene al menos un estado de aceptacidn, q4, lo que indica que algdn recorrido de este dia- grama para la cadena abaab termina en un estado de aceptacién. Por eso, abaab pertenece al lenguaje aceptado por este AFN.66) TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Ejercicios de la Seccion 2.5 2. Construir un AFD y cl diagrama de transicién asociado que acepte el lenguaje (ab aba)’. Compararlo con el AFN del Ejemplo 2.5.1. 2.5.2. Obtener un AFN (que no sea AFD) que acepte el lenguaje ab" U ab"a. 2.5.3. Usar la técnica precedente para determinar si las cadenas babba y aabaaba son aceptadas por el AFN del Ejemplo 2.5.1 2.5.4. Sea M el AFN dado por Q= {go q1}, 3= (a,b), s= qo. Figura 2.20. Determinar si ab, ba y ba esta transici6n para M. au} y A dada en la en L (M). Dibujar el diagrama de Figura 2.20 2.6 EQUIVALENCIA DE AFN Y AFD Hemos definido la equivalencia para los AFD. Extenderemos esta definicién para la clase de todos los autématas finitos (AFD y AFN) de forma que un auté- mata M es equivalente a un autémata M’ si L (M)=L (M’). Kjemplo 2.6.1 Los autématas representados en la Figura 2.21 son equivalentes. Obsérvese que uno es determinista y el otro no determinista. Sin embargo, ambos aceptan el mismo lenguaje, a (aU by’, a gga a. gmap B. @24b Figura 221 Ya que una funcién es un caso especial de relacién (es decir, las funciones son relaciones que poseen requerimientos adicionales), las funciones de los AFD. se consideran como relaciones en los AEN. En consecuencia, todo AFD es un AEN. La coleccién de lenguajes aceptados por los AFN incluye a todos los len- guajes aceptados por los AFD, De esto resulta que los AEN s6lo aceptan los ien-LENGUAJES REGULARES == 67 guajes aceptados por los AFD. Por lo tanto, los AFN no son mas potentes que Jos AFD con respecto a Jos lenguajes que aceptan. Para probar esto, necesitamos demostrar que todo lenguaje aceptado por un AFN también es aceptado por al gin AFD. Sea M = (Q, 3, s, F, A) un AFN. En Ja seccién anterior presentamos una for ma de recorrer M, de Ja cual se obtenia la coleccidn de todos los estados accesi- bles desde el estado inicial en cada una de las etapas de andlisis de una cadena. Estas técnicas proporcionan la base para construir un AFD M’ = (Q’, 2’, 8’, F’, 8) que acepte el mismo lenguaje que M. Esencialmente, lo que se pretende es hacer que cada estado de Q’ se corresponda con un conjunto de estados de Q. Cuando se analiza una cadena con M, ésta se acepta cuando la colecci6n final de estados contiene al menos un estado de aceptacién perteneciente a F. Por tanto, haremos que F sea el conjunto de estados de Q’ que se correspuadan con los conjuntos de estados (de Q) que contienen un estado de F, Haremos corresponder a s” con el conjunto {s}, Z’=5, y definiremos 6 de forma que nos desplacemos de un conjunto de estados de M a otro, como hace A. Ejemplo 2.6.2 Consideremos el AFN Mf que acepta aU (ab)*, representado por el ma de transici6n de la Figura 2.22, Para este AFN, tendremos A (ao. a) = {4 a2} Ada. ACG, 42 A (fq. a2}. 6) = {as} AO, @.b)=6 Alga, al A(q3,D)=9 Alm, a=9 A (q2, b) = {43} a, —— > | 4 seg, a + I ; +304, % ’ Figura 2.22 spondiente al AFD M' que es e que cada estado de M’ Por tanto, el diagrama de wansicién corn equivalente a M viene dado en la Figura 2.23. Ob68 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES b oo {qo} . (%,%) 7 (4) g 2 . ® * (4) @ 4 b 2 a ge ab Figura 2.23 corresponde a un conjunto de estadas de M. Los estados de aceptacin de M’ se corresponden con los conjuntos de estados de M que contienen estados de acep- tacion. Se verifica ficilmente que la regla de transicién es una funcién. Por tanto (2.2! s', F,8) donde = (O.Lao}, ga}, (ash, (ai ga} } s {90} {las}, {a1, @}) y 8 viene dada por la tabla de Ja Figura 2.24, 8 a 6 a [aw 6 {40} Aga). | tgs} (oa) | @ | ta) | Figura 224 Ahora demostraremos formalmente que todo lenguaje aceptado por un AFN es también aceptado por un AFD, con lo que probaremos que los fenguajes AFN y los lenguajes AFD estén formados por la misma colecci6n de lenguajes. Teorema 2.6.1. Sea M=(Q,%,s,F,A) un AFN. Entonces existe un AFD M’= =(Q,5',s°, FY, 8) que es equivalente a M. Demostracién, Definamos M’ =(',2’,s',F’,8) como sigue: sea s’={s}, Y=, Q' = 22 (que es la coleccién de todos los subconjuntos de Q) y F” la coleccién deLENGUAJES REGULARES = 69 todos los subconjuntos de Q’ que contienen estados de F. Téngase en cuenta que hemos incluido en Q’ y F’ algiin objeto més que en el ejemplo anterior. Sin em- bargo, esto no alterard la construccign de M’. Para cada conjunto (qi, gi, gi,} de Q’ y cada simbolo de entrada 6 de ¥, definiremos 6 como 5 (Edie io os Gin} O) = {Dis Pas + Pk) siy sélo si A Gits Gigs o-5 Tins O) = (Pls Pos =» PR) Obsérvese que 8, definida de esta forma, es una funcién de Q’ xD’ en 0", puesto que estd bien definida para todos los elementos de Q’ x ’. Para probar que L (M) =L (’), debemos demostrar que para toda cadena w, 8 (5°, W) = (pt, pr, « p/} Si-y S6lo si A (8, w) = (ps pay» pj}, con To cual M’ acepta w si y sélo si Mf acepta wv. Probaremos esto por induccién sobre la longi- tud de w. Si la longitud de w es 0 (es decir, w = €), entonces: A(s, w)=A(s,e) = (s}=8(5,¥) Ahora supongamos que para toda cadena w de longitud menor o igual que m se tiene que A(s, ») =8 (s", w). Supongamos que u es una cadena de longitud m +1, Entonces, existird algtin o € E, de forma que se obtiene que u = wo, don- de w es una cadena de longitud m. En este caso, 8 (s, wo) = 5 (5 (s",), 0). Ahora, por Ia hipstesis de induccién, dado que w tiene longitud m, 8 (s’, w) = (Pi, P2, Bj) Si 86lo si A (s, W) = {pi, pa, -- P7)- Pero por la forma en Ia que hemos definido 8, tendremos que S C(t, as os PiJs OV = {11s 125 oy Pe siy s6lo si A (UP 1s 2s woes Pi}s = [My 125 045 Ted Por lo que 8 (s’, wo) = {r1, 72, «0 7} siy. S6lo si A (s, WO) = (71, 12, «4 re}. Es decir, la igualdad se cumple para cadenas de longitud m+ 1 si se cumple para cadenas de longitud m. Entonces por lo anterior tenemos que 6 (s’, w} es un esta- do de F” siy sélo si A (s, w) contiene algtin estado de F. Por tanto, M’ acepta w siy slo si Maceptaw. Obsérvese que, en la demostracién, el AFD M’ correspondiente al AFN M contiene muchos estados que no son accesiblés desde el estado inicial. En la prictica, es una buena idea empezar con s’ y aftadir estados s6lo cuando son el resultado de una transicidn desde un. estado previamente aftadido.70 —_ TERIA DE AUTOMATAS Y LENGUAJES FORMALES Ejercicios de la Seccién 2.6 2.6.1. Construir el AFD correspondiente al AEN dado en la Figura 2.25. ,Qué lengua- je es aceptado por dicho autémata? a Q b eases ab 2 (eee | Figura 2.25 2.6.2. Encontrar un AFN que acepte (ab U aabU aba)’. Convertir este AFN en un AED. 2.6.3. Encontrar un AFN para (a VU b)"aabah . Convertirlo en un AFD. 2.6.4. Supongamos que M es un AFN que ya es determinista. ;Qué se obtendré si apli- camos a M la construccién dada en el Teorema 2.6.1? 2.7 &-TRANSICIONES Podemos ampliar la definicién de autémata finito no determinista para incluir transiciones de un estado a otro que no dependan de ninguna entrada. Tales tan- siciones se Haman €-transiciones porque al realizarse no consumen ningtin sim- bolo de Ia entrada. Por ejemplo, los AEN de las Figuras 2.26 y 2.27 contienen & transiciones. En el AFN de Ja Figura 2.26, el aut6mata puede cambiar su estado de go a qi sin consumir nada en la entrada, Obsérvese que qi es el tinico estado de acep- tacion de esté APN. Si w 6 cualquier cadena de 0.0 mas aes, este aut6mata cicla sobre qo hasta que consume las aes. Una vez que la cadena se vacfa, se desplaza agry lo acepta. Qos —> +9 % 9, Figura 2.26 EI AFN de la Figura 2.27 puede moverse del estado gp al estado go sin con- sumir nada en Ja entrada. En ambos APN, la decisién de elegir una €-transicién se realiza de la.misma forma que la de cualquier otra transicién con eleccién miltiple que exista en un AEN —basdndose en algo que no determina el mode- lo. Por tanto, las €-transiciones son consistentes con el matiz no determinista de nuestra versidn previa de AFN.LENGUAJES REGULARES 71 a Figura 2.27 Si un APN tiene €-transiciones, la relacién de transicién A asocia pares de Qx (ZU {e}) x Q con subconjuntos de Q. Es decir, A es una relacién sobre Ox (ZV {e}) x Q. Se puede afiadir una columna en Ia tabla de A para colocar los pares de la forma (qi, €). Cuando hay €-transiciones en un AFN es_conve- niente suponer que cada estadgjtiene una €-transicién que cicla en ese estado) Usaremos esto para sistematizar el calculo de los AFN. Es decir, el AFN de la Figura 2.27 tendrfa la tabla de transicidn de la Figura 2.28. A a b € ee [age ty al fat | 0. 9 9 Cie e ta) % > | Agok 9 fae) | Figura 2.28 Para tratar de calcular el conjunto de Jos estados siguientes de un AFN que contiene €-transiciones, debemos tener en cuenta Jas €-transiciones “anteriores” y “posteriores” a la transicién etiquetada con 6. Por ejemplo, consideremos el AEN M dado en la Figura 2.29, % oe A > ie b qe EN qs. Ws Figura 2.29 Como se ve en la Figura 2.29, el conjunto de estados siguientes al estado go mediante la entrada a es el conjunto {q1, ga} debido a la €-transicién que hay después de la transicién con a. Igualmente, el conjunto de estados siguientes siendo g) el estado actual y b la entrada, es el conjunto (go, 42, qs} debido a la e- transicién que existe antes de tomar la transicién con b. Obsérvese que A (qo. ababbb) = {qo, qs) con lo que ababbb es aceptada por M.72 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES: Se puede sistematizar el proceso para calcular.el conjunto de los estados si- guientes en un AFN con €-transiciones. Para todo estado q € Q, definimos la ¢- cerradura de q como €-c (q) = (p|p es accesible desde g sin consumir nada en la entrada} Ampliaremos est4 definicién para todo el conjunto de estados de la siguiente manera 86 (Udi Gi) = ee i) | Por ejemplo, para el AFN de la Figura 2.39, s° tiene que ec (gs) = (93) % % Figura 2.30 ya que cada estado es accesible desde si mismo sin consumir ningtin cardcter de la entrada. También se obtiene €-c (go) = (go, G1, 92) €-€ (ga) = (41, G2. G4} Parag € Qy oe Ese define 4 (q, 6) = {p| hay una transicién de q ap etiquetada con o} La coleccién d (g, 6) es la coleccidn de estados que “siguen” directamente a q pasando por la transici6n etiquetada con 0. Ampliaremos la definicién de da los conjuntos como sigueLENGUAJESREGULARES = 73. (diy Gin ~~ igh © 4 Gin 9) Por tanto, en el ejemplo precetente se tiene que do.) = 44 d (qo BED (fais ca}, bY = qn. ga} Obsérvese que €c (d (g, ©)) es el conjuiaic de todos los estados accesibles desde g, primero mediante una trinsicién eon © y después mediante una o més e-transiciones. Por otro lado, d 2 (g),6) «+ 2! conjunto de todos Jos estados accesibles desde q tomando pria'cro una © ids e-transiciones y después una transicién eon s. Finalmente, obsérvese que © « (d (€-¢ (), 5) es el conjunto de todos los estados accesibles desde g tows!» primer) 1 0 més &-transiciones, después una transicién con ¢ y, por ultino. una o nis «-transiciones. Téngase en mente que permanecer en un estado © como wv una €-transicién, Por tanto, €-c (d (ec (q), 6) e6 el conjunio “> todos | »siados siguientes al actual g me- diante la entrada 6. Esto sister" el cf © conjuntos de estados siguien- tes, Primero se obtiene ¢c (q), |» = 0 se calcul d (@-c (g), 6) y después se ob- tiene la e-cerradura del conjunto « » estados +. vantes. Ejemplo 2.7.1 Considérese el AFN con ¢-transicions dado en la Figura 2.31. Usando la formula anterior, obtendr por medio del simbolo de los estados siguientes al estado g 4s Figura 2.31© 74 TEORIADE AUTOMATAS ¥ LENGUAIES FORMALES &c (qv) = {qo gi} d (ec (qo), a) = {93 a4} 8c (( 93, gah) = {gs G3 Fa G5) Asi, mediante la entrada a, el conjunto de los estados siguientes es [at 43. G4, ds}. Es decir, A (go, a) = (qi, 43, 43, 95}- A partir de un AFN M=(Q, 3, s, F, A) que tiene €-transiciones, se puede construir un AEN sin €-transiciones que acepte el mismo lenguaje. Se define M’=(Q,%,s, F’, A’) como F=Pu {qle-e(Q@ oF 40} y A’ (g, 6) = €-c (d (€-c (q), 0), como antes. Obsérvese que el autémata transformado M’ no contiene €-transiciones. Kjemplo 2.7.2 El AFN de la Figura 2.31 se transforma en el AFN de la Figura 2.32, do todas Jas €-transiciones son eliminadas mediante el proceso anterior. Figura 2.32 Entonces, se deduce que la coleccién de lenguajes aceptados por los AFN con €-transiciones es la misma que Ja aceptada por los AEN sin ¢-transiciones Se ve facilmente que la proposicién-inversa también es cierta. Por tanto, todos nuestros aut6matas aceptan la misma coleccién de lenguajes. Para constryir un autémata tendremos tres alternativas a elegir. Como veremos posteriormente, el uso de €-transiciones es conveniente para unir autématas finitos,LENGUAJES REGULARES = 75 Ejercicios de la Seccion 2.7 2J.1, Caloular A (qo, abb) y A (qo, aberb) para el AEN de la Figura 2.29. 2.7.2, Obtener €=c ((g1, 94)) para el AFN de la Figura 2.30. 2.7.3. Obtener €-c (d (qs, b)) en el AFN de la Figura 2.30, 2.7.4, Usarla ti nica estudiada para calcular A (qs, b) en el Ejemplo 2.3.1 2.7.8. Para el AFN dado en 1a Figura 2.33; (a) obtener a tabla de transicién para A, (b) obtener la €-cerradura (g,) para #=0, 1,2, y (c) caleular A (qo, a), A (go, b) y A (qo, ¢) para Ja Figura 2.33. % % % — Figura 2.33 2.7.6. Para el AFN del Bjercicio 2.7.5, obtener el AFN que se obtiene al eliminar las g-transiciones. Dar la tabla para A’ 2.8 AUTOMATAS FINITOS Y EXPRESIONES REGULARES Hasta ahora, hemos tratado de la relacién entre autémata finito y expresiones re- gulares de una forma intuitiva, En esta seecién, formalizaremos dicha relacion por medio del teorema de Kleene (Teorema 2.8.4). De momento, vamos a ver al gunas propiedades de los lenguajes aceptados por autématas finitos. Para un alfabeto 5 se pueden construir los AFN (y los AFD) que acepten palabras unitarias, Por ejemplo, el AFN de la Figura 2.34 acepta el lenguaje uni- tario {a]. Para ello se puede construir, incluso, una AFN que acepte el Iengvaje vacfo @. Dicho APN se muestra en la Figura 2.35. Obsérvese que este autémata no acepta ninguna cadena. —: an >e — % a, % Figura 2.34 Figura 2.35 Supongamos que My = (Qi, 21,51, FAD y Ma Za, 82°F, Ao): son APN. Podemos unir M; y M> en un nuevo AFN que acepte L (My) UL (M2), afadiendo un nuevo estado inicial 5 y dos €-trangiciones, una de s a 5) y otra de s a 52. La construccién formal de este nuevo AFN M = (Q, %, s, F, A) viene dado por 2=2) 02>, F=FyU Foy O=0; UQU [s}, donde s es el nuevo estado76 —TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES inicial y A se define de forma que se incluyan todas las transiciones de At, Az y las dos nuevas €-transiciones de § a 51 y 5. Conviene considerar las relaciones de transicién A, y A> como colecciones de ternas ordenadas de Q, x Ex Qi y Q2x Ex Qp, donde (g, 6, p) significa que existe una transicién de q ap median- te el cardcter © (es decir, p € A (4, 6)). Usando esta notacién se puede definir A=A) VA2U {(5, €, 51), (S, & 52)} Por ejemplo, los AEN de la Figura 2.36, los cuales aceptan ab" y (ab)', res- pectivamente, se pueden unir formando el autémata con €-transiciones de la Fi- gura 2.37, el cual acepta ab” U (ab)*. aq % Figura 2.36 Figura 2.37 Sean My = (Qs, E1, 91, Fi, Ai) y M2 = (Qo, ¥>, 59, F2, do) dos AEN. Podemos unirlos para formar un APN que acepte L (Mj) L (Mz). Se necesita un AFN que reconozca una cadena de Z (Mj) y después reconozca una de L (Mz). Es decir, un recorrido hasta un estado de aceptacién para admitir la cadena en su totalidad, primero debe pasar por un estado de aceptacién de M; y después pasar (y termi- nar) en-un estado de aceptacién de Mz. Esto se realiza de forma no deterministaLENGUAJES REGULARES = 77 pasando del estado final de M; al estado inicial de M2 por medio de una €-tran- sicion Por ejemplo, los AFN de la Figura 2.38 aceptan los lenguajes {a) y {b}, respectivamente. Uniéndolos como hemos dicho, se obtiene un AFN que acepta el lenguaje {ab} (véase la Figura 2.39). : @ . @ a G a; ay Figura 2.38 : a . eS : D: © % % Ca Figura 2.39 Obsérvese que el automata que se obtiene tiene como estado inicial el esta- do inicial de Mj; y como estado(s) final(es) el(los) estado(s) final(es) de Mz. Por tanto, el AFN M = (Q, &, 8, F, A) que acepta L (M1) L (M2) viene dado por Q=AVQ sssy FoF, A=A,UAgU (Fi X {€} X {52}) La relacién de transicién A incluye todas las transiciones presentes en los. dos AFN junto con todas las ternas de la forma (g, &, 52), donde g es un estado de aceptacién de Mj. Es decir, s2 € A (q, €) para todo qg € Fi, Se puede deducir un procedimiento para construir una AFN que acepte L (M)' pata el AFN M = (Q, 5, s, F, A), como sigue. Primero, se aifade un nuevo estado inicial s’; se hard que este estado sea ademas un estado de aceptacién con el fin de que € sea aceptada. Entonces, se permite una €-transicién desde s’ a el antiguo estado inicial s, Por tanto, M comenzard una vez que M’ se encuentre en s”. Se tendrd ademés, una €-transicién desde todos los estados de aceptacion has- ta el estado inicial s’. Una vez que la cadena ded (M) ha sido agotada, el andlisis puede continuar a partir del estado inicial de M o terminar en 3’, El aut6mata re- sultante seré M’ = (Q’, E, s’, F’, A’), donde78 —_TEORIA DE AUTOMATAS Y LENGUAJES FORMALES, P=Qv[s} F={s'} A =AU {8,5} UE X fe) x (8) Obséryese que en la definicién de A’ se incluyen las €-transiciones necesa- tias ademas de las del AFN M original. De la discusi6n anterior se obtiene el siguiente teorema. Teorema 2.8.1. El conjunto de lenguajes aceptados por un autmata finito sobre el al- fabeto E contiene @ y los lenguajes unitarios {a} para todo a € ¥. Este conjunto es cerrado con respecto a la unidn, concatenacién y la cerradura de estrella. Dada una expresién regular r para construir un AFN (con e-transiciones en todos los casos excepto para expresiones regulares triviales), podemos aplicar las técnicas precedentes a los términos de las expresiones regulares. Por tanto, todo lenguaje regular es aceptado por un autémata finito. Lo recfproco también es cierto, como veremos en el Lema 2.8.3. Es decir, todo lenguaje aceptado por una autémata finito es también un lenguaje regular. Por lo tanto, el conjunto de los lenguajes regulares es ¢l mismo que él conjunto de los lenguajes aceptados por un autémata finito (Teorema 2.8.4). Consideremos el autémata finito M=(Q.3,s.F,A) y supongamos que 5 = go es el estado inicial. Para todo estado qi, sea Az (we ZA Gv) Feo} Es decir, A; es el conjunto de las cadenas sobre © que hacen que M pase des- de gi hasta un estado de aceptaciGn. Se dice que A, es el conjunto de las cadenas aceptadas por el estado qj. Obsérvese en que Ag= L (M). Adviértase, también, que es posible que 4j=9. Si gre F, entonces se obtiene que € € Ar, Como ejemplo, consideremos el aut6mata finito de la Figura 2.40. En cl mismo, se tiene que As=9, Ar=e Bo: ASB A3=a, Ap=abU ba Supongamos que q € A (ga 0). Entonces A; contiene a OA; De hecho, se tiene que . Aim U {GAj qi € A (qn 9)}LENGUAJES REGULARES «= 79 Figura 2.40 Esto proporciona las técnicas recursivas bésicas para obtener una expresién regular a partir de un autémata finito. Como muestra, consideremos el ejemplo anterior. Obsérvese que Ag=aA1 U bA3, A3=aA4U bAs A= DAD U aAs, Aas UaAs U DAS Ap =€ UaAsU DAs, 9 Por tanto, se tiene un sistema de ecuaciones que se cumplen para L (iM). Se puede resolver por sustitucién obteniendo que L (M) = abv ba: Considérese el aut6mata finito dado por la Figura 2.41. Del mismo modo se obtiene que Ag= ao bAy Al ADS GER ORY I Figura 2.41 Resolviéndolo por sustitucién, resulia que Ag = aAg U by es imposible sim- plificarlo més. El siguiente lema muestra cémo resolver esio para obtener Ao = a°b (que es Jo que se espera tras inspeccionar el diagrama de transicién). Lema 2. (Lema de Arden) Una ecuacidn de la forma X = AX U B, donde ¢ € A, tiene una solucin nica X= A“B. Demostraci6n. Obsérvese que A°B = (At Ut) B= A*B UB=A (A‘B) UB. Por tanto, A’B esté contenida en toda solucién, Supongamos que X= AB U C es una solu- cin, donde CA°B =8. Si se sustituye 1a expresién anterior en Ja ecuacién X=AN UB, se obtiene80 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES A'BUC=A(ASBUQUB =A'BUACUB =A'BUBUAC = (At Ue) BUAC =A‘BUAC Realizando en ambos lados Ja interseccién con C se obtiene C=ACNC (los otros términos son 9). Por tanto, C CAC. Pero, como é ¢ A, la cadena mas corta de AC debe ser més larga que Ja cadena mas corta de C. Esto contradice que C CAC a menos que C =. Luego se debe tener que C= y, por tanto, AB es la tinica soluci6n. [1 Consideremos el autémata finito de la Figura 2.42. Aqui se tiene A= aA Ay = aAz 0 BAG A) =4A3U bAg As=€ Ua UDAg a b (a 5. > 8 ® Drees b Figura 2.42 Sustituyendo y aplicando el lema de Arden cuando sea necesario, se obtiene Ayah" A3=aA3UB* UE bt Ap=a'b’ Ub" Asal Ub) Us = aa*b* abt Ub Ag=aAt =@ a'b' a bu ab* : Entonces se deduce el siguiente Jema.LENGUAJESREGULARES == 8 {Lema 2.8.3, Sea M un autémata finito. Entonces existe una expresién regular r para la ( cual L(r) =L (M). | Del Lema 2.8.3 junto con las observaciones anteriores al Teorema 2.8.1, se obtiene el teorema de Kleene. Teorema 2.8.4. (Kleene) Un lenguaje es regular si y s6lo si es aceptado por un auté- mata finito. ns Ejercicios de la Seccién 2.8 2.8.1. Obiener un AFN que acepte &. 2.8.2. Obtener un AFN que acepte {a}. Obtener otro AFN que acepte {b}. Usar las técnicas vistas en esta seccién para unir estos AFN en uino que acepte el lengua- Je (a. b). 2.8.3, Obtener un AFN que acepte (a U b)’ U (aba)'. 2.8.4. Obtener un AFN que acepte todas las cadenas de la forma bowwow, bowwow: wow, bowwowwowwouwow, ... Conseguir un AFN que acepte todas las cadenas de la forma ohmy, ohmyohmy, ohmyohmyohmy, ... Unir los dos AFN para que se acepte Ja unién de los dos lenguajes. Téngase en cuenta que los simbolos de un alfabeto no tienen por qué ser caracteres de longitud uno, 2.8.5, Sea My dado por la Figura 2.43 y Mp dado en la Figura 2.44. Obtener un AFN que acepte Z (Ws) L (Mz). Obtener un AFN que acepte L (M:) L (M1) Figura 2.43 P, Pr Ps Figura 2.44 2.8.6. Sean Mi =({qi. 42,93), (a, 0}, (a1), (ai}s Ady M2= (pis P2. Ps. pa), (0.1), {pi}. {Pi,p2}, 2), donde A; y Ag vienen dados en las tablas de la Fi- gura 2.45. Obtener un AFN que acepte L(M,) L (M2). Obtener un AFN que82 2.8.7. 2.8.8. 2.8.9. 2.8.10. 2811. 2.8.12. “TERIA DE AUTOMATAS Y LENGUAJES FORMALES acepte L(M;)L(M,)L(M,). Obtener finalmente, un AFN que acepte Lamy VL). A 0 1 pr | (pa) a | 9 [| pm [ial @ | % {as} | (as) Pa | tps} % Figura 2.45 Obtener un AFN para (ab)" a partir de los AFN que aceptan {a} y (b} Obtener un AFN para (aa U by" (bb Ua)" a partir de los AFN que aceptan {a) y {b}. Obtener un APN para ((aUb) (aud) U (ab) (AU) @UD)Y a partir de los AFN para {a} y {b} Si M=(0, Es, F,8) es un autémata finito determinista, entonces el comple- mento de L(M) [es decir, Z'—L(M)] es aceptado por el autémata M (Q.2.5,Q-F,8). :M’ es un AFD 0 un AFN? Obtener un AFD que acepte ab‘ ab. Obtener un autémata finito que acepte (a, b}’ - ab" ab. Demostrar que A; = Ug {Aj| qj © A (gi, 6), Obtener una expresién regular para el lenguaje aceptado por el autémata finite de la Figura 2.46. ae ee er Figura 2.46LENGUAJESREGULARES = 83 2.8.13. Obtener una expresién regular para cl AFD de la Figura 2.47. ab Figura 2.47 2.8.14. Obtener una expresi6n regular para los lenguajes aceptados por cada uno de los autématas de la Figura 2.48 Figura 2.4884 —_TEORIA DE AUTOMATAS Y LENGUAJES FORMALES % q é ab e) o>. HH Ps gD j % | ae > ag a Figura 2.48 (continuacién) 2.9 PROPIEDADES DE LOS LENGUAJES REGULARES Los resultados de Ia tiltima seccién establecen la conexién entre autémata finito y expresidn regular. Todo lo que es verdad para lenguajes regulares también es verdad para lenguajes aceplados por un autémata finito y viceversa. Asi, por ejemplo, la coleccién de lenguajes regulares es cerrada con respecto a la conca- tenacién, unidn y cerradura de estrella porque los lenguajes aceptados por un au- tOmata finito también lo son (Teorema 2.8.1). Es importante preguntarse si, dado un lenguaje L, Les regular? Desde lue- 20, si Les finito, es regular y se podré construir un automata finito o una expre- sin regular para ellos de forma sencilla. También, si L es especificado ya sea por medio de un autémata finito o por una expresiOn regular, la respuesta es ob- via. Por desgracia, hay relativamente pocos lenguajes que sean regulares y, en el caso de un lenguaje infinito, la busqueda exhaustiva de una expresin regular o un automata finito puede resultar intitil. En este caso, se necesita obtener algunas propiedades que compartan todos los lenguajes regulares infinitos y que no estén presentes en los lenguajes no regulares. Supongamos que un lenguaje es regular y que, por tanto, es aceptado por un AFD M = (Q, &, s, F, 8), donde Q contiene n estados. Si L (MM) es infinito, podre- mos encontrar cadenas cuya longitud sea mayor que n. Supongamos que Ww Gy +1 es una de las cadenas de longitud n+ 1 que pertenece a L (M). Si tuviéramos ar = 8 (5, a1) p= (gn, a2) y asi sucesivamente, obtendriamos los n +1 estados, 1, 92... qn +1. Puesto que @ contiene solo n estados, los g; no serdn todos distintos. En consecuencia, para algunos indices j y k, con 10. Es decir, se puede “bombear” cero o més veces la par- te central y seguir teniendo una cadena que sea aceptada por el autémata. For- malizaremos esto eel siguiente lema, conocido como lema de bombeo. Lema 2.9.1. Sea Z un lenguaje regulat infinito. Entonces hay una constante » de forma que, si w es un cadena de L cuya longitud es mayor o igual que 7, se tiene que w= uvx, siendo wv! x L para todo? 20, con |v| > 1y [uv] 1. Entonces se obtiene que n= |wx| 0. Véase 1a Figura 2.50. Obsérvese que hay un ntimero infinito de estados, por lo que 1a memoria en esta clase de autématas no esta limitada. Sa ee e SS -S : . TES eke i oe so Figura 2.50LENGUAJES REGULARES 87. Ademés de ser una herramienta que determina si un lenguaje es regular, el lema de bombeo proporciona los medios necesarios para determinar si un auto- mata finito acepta cualquier lenguaje no vacio y si el lenguaje aceptado es finito 0 infinito. Teorema 2.9.2. Sea M un autémata finito con k estados. 1. L(M)#@siy sélo si M acepta una cadena de longitud menor que k. 2. L(M) es infinito si y slo si M acepta una cadena de longitud n, donde kSn<2k. Demostracién. 1. Si M acepta una cadena de longitud menor que k. entonces L(M) #9. A la inversa, supongamos que L (M) #9. Entonces existiré algdn we L(M). Necesitamos probar que L (M) contiene una cadena de longitud me- nor que k. Si |w| <, quedara probado. Sin embargo, supongamos que | w| 2k. Gracias a lo expuesto con anterioridad a] Lema 2.9.1, sabemos que deberia haber un ciclo en el camino que se recorre para aceptar w y por tanto, se puede poner que w =uvx para algunas cadenas u, v y x, donde w es la parte anterior al ciclo, v es la parte del ciclo y x es posterior al ciclo. Por tanto, |v] 21 y se tiene que uy € LM) para todo 120. En particular, uxe L(M). Si |u| 1 y |uv| $k, con lo que |v| $k Ahora tenemos que |sy| >2k y que |v| <&, lo que produce que |wx| 2k. Como en la parte 1, si |ux| < 2k, quedaria probado. De lo contrario, aplicaremos repetidamente este proceso a wx hasta encontrar una cadena cuya longitud se encuentre entre ky 2k-1. 0 El Teorema 2.9.2 nos proporciona un procedimiento para decidir si L (M) es vacio y si L (Af) es finito o infinito. Dado que los alfabetos son colecciones fini- tas, podemos realizar dichos procedimientos en tiempo finito, con Io que pode-88 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES mos afirmar que los mismos nos facilitan algoritmos para resolver dichos pro- blemas. Sin embargo, dichos algoritmos no son particularmente eficientes, Para los AFD hay una forma mis répida de poderlo realizar, eliminando los estados que, para cualquier entrada, no sean alcanzables desde el estado inicial. L (IM) no serd vacio si queda alguin estado final. Entonces, si se eliminan todos los estados no finales desde los cuales no pueda ser alcanzado ningén estado no final y com- probamos los ciclos, se puede determinar si (M) es finito o infinito. Los problemas del final del capitulo tratan otro problema de decisién, la equivalencia de lenguajes regulares. Una vez que hemos visto algunos ejemplos de lenguajes no regulares, hay otras técnicas para comprobar la regularidad adems de usar el lema de bombeo. Supongamos que L y K son lenguajes sobre E. De las leyes de De Morgan para conjuntos se obtiene que OSU = HSE = CAR Por tanto, se tiene que LOK= 2" (2°-(LAK) =P -(@'-Due’-k) Emtonces, por el Ejercicio 2.8.10, sabemos que, si L y K son aceptados por un AED, entonces 5° = Ly E’ — K también lo son, Por tanto, si Ly K son regula- res; entonces E° = Ly E’ — K también lo son. También sabemos que la unién de Jenguajes regulares es regular, asi que (2° — L) u (2° — K) es regular y su com- plemento ¥* = (2° - L) U (2 ~ K)) también es regular. Por tanto, LO K es re- gular cuando Ly K lo son. La interseccién es una técnica muy usada para determinar la regularidad de los lenguajes. Por ejemplo, sea E = {0, 1, 2,3, 4, 5, 6, 7, 8, 9}. Entonces, el len- guaje de los enteros no negativos viene dado por L}=0U (1,2, ...,9} 2°. El lenguaje de todas las cadenas de digitos teyninadas en 0, 2. 4, 6, u 8 viene dado por L =" {0,2, 4, 6, 8}. Obsérvese que ambos son regulares. El lenguaje de todos los enteros no negativos divisibles por 2, vendra dado por L=Li 0 Lo y también sera regular Ejemplo 2.9.2 Sea ¥= {a,b}. Usaremos la interseccién para probar que el lenguaje L= {ww'|ive LZ) no es regular. Primero, ffjese que por el lema de bombeo L, = {a"b*a" | n, k 20) no es regular. Segundo, La = (a'b'a"|k, 2, m> 0} es re- gular (se denota mediante 1a expresi6n regular a’b'a"). Finalmente, obsérveseLENGUAJES REGULARES = 89 que Lo VL= Ly. Si L fuera regular, entonces 1; serfa regular. Por tanto, L no puede ser regular. Ejercicios de la Seccién 2.9 2.9.1. 2.9.2. 2.9.3. 2.9.4, Probar que (a?|p es primo} no es un lenguaje regular. Probar que {a"ba"ba”*"|n, m> 1} no es un lenguaje regular. Determinar si los siguientes lengnajes son regulares y decir 0 probar por qué si © por qué no, (@) {a@b"|iz} (b) {(aby|i2 1) © (a"|n2 1) @ [a’b"a"*™|n, m= 1) © [a"|n=0} ( (whrsow! para we {a,b)"} (g) fexw'|w, re (a, by} Usar el procedimiento de] Teorema 2.9.2 para decidir si L (M) es finito 0 infini- to segtin el autémata de Ja Figura 2.51 2.9.5. 2.9.6. Figura 2.51 Usar las afirmaciones posteriores al Teorema 2.9.2 para determinar si cl AFD de la Figura 2.52 acepta un lenguaje no vacfo. Si el lenguaje no es vacio, deter- minar sivel lenguaje aceptado es finito 0 infinito. Sea Z = {a,b}. (a) Construir los AFD que acepten a°b y ab’. (b) A partir de Jos AFD de la parte (a), construir los AFD que acepten 5° ~ a" y ab “ (c) A partir de los AFD de Ja parte (b), construir un AFD gue acepte la unin (2' —a'b) U2" ab"). (4) Usar el resultado de la parte (c) para construir un AFD que acepte el len- guaje a’b ab"2.10 90 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES a [> 4 b ‘Go—2_ a lb a t a, Bb oS. by __a__ se b Figura 2.52 2.9.7. La construccién del Bjercicio 2.9.6, aunque efectiva, no es particularmente efi- ciente. En la parte (c) se obtiene un AFN a partir de la unin y después se trais- forma en un AFD para la interseccidn de lenguajes regulares sobre cl mismo al- fabeto haciendo uso del producto cartesiano. Sean My =(Q), 2,5), Fi, 81) y M2 = (Qo, , 82, Fz, 8) dos APD. Definir M= (Oi Qs, E (514.52), Fi X Fa, 8)s donde (51, 52) denota los pares ordenados de estados. La funcién de transicién 8 se define para todos los pares ordenados (4), 2) € Qi x Q2 y para todo oe ¥, por medio de 5. ai, 4), 0) = Bi (gi 0), 8: (P79) (a) Construir los AFD correspondientes a ab y ab” sobre = {a, b} (b) Usar esta técnica para construir directamente un AFD que acepie abn ab’. 2.9.8. Usar el lema de bombeo para probar que no es regular el lenguaje / dado en el Bjemplo 2.9.2. 2.9.9. Probar que (ww| we {a, b}”) no es regular. APLICACIONES DE LAS EXPRESIONES REGULARES Y LOS AUTOMATAS FINITOS Los autématas finitos se usan frecuentemente en los problemas que implican el andlisis de cadenas de caracteres. Tales problemas incluyen problemas de buis- queda ¢ identificacién, tales como la buisqueda de la existencia de una cadena en un fichero 0 el reconocimiento de cadenas de entrada que satisfagan ciertos cri- terios. Un autémata finite es, él mismo, un modelo de un procedimiento para re- conocimiento de cadenas por medio de la expresién regular asociada. Por tanto, en la btisqueda de una cadena en un fichero, podemos aplicar el automata finiteLENGUAJESREGULARES = 9) de forma sistematica a las cadenas del fichero hasta que se acepta la cadena 0 se termina el fichero, Un problema comin en la programacién de computadoras es el de tener la seguridad de que los datos de entrada de un programa son correctos. Por ejem- plo, si se espera un entero sin signo como dato de entrada y el usuario confunde uno de los dfgitos con un cardcter no numérico, se puede dar todo tipo de resul- tados impropios, desde una terminacién anormal hasta el cdlculo de resultados incorrectos (basura dentro, basura fuera). La programacién cuidadosa pretende construir un programa a “prueba de balas”, incluyendo unas rutinas de entrada que analicen la informacién introducida por el usuario y, de alguna forma, pre- venir que se aplique informacion incorrecta al programa. Si pudiétamos cons- truir un automata finito que aceptara solamente las cadenas que representan in- formacién correcta, entonces tendrfamos un modelo para dicha rutinc de entrada. Puesto que los autématas finitos se corresponden con las expresiones regulares, el problema se reduce a especificar la informacién correcta por medio de expre- siones regulares. En el caso de que la entrada esté formada por enteros sin signo, el lenguaje vendré dado por I= {1,2,3,4, 5,6, 7, 8,9} - (0, 1, 2,3, 4,5, 6, 7, 8, 9)". Es fa- cil construir un autémata finito que acepte / (véase Figura 2.53). Se pe 0, te Cualquier otro Cualquier otro caracler cardcter 0 Cualquier caracler Figura 2.53 También es sencillo traducir ej aut6mata finito a un cédigo en un lenguaje de programacién: sélo se necesita seguir el rastro de la posicin actual en Ia ca- dena y del estado actual. A la vez que se recorre la cadena, se cambia de estado segtin corresponda y, cuando se acaba la cadena, se comprueba a qué estado se ha llegado y, segtin eso, se acepta o se rechazaa cadena. Las expresiones regulares se pueden usar para especificar las unidades léxi- cas presentes en un lenguaje de programacién, Los autématas finitos asociados92 TeORIA DE AUTOMATAS Y LENGUAJES FORMALES se usan para reconocer dichas unidades (Ilamadas componentes léxicos). Dicho andlisis es una etapa importante en Ja compilacién de programas de ordenador. Por ejemplo, sea ¥ el conjunto de caracteres de algtin lenguaje de programacién, es decir, todos los caracteres que debe reconocer un compilador para dicho len- guaje. Sea L < ¥ el subconjunto de todas las letras y Dc ¥ el subconjunto de to- dos los digitos. Supongamos que un comentario en dicho lenguaje comienza por Jos caracteres “--” y termina con el simbolo de final de linea, el cual se denota mediante eol. Entonces una expresi6n regular para el componente Iéxico conoci- do como comentario es - -(Z-eol)*eol. Los identificadores del lenguaje pueden estar compuestos por letras, digitos y subrayados, deben empezar con una letra y deben terminar con una letra o un digito. Una expresion regular para estos componentes 1éxicos vendrd dada por LILUDU_Y (LUD). Se puede construir un automata fin'to que reconozea este lenguaje regular y, por tanto, escribir un cédigo apropiado para el reconoci- miento de identificadores. En la etapa de andlisis léxico de un compilador, hay un aspecto que’no estaba presente en el ejemplo de los enteros como entrada y es el hecho de que al tratar de reconocer un lexema se tienen distintas posibilidades. Por ejemplo, si la cadena actual fracas como comentario, nos gustarfa compro- bar si puede ser un identificador y, si fracasa también aqui, si puede ser cual- quier otro componente léxico. Generalmente, en un compilador: el autémata finito que reconoce todos los componentes léxicos est4 ordenado de alguna manera y, sistemdticamente, se aplica a la cadena hasta que se tiene éxito o falla en todo, Si falla, Ja cadena no puede formar parte de un programa cons. truido correctamente. Ejercicios de la Seccidn 2.10 2.10.1. Escriba un cédigo, en su lenguaje de programacién favorito, para implementar el autémata finito de Ia Figura 2.53. 2.10.2. Escriba un programa, en su lenguaje de programaeién favorito, para implemen- tar el autémata finito que acepta enteras con signo y sin signo. 2.10.3, Escriba una ratina, en su lenguaje de programacién favorito, que identifique nti- meros reales con y sin signo (para simplificar, suponemos que los nimeros re- ales no vienen representados en notacién exponencial, es decir, 1.23¢-9) 2.10.4. Escriba una rutina, en su lenguaje de programacién favorito, que identifique una cadena como un entero con y sin signo, un numero real con y sin signo, un comentario © un identificador (mire el ejemplo que precede a los ejer- cicios),LENGUAJES REGULARES = 93 PROBLEMAS. 2.1. El algoritmo de Moore. Sabemos que si Ly y Zz son lenguajes regulares sobre E, entonces E'—L4 y ¥"-Z son lenguajes regulares y por consiguiente L, 0 (2° = Lp) y Lr 2 (& = L)) también Io son, Sea L= (Lin ©" = 12) VU (an (2 ~ La) y obsérvese que, puesto que L es regular, es aceptado por una autémata M. Por el Teorema 2.9.2, podemos de- terminar si M acepta alguna cadena (es decir, si L = @ 0 no). Pero obsérvese que, si M acepta una cadena, entonces ZL contiene una cadena y, por tanto, 1,0 (2 = Ly) y La (& — Ly) no pueden ser ambos vacfos Supongamos que tenemos L) > (2"— Lz) 4B. Entonces existiré alguna ca- dena que esté en Li y no en La, y por tanto Ly # £2. Igualmente, si £2 0 (S-— = L1) #9, también legaremos a que L; # Lo. Por otro lado, si M no acepta nin- guna cadena, entonces L= y, por tanto, Ly 9 (8" = La) y Ly 0 (& —L)) serin ambos vacios. Es decir, no hay ninguna cadena en Z que no to esté en La, y vi- ceversa, y ast Li = La Hemos probado que hay un algoritmo para determinar si dos lenguajes re- gulares son el mismo, Sin embargo, nuestro algoritmo no es particularmente efi- ciente, ya que primero tenemos que construir el lenguaje L, obtener un AFD para él y después determinar si dicho AFD acepta alguna cadena. A continua- cin veremos un algoritma mucho menos complejo que el de Moore. Supongamos que M y M’ son dos AFD sobre el alfabeto ©. Para que la pre- sentacién sea lo mds sencilla posible, supondremos que = (a, b). Primero re- nombraremos Jos estados de My M’ para que todos los estados sean distintos. Supongamos que qi y gx’ son los estados iniciales de M y M’, respectivamente. Construiremos una tabla de comparacién que (en este caso) consta de tres columnas. Las entradas de cada columna son pares de estados (q, ¢’), uno de M y otro de M’, La entrada de la columna 1 indica el par de estados que sera trata- do en fa fila correspondiente, La entrada de Ja columna 2 es el par de estados que sigue a los de la columna I mediante una transicién con a. Del mismo modo, la entrada de la columna 3 es el estado siguiente por medio de una tra cién con b. Por tanto, si (q, q’) estén en una entrada de Ia columna 1 y (p, p') y (77°) son las entradas de Ja columna 2 y la columna 3 para la misma fila, entonces 5g. a) =p, 8 Wa) =p',8 (qb) =ry 8 (g', b) = son las transiciones de M y M’. Construiremos la tabla fila por fila empezando por (g), qi’) como entrada de Ja columna 1 y primera fila. En general, si (q, 4’) esté en ta columna | de cual- quier fila, rellenaremos la columna 2 y la columna 3 de forma apropiada. $ cualquiera de las entradas de la columna 1 y la columna 2 no estan ya en la co- Jumna 1 se afiadiran antes de seguir con la fila siguiente. Siempre que en la tabla (y para cualquier columna) encontremos un par (p, pen el cual p es un estado final de M, pero p’ no es un estado final de M1’ (0 viceversa), se parard el proceso ya que habremos llegado a la conclusién de que94 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES My M no son equivatentes. De otro modo, el proceso parard cuando no quede ninguna fila por completar. En este caso, M y MT" son equivalentes Per ejemplo, los AFD de la Figura 2.54 no son equivalentes porque su ta- bla es (parcialmente) como sigue: transiciéna ~—_transicién b Columnal —_columna2 —_columna3 Gua) (a, a) (ax 47) (q, 42") (qs, qa") (gi. 43) a a ong te Oe ut 5 % % a ——ec—_42___, % % a 6 ja b > +O % B % Aunque la tabla no se ha completado, el proceso termina Porque q, es un estado final del primer AFD, pero q;’ 5’ NO es un estado final del segundo, Por tan- 10, dichos AFD no son equivalentes Elalgoritmo de Moore se puede ampliar apropiadamente para cualquier al- fabeto E. Simplemente se incluira una columna para cada sfmbolo de E. 1. (Son equivalentes los AFD de la Figura 2.55 de la pagina 95? 2. @Son equivalentes los AFD de la Figura 2.56 de la pagina 95? 2.2. Considérese el AFD dado en Ja Fi es redundant.LENGUAJESREGULARES == 95 Conviene obtener un AFD para un lenguaje que sea el AFD minimo, en el sentido de que tenga un némero minimo de estados. Bsencialmente, lo que hare- mos ser eliminar todos los estados redundantes (segiin vimos anteriormente). Sea M~= (0, 3,5, F, 8) un AFD. Los estados p y q son distinguibles si para alguna cadena x de *, se tiene que 5 (p, x) € Fy 8(q.4) € F, 0 viceversa. Si todos los pares de estados son distinguibles, M no tiene estados redundantes y. por tanto, ya es un AFD minimo. Por oire lado, si Mf contiene uno 0 mas con- juntos de estados no distinguibles, se puede eliminar fa redundancia reempla- zando cada conjunto por un tinico estado.96 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES: Figura 2.57 Los pares de estados equivalentes (no distinguibles) se pueden encontrar por medio de una tabla en la cual cada fila y columna comresponden a un estado, Inicialmente, se marcan como distinguibles las entradas correspondientes a un estado final y a un estado no final. Entonces, para cada par de estados que no se conocen como distinguibles, se considera p, = 5 (p, a) ¥ q, = 8 (g,a) para todo a ¥. Si py y qq Son distinguibles por medio de Ia cadena x, entonces p y g son distinguibles por medio de la cadena ay. Asi, si la celda correspondiente a p, yg. estd marcada para alguna a, mar- caremos Ia celda para p y q. Si pata todo a € ¥, no esté mareada la celda corres pondiente a p, ¥ q,, introduciremos (p, g) en una lista asociada con (py, dx) para todo a. Si posteriormente se obtiene que p, y g, Son distinguibles, se marearén también p y g. Puesto que las celdas simétricas con respecto a la diagonal co- mesponden a los mismos pares de estados, necesitamos menos de la mitad de la tabla. Es mais, las celdas correspondientes a la diagonal son no distinguibles. La tabla siguiente comesponde al AFD del ejemplo precedente. nLENGUAJES REGULARES «= 7 Las colecciones de estados no distinguibles son (41, 95), (42. 9s); (gs 96} (4s) y {q7}. En el AFD reducido que obtenemos reemplazaremos cada colec- cidn de estados no distinguibles por un tinico estado. Por tanto, el AFD reducido para nuestro ejemplo es el de la Figura 2.58. a (ay 4) (ay dah ge ee ro (ast b a b 5 a a + {a} {sy Qh a Figura 2.58 L. Obtener los AFD minimos que correspondan a los AFD de la Figura 2.59. 2.3. Sea Z= {(a,b,¢)| a, bce (0, 1}} el alfabeto formado por todas las 3-tuplas de 0 ceros y unos, Trataremos cada 3-tupla como un vector columna, es decir, | |. Entonces, una suma binaria tal como 0 0011 + 0101 1000 0) (0) (1) (1 se puede interpretar como la cadena oj) | }0] | 4] sobre =. WAAAY 1, Probar que el lenguaje Ly sobre E, compuesto por todas las cadenas que representan sumas binarias “correctas”, es un lenguaje regular. 2. Usar el lema de bombeo (Lema 2.9.1) para probar que el lenguaje L2 for- mado por todas las cadenas que representan productos binarios correctos no es un lenguaje regular. E Hay muchas formas de tatar la adicién. Cuando realizamos una suma, generalmente sumamos los pares de dfgitos correspondientes y un valor previo para obtener un digito restltante y un resto, Consideremos la suma binaria donde el valor de entrada es un 0 6 tin 1. Si el valor previo es un Q, entonces se obtiene un resto sélo si el par de digitos son dos unos. Si98 — TEORIA DE AUTOMATAS Y LENGUAJES FORMALES, Figura 2.59 el valor previo es un 1, entonces la tinica forma de que un resto no sea un | es que el par de dfgitos a sumar sean dos céros. ‘Vamos a usar Ja notaci6n (x, y)/z para denotar el par de digitos (x, y) que representan a los sumandos y z para indicar el digito que resulta al su- mar x+y + (valor existente), Entonces, la suma binaria puede ser repre- sentada mediante el diagrama de la Figura 2.60. Obsérvese que este diagra- ma es muy semejante a un diagrama de transicién de un autémata finito. De hecho, tendremos dos estados distintos que corresponden a los valores previos, y unas transiciones entre los estados que dependen de los digi sumar (entrada), asf como de los valores actuales (estado), y de un estadoLENGUAJES REGULARES 99 inicial (el valor es inicialmente 0). La tnica diferencia entre este diagrama y el diagrama de transicién de un automata finito es que en éste la salida se representa como el resultado de una suma. (0, 1)/1 (1, 0)/0 (0, 0)/0 (0, 1/0 (1, 0)/1 (1/1 D 1.1/0 Q estado = 0 (ON estado = 0 Figura 2.60 Un transductor de estados finito determinista (autémata que produce una salida) es una 6-tupla M = (Q, %, Ps, 8, 1), donde @ es un conjunto fi- nito de estados que contiene un estado inicial distinguible s; Ey T son alfa- betos, siendo Z el alfabeto de entrada y T el alfabeto de salida: 6 es la fun- cidn de transicién, donde 8: Q x E> Q: y tes la funcidn de salida, donde GOXEOT. Obsérvese que, al igual que en los aut6matas finitos vistos en este ca- pitulo, 8 depende de] estado actual y del simbolo de entrada actual. ¢ tam- bién depende del estado y Ia entrada actual y proporciona una salica. Es importante notar que no hay ningsin conjunto de estados finales. Los transductores no se ocupan de aceptar la entrada, sino de transformarla en una salida, En este sentido, los transductores transforman cadenas de entrada en cadenas de salida. Bs decir. computan una fiurcién de 5” en P* 3. Considérese una miquina expendedora de latas de soda, Por sencillez, su- ponemos que hay un bot6n de seleccién y que la soda cuesta 0.30 délares. También suponemos que, una vez que s¢ han introducido 0.30 délares en la méquina, cualquier moneda que se iniroduzca posteriormente sera de- vuelta. Crear un transductor de estados finito determinista que modele el comportamiento de la méquina expendedora 4, {Cémo se deberfa construir el transductor de estados finito determinista para que acepte un lenguaje? 2.4. Caracterizacién de los lenguajes regulares, 7. Ca’. En la Seccién 2.9 y en sus ejercicios, vimos lenguajes no regulares de Ja forma {a’|i satisface alguna condicién} ‘e Por otro lado, muchos lenguajes que son de esta forma son regulares, por ejemplo, los lenguajes L; = {a"*'|i20} pata k=0, 1. ... Es razonable pregun- tarse bajo qué condiciones es regular un lenguaje de estas caracteristicas. En este problema obiendremos un resultado que responderd a dicha pregunta.100 TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES Una progresién aritmética es una secuencia de mimeros naturales igus mente espaciados. Por ejemplo, (4,7, 10,...} es una progresién aritmética. Toda progresién aritmética tiene dos parimetros que la determinan completa mente: el punto de partida p y la diferencia comin g. Se puede definir una pro- gresidn aritmética en términos de esos dos pardmetros: A= (rl p-+ng para algin ne N) Obsérvese que, seguin esta definicién, un conjunto que contenga un Gnico niimero natural es una progresidn aritmética con q=0. Asf, por ejemplo, {3) es Ja progresién aritmética Azo, 1. Sea Ap, una progresién aritmética, Probar que el lenguaje L dado a conti- nuacién es regular. L= (allie Ang} Un conjunto X de mimeros naturales es finulmente periddico si X es finito 0 si hay dos niimeros naturales m20 y 121 para los cuales, si x2 ing, entonces x€ X si y solo si x+re X. Por ejemplo, el conjunto {2, 3,7, 14, 103, 109, 115, 121, ...} es finalmente periédico con no = 103 y t= 6, Fijese en que cualquier progresién aritmética A, es finalmente perid- dica ya que, si x> p, entonces x € Apy Siy sGlo si =p-+ng para algin n, si y solo six+g=p+(n+l)g€ Ay, Es decir, se puede tomar no=p y t=. Probar que Ia unién de dos progresiones aritméti mente petiddico. 1s eS UN conjunto final- Probar que Ja unin de un conjunto X finalmente perisdico con una progre- sion aritmética Ap, es un conjunto finalmente periddico. Obsérvese que los Ejercicios 2 y 3 implican gue la unién gresiones aritméticas es un conjunto finalmente periédico, inila de pro- 4. Probar que todo conjunto finalmente periddico es la unién finita de progre- siones aritméticas. Indicaciones: Obviamemte, si X es finito queda probado. Supongamos que X es infinito. El conjunto (x].x 1} GEs finalmente periddico? 8. Aplicar los Bjercicios 5 y 6 para probar que los siguientes lenguajes no son regulares: @ (a"|n>1} (b) {@’|p es un primo} © {a"|n21) 2.5. Homomorfismos y sustitucién. El Teorema 2.8.1 demuestra algunas propieda- des de cierre de lenguajes regulares: el conjunto de lenguajes regulates es cerra- do respecto a la unién, concatenacién y cerradura de estrella. En este problema estudiaremos otras dos propiedades de esta clase de lenguajes. Sean los alfabetos Z) y Z2, Una sustitucion asocia cada simbolo a € 21 con un lenguaje $C 33. Formalmente, definiremos una sustitucién como una fun: cign f: Ey > 2* tal que f(a) = Sj, donde aj ¥; y 8; E3. Extender la sustitu- cin a cadenas y lenguajes sobre E) de forma que fe)=e Lowa) = Fv) f(a) donde we Zjyae Ey. Por ejemplo, sea Zi = {a,b} y X2={0, 1}. Se definen f(a)= {O11} y f(b) = {1001, 01101}. Entonces F (aba) = {011}* (1001, 01101} (011)” Uren) =U fre) =U (011)’ (1001, 011017! i= im i=0 flab" = (011)" LJ {1001, ob1013' = (011}" (1001, 01101)* 0 1, Sean los alfabetos E, y E2 y f una sustitucién, donde, para todo a € Zi, Ff (@) = Re & Ses un lenguaje regular, Sean a y b elementos de Z). (a) Probar que f(aU b) =f) Uf (b). (b) Probar que f(a") = f(a)"102 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES (©) Sea RCE) un lenguaje regular. Probar que /(R) es un lenguaje regu- lar. Indicacién: Aplique induccién sobre el mimero de operadores en una expresién regular para R Supongamos que f es una sustitucién en Ia cual, para todo a € Ly, f(a) contiene sélo una cadena. Dicha sustitucién se Hama homomorfismo. Si Lo¥i, se dice que f(L) es la imagen homomorfica del lenguaje L. SiL © ¥3, se dice que f~' (L) es la imagen homomérfica inversa del len- guaje L. Por ejemplo, sea f: (a,b,c) (a,b}’ definida como f(a)=a, f(b)=ba y f(c)=a. Emonees, si Li=a"(bU0)", se obtiene que (bava)'. Si L2=(aba a)", entonces la imagen inversa es (aU 0) aU (@U 0)’. [Obsérvese que f(a) = f(c) =a por lo que f(a) = a.Uc.] En este caso, Lz es un lenguaje regular y f~' (La) también Jo es. Esto, como se ver en el Ejercicio 2, no es una coincidencia. 2. Probar que, si Les un lenguaje regular y f es un homomorfismo, entonces F(Z) es un lenguaje regular. La afirmacién anterior se puede generalizar. Sif es una sustitucidn, entonces f”! (L) es regular si L es regular. Uniendo los ejercicios 1 y 2, s tiene que la clase de lenguajes regulares es cerrada con respecto a la ima gen homomérfica y la imagen homomérfica inyersa. Puesto que los homomorfismos y sus inversas “preservan” la regulari- dad, se pueden usar para determinar si un lenguaje es regular 0 no. La idea es tomar un lenguaje que no se sabe si es regular y tratar de transformarlo por medio de homomorfismos en un lenguaje regular o no regular cono- cido. Por ejemplo, se sabe que el lenguaje {a"b"|n > 1) no es regular. Con- sidere el lenguaje L = {a"ba"|n > 1}. Aunque el lema de bombeo se puede aplicar para deducir que L no es regular, por medio de homomorfismos He~ garemos a la misma conclusién. Supongamos que L es regular. Sea Sf: {a,b,c} > {a,b} el homomorfismo definido previamente y considere- mos Ly =f7! (L)=f~ ({a°ba"|n 2 1}). Ya que f ! (@)=aUc, se obtiene que £1 ba) = faleakcba'ca'e'|i+j +k y rtstt+utl=n) Por tanto PO ladatebacde'|itjt+ktl=r+s+t+ut1) Entonces f(D odbe’ ={a'be""|\n2 1} Ya que a’bc* es, claramente, regular y ya que suponemos que L es re- gular y que f' (L) es regular, debemos obtener que {a"be"*'|n > 1} tam-LENGUAJES REGULARES == 103. bién es regular, Ahora sea g: {a, b,c} > {a, b}” el homomorfismo defini- do mediante g (a) = ay g (b) =g (c)=b. Entonces se tiene 8! WU) na’be’)=g (abe '[n21})= {a"b"|n 21) Puesto que g es un homomorfismo, tendremos que [a"b"|n2 1} es regular, lo que es una contradiccién. Por tanto, no puede ser que {a"ba"|n = 1} sea regular. Probar que {a'b’c'|i 2 j 2 1} no es regular. Probar que {a'bal| i#,e i,j 2 1) noes regular,3 Lenguajes independientes del contexto 3.1 GRAMATICAS REGULARES Las expresiones regulares y los autématas finitos nos proporcionan dos medios para especificar o definir lenguajes. Las expresiones regulares nos proporcionan una plantilla o patrén para las cadenas del lenguaje. Todas las cadenas se cori ponden con un patron en particular y dichas cadenas serdin las tinicas que forma- ran dicho lenguaje. Igualmente, un autémata finito especifica un lenguaje como el conjunto de todas las cadenas que lo hacen pasar del estado inicial a uno de sus estados de aceptacién. También se podrfa interpretar un aut6mata como un generador de cadenas del lenguaje, segtin se plantea a continuacién. Un simbolo se genera al recorrer el camino etiquetado con dicho simbolo y que parte del es- tado actual al siguiente. Se empieza con la cadena vacia y se obtiene una cadena del lenguaje cuando el recorrido Hega a un estado de aceptacién. Por ejemplo, se considera el autémata finito dado por el diagrama de tran- sicién de la Figura 3.1, Este autémata finito acepta el lenguaje regular a(a’ Ub") b. Imaginemos que se comienza en el estado inicial y se atraviesa el diagrama de alguna forma, Cuando un camino va de un estado a otro, la “salida” es el simbolo que etiqueta dicho camino. Por tanto sé podria obtener la cadena de salida aa*b pasando por los estados qi - g2 - 43 - 43 - 43 - gs. Se ve facilmente que las cadenas generadas de esta forma serén aceptadas por este automata fini- to. Es mas, cualquier cadena aceptada por este autémata puede ser generada por este método. a =106} TEORIA DE AUTOMATAS Y LENGUAJES FORMALES a * a oe a SES oyna © % % % e b G % b Figura 3.1 Obsérvese que todas las cadenas del lenguaje precedente estarén formadas por una a seguida de alguna “parte final”. Si hacemos que E represente la parte final, lo dicho se puede representar simbdlicamente mediante S —> af, La flecha —> se puede interpretar como “puede set” 0 “se compone de”. La parte final de una cadena estar formada por una de las dos listas de aes 0 bes. Por tanto, para indicar las miiltiples posibilidades que hay para E podemos escribir E> A y E +B. Las dos listas de aes y bes se pueden expresar como A -> aA junto con A para indicar que una cadena de aes va seguida de una b 0 como B > bB junto con Bb, para indicar que una cadena de bes va seguida de otra b. En resumen, tendremos las siguientes expresiones S—aE EA E~> BR. Ab Aaa Bob B->bB Estas expresiones pueden ser consideradas como reglas de sustinicion para a generacién de cadenas. El simbolo que se encuentra a la izquierda de la flecha se puede sustituir por la cadena de la derecha. Por ejemplo, podemos generar aab empezando por S, sustituyéndola por al, sustituyendo la E por aA y finalmente sustituyendo la A por b. Tendremos una secuencia de cadenas comenzando por $ y tetminahdo con awh. En cada paso, las letras maytisculas (S, E y A) representan la parte de la cadena final quetoda- via no se ha generado. Bajo estas circunstancias tiene sentido interpretar la fle- cha en las expresiones precedentes como “es sustituide por”LENGUAJES INDEPENDIENTES DELCONTEXTO —- 107 Finalmente, introduciremos el simbolo | que sera interpretado como “o”, Si se usa este simbolo, las dos reglas E> A y E> B, se pueden unir en E> A] B. La coleccién precedente de reglas para generar cadenas puede volverse a escri- bir como sigue: 1. Soak 2. EA|B 3. A-vaA|B 4. B->bB|b La cadena a°b se puede generar a partir de S aplicando primero la regla | para obtener a£. Entonces, aplicando la reglz 2 se obtiene aA y aplicando la re- gla 3 se obtiene aaA y aaaA: finalmente, se puede aplicar la segunda parte de la regla 3 para obtener aaab. Podtemos escribir una descripcién del proceso de ge- neracién como S=3 aE => aA = aaA => aaaA => aaab donde la doble flecha => se interpreta como “deriva”, “produce” 0 “genera”. Usaremos la notacion E > w para indicar que la cadena w se deriva a partir de S en 0.0 més etapas. Obsérvese que en este modelo hemos introducido una coleccién de nuevos simbolos para representar las porciones de cadena que no han sido generadas Cuando las cadenas han sido completamente generadas, estaran formadas en su totalidad por simbolos del alfabeto Z, pero antes de llegar a esto se obtendran ca- denas formadas por simbolos del alfabeto y por nuevos simbolos. Los nuevos sfmbolos se llaman no terminales, para indicar que deben ser sustituidos por simbolos del alfabeto antes de que la ‘cadena haya sido totalmente generada. Por otro lado, los simbolos del alfabeto ¥ se llaman rerminales, para indicar que no ¢s posible que sean sustituidos. Obsérvese, también, que el simbolo usado para representar a una cadena que no ha comenzado a generarse, debe ser necesaria- mente un no terminal. Finalmente, observemos que hemos generado las cadenas del lenguaje de izquierda a derecha —en las cadenas de las etapas intermedias por las que se pasa al aplicar las reglas, los no terminales deben aparecer sola- mente en el extremo derecho. Esto refleja la forma en la que un autémata finito reconoceria una cadena del lenguaje. Daremos la siguiente definicién: Definicién 3.1.1. Una gramdtica regular G es una 4-tupla G= (2. NS, P), donde ¥ es un alfabeto, N es una coleccién de simbolos no terminales, S es un no terminal llamado simbolo inicial, y P es una coleccion de reglas de sustitucidn, llamadas108 — TEORIA DE AUTOMATAS Y LENGUAJES FORMALES producciones, y que son de la forma A >, donde A € Ny w es una cadena so- bre © ON que satisface lo siguiente: 1. weontiene un no terminal como maximo. 2. Si w contiene un no terminal, entonces es el simbolo que esta en el ex- tremo derecho de w. El lenguaje generado por la gramitica regular G se denota por L (G). Por ejemplo, considérese la gramética regular G = (&, N, S, P), donde D= {a,b} S,A} P:S—>bA A aaAlble Obsérvese que L (G) contendra todas las cadenas de la forma ba2"b y ba?" Es decir, L (G) = b (@°)" (6 U8). Se puede demostrar, por induccién sobre m, que todas las cadenas de la forma ba?"b o ba?" estén en L(G) y, por induccién sobre la longitud de una derivacién, se demuestra que L(G) est& contenido en b(°)' (b UB) (La etaba base es para una derivacién de longitud 2). De Ia definicién se deduce que el lado derecho de una produccién es una cadena de ©" (Ne), Obsérvese que € puede ser el lado derecho de una pro- duccién. En el ejemplo precedente, la produccién A — € acaba con la generacién de una cadena (al igual que la produccién A b) ya que se “borra” el no ter- minal A. Dado que las producciones emparejan no terminales de N con cadenas de =" (Ve), conyiene representarlas como pares ordenados de Nx” (VUe) Por tanto, el par (x, y) de Nx E* (VU) representa a la produccién x > y. Las producciones de P del ejemplo anterior se podrian representar mediante P={(S, bA), (A, aaA), (A, b), (A, 6} Si se llega al acuerdo de escribir los no terminales con letras maytiscules y os terminales con letras mintsculas y ademés se conviene que $ se use como simbolo inicial, entonces una gramdtica regular puede ser completamente espe- cificada por medio de sus producciones. Por ejemplo, $ —> aS|b especifica com- pletamente la gramatica regular que genera el lenguaje a°b.LENGUAJES INDEPENDIENTES DEL conTexTO =: 109 Ejercicios de la Secci6n 3.1 3.1. 3.1.2, 3.1.3. 3.14. 3.1.5. Usar las reglas de Ja Figura 3.1 para derivar ab, ab’, aa*b. (Es posible derivar abab? Supongamos que tenemos las reglas $ > aS|bT y T— aa. Dar una derivacién para abaa, aabaa y aaabaa. Probar como se deriva a‘ba® para k > 1. Es posible derivar las cadenas baa, b 0 aa? Obtener una gramatica regular para los siguientes lenguajes: (@) a’bua (b) @bub'a © @bub ay La gramética regular dada por S— bAlaBle A abaS. B= babs genera un lenguaje regular. Obtener una expresién regular para este Jenguaje. En nuestra definicion de gramiticas regulares se dijo que si en el lado derecho de una produccién hay un no terminal, éste debe estar situado en el extremo de- recho. Esto corresponde a la generacién de cadenas de izquierda a derecha. Por esta razén, una gramética regular también puede Hamarse gramdtica regular por la derecha. Una gramdtica regular por la izquierda es aquella cuyas cade- nas son generadas por la derecha, es decir, las produceiones son pares de Nx(NOX)E’ (a) Obtener una gramiitica regular por la izquierda para cl lenguaje {a'baa|n > 0}. (b) Obtener las graméticas regulares por la derecha y por la izquierda para (we (ab, c}"| w termina en b y toda c va seguida por una a} (©. Para toda gramitica G = (2, N, S, P) que sea regular (por la izquierda o por la derecha), se puede definir Ja inversa de G como G’ = (5, N.S, P’). donde P= (Ax)IAxde P) : Por tanto, si A —> aB es una produccisn de G, entonces A ~> Ba es una pro- duccién de G! ‘Supongamos que G es una gramatica regular por la derecha110. —TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES i. Probar que Ges una gramatica regular por la izquierda. fi, Probar que w € L(G) si y s6lo si w/< L(G") por induccién sobre el miimero de producciones usadas para obtener w. Se puede deducir de la parte (c) que la clase de los Jenguajes genera- dos por gramfticas regulares por la izquierda es la misma que la clase de los lenguajes generados por graméticas regulares por la derecha. Por eso habitualmente, el término gramdtica regular se aplica para referitse a cual- quier gramitica ya sea regular por la izquierda o regular por la detecha. 3.2 GRAMATICAS REGULARES Y LENGUAJES REGULARES Supongamos que L es un lenguaje regular. Se puede obtener una gramética regu- lar que genere L por medio de un AFD M = (0, , s, F, 8) para el cual L = L (M) Definimos G = (N, 5, S, P) por N=0 E=E . Sas P= ((q,ap)18 (4.4) p} UA(@elg¢ F) Es decir, q — ap siempre que 8 (, a) =p y q 3 € sig es un estado de acep- tacién del AFD. Por ejemplo, el AFD dado en la Figura 3.2 acepta el lenguaje a’b. La grax mitica regular correspondiente tiene las producciones q > aqs| bar p> ags|basle 43 > ag3|bq3 En esta gramética los g; son no terminales (una ruptura con la notacién usual, la cual puede ser restablecida s6lo con renombrar los q; y 41 como simbo- lo inicial). Obsérvese que w € L (M) para w = 61 0 ... Gy significa que 8 (5,01 62... On) =p a Ce : 4, % Vao % Figura 3.2LENGUAJES INDEPENDIENTES DEL CONTexto «= 111. para algtin p € F. Si escribimos q+ 1 = 8 (qi, 5;) con g; = s, entonces se obtiene in) = 8 (Gi, 01 G2 -.- On) = 5 (q2, 02... Gn) = 8 (43,03... On) 5(s, 01 52 = 8 (da, Gn) =peF Ahora, puesto que g; +1 = 5 (gq, 0;), se obtiene que qj > 6 q+ | pertenece a Gy, por tanto, (ya que s = 41) S= N= 8192 3010043 6102... On 6192... Gn Asi que we L(M) impliea que w es generada por G; es decir, LUM SLEO). A la inversa, si w es generada por G, mediante 1a derivacién siguiente > 9142 = 9) 0293 30) 02... G,p 30) G2... Gy entonces en M tendremos 8 (5, 6) G2 ... Gp) = 8 (Y1, 81 OD... On) = 8 (qx, 02... Gn) =3(g3, 03... Gn) = 8 (mn On) =peF (ya que s=q1). Asi, que w € L(G) implica que w € L (MM), con lo que se tiene que L (G) GL (M). Entonces se deduce que L (G) = L (M).112 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES También es posible partir de una gramitica regular G y construir un AFN M de forma que L(G) = L (M). Sea G =(N, 5, S, P) una gramética regular; se defi- ne M=(Q, 5,5, FA) mediante Q=NUtf), donde fes un simbolo nuevo sa F={f) y A se construye como se indica a continuacién, a partir de las producciones de P: 1 SiA 6)... 6, Bes una produccién de P con A y B como no termina- les, entonces se afiadirér a Q los nuevos estados qi, 42, ..-, Gn 1 ¥ las transformaciones siguientes NA, 61.) =A (G1, 02... Gy =A (Gn- 15 On) Si A 6} ... 6 es una produccién de P, entonces se afiadirén a Q los nuevos estados 91, 92, .... @u—1 ya A, las transiciones siguientes ACA, 61... On) =A (Gi, G2... = =A (Gn- 1 OES La construccién de A se puede concebir a partir de cémo estén etiquetadas Jas aristas de] diagrama de transicién correspondiente a M y entonces se afadi- ran los estados necesarios para cada uno de los simbolos de la cadena. Por tanto, si A+ 61... 0, B, primero podrfamos etiquetar las aristas entre A y B con 1 ... On y después afiadir m— 1 estados nuevos, en la arista resultante: 3 o Om —— >eeee— "54 A B Por ejemplo, la eramatica regular S—aBlbAle A> abaS B~ babs daria como resultado el AFN cuyo diagrama de“transicién se muestra en la Fi- gura 3.3. : Si G es una gramitica regular y w € L(G) con w=) ... Gy, entonces para los no terminales Ay; Aa, ... Ay 1, 8€ tiene la derivaciénLENGUAJES INDEPENDIENTES DELCONTEXTO. §=—-.113, S91 Ay => 2. $9 G1. On 1An-1 9 G1... Gn y entonces en el AFN resultante de esta construccién se tendrd A(S, 51... On) =A (Al, G2 «-. Gn) A (An 1, On) =f Por lo tanto, we L(M). A la inversa, si A(s, 01... 6,)=f, entonces $=5 61... On, con lo que w € L(G). Luego L(G) =L(M). Aunque hemos demostrado las técnicas de construccién més usuales, en re- alidad hemos demostrado mucho més: Figura 3.3 ‘Teorema 3.2.1. Les regular si y sdlo si es generado por una gramitica regular Por tanto, tenemos tres métodos generales de especificacién de lenguajes: las expresiones regulares, los autématas finitos y las gramaticas regulares. Ejercicios de la Seccién 3.2. 3.2L. Construir una gramética regular para el lenguaje regular aceptado por el auté- mata finito de la Figura 3.4. a Construir un AFN para la gramética regular S > aS|bBb Boct Cas