Está en la página 1de 299
0 Preliminares matematicos 0.1 LOGICA ELEMENTAL Para el estudio de la teorfa de la computaci6n se necesitan tres herramientas ma- teméticas basicas. Una de ellas es la notacién tedrica establecida, otra el dominio de los conceptos de funciones y relaciones, y la tercera son unos buenos conoci- mientos de induccién matemética. La capacidad para usar la notacién tedrica establecida depende, fundamentalmente, del conocimiento de las definiciones basicas de simbolos y sus significados. Conocer las otras dos herramientas de- pende de la capacidad para entender razonamientos I6gicos. Por tanto, comenza- remos con una presentacién de las ideas fundamentales de la Igica para pasar a establecer los mecanismos matemiticos requeridos. En l6gica, una proposicién o sentencia es una frase de la cual se puede de- terminar si es verdadera o falsa. Las frases “2+ 1 es 5”, “3 > V8" y “17 es un ntimero primo” son proposiciones, mientras que “ven a nuestra fiesta”, “{qué hora es?” y “esta proposici6n es falsa”” no lo son. Si P y Q son proposiciones, se dice que P es equivalente a Q si para todos los casos tienen el mismo valor de verdad. Por eso las frases “3 < 5” y “7 es irracional” son equivalentes, como lo son las frases “4 es un entero” y “4 <3”, puesto que sus valores de verdad son los mismos. Si P es una proposici6n, su negacién se denota por > P. Si P es verdadera, = Pes falsa, y si P es falsa, 7 P es verdadera. + P se lee “no P”. Por ejemplo, si Pes la proposici6n “3 < 5", + P es “3 25”. Dado que el valor de verdad de > P 2 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES depende del valor de verdad de P, podemos usar una tabla, Hamada tabla de ver- dad, para indicar la dependencia: La tabla de verdad presenta los valores de verdad de — P correspondientes a los valores de verdad de P. La conjuncién de las proposiciones P y Q se denota por PQ y se lee “Py Q”. La proposicién compuesta P A Q es verdadera s6lo cuando P y Q sean verdaderas simulténeamente. Por eso podemos obtener Ja tabla de verdad si- guiente: PQ |PaQ Vv Vv ¥ Vv oF/ #F F oV|F F FF Es importante hacer notar que para una proposicién compuesta la tabla de verdad debe considerar todas las posibles combinaciones de los valores de ver- dad correspondientes a los componentes de la misma. Considérense las conjunciones siguientes 1. 3 Q se llama proposici6n condicional y tiene la siguiente tabla de verdad P @ 3a vovio ov. vo Fi Pe F Vv ¥ ¥ F Vv La condicional se lee “si P entonces Q”. Para entender los valores de verdad de P > Q, considérese la proposicién “Si el sol brilla, entonces Carlos juega al béisbol”. Para determinar cuando es verdadera esta proposicién, nos pregunta- mos si Ja persona que la ha hecho est diciendo la verdad. Tenemos cuatro casos que corresponden a las cuatro Iineas de la tabla de verdad precedente. En el primer caso (el sol brilla y Carlos juega al béisbol), se ha dicho la ver- dad. En el segundo caso (el sol brilla y Carlos no juega al béisbol), no se ha di- cho la verdad. En los dos tiltimos casos (el sol no brilla y Carlos juega al béis- bol; el sol no brilla y Carlos no juega al béisbol), no deberfamos decir que la persona que hizo la proposicin es un mentiroso puesto que el sol no brilla y él, 0 ella, s6lo dijeron lo que ocurrirfa si el sol brillara En la condicional P — Q, la proposicién P se Hama hipdtesis. condicion © antecedente, mientras que Q se llama conclusion 0 consecueme. La reefproca de la condicional P > Qes la proposicién Q — P. La contrapuesta de P > Q es (= Q) > (> P). Advierta que P>@Q y su contraposicion son equivalentes puesto que tienen los mismos valores de verdad para todos los casos, como muestra la siguiente tabla de verdad: a a a oe “vO Vv FOP vO Vises F voF F FOV v Bey Vv FOF Vv voy Vv Consideremos la proposicién P > 0, Q > P. Es facil ver que la proposi- ci6n es verdadera s6lo cuando P y Q tienen los mismos valores de verdad. Esta 4 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES proposicién en forma abreviada es P ¢> Q, la cual se lee “P si y sélo si Q”. Se Hama proposicién bicondicional. Las proposiciones — (P » Q) y (+P) v (= Q) son equivalentes (ésta es una de las leyes de De Morgan; véase Ejercicio 0.1.2). Considérese la proposicién A(PAQ) OE AP)v (AQ) A causa de la equivalencia de proposiciones, obtenemos que ambos lados de la bicondicional tienen el mismo valor de verdad en todos los casos. Por tanto la bicondicional es verdad en todos los casos. Esto sugiere el siguiente teorema: Teorema 0.1.1. Sea P y Q proposiciones para las cuales P <> Q es siempre verdadera. Entonces P y Q son equivalentes. Por otro lado, si P y Q son equivalentes, en- tonces la bicondicional P © Q es siempre verdadera. Un proposicisn es una tauzologta si es siempre verdadera. Fijese que si P y Q son equivalentes entonces, segiin el teorema previo, P ¢ Q es una tautologia. Por tanto, la equivalencta puede ser definida como: P y Q son equivalentes si P © Qes una tautologia. Cuando la proposicién condicional PQ es una tautologia, se escribe P = Q. De forma similar podemos escribir P Q si la bicondicional P @ Q es una tautologfa. F§jese, que substancialmente, esto no significa més que la condi- cional (0 bicondicional) es una proposicién verdadera. La verdad de P > Q depende de los valores de verdad de P y Q. Por otro lado, 4(A 4B) > (GA) ¥(B) es una proposicién verdadera sea cuales sean los valores de verdad de sus componentes A y B. Esto puede ser representado por 7 (AAB) = (A) v OB). Una contradiccion es una proposicién que siempre es falsa. Por tanto, la ne- gacién de una tautologia es una contradieci6n. Una frase abierta 0 funcién proposicional es una proposicién que contiene una variable. Por ejemplo, la frase “x? + 2+ 16=0" contiene la variable x, al igual que la frase “x fue el primer presidente de los Estados Unidos”, La colec- cién de objetos que pueden ser sustituidos por una variable en una frase abierta se llama conjunto de significados de esa variable, Llamatemos conjunio de ver- dad de la frase abierta, al conjunto de objetos pertenecientes al conjunto de sig- nificados para los cuales la frase abierta se convierte en una proposicin verda- dera al sustituir la variable por ellos. Si se considera que el conjunto de signifi- cados paia la frase abierta x? + 2x + 16 =0 es el de los ntimeros reales, entonces el conjunto de verdad es vacio. Si el conjunto de significados incluye ademdés -1£1-V15 entonces el conjunto de verdad tiene algin elemento. PRELIMINARES MATEMATICOS = Si P es una frase abierta que contiene la variable x, se escribe P (x). Gene- ralmente, cuando se muestra una frase abierta, el conjunto de significados para la(s) variable(s) que contiene es explicitamente declarado o se deduce facilmen- te del contexto. Ciertos operadores indican la forma de seleccionar elementos del conjunto de significados. Esos operadores son los cuantificadores universal y existencial Una frase de la forma “para todo x del conjunto de significados P (x) es ver- dadera” se dice que es una frase universalmente cuantificada. Esto indica que el conjunto de verdad de P (x) esta compuesto por todos los objetos pertenecientes al conjunto de significados de x. Esto, en forma abreviada, se escribe Vx P (x), Jo cual se lee “para todo x, P (x)”. Fijese que Vx P (x) ya no es una frase abierta, puesto que su verdad o falsedad puede ser determinada, Por ejemplo, si P (x) es la frase abierta “x + 1 > x” y el conjunto de significados es la coleccién de todos los ntimeros reales, entonces Vx P (x) es una proposicion verdadera. Una frase de la. forma “existe un x en el conjunto de significados para el cual P (x) es verdadera” se dice que est4 cuantificada existencialmente. Esto in- dica que algtin elemento del conjunto de significados es un valor que, al sustituir ax, hace que P (x) sea verdadera. Lo cual quiere decir que algin elemento del conjunto de significados esta también en el conjunto de verdad de P (x). Esto en forma abreviada, se escribe 3.x P (x) y se lee “existe un x tal que P (2)”, 0 “para algtin x, P (x)”. Tenga en cuenta que 4.x P (x) ya no es una frase abierta Teorema 0.1.2, — (Vx P (x)) es equivalente a 3x P (3). Demostracién. Supongamos que + Vx P (x) es verdadera. Entonces Vx P (x) es falsa, y por tanto, el conjunto de verdad de P (x) no es todo el conjunto de significados de x. Entonces, el conjunto de verdad de — P (x) contiene algtin elemento. Por tanto la proposicién 4.x P (x) es verdadera. ‘Ahora supongamos que > Wx P (x) es falsa. Entonces Vx P (x) es verdadera, asf que el conjunto de verdad de P (x) es todo el conjunto de significados de x. Por Io tinto, el conjunto de verdad de — P (x) es vacfo, lo que implica que xP (x) es falsa. Con esto hemos demostrado que las dos proposiciones tienen exactamente los mismos valores de verdad y, por tanto, son equivalentes. LC) Si P(x) es una frase abierta, entonces un contraejemplo para Vx P (x) es un elemento, 1, del conjunto de significados de forma que P (f) sea falsa. Se puede demostrar una proposicidn de Ia forma “Si para cada x P (x), entonces Q (x)” probando que Vx (P(x) > @ (x)) es verdadera. Esto puede ser refutado si se proporciona un contraejemplo. Por ejemplo, la proposici6n “si n es primo enton- 6 —_TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES ces 2"— 1 es primo” podria ser refutada si se encuentra un contraejemplo tal comon= 11 Ejercicios de la Seccidn 0.1 0.1.1. Obtener la tabla de verdad para P v Q. 0.1.2. Probar que + (PA Q) es equivalente a (> P) v (> Q). Probar que 7 (Pv Q) es equivalente a (+ P) A (— Q). Estas dos equivalencias se conocen como las /eyes de De Morgan. 0.1.3. Probar que P a (Q v R) es equivalente a (P.«Q)v (P.» R) y que Pv (QAR) es equivalente a (Pv Q) «(Pv R) 0.1.4, Probar que P y > (+ P) son equivalentes. 0.1.5. Simplifiear + (=P) v (> Q). 0.1.6. Simplifiear + (> Q) a (> P), 0.1.7, ;Son equivalentes P > Q y OP? 0.1.8. {Cudles de las siguientes proposiciones son tautologias? @ PeEraCP). (©) PArP. () A(PVQGA7PA7Q. () (PasP)>Q. © PvaP. (2) PO Q (P39). @) (PY>P)A(Q@v7Q). () PI QOAPVO. 0.1.9. Probar que las siguientes proposiciones son contradicciones: (a) (PS Q)a(ParQ). (b) (PV QAaP)ACQ). (©) (PAQ ACP) 0.1.10. Mostrar que 3.x P (x) es equivalente a Vx P (x). 0.2 DEFINICIONES BASICAS Ahora veremos las nociones basicas sobre teoria de conjuntos. Un conjunto es una coleccién de objetos llamados elementos del conjunto. Si A es un conjunto y a es un elemento de A, se usa la notacién a € A (se lee “a es un elemento de A”). Se usa la notacién b € A cuando es necesario indicar que bno es un elemento de A. Si sabemos que A contiene exactamente los elementos «1, 42, ..., dp, lo indi- camos escribiendo A = {a}, a2, ..., dm}. Por ejemplo, el conjunto de los nimeros naturales menores que 6 puede ser escrito A= {0, 1,2, 3. 4,5}. Esta notacién PRELIMINARES MATEMATICOS 7 puede ser extendida a los conjuntos para los cuales no es posible listar todos sus elementos, tales como N = (0, 1,2, ...} 0 N*= (1, 2, 3, ...}. Un conjunto sdlo se caracteriza por sus elementos y no por el orden en el cual se listan. Por eso {1,2,3} y {2, 1, 3} denotan el mismo conjunto, Los conjuntos A y B son iguales si contienen exactamente los mismos ele- mentos. Por tanto, si A= {1, 2,3} y B= (2, 1, 3}, se puede escribir que A=B. F&ese que {a} y a no son lo mismo. Tenemos que a € A, pero a# {a}. También el conjunto { {4, 6} tiene un tinico elemento que es cl conjunto {a, b}. Por otro lado, (a, b} tiene dos elementos, a y b. Por consiguiente, {{a, b}) # {a, b}. Si A y B son conjuntos y todos los elementos de A son también elementos de B, se escribe ACB y se dice que A es un subconjunto de B. Por ejemplo, si A={1,2,3} y B= {0, 1,2, 3,4, 5}, se tiene A cB. Por otro lado, B no es un subconjunto de A, porque los elementos 0, 4 y 5 de B no lo son de A. Obsérvese que si ACB y BCA simulténeamente, entonces todos los ele- mentos de A estan en B y todos los elementos de B estan en A. Por lo tanto, si ACByBCA, tenemos que A= B. Teorema 0.2.1. SidAGByBCC,entonces ACC. Demostracién. Sea xe A. Entonces, si A CB se obtiene que xe B. Ademés, puesto que BC Cy xe B, tenemos que x € C. Por tanto, dado que x era un elemento arbitrario de A, resulla queAcC. 0 Para completar las definiciones, es conveniente considerar un conjunto es- pecial 9, llamado conjunto vacto 0 nulo, el cual no tiene elementos. El conjunto vacio es un subconjunto de todos los conjuntos; por Io cual se puede escribir CA, para todo conjunto A. Algunas veces es conveniente describir el contenido de un conjunto en tér- minos de una propiedad que sea caracteristica de todos los elementos del con- junto. Sea P (x) una propogicién sobre x. La notacién {x| P (x)},queseinterpre- ta como “el conjunto de todos los x tales que P (x)", denota el conjunto de todos los x para los cuales P(x) es una proposicién verdadera. Por ejemplo, Zt=(xlxeN y x>0} describe el conjunto de los enteros positivos. A={x|xe Ny x<5)} esl conjunto {0, 1, 2, 3, 4}. Supongamos que A es un conjunto, Definimos conjunto potencia de A como 24 = (B| BCA}. Por ejemplo, sea A = {a, b, c}. Entonces 2* es el conjunto (9, {a}, {B}, (c), {a,b}, {a,c}, {b,c}, (a, bc} Obsérvese que 0 ¢ 24 y Ac 24 Supongamos que J es un conjunto. Si para todo @ € / tenemos que Ag es un conjunto, entonces (Aglae 1) se Hama familia indexada de conjuntos. Por 8 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES ejemplo, si para todo n > 0, An=[-I/n, 1/n}, entonces {An|n € Z*} es la fami- lia de los intervalos cerrados desde —/n a 1/n paran=1,2,3 ... 0.3 OPERACIONES CON CONJUNTOS En aritmética se puede sumar, restar o multiplicar dos ntimeros. En Ja teoria de conjuntos existen tres operaciones que son andlogas a las anteriores, La unin de conjuntos A y B se denota por AU By es un conjunto formado por los elemen- tos que aparecen en A, en Bo en ambos. Por tanto A U B= {x|xe Aoxe B}. La interseccién de A y B es el conjunto A 0 B= (x|x@ Ay x€ B}. Obsér- vese que six € AM B entonces se puede decir que x aparece simulténeamente en AyB. Por ejemplo, si A = (0, 1,2,3, 4,5} y B= (2,3, 5, 9} entonces A U B= (0, 1,2, 3, 4,5, 9} yA OB = (2, 3, 5}. Obsérvese que Z* U {0} = N, mientras que NA Z* = Z". Se dice que los conjuntos A y B son disjuntos siA A B= 9. Teorema 0.3.1. Dados los conjuntos A y B, se tiene lo siguiente: BUAZ=A, BOA=G. SiA CB, entoncesA NB=A. SiACB, entonces AU B=B. ANA= =AUVA, PE es ce Be (a) AUB=BUA. (b) ANB=BOA. 7. (a) AUBUO=AUBUC. (0) ANBAO=A0BNC. 8 @ AABUO=ANBUANO. (b) AUBAO=AUB)NAUO. Demostracién. Dejaremos la demostracién de la mayoria de las propiedades para que sea realizada por el lector. PRELIMINARES MATEMATICOS «= 9 7. (a) Unelemento x satisface x€AU(BUC) @xeA 0 xe (BUC) @xcAoweBoxreQ) e(reAoxeB)oxec exe (AUB) oxeC exe (AUB)UC Por tanto tenemos que AU(BUC)E(AUB)UC y también (AUB) UCCAU (BU OC) con Io que ambos conjuntos son igua- les 8 (b) Unelemento x satisface xe AUBNOGxEA OLE BNO exeAo@eByxeQ e(eAoxe By (WeAoxEeQ exe (AUB) y xe UO exe (AUBAAUO con lo que tenemos que cada uno de estos conjuntos A U (BM C) y (AUB) A (AUC) es un subconjunto del otro. Por tanto los dos conjuntos son iguales. 1] Si A y B son dos conjuntos cualesquiera, el complemento de B con respecto A (también llamado complemento relativo) es el conjunto A-Bza{xlxeA y x¢ B) Por lo tanto, A — B esta compuesto por todos los elementos de A qué no es- tn también en B. Por ejemplo, si A= (0,2, 4, 6, 8.10) y B= (0, 1,2, 3, 4}, en- tonces A — B = {6, 8, 10}, mientras que B— A = {1,3}. Es conveniente pensar que todos los conjuntos aqui tratados se consideran subconjuntos de un conjunto universal U. Los complementos pueden ser forma- dos con respecto a este conjunto universal. Si A es un conjunto, entonces U-A es el conjunto de todos los elementos que no estén en A. Conviene denotar tales complementos mediante A; de forma que U—A=A. Obsérvese que 6=U y U=9. 10 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Teorema 0.3.2. Dados los conjuntos A y B: eon Demostracién. Vamos a probar los Apartados | y 3 y dejaremos el resto para el lector Un elemento x satisface xeA-BaxcAyxeB execAyxeB exeAnB Por lo tanto, tenemos que A= B CA NB y AN BCA-B, asi que tenemos que A — B =A B con lo que (1) queda probado. Para el Apartado 3, un elemento sai e xe AUGBexeAuB exeAyre B exedyxeB exe ANB Por lo tanto, tenemos que AUB GA OB y ANB CAUB, con lo que los dos conjuntos son iguales. J Téngase en cuenta que los apartados (2) y (3) del Teorema 0.3.2 se conocen como las leyes de De Morgan para conjuntos Dados dos conjuntos A y B, su producto cartesiano, A x B, es ¢l conjunto de todos los pares ordenados de los que el primer elemento proviene de A y el sc- gundo de B. Asi que, AXB=((ab)lae A y be BY Por ejemplo, si A= {1,2, 3} y B= (5, 6) entonces AxB= {(1, 5), 2,5), 3,5), (1, ©, (2, 6), G, 6)} fie! it PRELIMINARES MATEMATICOS 11. Obsérvese que dos pares ordenados son iguales si y sclo si los elementos correspondientes de los mismos son iguales. Por Io tanto (a, b)= (c,d) sélo cuando a= c y b =d. Luego un par ordenado es distinto que un conjunto de dos elementos. Ejercicios de la Seccién 0.3 03.1. 0.3.3. 0.3.4. 0.3.6. Probar las siguientes afirmaciones: (a) SiA CB, entonces 24 <2. (b) SIAN B=AUB, entonces A =B. (©. SiA=BentoncesA NB=AUB, AGB, entonces para todo conjunto C, se obliene que AUCCBNC y AQ CCBAC. Probarlo. SiAG Cy BED se cumple que CUD CAV B? Probar o refutar las siguientes afirmaciones: (@) SiAUB UC, entonces B= C, (b) SIAN B=ANC,entonces B=C. Sea (Byl@e /} una familia indexada de conjuntos. Se usaré la notacién Une rBq para indicar la unién de todos los By y Oc. 1 Ba para indicar la inter- seccién de todos los B,,. Probar que para todo conjunto A se cumplen las si- guientes igualdades: (AM (Cae 1Ba) = Une A Bo) (b) AU (Cae sBa) = ae (AU Bo). Demostrar las siguientes igualdades: (@) A-B=A-(BOA) (b) BCAsiysdlo siANB=9. (©) (Gee 1 Ba)-A=Awe 1 (Ba- A). @ (A-B)-C=(A-C)-(B- C= A- (BLO). (e) ANB=9yANB=OsiysdlosiA=B. 7. (Son ciertos los siguientes resultados? @). Anata 08 () Aura 28 Los pares ordenados (x, y) se definen formalmente por medio de la siguiente igualdad (x,y) = {{}, {4 y]}. Usando la definicién anterior, mostrar que (4,6) =(c.d) siy solo sia=cyb 12 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES 0.3.9. Dados los conjuntos A, By C, probar que: @ AX(BAOQ=(AXB)A(AxO, 1 (b+) AX(BUO)=(AxB)UAxO. (©) Ax (B-Q=(AxB)-(AxQ). 0.4 RELACIONES Y FUNCIONES Una relacion del conjunto A con el conjunto B es un subconjunto de A x B. Por tanto, si RAB y (a,b) & R, se dice que a esid relacionado con b bajo la re- lacion R. Por ejemplo, si A={2,3,4,5} y B={1,3,5,7,9}, entonces R= ((2, 1), (2, 3), (5, 3), (5, 5)} es una relaci6n, y 2 est relacionado con 1 bajo esta relacion. Si A y B son el mismo conjunto, se dice que la relacién es una relacién so- ) bre A. Por ejemplo, sea R < N XN definida por (x, y) € R siy solo six B y so esa la notacinn f(x) =y, donde (x, y) € f, De hecho, esta notacién puede ser ox: ida as). ones en general, como se ha hecho con la Reimagen del Ejercicis 4.3. Teorema 0.4.3. Sean las funciones f:.1 > B y g:A > B. Entonces f=g si y s6lo si £@) = 8 @) paratods cA. Demostracién. Supongames «ive f= g. un elemento de A. Entonces si y =/ (x), se tiene que (x, y) ef. anto (x. ») € g. En consecuencia, y= g (x). A la inversa, supongamos «uc / (x) = (x) para todo x de A y supongamos que (xy) es un elemcnio arbitra de f, Entonces y =f (x) = g (x) con lo que (x, y) € g, obteniéndose que f € g. \’or otro lado, si (x, y) es un elemento arbitra- rio de g, tenemos que »=g (x)= Ls) y por tanto (x,y) € f, obteniéndose g cf. Se concluye finalm 1e, f= Para que f GA x 2? sea una fvic'dn, se requiere que Dom (f) =A. Esto es més restrictivo que lo /o B.5i.\ A, diremos que la imagen de X bajo f es JO) = {ve By = FG) para algtinx € X} Si ¥ CB, la imagen invrsa de ¥ fes el conjunto (x) =y para algan y€ Y} Teorema 0.4.4, Sea f:A > 8 vna funcivy 1. f@=0. 2.. fle) = U0) para odev eA ; 3. SiXEYc¢ atonce. cf). a 16 TEORIADE AUTOMATAS Y LENGUAJES FORMALES 4. SiXCYCB,entoncesf-! (X) cf! (N). SiXe ¥son subconjuntos de 8, entonces FI -H=aft A) -f 1H. Demostracién. La demostracién se obtiene facilmente a partir de las definiciones pre- cedentes, por lo que se deja la misma para el lector. C1] Una funcién f: A> B se dice que es uno a uno o inyectiva si, para cuales- quiera (x, y)€ fy (zy) € f, entonces x=. Esto quiere decir que si f(x) =/(2) entonces x =z. Una funcién f se dice que es sobreyectiva si, para cualquier y € B, existe al- gin A para el cual f(x) =y. La funcién f: N—> N definida por f (n) =n es a la vez inyeotiva 7 sebre- yectiva, La funcién g: N — N, donde g (71) =7 + 1, es inyectiva pero no sobre- yectiva, ya que no existe ningtin xe N, tal que x + 1 =0. La funcién h: R > R, donde h (x) = x, no es ni inyectiva, ni sobreyectiva. Si fes inyectiva y sobreyec- tiva a la vez, se lama biyeccidn 0 correspondencia uno a uno. Obsérvese que si f: A Bes sobreyectiva entonces f~! ({b}) #@ para todo b € B. Sifes una bi- yecci6n, entonces, para todo be B, f~! ({b}) es un conjunto con un tinico cle- mento, Por tanto cuando f es una biyeccién, f-': B > A es una funcién. Las funciones y las relaciones se pueden asociar de una manera adecuada. Sean las relaciones RCA x B y § CBX C. Definimas la composicion de Ry S como SoR={(a,c)e AXC| paraalgiin be B,(a, be R y (b,c) S)} Por tanto si R= {(0, 1), (0, 2). (1. 1)) y S= (1. @), 2,5), tendremos que Se R= ((0, a), (0, b), (1, a)}. Por otro lado, R° =, puesto que no hay simbo- los que aparezcan simultdneamente como primer componente de un ¢lemento de R y como segundo componente de un elemento de S. Por tanto, en general, Re § y 5° Rno son Ja misma. La composicién de funciones se realiza de la misma forma: g°f= ((a,6)| paraalgin y, f(a)=y y b=8 ()} Por ejemplo, sea f: R — R definida como f(x) =x+ Ly g: RR definida como g (x) =.7. Entonces tenemos que s°f@=8(f@)=8@+N)=@+l? fea@=f(g@)=f@)=74+1 PRELIMINARES MATEMATICOS =—-17 Ejercicios de la Seccién 0.4 0.4.1. 0.4.2. 0.4.3. 044. 0.4.5. 0.4.6. 0.4.7. Sean A y B los conjuntos A = {2, 3,4, 5} y B= (1,3, 5, 7, 9}. Sea R la relacién R={(,y)€ AXBlx 0 de- terminado. Determinar si cada una de las relaciones siguientes es una relacién de equiva- lencia sobre el conjunto A={0, 1, 2,3,4, 5} 18 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES: (a) Ry = {(0, 0), C, D, (1, 2), 2, 2), B, 3), 4,4), (S, 5D). (b) R=R VY (2, )} (c) Rs=Ri— (1, 2)). @) Ry=RoV ((2, 3), (1,3), B, DG, 2)} 0.4.8. Sea (Zo. Zs, Zo, Zs, Zi) la particién de Z definida en la pagina 13. ;Cudl es la relacién de equivalencia sobre Z que genera esta particién? 0.4.9. Sea {A1, Aa, ...,Am} una particién de A y (By, Bp, ..., By} una particién de B. Probar que el siguiente conjunto es una particin de A x B {A:x Bli= 1,2, 2... y 71,2, 0.0} 0.4.10. Sean A y B los conjuntos definidos de la siguiente manera A={0,1,2,3) » B={-1,0,%, 1, %, 2,3, 4} {Cuéles de las siguientes relaciones son funciones totales, cules funciones par- ciales y cuales no son funciones? (a) f= {(0, 1). (1, 2), (2,9, GB, 4} &) f= (0,0), 1, 4), 2, DB, 4} (©) f= (0,0), 1. 1), 0.1, (2, 3} @_ f= (0-0), C, 3), (2, 2)} ©) f= {0,0} 0.4.11. Sean f:A— C y g:B—>D dos funciones tales que, f(x) =¢() pa x€ AOB. Probar quefU g es una funcin de AU Ben CUD 0.4.12. Seaf: A — B una biyeccién. Probar que f~! también es una biyeccién. 9.4.13, Demostrar que si f~’ (f(X)) =X para todo X CA entonces f es inyectiva. De- mostrar que si f(f~' (¥)) = ¥ para todo ¥ < B, entonces fes sobreyectiva. 0.4.14, Sea /: A — A una funcién para la cual f (/ (x) = es una relacién simétrica sobre A para todo xe A, Probar que f 0.4.15. Sean las funciones f:A—>B y g:C—>D y supongamos que AN C=9 y BO D=§ Probar que fU g es sobteyectiva si f y g lo son. Probar que FU g es inyectiva si fy g lo son. 0.4.16. Sean fy g las funciones definidas como Sa(@lteN e ye Ze y=[x] +1) PRELIMINARES MaTEMATICOS 19 s={@plre Zt © yeN ec y=-2|x]} Obsérvese que fc Nx Zi y go %' x N de modo que f° g y g ° festan defini- das. Describir fe gy g°f. 0.4.17. Supongamos que A es un conjunto y que se define la relacién I= ((a.a)lae A} (a) Probar que J, es una funcién. (b) Probar que J, es una biyeccién, (©) Seaf:X— Yuna funcion. Probar que fe y= lye f=f, vy que fo! ef=ly 0.4.18, Dadas las funciones f: A — B y g: B > C. Probar que las siguientes afirmacio- nes son ciertas: (d) Sif: X — Yes una biyeccién, demostrar que f° f~! (@)_ Sify g son inyectivas, entonces g » f también lo es. (b)_ Sify g son sobreyectivas, entonces g ° f también lo es. INDUCCION Se dice que un subconjunto A de N es un conjunto inductivo si, para cadaa€ A, entonces a+ 1 también pertenece a A. Por ejemplo, el conjunto {5, 6,7, ...} es inductivo, pero el conjunto (0, 2,4. 6.8. 10....} no Jo es, Para que un conjunto sea inductivo no puede tener un ntimero finito de elementos. La mayorfa de los conjuntos de nimeros naturales que conticnen el 0 no son inductivos. El hecho de que haya una tinica coleccién de ntimeros naturales que contenga el 0 y sea inductiva se conoce por el principio de la induccién matemdtica (PIM) A continuacién se muestra una breve exposicién del principio de induccin matemdtica. Dado A CN tal que satisface lo siguiente: len 0e A; 2. sine A,entoncesn+1¢ A, entonces A =} EI principio de induccién matemética es muy usado en matemdticas. Pro- porciona un método apropiado para definir conjuntos de objetos en los cuales hay un primer objeto, un segundo objeto y asi sucesivamente. En el mismo, se define el primer objeto y el + 1 se define en términos del enésimo. 20 © TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Por ejemplo, el factorial de un ntimero natural puede ser definido inductiva- mente como Ole] (at+Dl=@+l)-nl, para n>0 El PIM también se usa para probar planteamientos acerca de proposiciones que en uno u otro nivel pueden estar indexados mediante N. En tal prueba se muestra que la coleccién de indices es inductiva y contiene el 0 y, que por consi- guiente, es N. ‘ Por ejemplo, la proposicién “n +3 <5 (n+ 1) para todo mimero natural n” se puede demostrar como sigue: Sea A= (ne N|n+3<5 (n+ 1)}. Debemos probar que A es N. Ob- sérvese que sin es 0 entonces se tiene que n+ 3=3y 5 (n+ 1) es 5, de modo que la proposicién se cumple. Por tanto se obtiene que 0 pertene- ce a A. Ahora supongamos que ” € A. Tenemos que probar que n +1 también estd en A. Obsérvese que (n+ 1) +3=1+4=(n +3) +1. En tonces: 5 ((v+ 141) =5n +10 =S(nt+l+5 >(n+3)+5 >(n+3)41 =(nt +3 Por tanto la proposicién se cumple para n+ 1 cuando se cumple para n, con lo que +1 € A cuando ne A. Por el PIM, se obtiene que A=, asi que la proposicién se cumple para todos Jos nfimeros naturales. Los pasos de una demostracion en la que se usa el] PIM son bastante faciles de recordar. 1. Probar que la proposicién se cumple para 0. 2. Suponer que la proposicisn se cumple para n y probar que esto implica que se cumpla para n+ 1 3. Deducir que la proposicién se cumple para todos los elementos de N. La etapa 1 se conoce como etapa base © inicial. La suposicién de que ta proposicién se cumple para n en la etapa 2 se conoce como hipdtesis de induc- cidn. La etapa 2 se Hama erapa de induceion. PRELIMINARES MATEMATICOS. = Es conveniente usar el PIM para probar proposiciones sobre colecciones de nimeros naturales que no contienen el 0. Por ejemplo, la proposicién de la fér- mula 1+2+...+(2n-1)=n no tiene sentido (no es verdadera) para n = 0. Sin embargo, esta formula se cumple para todo n > 1, En este caso el conjunto de in duccién elegido es distinto. Obsérvese que la frmula se cumple para n = 1. Sea S= {ne N] la formula se cumple para +7} Ffjese en que 0 € S. Por tanto sin € S se tiene que 1424..42Q(+n)- l= +n)? Con lo que se prueba que la férmula se cumple para n+1. Es decir, n+1e S siempre que n € S. Para n+ 1 se suma un valor apropiado en cada lado de la igualdad y se obtiene 142+...42(¢n)- D+ 24+ I)-)=C+aP+20+@+))-) =142(nt I++? =(1+(n4 1)? Entonces, por medio de PIM, se tiene que S=N y por Jo tanto la formula se cumple para todon21. 0 En la practica, el conjunto $ no se especifica. Si se expresa una propiedad como P (1) para todo n > k, la demostracién se realiza de la siguiente manera: 1. (etapa base) Probar que P (k) se cumple. (etapa de induccién) Probar que si P(r) es verdadera entonces P (n+ L)es verdad para todo n 2 k. 3. (conclusién) Por las etapas | y 2 y el PIM, P (n) es verdadera para todo n&>k. Por tanto, la demostracién del ejemplo precedente puede volver a reali- zarse de esta forma: Sea n= 1. Entonces se tiene que 1 = 1, con Jo que la férmula se cum- ple. Ahora se supone que la formula se cumple para n > 1.Esdecir, 1424..4(2( 42)-1)=(1 +nP Entonces se obtiene que 22 ‘TEORIA DE AUTOMATAS Y LENGUAJES FORMALES: 14#24..+2(+n)-D+204+(241)-D =(1+0?+2U+@+))-1D =14+2@+1+(+n? =(+@+py con lo que la férmula se cumple para n + 1. Entonces, debido al PIM, la férmula se cumple para todo n> 1. 0 Ejercicios de la Seccién 0.5 0.5. 1. Probar que, para todo ne N, Des Leet 1 0.5.2. Probar que, para todo n > 1, QE + ett 2 0.6 CARDINALIDAD Para comparar los distintos tamafios de los conjuntos se usan funciones en- tre los mismos que son biyectivas, sobreyectivas 0 inyectivas. Dos conjuntos A y B son equivalentes si existe una biyeccién entre ellos. Se emplea la notacién B para denotarlo. Por tanto tenemos que {x,y,z} ={1, 2, 3}, mientras que {x,y,z} # (1.2). Ejemplo 0.6.1. Veamos un ejemplo trivial. Sea = (f | f: N — {0, 1}} el conjunto de to- das las funciones de N en (0, 1}; entonces F = 2". Para probar esto se necesita una biyeccién H: ¥ > 2. Por tanto, se necesita una regla que asocie cada fun- cion de ¥ con algiin subconjunto de N. Para g € F, sea H(g) = (xg () = 1} Obsérvese que todas las funciones de F tienen una imagen bajo H. Ahora proba- remos que H es inyectiva y sobreyectiva. Para ver que H es inyectiva, sean g; y g2 nas funciones que pertenecen a F y supongamos que H (gi)=H(g2). Sea xe N. Debemos obtener que x€ H(gi)ox¢ H (g\). Sixe H (g)) entonces, dado que H (g1) = H (g2), se ob- tiene que gi (x)=g2(x)=1. Por otro lado, si x H(gi), entonces 81 (2) = g2 (0) =0. Luego en ambos casos tenemos que gy (x)= g2 (x) para un x€ N arbitrario, con lo que gi = >. PRELIMINARES MATEMATICOS 23, Para ver que Hes sobreycctiva, sea A © 2” un subconjunto arbitrario de NN, Se define la funcién g: N >!) 1} como fo s \ |b sis nto para cualquier elemento A forma que represente a A. De Obsérvese que g € Fy 4: de 2%, se puede encontrar una esto se deduce que H es sobrey i g=A. cién en a. Teorema 0.6.1. Supongamos que A=C y 2 =D con. 3=By CA D=G. Entonces CUD. Demostracién. Puesto que AZC y BS!) existen unas biyecciones g:A—>C y h: BD. Definamos f: AU BP come gtx), SNE A (x) = 4 fQ) ee Por el Ejercicio 0.4.15, fes biseci6n pues' cue g yh Jo son. Por consi- guiente,AUB= CUD. Para cada niimero natural k > lefine (1.2, nk}. Dichos conjun- tos se usan como “estdindar de tan con €) > s¢ compararan otros conjun- tos. Un conjunto A es finito siz 1. A=@,encuyo caso A tien: : Nyy y g: B—> Ny las biyecciones a partir de las cuales se obtiene que |Al=m y |B] =n. Se define h: Ny H=(m+1,m+2,..,m-+n} como h(x)=m-+x. Es obvio que h es una biyecci6n y por tanto Ny =H. Obsérvese que Nn UH= (1,2... +n) = Nm+ny la funcién f: AU B > Ny 4m definida como a. _[f@), sized I@= hog(a), sixe B es sobreyectiva ¢ inyectiva. Por consiguiente, AUB es finito y |AU Bl = m+n={Al+|8|. © Una propiedad muy utilizada para conjuntos finitos es el principio del palo- mar. Bn esencia dice que si hay més palomas que agujeros se debe poner mas de | una paloma en el mismo agujero. Teorema 0.6.3. (Principio del palomar). Sean A y B conjuntos finitos con |A| >|B| >0 y f:A — Buna funcidn. Entonces f no es inyectiva. Demostracién. a demostracién se realiza por induccién sobre |B]. Si |B] =1Ly |A] > |B], entonces A contiene al menos dos elementos distin tos a1 y a. Pero entonces f (a1) = f (a2) por lo que f'no es inyectiva. Por tanto el resultado se cumple para |B] = 1. Ahora supongamos que el resultado se cumple para algtin conjunto B tal que 0<|B| |B] y f: A > B. Consideremos los dos casos siguientes para : S71): Caso 1: Supongamos que |f~! (b)| > 2. En este caso habra dos elementos a y a de A, de forma que a y a estan en f! (b) 0, lo que es lo mismo, f(a) =f (a) = b. En este caso f no es inyectiva, Caso 2: Supongamos que |f~! (b)| <1. Obsérvese que |A—f7' (b)| = |A| = L>n=|B-{b}|. Se define la funcién g: A—f7! (b) > B- {b} como 8 (x) =f (x). Obsérvese que, como |B—f~! (b)| =n y |[A-f-(D)| > |B- (b}], se satisface la hipétesis de induccién. Por lo tanto g no es inyectiva con lo que No. DE LIBRO. No, DE INV. -———mece— No. DE eno, GULF existirén a, y az en A —f~! (6) para los cuales ay # a2 y g (a1) = g (a2). Por con- siguiente, f (a1) =f (a2), de lo que se deduce que / tampoco es inyectiva, En ambos casos, si el resultado se cumple para cualquier conjunto B con n elementos, también se cumple para cualquier B con n + | elementos. Por tanto, y por el PIM, la proposicién se cumple para todo conjunto finito B con lg}>0. 0 PRELIMINARES MATEMATICOS = 25, Hay muchos ejemplos en los que se aplica este principio. Si 11 zapatos son elegidos al azar de una caja que contiene 10 pares de zapatos, al menos se obtic- ne un par completo. Sin #m, entonces N,, # Nm. Corolario 0. ces ASB. Si A es un conjunto finito y B es un subconjunto propio de A, enton- Hay dos tamaiios para los conjuntos infinitos, “grande” y “muy grande”. Un conjunto A es enumerable si A= N. En este caso, | A] = Xo (alef cero). Un con- junto es numerable si es finito o enumerable. El conjunto Z es enumerable mediante la funcién f: N > Z definida por n 3? = +n) ake sines par f()= sin es impar es una biyecci6n, que transforma 0 en 0, 1 en—I, 2 en 1,3 en—2 y asf sucesiva- mente. Teorema 0.6.5. Sea A un conjunto enumerable. $i BCA es un conjunto infinito, en- tonces B es enumerable: Demostracién. Puesto que A es enumerable, existe una biyeccién f: N > A, Supon- gamos que tenemos que f(/1) =a, por lo que A puede ser enumerado como A= {ao, di, «..}. Sea no el menor subindice para cl cual a, € B. Sea m ¢l menor subindice para el cual dy, ¢ B— {ay}. Generalizando, sea 7 el menor subindice para el cual ‘dy, ¢ B~ (dys Gnys «+ Gy_;}. Puesto que B es infinito, B~ (ng, Qn. «9 Gr) #8 para todo k, con lo que hemos construido una corres- pondencia uno a uno entre N y B. Por tanto, B es enumerable. 3 Puesto que los conjuntos finitos son numerables, se tiene que todo subcon- junto de un conjunto numerable, es numerable, Obsérvese cada conjunto infinito contiene un subconjunto enumerable. Para probarlo, sea X infinito. Entonees X #0, por lo cual se puede seleccionar un ele- 26 —_TEORIA DE AUTOMATAS Y LENGUAJES FORMALES mento de X, que Hamaremos xy. Nuevamente, y puesto que X es infinito, tene- mos que X— {xy} #@ y se puede clegir x) € X— {xo}. Una vez, definidos cada uno de los elementos xo, x1, «Mh, Se Sabe que X~ (0, X15. Xk} ¥ con To cual se puede seleccionar un TV X— [XX XK El conjunto {xz|k =0, 1, 2, ...} es un subconjunto enumerable de X. ‘Terminaremos este capitulo mostrando un conjunto no numerable. Para ello usaremos una técnica de demostracién muy eficaz llamada diagonalizacién. ‘Teorema 0.6.6. El conjunto 2 no es numerable. Demostracién. Supongamos que 2% es numerable. Dado que es un conjunto infinito, debe suponerse que 2'Y es enumerable y que por lo tanto, puede ser enumerado de la forma 2™ = (Ao, Ai, ...}. Sea D= {n € N;n¢ An}. Obsérvese que DCN Ys por tanto, D=Ax para algin k. Consideremos dicho k. Si ke Ay, entonces puesto que Ay =D, k no puede estar en Ay. Por otro lado, si k ¢ Ag, entonces k@ D y por tanto k debe estar en Aj. Ambas posibilidades nos llevan a una contradiccién. Por consiguiente, la suposicién de que 2" es enumerable es inco- rrecta. (J Sabemos, por el Ejemplo 0.6.1, que la coleccién F de funciones de N en (0.1) es equivatente a 2%. Ahora por el Teorema 0.6.6, sabemos que F no es numerable. La técnica de la diagonalizaci6n se usa para la refutacién de muchas afirma- ciones. En Ja demostracién precedente no se ve claramente donde se usa dicha técnica. Un ejemplo clasico de diagonalizacién es la demostracién de que el in- tervalo abierto (0, 1) no es numerable. Supongamos que (0, 1) es numerable, por lo que puede ser representado por el conjunto {ao, a1, ...}. Entonces cada a; sera representado por su desarrollo decimal y por convencién se usara la forma in- completa tanto para los mimeros de esa forma como para los de forma completa Por tanto, 0,25 se representaré como 0,24999... Bajo esta representacién, dos nimeros en (0, 1) son iguales si y sélo si los digitos correspondientes son los mismos. Haremos una lista con los aj ‘ a9 = 0.doodyido2... ay = O.diodi dip... ax = O.deoderdia...dee. PRELIMINARES MATEMATICOS =—-.27° Para demostrar que (0, 1) no es numerable debemos encontrar un nimero ze (0, 1) tal que za; para cualquier i, Sea z= 0.292) ..,donde 5. si dae #5 2. si ae= 5 Obsérvese que z difiere de cada a en al menos una cifra decimal y que 0 Bes finito? 0.6.2, Probar que si A CB y Aes infinito, emtonces B es intinito. 0.6.3. Dar, sies posible, un ejemplo de cada apartado: (a) Un subconjunto infinito de un conjunto finito. (b) Una familia (A,|7€ N} de conjuntos finitos cuya unién sea finita (©) Una familia (A,|7€ N} de conjuntos finitos cuya unién no Jo sea. (@) Una familia finita de conjuntos finitos cuya unin sea infinita (©) Unos conjuntos finitos A y B tales que |4U B| # [A] + |B] 0.6.4, Probar que NxN es numerable usando la funcién f: Nx NN definida como f (n, m) = 2" 3" ademds de} Teorema 0.6.5 0.6.5. Mostrar que N* es enumerable para cualquier k= Probar que R no es numerable. { 1 Alfabetos y lenguajes ALFABETOS, PALABRAS Y LENGUAJES Todo lo descrito a continuacién tiene al menos dos cosas en comtin: Programas escritos en algtin lenguaje de programaci6n como Pascal. Palabras inglesas. Secuencias de sfmbolos que se usan para representar un valor entero. Frases escritas en algiin lenguaje natural como el inglés. Primero, cada uno est4 compuesto por secuencias de simbolos tomados de alguna coleccién finita. En el caso de las palabras inglesas, la coleccidn finita es el conjunto de las letras del alfabeto junto con los simbolos que se usan para construir palabras en inglés (tales como el guidn, el ap6strofe y otros por el esti- lo). De forma similar, la representacidn de enteros son secuencias de caracteres del conjunto de los digitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Los programas de ordena- dor escritos en Pascal y las frases en inglés también estan compuestos por sim- bolos tomados de una coleccién finita. Sin embargo en estos, los conjuntos de simbolos son distintos. En el caso de los programas en Pascal, el conjunto de simbolos es una colecci6n de identificadores legales de Pascal con una longitud menor 0 igual que una constante, palabras clave y palabras reservadas, simbolos especiales de Pascal y espacios en blanco tales como el retorno de carro, el ca- réicter de salto de Ifnea y el espacio manual. 30 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Segundo, en todos los casos vistos las secuencias de simbolos que constitu: yen los elementos en cuestién tienen longitud finita, aunque no existen limita- ciones en cuanto a 1a longitud de las mismas La nocién de secuencia finita de sfmbolos es el elemento principal a ser tra- tado por este texto, Introduciremos la notacién y los nombres a usar para dichas secuencias. Un conjunto no vacfo y finito de simbolos se conoce como alfabeto, Por ejemplo, el alfabeto inglés est4 formado por 26 simbolos. En otro contexto se puede considerar como alfabeto a la coleccién de todas las palabras inglesas co- Trectas 0 la coleccién de todos los simbolos legales de Pascal (los identificadores de Pascal, palabras claves y reservadas, caracteres especiales, y asi sucesiva- mente). Si ¥ es un alfabeto, Ge © denota que 6 es un simbolo de E. Por tanto, si Z=(0, 1, 2,3, 4,5, 6,7, 8,9) podemos decir que 0 ©. Obsérvese que, puesto que un alfabeto es simplemente un conjunto finito no yacio, dados X1 y Zp alfabetos, se tiene que ¥) U Ep también lo es. Es més, si 1X), BE) — Ba y B: — E1 son conjuntos no vacios, también son alfabetos. Una secuencia finita de simbolos de un determinado alfabeto se conoce como palabra sobre dicho alfabeto| Si el alfabeto es el alfabeto inglés, algunas palabras pueden ser PROGRAM, DIGIT, MOON y BLEAK, Es més, nuestra definicion permite que BXWTEEMRE y JIPOQPY sean también palabras Nuestra experiencia nos Ileva a identificar el término palabra con las palabras de algtin lenguaje natural. Por esta raz6n, a menudo sc usa el término cadena en lue gar de palabra con el fin de evitar esta idea preconcebida. A lo largo del texto se usardn por igual los términos cadena y palabra. Obsérvese que si nuestro alfabeto base es el conjunto de todos los ident cadores legales de Pascal cuya longitud es menor o igual que una constante, las palabras clave y reservadas, los simbolos especiales de Pascal, y asf sucesiva- mente, un programa en Pascal bien construido, es una cadena. De la misma for- ma que baséindonos en 1a definici6n se pueden formar palabras incorrectas a par’ tir del alfabeto inglés también se pueden formar programias incorrectos sobre el alfabeto anterior. Aparentemente, las cadenas que constituyen programas en Pascal bien construidos deben cumplir ciertas restricciones, al igual que las pala- bras inglesas “legales” se construyen de una determinada manera sobre el alfa. beto inglés. Cada simbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vacta, la cual se denota por el simbolo e, es una palabra sobre cualquier alfabe- to. La palabra vacfa es una secuencia vacia de simbolos tomados de cualquiera ALFABETOS YLENGUAJES © 31 gue sea el alfabeto cn cuesti6n. La cadena vacfa tiene ciertas propiedades que veremos mis adelante, | g Un Lenguaje es un conjunto de palabras. Por tanto el conjunto (1, 12, 123, 1234, 12345, 123456} es un lenguaje sobre el alfabeto compuesto por digitos. De forma similar, la colecci6n de palabras inglesas “correctas” es un lenguaje sobre el alfabeto inglés, Obsérvese que si ¥ es un alfabeto, también es un len- guaje —el formado por todas las cadenas con un tinico simbolo Los lenguajes pueden ser bastantes grandes, como es el caso de todas las palabras inglesas “correctas” o el lenguaje (1, 11, 111, 1111, 11111, ...} forma- do por todas las cadenas finitas de unos. Obsérvese que este lenguaje es infinito (aunque cada cadena del mismo tenga longitud finita). Cuando un lenguaje tiene un tamaiio muy grande es dificil especificar que palabras le pertenecen. La espe- cificacién de las palabras de un lenguaje es uno de los temas principales de este libro, y le dedicaremos gran parte del tiempo. Dado que un Ienguaje es un conjunto de cadenas, se puede tener el lenguaje compuesto por ninguna cadena —el lenguaje vacto. Este no es el mismo lengua- je que el que consta de la cadena vacia (e}. El lenguaje vacfo se denota de la misma forma que el conjunto vacfo, 6. Supongamos que es un alfabeto y w es una cadena sobre E. Si Les el len- guaje formado por algunas de las cadenas sobre © y si w esta en L, entonces se tiene que w € Ly se dice que w es un elemento de L, 0 w es un miembro de L. Por tanto, 12) e {1,12 121, 1212, 12121} Es necesario tener en cuenta el lenguaje compuesto por todas las cadenas sobre e] alfabeto E. Se conoce como cerradura de X 0 lenguaje universal sobre Sy se denota por 5". Por ejemplo, si se tiene el alfabeto Z = {1}, entonces ae ep ley i), Para cualquier alfabeto, ” es infinito (ya que los alfabetos son no vacfos). Ejercicios de la Seccion 1.1 1.1.1. ;De qué conjunto de simbolos se derivan las frases inglesas? 1 {Por qué el lengnaje vacto @ no es el mismo que (e}? 32. TEORIA DE AUTOMATAS Y LENGUAJES FORMALES 1.2 OPERACIONES CON CADENAS. Siw es una cadena sobre cualquier alfabeto, su longitud se denota mediante el simbolo |w]. La longitud de w es el nimero de simbolos que tiene la cadena. Asi que, si w= 121 sobre el alfabeto = {1,2}, entonces |w] = 3. La cadena vacfa €, no tiene simbolos con lo que |e] = 0. Siw y zon cadenas, la concatenacién de w con z es la cadena que se obtie- ne al afladir a la cadena w la palabra z. Por ejemplo, si w= “banana” y z= “rama”, la concatenacién de w con z es la cadena “bananarama”. La con- catenacion de las palabras w y z se denota como wz 0 w - z. Obsérvese que se tie- ne que lwzl = lw] + [2] La concatenacién de Ja palabra vacfa ¢ con cualquier otra palabra w, no mo- difica a la palabra w. Por esta raz6n, £ se comporta como la identidad con res- pecto a la operacién de concatenacién. Vamos a introducir la nocién de potencia de una palabra sobre un alfabeto. Sea w una palabra; para n € N se define = ie si n=0 Wie Wine at 0 Por tanto, si w= 122 sobre el alfabeto 5 = { 1, 2}, se tiene w= 122122 w) = 122122122 y asi sucesivamente. Se dice que wes la potencia i-ésima de w. Hasta ahora hemos usado ¢] simbolo = de forma intuitiva, sin definirlo. Para ser mas precisos, definiremos la igualdad de cadenas como sigue: si w y z son palabras, se dice que w es igual « z, si tienen la misma longitud y los mismos simbolos en la misma posicién. Se denota mediante w = z. Las nociones de sufijo y prefijo de cadenas sobre un alfaheto son andlogas a las que se usan habitualmente. Siw y x son palabras, se dice que x es prefijo de w, si para alguna cadena y se obtiene que w=.xy. Por ejemplo, si w es la cadena 121, entonces la cadena x = 12 es un prefijo de w e y= 1. Si se considera y =e, entonces para w = xy se tiene que w =.x, con lo que toda palabra puede conside- rarse prefijo de si misma. Introduciremos el término prefijo propio para denotar aquellas cadenas que son prefijos de una palabra pero no iguales.a la misma. Por ALFABETOS ¥ LENGUAJES = 33. = 121 es un prefijo de la cadena w = 121, pero no es un prefijo propio de ¥. Finalmente hay que tener en cuenta que la palabra vacfa € es prefijo de cual- quier palabra] Una cadena w es una subcadena o subpalabra de otra cadena z si existen las cadenas x ¢ y para las cuales <= xwy. La inversa 0 transpuesta de una palabra w es la imagen refleja de w. Por ejemplo, si w = “able” entonces su inversa es “elba”, Para denotar la inversa de w se usa w/. Una definicién mis precisa de la misma puede ser Ia siguiente: wal” si woe ya, si w=ay portanto ae Ly ye LT Por ejemplo, supongamos que x= “able”. Si se sigue la defi para calcular w’ se tiene: x! = (able)! = (ble)! a ley! ba = (0)! Iba = (8)! elba =eelba = elba Consideremos la concatenacién de las palabras “ab” y “cd” que forma “abcd” sobre el alfabeto inglés. Sabemos que (abcd)! = deba. Obsérvese que dcba = (cd! (ab). Por lo tanto, si w e y son cadenas y si x= x= (wy)'= yw La inversa se “des 'y, entonces ce” a sf misma. Obsérvese que ((abed y' )! = (debay! = abcd En general, (2)! = x. Ejercicios de la Seccion 1.2 12.1, Sea ¥= (1}. ¢Se puede decir que para todo nimero natural n hay alguna pala- bra w'€ 2” para la cual |w| =7? Si w es una cadena de E* para la cual || ces Gnica? {Qué ocurriria si Z=(1, 2}? n, 34° TEORIA DE AUTOMATAS Y LENGUAJES FORMALES 1.2.2. Para una palabra w, zse puede decir que [wd] = wil fel 2 Encontrar una expresin para |w'*/| en términos de i, jy [wl]. 1.2.3. {La cadena vacta ¢ es un prefijo propio de sf misma? 1.2.4. Definir las nociones de sufijo y sufijo propio de una cadena sobre un alfabeto. 1.2.5. Obtener todos los prefijos, sufijos y subpalabras de la palabra w = “bar” sobre el alfabeto inglés. 1.2.6. Probar formalmente que (wy)! = y/ w'. 1.3. OPERACIONES CON LENGUAJES Las ideas de concatenacién, potencia e.inverso se pueden extender al Ien- guaje en su totalidad. Sean A y B lenguajes sobre un alfabeto. Se define el len- guaje concatenacién de A y B como A-B={w-xlweA y xe B} Portanto,A - B esté formado por todas las cadenas que se forman concate- nando cada cadena de A con todas las cadenas de B. Por ejemplo, si A= {casa} y B= {pdjaro, perro}, emonces A+B seria el lenguaje (casapdjaro, casaperro}. Obsérvese que para formar el lenguaje concatenacién A - B no es necesario que A y B sean lenguajes sobre el mismo alfabeto. Si A es un lenguaje sobre 5) y B es un lenguaje sobre Zp, entonces A - B es un lenguaje sobre E} U Zp. Se suele escribir AB en lugar de A - B, cuando la expresién resulta ambigua. Dado que para toda palabra x, x € =.= -x, se obtiene que para cualquier lenguaje A, A - (€) = {€}- A =A. Es decir, el lenguaje cuyo tinico elemento es la palabra vacta, se comporta como la identidad para la operacién de concatenacién de lenguajes. Al igual que para las cadenas, una vez que se ha definido la concatenacién de lenguajes, se puede definir la potencia. Sea A un lenguaje sobre el alfabeto 5. Definimos Atal {él sin=0 AcAT I sine Por tanto, si A = {ab} sobre el alfabeto inglés, se obtiene que ALFABETOS YLENGUAJES 35, AD= {2} Al=A = {ab} A? =A-A'= (abab} Ab =A A*= (ababab} Interesa tener en cuenta que de esta definicién se obtiene que 8° = {e}. Puesto que un lenguaje es una coleccién 0 conjunto de cadenas, se puede definir para el mismo la unin, interseccién y sublenguaje, al igual que se defi- nen para los conjuntos en general. Si A y B son lenguajes sobre el alfabeto Z, en- tonces la unidn de A y B se denota mediante A U B y esté formada por’ todas las palabras que pertenecen al menos a uno de los dos lenguajes. Por tanto, AUB=[x|xeA 0 xe B} La interseccién de los lenguajes A y Bes el lenguaje AQB={x|xe A y xe Bsimultineamente} Luego, 49 B esta formado s6lo por las palabras que pertenecen a los len- guajes Ay Ba la vez. Veamos un ejemplo. Consideremos ef alfabeto E= (0, 1} y los lenguajes A= [e,0, 1,10, 11) y B= {e, L, 0110, 11010}. Entonces Av B= fe, 0,1, 10, 11, 0110, 11010} ANB={s, 1} Antes de ver la relacién que existe entre la concatenacién y la interseccidn e union de lenguajes, es conyeniente definir formalmente sublenguaje y Ia igual- dad de lenguajes. Si A y B son lenguajes sobre un alfabeto & y si todas las cade~ nas de A son también cadenas de B, entonces se dice que A es un sublenguaje de B. Dado que esto se corresponde exactamente con el concepto de subconjunto visto en Ia teoria de lenguajes, Ac B denota que A es un sublenguaje de B. Para los lenguajes A= (a, aa, aaa, agua, aaaaa} y B= {a"|n=0,1, 2, ...). se tiene que A GB. Obsérvese que cualquier lenguaje L sobre el alfabeto Z es un sublenguaje de E’, es decir, LE". Se dice que dos lenguajes A y B son iguales si contienen exactamente las mismas cadenas, es decir, son conjuntos iguales. Se denota con A = B. Los teore- mas siguientes muestran la relacién que existe entre sublenguajes e igualdad. 36 = TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Teorema 1.3.1. Sean A y B dos lenguajes sobre el alfabelo E. Entonces A= B si y sélo siACByBCA. Demostracién. Supongamos en primer lugar que A=B. Tenemos que probar que AG By BCA. Supongamos que x € A. Puesto que A y B tienen exactamente las mismas cadenas, se obtiene que x € B, de lo que se deduce que A cB. Aniloga- mente, Si x es una cadena que pertenece a B, entonces como A y B tienen exacta- mente las mismas cadenas, se obtiene que x € A y por tanto BCA. Supongamos ahora que Ac B y Bc A. Esto significa que toda cadena de A esta también en B y viceversa. Por tanto, A y B tienen exactamente las mismas cadenas, con lo que son iguales. El Teorema 1.3.1 proporciona una forma de deter.ninat oportunamente si dos lenguajes son iguales. Lo usaremos para demostrar que la concatenacién es distributiva con respecto a la unién. ‘Teorema 13.2. Dados los lenguajes A, B y C sobre un alfabeto E, se cumple que: i. A-(BUQSA-BUA-C ii, (BUC)-A=B-AUC-A Demostracion. (i) Probaremos primero que A: (BUC)CA-BUA:C. Sea x€ A+ (BUC). Entonces x= -y para las cadenas we Ae ye BUC. Puesto que ye BUC. entonces ye Bo ye C. Siye B, entonces w+y € A-B, y por tanto, w- ye A-BUA-C. Por otro lado, si y € C, entonces w-y ¢ A- C, con Jo que de nuevo tenemos que w+ y@ A-BUA-C. En ambos casos se obtiene que A-(BUOQ)CA-BUA-C Para probar que A-BUA-CCA-(BUO), supongamos que xe A- BU A-C.Entonces x€ A-Boxe A-C,Sixe AB, entonces x=u- v para las ca- denas we A y ve B. Puesto que ve B entonces ve BUC y, por tanto, we A- (BUC). Por otro lado, si x € A - C, entonces x= w-y para las cadenas we Ae ye C. En este caso y puesto que y € C, se tiene que ye BUC, y por tanto, w- ye A: (BUC). LuegoA-BUA- CCA: (BUC) Luego por el Teo- rema 1.3.1 se obtiene que A (BU C)=A-BUA-C. La prueba de Ja parte (ii) es similar y se deja como ejercicio, La relacion que tiene la concatenacién con la interseccién no es tan buena como con la unién. Generalmente, la concatenacién no es distributiva con res- pecto a la intersecci6n. Para verlo, supongamos que A= {a,e}, B= (2) y ALFABETOSY LENGUAJES 37 C={a}. Obsérvese que A-B={a,e) y A-C={a’,a}, por lo tanto A-BOA- C= {a}. Por otro lado, BO C=, con lo que A «(BA C)=9. Si A es un lenguaje sobre algiin alfabeto 5, se define la cerradura de Kleene 0 cerradura de estrella de un lenguaje A como A” =\Jy-0 A". Definiremos también la cerradura positiva de A como A*=\J=1 A". Obsérvese que las ca- denas de la cerradura de Kleene se forman al realizar cero 0 més concatenacio- nes de las cadenas del lenguaje, mientras que la cerradura positiva se forma al realizar una o mis concatenaciones. Por ejemplo, supongamos que A = {a} sobre el alfabeto inglés. Entonces te- nemos que A°={e}, A'=(a}, A?={a"} y asf sucesivamente. Por tanto At = (ea, a’, @, ...}. Por otro lado, A* = (a, a’, a°, ...} Obsérvese que si E es un alfabeto, entonces E* est formado por todas las concatenaciones de 0 0 mas simbolos de Z. Precisamente, ésta serd Ja colecci6n de cadenas que constituyen el lenguaje universal, el cual también se denota por 2". Por tanto, nuestra notacién es consistente. Ademas todo lenguaje sobre Z es necesariamente un sublenguaje de &". Es mais, si A es un Tenguaje sobre E, se ob- tiene que A, © E* para todo n=0, 1,2, ..., y por tanto, A" CE" y Av C Et. Ob- sérvese también que puesto que A” < A" para todo n, se tiene que A* c A". Final- mente, puesto que 8° = {2} y #" = para todo n > 1, entonces O* = {e} y B= 6. Ejemplo 1.3.1 Consideremos £= {0, 1, 2,3,4,5, 6,7, 8,9] y definamos A como el len- guaje formado por las cadenas que no contienen ninguno de los digitos 2, 3, ... 9, Entonces ¢€ A, Oe Ay 1 A. También 000101001 A. Obsérvese que si k> Ly xe Af entonces x=w1- w2-«..- wy donde las cadenas w;¢ A. Puesto que las cadenas w; no contienen los dfgitos 2, 9, Ja cadena x tampoco con- tiene ninguno de esos digitos. Por tanto x ¢ A. Bs decir, Ak 1, y por tanto A = A* para k= 1. De esto se obtiene que Ademés dado que A° Por tanto en algunos casos A* y At son el mismo. 38 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Si A y B son lenguajes sobre E, definiremos la diferencia como A-B={x|xeA y xe B} la cual es exactamente Ia misma definicién que se vio en la teorfa de conjuntos. Ejemplo 1.3.2 Si A es como en el Ejemplo 1.3.1 y Bes el lenguaje de todas las cadenas de ceros, entonces A ~B es el lenguaje de todas Jas cadenas de cetos y unos que tienen al menos un 1. Definimos el complemento de un lenguaje A sobre el alfabeto 2 como A=E"-A la cual es también una definicién andloga a la dada para el complemento en la teorfa de conjuntos. Nuevamente nos referiremos al Ejemplo 13.) para obtener que A es el lenguaje de todas las cadenas que contienen al menos uno de los di gitos 2, 3,...,9. La concatenacién y la diferencia de lenguajes son incompatibles de forma similar a como lo eran la concatenacién y la interseccién. En general, A(B-C)#AB-AC. En el siguiente teorema se muestra una igualdad que relaciona las cerradu- ras A’ y A‘. Aunque el resultado es obvio intuitivamente hablando, conviene ofrecer una demostracién rigurosa de una parte del teorema puesto que es una buena forma de indicar cémo se demuestran tales igualdades. Teorema 1.3.3. At=A-A*=A*- A, Demostracién. Sea xe A*. De la definicién de la cerradura positiva se obtiene que xe Ui=1 A4 asi que para algin.ko > 1, se sigue que x € A®, Puesto que AM = A. AY!, se obtiene quexe A A®-!, y por tanto xe @-49=4-U ataa-at n=0 nao Esto prueba que At CA - At ALFABETOS YLENGUAJES 39 A la inversa, sea xeA-A=A UasU (-A) n=O n=O Entonces, para algiin j > 0, se deduce que xed AeA cl) Ataat Por lo tanto A- ATC A*. La demostracién de A* *. Aes similar y se deja parael lector. 1 Consideremos el lenguaje A = {ab} sobre el alfabeto inglés, Tenemos que At = {(ab)!|i2 1) = [ab, abab, ababab, ...} Entonces podemos considerar el lenguaje (A*Y' para distintos exponentes i. Por ejemplo, si f= 2, se tiene (A*)2 = At At = {ab - ab, ab: abab, ab « ababab, ..., abab ab. abab « abab, abah - ababab, Puesto que podemos obtener cada uno de Jos lenguajes (A*Y;, entonces tam- bign se puede obtener (A”)". Es mis, puesto que (A*)? = (e}, también se puede considerar que (A*)*. Luego parece que tiene sentido preguntarse cémo son los. Jenguajes que son cerraduras de cerraduras. Las repuestas son sorprendentemen- te sencillas. Six es una cadena de (A*)*, entonces, puesto que (A*)*=Uit=1 (4°95, tene- mos que para algiin 21, xe (A‘)", y por tanto x= x) - 42° +. tm donde cada xe A*. Dado que x, € At =(UF= 1 A’, existe algtin f;2 1 para el cual x; ¢ A". Por tanto cada Yisty donde cada yij € A. Por tanto se obtiene X= (YYZ Yan) O20 922 Pero ésta es justamente una cadena perteneciente al Ienguaje A"'*** Es més, puesto que r> 1 para cada i, se obtiene que NAD+ eed 40 TEORIA DE AUTOMATAS Y LENGUAIES FORMALES: Por To que es una cadena de A*. Por tanto (A*)* 4", Por otto lado, puesto que At=(A%)! CUP (AY) = (A")*, se obtiene que A™ < (A*)*, de lo que se des- prende que A* = (A*)*. De forma similar se puede demostrar que (4°)" =A*. Estos resultados se pueden interpretar como que no se afaden nuevas cadena’ a los lenguajes A* o A®. aunque se vuelva a realizar sobre ellos cualquier tipo de cerradura, Esto des- vela intuitivamente lo que significa el término cerradura, También se puede desarrollar la idea de inverso o transpuesta de un lengua- El inverso de un lenguaje A es je. Als (|x A} Por ejemplo si A = (dog, bog}, entonces A’= (pod, gob}. Obsérvese que si se vuelve a realizar el inverso del inverso de todas las pa- labras de un lenguaje, entonces se obtiene, de nuevo, el lenguaje original. Por tanto, (A‘)! =A. El comportamiento del inverso es bueno para la mayoria de las operaciones sobre lenguajes, como se muestra en el Ejercicio 1.3.18, ELinverso de Ia concatenacién no sdlo invierte las palabras concatenadas de los lenguajes sino que también cambia el orden de la concatenacién de los len. guajes, como se muestra en el siguiente teorema. Teorema 1.3.4. (4B)! =B!- 4! Demostracién. Sea x © (AB)!. Entonces AB, con lo que x! = yz para las cadenas ye Ay ze B. Por tanto, x= (x1)! = (yg! = of y!. Pero dado que ze B.entonces de Bl. Ademasye A, con lo gue y' € A’, y por tanto se obtiene que x € Bi al, lo cual prueba que (AB) B!- AN A la inversa, si xe B'A!, entonces x = ww para alguna palabra we BY y w © Al. Pero entonces x! = w/w! ¢ AB, con lo que ve ABy xe (AB). Por eso Bl Alc (ABy, y por tanto (AB) =BAL Ejercicios de la Seccién 1.3 1.3.1, Para todo lenguaje A, ;Qué es 4 - G? 13.2. Sean A= {the, my) y B= (horse, house, hose) lenguajes sobre el alfabeto in- glés. Obtener A-B,A-Ay A-B-B. 13.3, Se supone que A= (€,a). Obtener A" para n=0, 1,2,3, 2Cudntos elementos ene A" para un n arbitrario? {Cudles son las cadenas de A” para un n arbi. tario? 1.3.4, Se supone que A = [e].Obtener A” para un rt arbitrario. 13.5. 1.3.6. ‘ase 13.8. 135, 1.3.10. 13.11. 13.12. 1.3.13. 13.14. 13.15. 13.16. 1.3.17. 1.3.18. ALFABETOSYLENGUAIES 44 Sean A=({¢, ab) y B= (cd}. gCudntas cadenas hay en A” B para un n arbitra io? Sean A = {a} y B= (6). Obtener A" B, AB" y (AB)". Sean A= {e}, B= (aa, ab, bb), C= {e, aa, ab} y D = @ el lenguaje vacio. Obte- ner AUB, AUC, AUD, BUD yAOB, BOC, COD, AND. Suponer que F es un lenguaje cualquiera. Obtener FU D y F.0D. Probar la parte ii del Teorema 1.3.2. Si A y B,son lenguajes sobre © para i= 1, 2, 3, ..., probar que Us A Uae-s) a {Bajo qué condiciones A* = Obsérvese que para todo lenguaje A se tiene que ¢ ¢ A”. ;Cudndo ¢ ¢ A’? Probar que {e}" = {€) = {e}*. En los Ejemplos 1.3.1 y 1.3.2 gpor qué € no esta en los lenguajes A ~ B y A? Antes se obtuvo que A*=A°UA*= {2} UA*. Cabria esperar que A*= Av — {e}. Probar que, en general, la expresidn no es cierta. ;Cudndo se cumplira que A* =A" — (e}? Sean Ay B dos lenguajes sobre E. Probar que AAB=AUB y que AUB Obtener los lenguajes A, B y C tales que A (B~ C) # AB~ AC. Probar que (A) =A", (A°)"= ry (AY =A" Demostrar que se cumplen la: bre el alfabeto 5: siguiente igualdades para los lenguajes A y B so- @ AUB =ATUB! &) ANB =A'nB © @=at, @ y= ©) ayaa’) 42 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES: PROBLEMAS 11. 12. 1.3. 1.6, 7. Sea Z= (a,b, ..., 2} el alfabeto inglés. Definir la relacidn < sobre L*, de forma que x 1 b 2 aa 3 ab 4 ba § bb 6 aaa 7 y asf sucesivamente De manera més general, supongamos que tenemos un alfabeto arbitrario E. Puesto que todos los alfabetos son finitos, podemos asignar un orden arbitrario a los caracteres pertenecientes a E. Asf, sin pérdida de generalidad, pademos es- cribir E= (a1, a2)... an} Numeraremos las palabras de 2" de la’ misma forma. € 0 a 1 a 2 a on aya; ntl aa n+2 y asi sucesivamente Esta técnica de asignar ntimeros naturales a las cadenas de un lenguaje, se puede realizar de forma mas precisa, Volviendo al ejemplo original, donde B= (a,b), haremos que cada cadena sobre ¥ sea representada por un ntimero en binario, usando los digitos 1 y 2 en vez de Oy 1. Sea ael 1 y bel 2, entonces se obtiene £20: aed b 2 aa 11=3 ab 12=4 abaa 1211=19 De esta forma, cada palabra est4 representada por un entero tinico. Esto no ocurrirfa si hubiésemos usado el 0 para representar aa y el 1 ab, ya que a’ esta- ria representada por 0, para.todo i> 0. ' : ' : LENGUAJES REGULARES = 47 Obséry ese que para todo mimero natural m, existe una tinica representaci6n ool misr base n. Por eso podemos encontrar una cadena en E* correspon- Clente ai. Si m > 0, entonces debemos obtener la representacién de m en base 2 sando !‘sitos 1 y 2 en vez de 0 y 1). Para ello, se concatenan los caracteres gue corresponden a los digits que aparecen en la representacién de m en base 2. ssi, sim — 52. primero se convierte m a 11112 y entonces se concatenan las aes la bes bat obtener aaaab. Hemies isto una forma de relacionar las cadenas de 5° con los némeros na- rales, de ?>>ma que cada cadena est representada por un tinico ntimero natural y cada mine.0 natural representa a una tinica cadena. Esto, esencialmente, defi- po una firici’'a de N a", con lo que, de hecho, se ha esbozado la demostracién el siguiente corema: Teorer 21.1. Pes todo alfabeto 5, Des infinito numerable. Ahor: © 1c ya sabemos el tamafio de E', se puede determinar cudntos subdlenguijos ce Z* existen y, en consecuencia, cudntos lenguajes hay sobre el al- fobeto Z. Teorsr: > 2.1.2. snjunto de todos los lenguajes sobre ¥ no es numerable. © ce agamos que el conjunto de todos los lenguajes sobre E es numera- 2. Lian »s a dicho conjunto 1. Puesto que L. es numerable, puede ser enu- srado de i: forma Ap, Ay, Ag, ... Usaremos el método de la diagonalizacién para gar avrn ootradiceion, Saber. que Z* es numerable y por tanto puede ser enumerado como wo, Eset {ov;| vy € Aj}. Luego B esta formado por las palabras que no per- recen ¢ uaje que tiene el mismo indice que las mismas. Obsérvese que B un cor de cadenas sobre y que, por tanto, es un lenguaje. De aqui que = Ag, pore ulgdn k. Obsérvese que si w,€ B, entonces wy no esté en Ay= B. Por tanto, sv; esté y no esti en Ag, lo cual es una contradiccién. Por otro lado, si »€ B, coionces, de la definicién de B, se obtiene que w; es una cadena de By esi on B, Por tanto, iy esté y no esté en B, con Jo que se Hega a otra atradic: ©. Dado que wy debe o estar en B 0 no estar en B, la suposicién de jut el con} io de todos los lenguajes sobre E es numerable es falsa. Luego el conjunte ic vs numerable. 1 El Te > na 2.1.2 proporciona una idea acerca de la magnitud del problema de especifics lenguajes: hay una cantidad innumerable de lenguajes que especi- ‘ar sobre \: alfabeto en particular. No existe ningvin método de especificacién Jenguaics ue sea capaz de definir rodos los lenguajes sobre un alfabeto. Esto onifica ido un metodo de representacién de lenguajes, hay lenguajes que 48 —_TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES no son representables. Por otro lado, unos métodos tienen mayor fuerza expresi- Va que otros, es decir, unos definen més lenguajes que otros. Con el estudio de estos métodos de investigacion podemos hacernos una idea de la naturaleza mis- ma de la computacién. Ejercicios de la Secci6n 2.1 2.1.1. Para el alfabeto © = (a, b} y usando la aplicacién * > N dada en este aparta- do, ,cudntas palabras de longitud 3 hay? ,Y de longitud 5? ,Y de longitud &? 4Cuél es el tltimo niimero asignado a las palabras de longitud 2? c¥ a las de longitud 5? ;Y a las de longitud k? 2.1.2. En el caso general de que haya n caracteres en e) alfabeto Z zcudntas palabras de longitud k habra? Si ordenamos las palabras de = en orden lexicogriifico y Jes asignamos niimeros comenzando por el 0 para € {CuAl serd el numero asig- nado a la tiltima palabra de longitud £? . Usando los digitos 1 y 2 en vez de 0 y 1, obtener Ia representacién binaria del ntimero decimal 22. ;Cual es Ja palabra perteneciente aE" = {a, b}” correspon: diente al niimero (en base decimal) 22? 2.1.4. Ampliaremos la idea precedente para Y= (a, b,c} usando una representacion ternaria con los digitos 1, 2, 3. Supongamos que a esta asociado con 1, b con 2 y c con 3. {Cuai sera el entero decimal que corresponde a la palabra abbacca de ¥"? Encontrar la palabra de 2° correspondiente a 20. 2.2 LENGUAJES REGULARES Y EXPRESIONES REGULARES BI primer método para especificar Jenguajes que vamos a estudiar define el con- junto de lenguajes Hamado lenguajes regulares sobre un alfabeto. Los lenguajes regulares son interesantes desde el punto de vista préctico porque pueden ser usados para especificar la construccién de analizadores léxicos —programas que analizan un texto y extraen los lexemas (0 unidades Iéxicas) que hay en el mis- mo. Para un alfabeto E dado, los lenguajes regulares sobre © son interesantes desde el punto de vista tedrico porque ellos constituyen el menor conjunto de Ienguajes sobre © que es cerrado con respecto a las operaciones de concatena- cién, la cerradura de Kleene y Ia unién de lenguajes y ademfs contiene el len- guaje vacto @ y los lenguajes unitarios (a) para a € Z. Definicién 2.2.1. Sea ¥ un alfabeto. El conjunto de los lenguajes regulares sobre E se define recursivamente como sigue: LENGUAJES REGULARES = 49 (@) Ges un lenguaje regular. (b) fe} es un lenguaje regular. (c) Para todo a € ¥, {a} es un lenguaje regular. (d) SiA y B son lenguajes regulares, entonces A U B, A« B y A* son len- \ guajes regulares. (©) Ningtin otro lenguaje sobre © es regular. Por tanto, el conjunto de los lenguajes regulares sobre E esta formado por el Ienguaje vacio, los lenguajes unitarios incluido {€) y todos los lenguajes obteni- dos a partir de la concatenacién, unién y cerradura de estrella de lenguajes Ejemplo 2.2.1 Dado E= (a, b], las siguientes afirmaciones son ciertas By {e) son lenguajes regulares. {a} y {6) son lenguajes regulares. {a b) es regular porque es Ia unién de (a) y {d} {ab} es regular. | (a, ab, b) es regular. {a‘|i 20) es regular. {a’ b'|i20 y j2 0} es regular. {(ab)'|é2 0} es regular. {EI lenguaje de todas las cadenas sobre (a, b, c) que no tienen ninguna sub- cadena ae es un lenguaje regular? Para responder a esta pregunta, consideremos que A es ese lenguaje. Si A es regular, entonces puede ser escrito en la forma que se indica en la definicién. Obsérvese que las unidades de construccién basica son los Ienguajes {a}, {). {c}, ®y (e}. Supongamos que w es una palabra per- teneciente a A. Entonces w comicnza por 0 6 mas ces. Si las suprimimos obtene- mos una subcadena w que no empieza por ningin cardcter c, Esta subcadena es- tara constituida por aes, bes y ces, donde cualquier bloque de ces sigue a las bes. Es més, no puede haber ningiin blogue de ces al principio de w’, Por eso se tiene w’e (fa) U {2} {c}")* y por tanto we {c}* (fa} U {b} {cP de lo cual se obtiene AC{c}* {a} U{b}{c}')" 50 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES. Para probar la otra inclusi6n, obsérvese que si w es una cadena que tiene una subcadena ac entonces ue {c}" (Cay [b) [c}'Y ya que no hay forma de que una ¢ pueda seguir a una a. Por tanto fel’ la} U {b} fe} CA Podemos simplificar la especificacién de un lenguaje regular introduciendo un especie de abreviatura llamada expresién regular. Convenimos en escribir « en lugar del lenguaje unitario {a}. Por tanto aUb denota {a,b} ={a} U (b} ab denota {ab} a denota {a)*; ‘ a* denota {a}* Ademiés, se establece que el orden de precedencia de los operadores *, Uy - es * primero, - el siguiente y W el tltimo, Esto reduce la necesidad del uso de pa- réntesis y hace que las expresiones sean mas faciles de leer. Por ejemplo, una expresion ({a}"(b}) U {c}, se reduce a la expresidn regular a°b Uc. A continuacisn definiremos de forma recursiva Io que es una expres! gular sobre el alfabeto ©, usando la notacién convenida: 1. Gy € son expresiones regulares. 2, @esuna expresi6n regular para todo a¢ ¥. 3. Si ry s son expresiones regulares, entonces rU s, rs yr’ también lo son. 4. Ninguna otra secuencia de simbolos es una expresién regular. Comparando esta definicién con la definicién de lenguajes regulares se de- duce que toda expresién regular sobre © denota un lenguaje regular sobre 5. Por ejemplo, el lenguaje de todas las cadenas sobre {a, b,c} que no tiene ninguna subeadena ac se denota mediante la expresin regular c’ (a U he")”. Cuando sea necesario distinguir entre una expresién regular r y el lenguaje denotado por la misma, usaremos L (r) para denotar el lenguaje. En cualquier caso, si se afirma que w r, ello equivale a decir que w € L (r). Siry s son ex- presiones regulares sobre el mismo alfabeto y si L (r) =L (s), entonces se dice que ry s son equivalentes, En el caso de que ry s sean equivalentes se puede es- LENGUAJESREGULARES = 51 cribir r= 5s, También se puede usar rs en el caso de que L(r) CL (s). Obsér~ vese que para obtener r= s se debe demostrar que FCs Cr [Bijese que de la definicién de cerradura de estrella para lenguajes se obtiene que 0° = {e}, y en términos de expresiones regulares se tiene que @° =e. Por tan- to, se podria omitir e en la definicién de expresiones regulates! No obstante, como € ¢s una forma de abreviar 8°, se incluira e, mas por cofiveniencia que por necesidad. Tgualmente, abreviaremos la expresi6n 77" por medio de r*. Obsérvese que hay muchas expresiones regulares que denoian el mismo lenguaje, Por ejemplo (a°b)" y € U (a Ub)" b denotan el mismo lenguaje: el len- guaje de todas las cadenas con 0 6 mds aes y bes, que son tanto la cadena vacfa como las que tienen una b al final. Por tanto, (a°b)" = € U (a Ub)" b. Se pueden simplificar las expresiones regulares reemplazindolas por otras equivalentes pero menos complejas. Por ejemplo, la expresién ab U € U (a Ub)" b puede ser sustituida por ab U (a’b)". Existen muchas equivalencias con respecto a expresiones regulares basadas en las correspondientes igualdades de lenguajes. Las resumimos en el siguiente teorema. Teorema 2.2.2. Sean 7, s y f expresiones regulares sobre el mismo alfabeto E. En- tonces (rUsyUt=ru(sun 2 3 4. 3.0 re=er=r. 6. B=Pr=H. 7. (rs) t= r (st) 8. 9. r(sUN=rUrty (rUS)t=iT Ust. =eUn="(ruUperuer=seurr' 10. (rUsl = Us =O = Car Gry. Her (nt =(rs)" 12. (r's)'=eU(rusy's. 13. Gs"*=eur(rus) 14, s(rUe) (UR Usasr. 52 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Muchas de estas igualdades se pueden demostrar mediante reasociacién Como muestra, consideremos la igualdad 11, » (sr) = 0:5)" r. Siw € r(s7)*, en tonces w= ry (171)... Sn Pn) para algtin n 20. Puesto que la concatenacion es. asociativa, se puede reasociar la wiltima expresién, con lo que se obtiene w= (7051) (71.52) --. n—1 $n) tn € (r5)" 7. Dee aqui se obliene que r(sr)"c (rs)" r [0 L(r (srJ') SL (rs) 7), Tgualmente se puede probar que (rs)" rc (sr)" con lo que se demuestra la igualdad. Para probar igualdades también se puede hacer uso de las igualdades ya co- nocidas. Por ejemplo, si r= s*t, entonces Mr=(@Us)t yaque eu ss*)t tUss't por (8) Usr por (5) =srut por (1) Jo cual prueba que r= s*7, implica que r=sr U 1. / Ejercicios de la Seccion 2.2 2.21. Verificar, aplicando la definicidn de lenguaje regular, que los siguientes son lenguajes regulares sobre E = (1, b}: @ {ali>0} (>) {a']i>n} para un n> 0 fijade. (©) (we E*|w termina con a}. 2.2.2. Verificar que el lenguaje de todas las cadenas de unos y ceros que tienen al me- nos dos ceros consecutivos, es un lenguaje regular, 2.2.3. Los identificadores de Pascal son cadenas de longitud arbitraria ‘compuestas por Saracteres alfabéticos y por digitos. Los identificadores de Pascal deben empe- Zat por un carécter alfabético, Es este lenguaje un lenguaje regular? Obtener una expresion regular que represente el lenguaje de los idemificadores de Pascal, 2.2.5. (@) Probar que (rUey" =r", (©) Probar que (6 aa’) U (b U aa"b) (aU bab) (aU bab) y ab (aU baby" son equivalentes 2.2.6, Sobre E= (a, b,c} {son equivalentes las parejas de expresiones regulares de cada apartado? LENGUAJES REGULARES «= 53. (a) (auby' a’ y (aud) ay (b) Bye. © (aUb)c)*y (acu be). @ blab Vac) y (baba) (bU. 2.2.7. Simplificar: @ svaubUauby. cb) @o'y ayy. © (a’by U (b'a)*. @ (auby a(auey 2.2.8. Probar que (aa)“a = a (aa)". 2.2.9, Simplificar las siguientes expresiones regulares: @) (Vag). ©) (©) aevaay ave. (ev aay(ev aay’ (dd) ae Vaa)* (eV aa) Va. © @ueas. ® (€vaay' (evaadava (@) (€Waa) (EU aa) (eV aa) Ue Ua) (h) (eV aa) (@V aa)" (abUb) U (abU). @ (@Vb)(eVaa)' (€ Vaa)U @ UD). @ aay’ av (aay (k) ab (aub)ja’by Ud. @ a'b (ab) a'b)* (aU) (aay Va (aa)’ Va'b (aU) aby" 2.3 AUTOMATA FINITO DETERMINISTA Consideremos el lenguaje regular A representado por c* (a U be)". Si dada una cadena w se nos pregunta si w pertenece a A, debemos analizar no s6lo los carac- teres que aparecen en w, sino también sus posiciones relativas. Por ejemplo, la cadena abc?cFab esta en A, sin embargo cabac*be no lo esté. Podemos construir un diagrama que nos ayude a determinar los distintos miembros del lenguaje. Tal diagrama tiene la forma de un grafo dirigido con informacién adicional afia- dida, y se Hama diagrama de transicién, Los nodos del grafo se aman estados y se usan para sefialar, en ese momento, hasta qué lugar se ha analizado la cade- 54 TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES. na, Las aristas del grafo se etiquetan con caracteres del alfabeto y se Haman transiciones. Si el siguiente caracter a reconocer concuerda con la etiqueta de al- * guna transicién que parta del estado actual, nos desplazamos al estado al que nos Heve la arista correspondiente. Naturalmente, nosotros debemos comenzar por un estado inicial, y cuando se hayan tratado todos los caracteres de la cadena co- mespondiente, necesitamos saber si la cadena es “legal”. Para ello se marcan ciertos estados como estados de aceptacién o estados finales. Si cuando ha sido tratada la cadena en su totalidad terminamos en un estado de aceptacién, enton- ces Ta cadena es “legal”, Marcaremos el estado inicial con una flecha (9) y alre- dedor de los estados de aceptacién trazaremos un circulo. Por ejemplo, el diagrama de la Figura 2.1 acepta todas las cadenas que estan formadas por 0 6 mds aes seguidas por una tnica b. Obsérvese que para toda ca- "dena de la forma a b, para k 20, el recorrido del diagrama termina en un estado de aceptaci6n. El recorrido del mismo con cualquier otra cadena de aes y bes (incluida Ia cadena vacfa) termina en cualguier otro estado, pero éste no es de aceptacién. b Figura 2.1 Considérese el lenguaje A = {(ab)'|i2 1}, el cual esta representado por la expresién regular (ab)*. Obsérvese que una cadena de este lenguaje ha de tener al menos una copia de ab. Por tanto, si se construye un diagrama de transicién Para este lenguaje, el estado inicial no puede ser también estado de aceptaci6n Es ms, si estando en el estado inicial se encuentra el carécter b, esto indica que Ja cadena no puede ser aceptada. Por tanto, hay dos transiciones a partir del esta- do inicial, una para a y otra para b. La transicién correspondiente a , nos leva a un estado en el que se espera encontrar como siguiente cardcter de la cadena, una b. Si se obtiene b, entonces nos desplazaremos a un estado de aceptacidn. Luego, si no hay més caracteres a considerar, se habré identificado una cadena legal. Si no se han agotado los caracteres de la cadena, tomaremos la transicién apropiada que parta de dicho estado. El diagrama de transicién para A es el que se muestra en la Figura 2.2. Pees ees Obsérvese que se tiene un tinico estado de aceptaci6n. Si el andlisis termina en cualquier otro estado, la cadena no esta correctamente construida, Obsérvese, ' | LENGUAJES REGULARES = 55 ee e Figura 2.2 también, que una vez que se identifica un prefijo incorrecto, se realiza un des- plazamiento a un estado que no es de aceptacisn y se permanece en el mismo. Consideremos el lenguaje (ab)". En este caso si se acepta la cadena vacta. Por tanto, el estado inicial también es de aceptacién. El diagrama de transicién correspondiente se muestra en la Figura 2.3 Le Figura 2.3 Vamos a etiquetar los estados del tiltimo diagrama de transicién con Tas le- tras qi, para i=, 1, 2. Obtendremos la Figura 2.4 Podemos representar el diagrama de la Figura 2.4 por medio de una tabla que indica el siguiente estado al que desplazarse, desde un estado combinado con un simbolo de la entrada (Figura 2.5) Figura 2.4 56 TEORIADE AUTOMATAS Y LENGUAJES FORMALES Obsérvese que la tabla para nuestro diagrama de transicién tiene, para cada par estado actual-entrada, un tinico estado siguiente. Por tanto, para cada estado ‘actual y simbolo de entrada, se puede determinar cual seré el estado siguiente. Se puede pensar que el diagrama representa la accién de alguna maquina. Esta méquina puede pasar por diferentes estados. El cambio de estado depende de la entrada y del estado en que se encuentre, Dicha maquina se llama autémata fini- to, una computadora ideal. El automata finito se define en términos de sus esta- dos, la entrada que acepta y su reaccién ante la misma. Hay autématas finitos de dos tipos, deterministas y no deterministas, dependiendo de cémo se defina la capacidad para cambiar de estado. El autémata que corresponde a la Figura 2.5 para (ab)! es determinista. Estado\Bntvada a Figura 25 Formalmente, un autdmaia finito determinista M es una coleccién de cinco elementos. . Unalfabeto de entrada E. Una coleccién finita de estadas Un estado inicial 5. Una coleccion F de estados finales o de aceptacién. re a sie Roe ts . Una funcién 8: QxE—Q que determina el tinico estado siguiente para el par (qi, 6) correspondiente al estado actual y la entrada. Generalmente el término autémata finito determinisia se abrevia como AFD. Usatemos M = (Q, E, s, F, 8) para indicar el conjunto de estados, el alfabe- {o, el estado inicial, el conjunto de estados finales y la funcién asociada con el AFD M. Por ejemplo, e] AFD correspondiente al ejemplo anterior se representa'me- diante M = (Q, 5, s, F, 8), donde = {40, 41, 42} E= {a,b} S=qo : F= {qo} LENGUAJES REGULARES == 57 8 se define mediante la tabla de la Figura 2.6. 8. fae gw | nm | @ u kid % i‘ n ca n Figura 2.6 La caracteristica principal de un AFD es que 8 es una fiuncién. Por tanto, 8 se debe definir para todos los pares (gi, 6) de Q x 5. Esto significa que sea cual sea el estado actual y el cardcter de la entrada, siempre hay un estado siguiente y éste es tinico, Por tanto, para un par (qj, 6) hay uno y sélo un valor de Ja funeién (estado siguiente), 5 (gj, o). En otras palabras, el estado siguiente esta totalmente determinado por la informacién que proporciona el par (g;, 0). Se puede crear un diagrama de transicién a partir de la definicién de un APD. Primero, creamos y etiquetamos un nodo para cada estado. Entonces, para “cada celda g; de la fila correspondiente al estado gi, trazamos una arista desde q; a gp ctiquetada con el cardcter de entrada asociado a qj. Finalmente, se marca el nodo s con una flecha, y se trazan unos circulos en todos los nodos de F para in- dicar cuales son los estados de aceptacidn. Por tanto, el diagrama de transicién para el AFD M= {@,¥, s, F,8}, donde = (40,91) a,b) go} s=4o y 5 representada mediante Ia Figura 2.7 Gla b go | go | aw nm | a | Figura 2.7 se muestra en la Figura 2.8. a Co. — . % (2: Figura 2.8 58 —TEORIA DE AUTOMATAS ¥ LENGUAJES FORMALES Consideremos otro ejemplo. El AFD M = {Q, 8, s, F, 8) representado por Q= (40, 41, 2, G3} E={(a,b} () s= 40 F= (q0,91. 92) y 8 dada por Ja tabla de la Figura 2.9 a b 1 a a |% n | w | ao we ae @ a Figura 2.9 a ee fp 3 b LU Bee Mab (Je a q a 3 Figura 2.10 ae Ejercicios de la Seccién 2.3 2.3.1. Obtener la expresién regular que representa al lenguaje formado por todas la cadenas sobre (a, 6} que tienen un niimero par de bes. Construir el diagrama dc transici6n para este lenguaje. 2.3.2. Construir el diagrama de transicién para el lenguaje dado por * (aU be")". Convertir el diagrama en una tabla como Ja dada en la Figura 2.5, etiquetando los estados go, qi. 2.3.3. Sea M= {@, E, s, F, 8} dado por = (go. 41. 42 93} 2= (0,1) (40) = y 8 dada por la tabla de la Figura 2.11. ze LENGUAJESREGULARES 59. w | | w b % Figura 2.11 Construir el diagrama de transicién. Obtener la secuencia de estados por los que se pasa para aceptar la cadena 110101 (el cardcter del extremo izquierdo es el primero en ser analizado). 2.34. iLa Figura 2.12 es un diagrama de transicién correspondiente a un AFD? ;Por qué o por qué no? b Soo ee ee Oe g : Figuen 2.12 2.4 AFD Y LENGUAJES Para trabajar con los AFD es necesario usar ciertas definiciones y notaciones. Si Mes .un AFD, entonces el lenguaje aceptado por M es L(M) = {we ¥|wes aceptada por M} Por tanto, L (M) es el conjunto de cadenas que hacen que M pase de su esta~ do inicial a un estado de aceptacién. Por ejemplo, el lenguaje aceptado por el AFD (*), presentado en la dltima seccién, es we [a, b}"|w no contiene tres bes consecutivas} LM) Merece a pena hacer hincapié en que L (M) esta formado por todas las c denas aceptadas por M, y no que es un conjunto de cadenas que son todas acep- tadas por M. Para cada (qi, 6) de Q x 5. 8 (gi, ) es un estado perteneciente a Q. y él mis- mo puede ser emparejado con la entrada, Este par se transforma mediante 6 en un nuevo estado de Q. En particular, si go es el estado inicial de M y se tiene 60 —_TEORIA DE AUTOMATAS Y LENGUAJES FORMALES como entrada la cadena 616203, el estado resultante se obtiene mediante Ia apli- cacién de 8 (8 (6 (qo, 6;), 62), 3). Por ejemplo, para el AFD («) de Ja Gltima seccién, se tiene 5 (5 (5 (5 (go, 4). 6). a), b) = qu para la cadena bbab. Obsérvese la aplicacin recursiva de M sobre la cadena. Adviértase, también, que escribir esta expresi6n es un proceso bastante laborioso. Nos pondremos de acuerdo en usar 5 (go, bbab) para abreviar 3 (8 (8 (5 (qo, b), b), a), b). Para ser mas precisos, si gi ¢ Qy wes una cadena de la-forma a; w’ para algiin a € Ey una subcadena w’, definiremos 5 (g;, w) como 6 (8 (q;, a), W’). Diremos que dos AFD My y Mz son equivalentes si L (My) = L (Mg). Por ejemplo, sean My y Mz sobre el alfabeto ¥ = {a}, representados por los siguien- tes diagramas de transiciones a 2 my De ee D) Amibos aceptan el lenguaje a* y, por tanto, son equivalentes. Por otro lado, sea M; dado por el siguiente diagrama a a M3: —» ©—_> @ no es equivalente a M) 0 M> (;por qué?). Obsérvese que Mz dado por el diagra- ma de transicién siguiente a My: —>® es equivalente a M3 y es mas “sencillo” puesto que tiene menos estados. Los problemas del final del capitulo estudian las dificultades que existen para deter- minar si dos AFD son equivalentes y para uansformar un AFD en otro cquiva- Iente que sea mas sencillo Ejercicios de la Seccién 2.4 2.4.1. Sea Mun AFD. Cuando perteneceré € a L (M)? 2.4.2. Construir los AFD que aceptan cada uno de estos lenguajes sobre {a, b} (@)_ {w| toda a de w esté entre dos bes) (b)_ {|v contiene Iv subcadena abab} LENGUAJESREGULARES «= 61 (©) (wlvw no contiene ninguna de las subcadenas aa 0 bb} (@) (w)>v tiene un mimero impar de aes y un nimero par de bes} (e) {w|vw tiene ab y ba como subcadenas} 2.4.3, Sea S el conjunto de todos los AFD sobre el alfabeto E. Sea RC SxS la rela- cin definida de manera que: (Mi, Mz) esté en R si y s6lo si M; es equivalente a ‘Mp (como autdmatas finitos). Probar que R es una relacién de equivalencia en S (Y, por tanto, que la definici6n de equivalencia de AFD es consistente con el uso matemético habitual de los términos), 2.5 AUTOMATA FINITO NO DETERMINISTA Si se permite que desde un estado se realicen cero, una 0 més transiciones me- diante el mismo simbolo de entrada, se dice que el autémata finito es no deter- minista. A veces es mas conveniente disefiar autématas finitos no deterministas (AFN) en lugar de deterministas. Consideremos el lenguaje a’b U ab". Las cade- nas pertenecientes a este lenguaje estan formadas por algunas aes seguidas de una b o por una a seguida de varias bes. El AFD que acepta A se representa por medio del diagrama de transicién de la Figura 2.13. 4 —> 8 a NX § a he >’ is a ‘ b a ba @ % % % » 6 a (J % > Figura 2.13, Aunque el lenguaje es relativamente sencillo, debemos detenermos en poder determinar si este diagrama de transicién corresponde al AFD de A. Primero s debe comprobar que reconoce sélo las cadenas pertenecientes a A, y después representa a un AFD. Para ello, debemos comprobar que las reglas de transicion constituyen una funcién, es decir, que de cada estado parte una y s6lo una transi- cidn para cada simbolo del alfabeto. Consideremos ahora el diagrama de transicién de la Figura 2.14. Obsérvese que este diagrama acepta sdlo las cadenas perienecientes a A. Fijese también que las reglas de transicién no son una funcién de’Q x en Q porque no asigna un estado siguiente a los pares estado-entrada (gs, @), (g3 a), (q3-b), (qos) ¥ (q, b). Es més, existe. mas de un estado siguiente correspondiente al par (qo, 4). 62 TEORIA DE AUTOMATAS Y LENGUAJES FORMALES Po Figura 2.14 Este diagrama de transicidn representa a un AFN. Finalmente, obsérvese que en \ este diagrama es més fécil determinar qué lenguaje se acepta. > Si tratamos de definir el término autémata finito no determinista, veremos. {que la mayor parte de Ja definicién se puede obtener a partir de la de AED. Es decir, tendremos un Conjunto finito de estados Q, un alfabeto de entrada Sun estado inicial o de partida s, un conjunto de estados de aceptacién F y una regla de transicin. La tinica diferencia que existe se encuentra en las reglas de transi- cin. En reglas asocian pares (g, 0) con cero o mds estados. Se pue- que las reglas relacionan pares (g, 6) con colecciones 0 conjuntos de es- tados. Esto significa que la regla es una relacién entre Qx = y Q, o sobre (QZ) x Q. Por tanto, definiremos una auidmata finito no determinista median- te una coleccién de cinco objetos (Q, ©, s, F, A), donde 1. Qes un conjunto finito de estados. Les el allabeto de entrada. 3. s esuno de los estados de Q designado como estado de partida 4, Fesuna coleccién de estados de aceptacién o finales. 5. Aes una relacién sobre (Q x E) x Oy se llama relacién de transicién. Obsérvese que, puesto que A es una relacisn para todo par (g, 6) compuesto por el estado actual y el simbolo de la entrada, A (g, 6) es una coleccién de cero © més estados [es decir, A (q, 0) Figura 2.18 LENGUAJES 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. Ob 68 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 de LENGUAJES 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 sigue LENGUAJESREGULARES = 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 estado 76 —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 determinista LENGUAJES 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’), donde 78 —_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 obtiene 80 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 que 82 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.46 LENGUAJESREGULARES = 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.48 84 —_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 1 0. 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.50 LENGUAJES 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érvese LENGUAJES 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 finite LENGUAJESREGULARES = 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 asociados 92 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 que 94 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. n LENGUAJES 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. Si 98 — 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 estado LENGUAJES 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, llamadas 108 — 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 derecha 110. —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.2 LENGUAJES 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én LENGUAJES 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

También podría gustarte