Teoria de La Computacion (Automatas)

download Teoria de La Computacion (Automatas)

of 137

description

Teoría de la computación

Transcript of Teoria de La Computacion (Automatas)

  • Captulo 1

    Lenguajes formales

    1.1. Alfabetos y palabras

    Un alfabeto es un conjunto finito no vaco cuyos elementos se llaman smbolos.Denotamos un alfabeto arbitrario con la letra .

    Una palabra o cadena sobre un alfabeto es cualquier sucesion finita de ele-mentos de . Admitimos la existencia de una unica palabra que no tiene smbolos,la cual se denomina palabra vaca y se denota con . La palabra vaca desem-pena, en la teora de lenguajes formales, un papel similar al que desempena elconjunto vaco en la teora de conjuntos. Ejemplo Sea = {a, b} el alfabeto que consta de los dos smbolos a y b. Lassiguientes son palabras sobre :

    abaababaaaaaaab

    Observese que aba 6= aab. El orden de los smbolos en una palabra es significativoya que las palabras se definen como sucesiones, es decir, conjuntos secuencial-mente ordenados.

    El conjunto de todas las palabras sobre un alfabeto , incluyendo la palabravaca, se denota por . Ejemplo Sea = {a, b, c}, entonces

    = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.

    Observaciones:

    1. Si bien un alfabeto es un conjunto finito, es siempre un conjunto

    1

  • 2 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    infinito (enumerable). En el caso mas simple, contiene solo un smbolo, = {a}, y = {, a, aa, aaa, aaaa, aaaaa, . . .}.

    2. Hay que distinguir entre los siguientes objetos, que son todos diferentesentre s:

    {} {}

    3. La teora de lenguajes se hace con referencia a un alfabeto fijo (peroarbitrario).

    Notacion usada en la teora de lenguajes denota un alfabeto. denota el conjunto de todas las palabras que se

    pueden formar con los smbolos de .a, b, c, d, e,. . . denotan smbolos del alfabeto .u, v, w, x, y, z,. . . denotan palabras, es decir, sucesiones finitas de

    smbolos de . denota la palabra vaca, es decir, la unica palabra

    en que no tiene smbolos.A,B,C,. . . ,L,M,N,. . . denotan lenguajes (definidos mas adelante).

    1.2. Concatenacion de palabras

    Dado un alfabeto , y dos palabras u, v , la concatenacion de u y v sedenota como u v o simplemente uv y se define descriptivamente as:

    1. Si v = , entonces u = u = u. Es decir, la concatenacion de cualquierpalabra u con la palabra vaca, a izquierda o a derecha, es igual a u.

    2. Si u = a1a2 an, v = b1b2 bm, entonces

    u v = a1a2 anb1b2 bm.

    Es decir, u v es la palabra formada escribiendo los smbolos de u y acontinuacion los smbolos de v.

    La concatenacion de palabras se puede definir inductiva o recursivamente de lasiguiente manera. Si u, v , a , entonces

    1. u = u = u.

  • Captulo 1 Lenguajes formales 3

    2. u (va) = (u v)a.

    Propiedad. La concatenacion de palabras es una operacion asociativa. Es decir,si u, v, w , entonces

    (uv)w = u(vw).

    Demostracion: Se puede hacer escribiendo explcitamente las palabras u, v, w yusando la definicion descriptiva de concatenacion. Tambien se puede dar unademostracion inductiva usando la definicion recursiva de concatenacion (ejercicioopcional).

    1.3. Potencias de una palabra

    Dada u y n N, se define (descriptivamente) un en la siguiente forma

    u0 = ,

    un = uu u n veces Ejercicio Dar una definicion recursiva de un.

    1.4. Longitud de una palabra

    La longitud de una palabra u se denota |u| y se define como el numero desmbolos de u (contando los smbolos repetidos). Es decir,

    |u| ={0, si u = ,n, si u = a1a2 an Ejemplo |aba| = 3, |baaa| = 4. Ejemplo Si w , n,m N, demostrar que

    |wn+m| = |wn|+ |wm|

    Solucion:

    Caso n,m 1. |wn+m| = |ww w n+m veces

    | = (n+m)|w|. Por otro lado,

    |wn|+ |wm| = |ww w n veces

    |+ |ww w m veces

    | = n|w|+m|w|.

  • 4 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    Caso n = 0,m 1. |wn+m| = |w0+m| = |wm|. Por otro lado,|wn|+ |wm| = |w0|+ |wm| = ||+ |wm| = 0 + |wm| = |wm|.

    Caso m = 0, n 1. Similar al caso anterior.Caso n = 0,m = 0. |wn+m| = |w0+0| = || = 0. Por otro lado,

    |wn|+ |wm| = |w0|+ |w0| = ||+ || = 0 + 0 = 0.

    1.5. Inversa de una palabra

    La inversa o transpuesta de una palabra u se denota u1 y se definedescriptivamente as:

    u1 ={, si u = ,an a2a1, si u = a1a2 an.

    De la definicion se observa claramente que la inversa de la inversa de una palabraes la misma palabra, es decir,

    (u1)1 = u para u, . Ejercicio Dar una definicion recursiva de u1. Ejercicio Si u, v , demostrar que (uv)1 = v1u1. Ejercicio Generalizar la propiedad del ejercicio anterior a la concatenacion den palabras.1.6. Subpalabras, prefijos y sufijos

    Una palabra v es una subpalabra o subcadena de u si existen palabras x, ytales que u = xvy. Notese que x o y pueden ser y, por lo tanto, la palabra vacaes una subpalabra de cualquier palabra.

    Un prefijo de u es una palabra v tal que u = vw para alguna palabra w .Se dice que v es un prefijo propio si v 6= u.Similarmente, un sufijo de u es una palabra v tal que u = wv para alguna palabraw . Se dice que v es un sufijo propio si v 6= u.Observese que es un prefijo y un sufijo de toda palabra u ya que u = u = u.Por la misma razon, toda palabra u es prefijo y sufijo de s misma.

  • Captulo 1 Lenguajes formales 5

    Ejemplo Sea = {a, b, c, d}, u = bcbaadb.Prefijos de u :

    bbcbcbbcbabcbaabcbaadbcbaadb

    Sufijos de u :bdbadbaadbbaadbcbaadbbcbaadb

    1.7. Lenguajes

    Un lenguaje L sobre un alfabeto es un subconjunto de , es decir L .Casos extremos:

    L = , (Lenguaje vaco)L = , (Lenguaje de todas las palabras sobre )

    Todo lenguaje L satisface L , y puede ser finito o infinito. Los lenguajesse denotan con letras mayusculas A,B,C, . . . , L,M,N, . . .. Ejemplos Los siguientes son ejemplos de lenguajes sobre los alfabetos dados.

    = {a, b, c}. L = {a, aba, aca}. = {a, b, c}. L = {a, aa, aaa, . . .} = {an : n 1}. = {a, b, c}. L = {, a, aba, ab2a, ab3a, . . .} = {abna : n 1} {}. = {a, b, c, . . . , x, y, z}. L = {u : u aparece en el diccionario espanol}.L es un lenguaje finito.

    = {a, b, c}. L = {u : u no contiene el smbolo c}. Por ejemplo,abbaab L pero abbcaa / L. = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los numeros naturales sepuede definir como un lenguaje sobre , en la siguiente forma:

    N = {u : u = 0 o 0 no es un prefijo de u}.

    Ejercicio Definir el conjunto de los enteros Z = {. . . ,2,1, 0, 1, 2, . . .} comoun lenguaje sobre un alfabeto adecuado.

  • 6 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    1.8. Operaciones entre lenguajes

    Puesto que los lenguajes sobre son subconjuntos de , las operaciones usualesentre conjuntos son tambien operaciones validas entre lenguajes. As, si A y Bson lenguajes sobre (es decir A,B ), entonces los siguientes tambien sonlenguajes sobre :

    A B UnionA B InterseccionAB DiferenciaA = A Complemento

    Estas operaciones entre lenguajes se llaman operaciones conjuntistas paradistinguirlas de las operaciones lingusticas (concatenacion, potencia, inverso,clausura) que son extensiones a los lenguajes de las ya mencionadas operacionesentre palabras.

    1.9. Concatenacion de lenguajes

    La concatenacion de dos lenguajes A y B sobre , notada A B o simplementeAB se define como

    AB = {uv : u A, v B}En general AB 6= BA. Ejemplo Si = {a, b, c}, A = {a, ab, ac}, B = {b, b2}, entonces

    AB = {ab, ab2, ab2, ab3, acb, acb2}.BA = {ba, bab, bac, b2a, b2ab, b2ac}

    Ejemplo Si = {a, b, c}, A = {ba, bc}, B = {bn : n 0}, entoncesAB = {babn : n 0} {bcbn : n 0}.BA = {bnba : n 0} {bnbc : n 0}

    = {bn+1a : n 0} {bn+1c : n 0}= {bna : n 1} {bnc : n 1}.

    Ejercicio De un ejemplo de un alfabeto y dos lenguajes A,B sobre talesque AB = BAPropiedades de la concatenacion de lenguajes. Sean A,B,C lenguajes sobre, es decir A,B,C . Entonces

  • Captulo 1 Lenguajes formales 7

    1. A = A = .2. A {} = {} A = A.3. Propiedad Asociativa.

    A (B C) = (A B) C.

    4. Distributividad de la concatenacion con respecto a la union.

    A (B C) = A B A C.(B C) A = B A C A.

    5. Propiedad distributiva generalizada. Si {Bi}iI es una familia cualquiera delenguajes sobre , entonces

    A iI

    Bi =iI

    (A Bi)iI

    Bi A =iI

    (Bi A).

    Demostracion:

    1. A = {uv : u A, v } = .2. A {} = {uv : u A, v {}} = {u : u A} = A.3. Se sigue de la asociatividad de la concatenacion de palabras.

    4. Caso particular de la propiedad general, demostrada a continuacion.

    5. Demostracion de la igualdad A iI

    Bi =iI

    (A Bi):

    x A iI Bi x = u v, con u A & v iI Bi x = u v, con u A & v Bj, para algun j I x A Bj, para algun j I x iI(A Bi).

    La igualdadiI

    Bi A =iI

    (Bi A) se demuestra de forma similar.

  • 8 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    Observaciones:

    La propiedad asociativa permite escribir concatenaciones de tres o mas len-guajes sin necesidad de usar parentesis.

    En general, no se cumple que A (B C) = A B A C. Es decir, la con-catenacion no es distributiva con respecto a la interseccion. Contraejemplo:A = {a, }, B = {}, C = {a}.Se tiene: A (B C) = {a, } = . Por otro lado,

    A B A C = {a, } {} {a, } {a} = {a, } {a2, a} = {a}.

    Ejercicio Una de las dos contenencias siguientes es verdadera y la otra esfalsa. Demostrar o refutar, segun sea el caso:1. A (B C) A B A C.2. A B A C A (B C).

    1.10. Potencias de un lenguaje

    Dado un lenguaje A sobre (A ), y n N, se define An en la siguienteforma

    A0 = {},An = AA A

    n veces

    Esta definicion generaliza a lenguajes la definicion de potenciacion de palabras.

    1.11. La clausura de Kleene de un lenguaje

    La clausura de Kleene o estrella de Kleene de un lenguaje A, A , esla union de todas las potencias de A y se denota por A.

    A =i0

    Ai = A0 A1 A2 An (Descripcion 1)

    A se puede describir de la siguiente manera

    A = conjunto de todas las concatenacionesde palabras de A, incluyendo

    = {u1 un : ui A, n 0}(Descripcion 2)

  • Captulo 1 Lenguajes formales 9

    De manera similar se define la clausura positiva de un lenguaje A, A , lacual se denota por A+.

    A+ =i1

    Ai = A1 A2 An

    A+ se puede describir de la siguiente manera

    A+ = conjunto de todas las concatenaciones de palabras de A,= {u1 un : ui A, n 1}

    Observese que A = A+ {} y que A = A+ si y solamente si A.

    Propiedades. Sea A un lenguaje sobre , (A ).

    1. A+ = A A = A A

    2. A A = A

    3.(A)n

    = A, para todo n 1.4.

    (A)

    = A.

    5. A+ A+ A+.6.

    (A)+

    = A.

    7.(A+

    )= A.

    8.(A+

    )+= A+.

    Demostracion:

    1.A A = A (A0 A1 A2 )

    = A1 A2 A3 = A+.

    Similarmente se demuestra que A A = A+.2. Si x A A, entonces x = u v, con u A, v A. Entonces, x = u v,

    con u = u1u2 un, ui A, n 0 y v = v1v2 vm, vi A, m 0.De donde

    x = u v = u1 u2 un v1 v2 vm.

  • 10 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    con ui A, vi A, n 0. Por lo tanto, x es una concatenacion de n+mpalabras de A. As que x A.Recprocamente, si x A, entonces x = x A A.Esto prueba la igualdad de los conjuntos A A y A.

    3. Se sigue de la propiedad anterior.

    4. (A)

    =(A)0 (A)1 (A)2

    = {} A A A = A.

    5. La demostracion de esta propiedad es similar a la de la propiedad 2, perocon la restriccion m,n 1.En general, no se tiene la igualdad A+ A+ = A+; mas adelante se mos-trara un contraejemplo.

    6. (A)+

    =(A)1 (A)2 (A)3

    = A A A = A.

    7. (A+

    )=

    (A+

    )0 (A+)1 (A+)2 = {} A+ A+A+ = A (conjuntos contenidos en A+)= A

    8. (A+

    )+=

    (A+

    )1 (A+)2 (A+)3 ,= A+ (conjuntos contenidos en A+)= A+

    Contraejemplo de A+ A+ = A+ .Sea = {a, b}, A = {a}. Se tiene

    A+ = A1 A2 = {a} {aa} {aaa} = {an : n 1}

    Por otro lado,

    A+ A+ = {a, a2, a3, . . . } {a, a2, a3, . . . } = {a2, a3, a4, . . . } = {an : n 2}.

  • Captulo 1 Lenguajes formales 11

    Observacion: Segun las definiciones dadas, tiene dos significados:

    = conjunto de las palabras sobre el alfabeto .

    = conjunto de todas las concatenaciones de palabras de .

    No hay conflicto de notaciones porque las dos definiciones anteriores de danlugar al mismo conjunto. Ejercicio Sean A,B . Demostrar que

    (A B) = (AB) (1.1)

    Ayuda: tener en cuenta tanto la descripcion 1 como la descripcion 2 presentadasarriba.

    1.12. Inverso de un lenguaje

    Dado A un lenguaje sobre , se define A1 de la siguiente forma:

    A1 = {u1 : u A}.

    Propiedades. Sean A y B lenguajes sobre (es decir, A,B ).

    1. (A B)1 = B1 A1.2. (A B)1 = A1 B1.3. (A B)1 = A1 B1.4. (A1)1 = A.

    5. (A)1 = (A1).

    6. (A+)1

    = (A1)+.

    Demostracion:

    1.x (A B)1 x = u1, donde u A B.

    x = u1, donde u = vw, v A,w B. x = (vw)1, donde v A,w B. x = w1v1, donde v A,w B. x B1 A1

  • 12 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    2. Ejercicio

    3. Ejercicio

    4. Ejercicio

    5.

    x (A)1 x = u1, donde u A. x = (u1 u2 un)1, donde los ui A, n 0. x = u1n u12 u11 , donde los ui A, n 0. x (A1).

    6. Ejercicio Ejercicio Se pueden generalizar las propiedades 2 y 3 anteriores para unionese intersecciones arbitrarias, respectivamente?

    1.13. Lenguajes regulares

    Los lenguajes regulares sobre un alfabeto dado son todos los lenguajes quese pueden formar a partir de los lenguajes basicos , {}, {a}, a , por mediode las operaciones de union, concatenacion y estrella de Kleene.

    Podemos dar una definicion recursiva de los lenguajes regulares. Sea un alfa-beto.

    1. , {} y {a}, para cada a , son lenguajes regulares sobre . Estos sonlos denominados lenguajes regulares basicos.

    2. Si A y B son lenguajes regulares sobre , tambien lo son

    A B (union)A B (concatenacion)A (estrella de Kleene)

    Observese que y son lenguajes regulares sobre . Ejemplos Sea = {a, b}. Los siguientes son lenguajes regulares sobre .1. El lenguaje A de todas las palabras que tienen exactamente una a:

    A = {b} {a} {b}.

  • Captulo 1 Lenguajes formales 13

    2. El lenguaje B de todas las palabras que comienzan con b:

    B = {b} {a, b}.

    3. El lenguaje C de todas las palabras que contienen la cadena ba:

    C = {a, b} {ba} {a, b}.

    4. ({a} {b}) {a}.5.

    [({a} {b}) {b}].1.14. Expresiones regulares

    Las expresiones regulares representan lenguajes regulares y su proposito es sim-plificar la escritura de los lenguajes regulares.

    La siguiente es la definicion recursiva de las expresiones regulares sobre unalfabeto dado.

    1. Expresiones regulares basicas:

    es una expresion regular que representa al lenguaje . es una expresion regular que representa al lenguaje {}.a es una expresion regular que representa al lenguaje {a}, a .

    2. Si R y S son expresiones regulares sobre , tambien lo son:

    RSR SR

    RS representa la concatenacion de los lenguajes representados por R y S;RS representa su union, y R representa la clausura de Kleene del lenguajerepresentado por R.

    Ejemplo Dado el alfabeto = {a, b, c},(a b)a(bc)

    es una expresion regular que representa al lenguaje

    ({a} {b}) {a} {bc}.

  • 14 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    Ejemplo Dado el alfabeto = {a, b},( a)(a b)(ba)

    es una expresion regular que representa al lenguaje

    ({} {a}) {a, b} {ba}.

    Ejemplos Los tres primeros lenguajes de la seccion 1.13 podemos representar-los con expresiones regulares:1. El lenguaje A de todas las palabras que tienen exactamente una a:

    A = bab.

    2. El lenguaje B de todas las palabras que comienzan con b:

    B = b(a b).

    3. El lenguaje C de todas las palabras que contienen la cadena ba:

    C = (a b)ba(a b).

    Observacion: La representacion de lenguajes regulares por medio de expre-siones regulares no es unica. Es posible que haya varias expresiones regularesdiferentes para el mismo lenguaje. Por ejemplo, b(a b) y b(b a) representanel mismo lenguaje. Otro ejemplo: las dos expresiones regulares

    (a b) (ab)

    representan el mismo lenguaje en razon de la igualdad (1.1) de la seccion 1.11. Ejemplos Encontrar expresiones regulares que representen los siguientes len-guajes, definidos sobre el alfabeto = {a, b}.1. Lenguaje de todas las palabras que comienzan con b y terminan con a.

    Solucion: b(a b)a.2. Lenguaje de todas las palabras que tienen exactamente dos as.

    Solucion: babab.

  • Captulo 1 Lenguajes formales 15

    3. Lenguaje de todas las palabras que tienen un numero par de smbolos (pa-labras de longitud par).

    Solucion: (aa ab ba bb).4. Lenguaje de todas las palabras que tienen un numero impar de smbolos

    (palabras de longitud impar).

    Solucion: a(aa ab ba bb) b(aa ab ba bb).5. Lenguaje de todas las palabras que tienen un numero par de as.

    Soluciones:b(aba)b.(aba b).(babab) b.b(babab)b.

    Ejemplo Encontrar una expresion regular que represente el lenguaje de todaslas palabras que no contienen la cadena bc, definido sobre el alfabeto = {a, b, c}.Solucion: c(b ac). Ejercicio Encontrar expresiones regulares para los siguientes lenguajes:1. = {a, b}. Lenguaje de todas las palabras que tienen la cadena ab un

    numero par de veces.

    2. = {a, b}. Lenguaje de todas las palabras que tienen un numero impar deas.

    3. = {a, b}. Lenguaje de todas las palabras que tienen un numero par deas o un numero impar de bs.

    4. = {a, b, c}. Lenguaje de todas las palabras que tienen un numero par desmbolos.

    5. = {a, b, c}. Lenguaje de todas las palabras que tienen un numero imparde smbolos.

    6. = {a, b, c}. Lenguaje de todas las palabras que comienzan con c y termi-nan con b.

    7. = {a, b, c}. Lenguaje de todas las palabras que no contienen la cadena cc.

  • 16 Teora de la Computacion (15410) 2003-I. Profesor: Rodrigo De Castro

    8. (Opcional, Difcil!) = {a, b}. Lenguaje de todas las palabras que tienenun numero par de as y un numero impar de bs.

    Observacion:

    No todos los lenguajes sobre un alfabeto dado son regulares. Mas adelante semostrara que el lenguaje

    L = {, ab, aabb, aaabbb, . . . } = {anbn : n 0}

    sobre = {a, b} no se puede representar por medio de una expresion regular, ypor lo tanto, no es un lenguaje regular.

  • Captulo 2

    Automatas finitos

    2.1. Automatas finitos deterministas

    Los automatas finitos son maquinas abstractas que procesan palabras, las cua-les son aceptadas o rechazadas.

    El automata actua leyendo los smbolos escritos sobre una cinta semi-infinita,dividida en casillas, sobre la cual se escribe una palabra de entrada u, un smbo-lo por casilla. El automata posee una cabeza lectora o control finito, queinicialmente escanea o lee la casilla del extremo izquierdo de la cinta.

  • La cabeza lectora del automata posee un cierto numero (finito) de configuracionesinternas, llamadas estados del automata. Entre los estados de un automata sedestacan el estado inicial y los estados finales o estados de aceptacion.

    Formalmente, un automata finito M esta definido por cinco parametros,

    M = (, Q, q0, F, ),

    a saber:

    1. Un alfabeto , llamado alfabeto de cinta. Todas las palabras que procesaM pertenecen a .

    2. Q = {q0, q1, . . . , qn}, conjunto de estados del automata.3. q0 Q, estado inicial.4. F Q, conjunto de estados finales o de aceptacion. F 6= .5. La funcion de transicion del automata

    : Q Q(q, a) 7 (q, a)

    Toda palabra de entrada es procesada completamente, hasta que la cabeza lectoraencuentra la primera casilla vaca. Ejemplo = {a, b}Q = {q0, q1, q2}q0 : estado inicial

    F = {q0, q2}, estados de aceptacion.Funcion de transicion :

    a b

    q0 q0 q1

    q1 q1 q2

    q2 q1 q1

    (q0, a) = q0 (q0, b) = q1

    (q1, a) = q1 (q1, b) = q2

    (q2, a) = q1 (q2, b) = q1

  • Ilustracion del procesamiento de dos palabras de entrada:

    1. u = aabab.

    2. v = aababa.

    Puesto que q2 es un estado de aceptacion, la palabra de entrada u es aceptada.

    Puesto que q1 no es un estado de aceptacion, la palabra de entrada v es rechazada.

    Caso especial: la palabra es la palabra de entrada.

    Puesto que q0 es un estado de aceptacion, la palabra es aceptada.

    En general se tiene: la palabra vaca es aceptada por un automata M si ysolamente si el estado inicial q0 de M tambien es un estado de aceptacion.

    Los automatas finitos descritos arriba se denominan automatas finitos deter-ministas ya que para cada estado q y para cada smbolo a , la funcion detransicion (q, a) siempre esta definida. Es decir, la funcion de transicion deter-mina unvocamente la accion que el automata realiza cuando el control finito seencuentra en un estado q leyendo un smbolo a sobre la cinta:

  • Dado un automata M , el lenguaje aceptado o reconocido por M se denotaL(M) y se define por

    L(M) := {u : M termina el procesamiento de la palabrade entrada u en un estado q F}.

  • 2.2. Diagrama de estados de un automata finito

    Un automata finito se puede representar por medio de un grafo dirigido y eti-quetado. Recuerdese que un grafo es un conjunto de vertices o nodos unidos poraristas o conectores; si las aristas tienen tanto direccion como etiquetas, el grafose denomina grafo dirigido y etiquetado o digrafo etiquetado.

    El grafo de un automata se obtiene siguiendo las siguientes convenciones:

    Los vertices o nodos son los estados del automata.

    El estado q se representa por:

    El estado inicial q0 se representa por:

    Un estado final q se representa por:

    La transicion = (q, a) = p se representa en la forma:

    Dicho grafo se denomina el diagrama de estados del automata. Ejemplo Diagrama de estados del automata de la seccion anterior. = {a, b}Q = {q0, q1, q2}q0 : estado inicial

    F = {q0, q2}, estados de aceptacion.Funcion de transicion :

    a b

    q0 q0 q1

    q1 q1 q2

    q2 q1 q1

    (q0, a) = q0 (q0, b) = q1

    (q1, a) = q1 (q1, b) = q2

    (q2, a) = q1 (q2, b) = q1

  • 2.3. Diseno de automatas

    Para automatas deterministas se adopta la siguiente convencion adicional conrespecto a los diagramas de estados: se supone las aristas no dibujadas explcita-mente conducen a un estado limbo de no-aceptacion. Es decir, en el diagramade estados se indican unicamente las aristas que conduzcan a trayectorias deaceptacion. Esto permite simplificar considerablemente los diagramas.

    En esta seccion se considerara el siguiente tipo de problemas:

    Dado un lenguaje regular L disenar un automata finito deterministaM que acepte o reconozca a L, es decir, tal que L(M) = L.

    Mas adelante se demostrara, en toda su generalidad, que estos problemas siempretienen solucion.

    Ejemplo = {a, b}. L = a = {, a, a2, a3, . . .}.

    Version simplificada:

    Ejemplo = {a, b}. L = a+ = {a, a2, a3, . . .}.

    Version simplificada:

  • Ejemplo = {a, b}. L = lenguaje de las palabras sobre que contienenexactamente dos as. L = babab.

    Ejemplo = {a, b}. L = lenguaje de las palabras sobre que tienen unnumero par de smbolos (palabras de longitud par).

    Ejemplo = {a, b}. L = lenguaje de las palabras sobre que contienen unnumero par de as.

    Ejemplo = {a, b}. L = lenguaje de las palabras sobre que terminan en b.

    Ejercicios Disenar automatas finitos deterministas que acepten los siguienteslenguajes:1. = {a, b}. L = lenguaje de las palabras sobre de longitud impar.2. = {a, b}. L = lenguaje de las palabras sobre que contienen un numero

    impar de bs.

    3. = {a, b, c}. L = lenguaje de las palabras sobre que contienen la cadenabc.

  • 4. = {a, b}. L = lenguaje de las palabras sobre que comienzan con b yterminan con a.

    5. = {a, b}. L = lenguaje de las palabras sobre que contienen un numeropar de as y un numero par de bs. Ayuda: utilizar 4 estados.

    6. = {a, b}. L = ab+.7. = {a, b}. L = ab aba.8. = {a, b}. L = (a ba).9. = {a, b}. L = (ab ba).

  • 2.4. Automatas finitos no deterministas

    Los automatas finitos no-deterministas se asemejan a los AFD, excepto por elhecho de que para cada estado q Q y cada a , la transicion (q, a) puedeconsistir en mas de un estado o puede no estar definida. Mas concretamente, unautomata finito no-determinista (AFN) esta definido por

    M = (, Q, q0, F,)

    donde

    1. es el alfabeto de cinta.

    2. Q es un conjunto (finito) de estados.

    3. q0 Q es el estado inicial.4. 6= F Q es el conjunto de estados finales o estados de aceptacion.5.

    : Q (Q)(q, a) 7 (q, a) = {qi1 , qi2 , . . . , qik}

    donde (Q) es el conjunto de subconjunto de Q.

    Puede suceder que (q, a) = , lo cual significa que, si durante el procesamientode una palabra de entrada u, M ingresa al estado q leyendo sobre la cinta elsmbolo a, el computo se aborta.

    Computo abortado:

    La nocion de diagrama de estados para un AFN se define de manera analoga alcaso AFD, pero puede suceder que desde un mismo nodo (estado) salgan dos omas aristas con la misma etiqueta:

  • Un AFN M puede procesar una palabra de entrada u de varias maneras.Sobre el diagrama de estados del automata, esto significa que pueden existir variastrayectorias etiquetadas con los smbolos de u.

    La siguiente es la nocion de aceptacion para automatas no deterministas:

    L(M) = lenguaje aceptado o reconocido por M= {u : existe por lo menos un computo completo

    de u que termina en un estado q F}

    Es decir, para que una palabra u sea aceptada, debe existir por lo menos uncomputo en el que u sea procesada completamente y que finalice estando M enun estado de aceptacion.

    Ejemplo Sea M el siguiente AFN: a b

    q0 {q0, q1, q3} q1 {q1} {q2}q2 {q1, q2}q3 {q3}

    Para la palabra de entrada u = abb, existen computos que conducen al rechazo,computos abortados y computos que terminan en estados de aceptacion. Segunla definicion de lenguaje aceptado, u L(M).

  • Ejemplo En un ejemplo de la seccion 2.3 se diseno el siguiente AFD que aceptael lenguaje de las palabras sobre = {a, b} que terminan en b:

    Un AFN que acepta el mismo lenguaje y que es, tal vez, mas facil de concebir, esel siguiente:

  • Este automata se asemeja a la expresion regular (a b)b. Ejemplo Considerese el lenguaje L = aba+ sobre el alfabeto = {a, b}. Elsiguiente AFN M satisface L(M) = L.

    Ejemplo = {a, b}, L = (ab aba). El siguiente AFN acepta a L.

    Otro AFN que acepta el mismo lenguaje y que tiene solo tres estados es el sigui-ente:

    Ejercicios Disenar AFDs o AFNs que acepten los siguientes lenguajes:1. = {a, b, c}, L = lenguaje de las palabras sobre que no contienen la

    cadena bc. Ayuda: considerar la expresion regular de L dada en la seccion1.14.

    2. = {a, b}, L = ab+a.3. = {a, b}, L = a(a ab).

  • 4. = {a, b, c}, L = abc.

  • 2.5. Equivalencia computacional entre los AFD

    y los AFN

    En esta seccion se mostrara que los modelos AFD y AFN son computacionalmen-te equivalentes. En primer lugar, es facil ver que un AFD M = (, Q, q0, F, )puede ser considerado como un AFN M = (, Q, q0, F,) definiendo (q, a) ={(q, a)} para cada q Q y cada a . Para la afirmacion recproca tenemos elsiguiente teorema:

    2.5.1 Teorema. Dado un AFN M = (, Q, q0, F,) se puede construir un AFDM equivalente a M , es decir, tal que L(M) = L(M ).

    Este teorema, cuya demostracion se dara en detalle mas adelante, establece queel no-determinismo se puede eliminar. Dicho de otra manera, los automatas de-terministas y los no deterministas aceptan los mismos lenguajes. La idea de lademostracion consiste en considerar cada conjunto de estados {p1, . . . , pj} delautomata no-determinista como un unico estado del nuevo automata determinis-ta. El siguiente ejemplo ilustra el procedimiento. Ejemplo Consideremos el AFN M presentado en la seccion 2.4, tal queL(M) = ab a+ sobre = {a, b}:

    La funcion de transicion de M es:

    a b

    q0 {q1, q2} q1 {q1}q2 {q2}

    El nuevo AFD M construido a partir de M y equivalente a M tiene (por lomenos) un estado mas: {q1, q2} y su funcion de transicion tiene el siguienteaspecto:

  • a b

    q0 {q1, q2} q1 {q1}q2 {q2}

    {q1, q2} {q2} {q1}El diagrama de estados de este automata es:

    Para mayor simplicidad, podemos cambiar los nombres de los estados de esteautomata:

    Ejercicios Disenar AFDs equivalentes a los ejemplos de AFNs construidosen la seccion 2.4.Para la demostracion del teorema, conviene extender la definicion de la funcionde transicion, tanto de los automatas deterministas como de los no-deterministas.

    2.5.2 Definicion. Sea M = (, Q, q0, F, ) un AFD. La funcion de transicion

    : Q Q se extiende a una funcion : Q Q por medio de lasiguiente definicion recursiva:

  • (q, ) = q, q Q,(q, a) = (q, a), q Q, a ,(q, wa) = ((q, w), a), q Q, a , w .

    Segun esta definicion, para una palabra de entrada w , (q0, w) es el estadoen el que el automata termina el procesamiento de w. Por lo tanto, podemosdescribir el lenguaje aceptado por M de la siguiente forma:

    L(M) = {w : (q0, w) F}.

    Notacion. Sin peligro de ambiguedad, la funcion extendida (q, w) se notara sim-plemente (q, w).

    2.5.3 Definicion. Sea M = (, Q, q0, F,) un AFN. La funcion de transicion : Q (Q) se extiende inicialmente a conjuntos de estados. Para a y S F se define

    (S, a) :=qS

    (q, a)

    Podemos extender a una funcion : Q (Q), de manera similar acomo se hizo para AFDs. Recursivamente,

    (q, ) = {q}, q Q,(q, a) = (q, a), q Q, a ,(q, wa) = ((q, w), a) =

    p(q,w)

    (p, a), q Q, a , w .

    Segun esta definicion, para una palabra de entrada w , (q0, w) es el conjuntode los posibles estados en los que terminan los computos completos de w. Si elcomputo se aborta durante el procesamiento de w, se tendra (q0, w) = .Podemos describir el lenguaje aceptado por M de la siguiente forma:

    L(M) = {w : (q0, w) F 6= }.

    Notacion. Sin peligro de ambiguedad, la funcion extendida (q, w) se notara sim-plemente (q, w).

    A continuacion se hara la demostracion del teorema 2.5.1Demostracion: Dado el AFN M = (, Q, q0, F,), construimos el AFD M

    as:

    M = (,(Q), {q0}, F, )

  • donde : (Q) (Q)

    (S, a) 7 (S, a) := (S, a).F = {S (Q) : S F 6= }.

    Se demostrara que L(M) = L(M ) probando que, para toda palabra w ,

    ({q0}, w) = (q0, w).

    La anterior igualdad se demostrara por induccion sobre w.

    Para w = , claramente se tiene ({q0}, ) = (q0, ) = {q0}.Para w = a, a , se tiene

    ({q0}, a) = ({q0}, a) = (q0, a).

    Supongase (hipotesis de induccion) que ({q0}, w) = (q0, w), y que a .

    ({q0}, wa) = (({q0}, w), a) (definicion de la extension de )= (({q0}, w), a) (hipotesis de induccion)= (({q0}, w), a) (definicion de )= ({q0}, wa) (definicion de la extension de )= (q0, wa) (definicion de la extension de )

    Esto demuestra el teorema.

  • 2.6. Automatas con transiciones

    Un automata finito con transiciones (AFN-) es un AFN M

    M = (, Q, q0, F,)

    en el que la funcion de transicion esta definida como

    : Q ( {}) (Q).La transicion (q, ) = {pi1 , . . . , pin}, llamada transicion , tiene el siguientesignificado computacional: estando en el estado q, el automata puede cambiar auno cualquiera de los estados pi1 , . . . , pin , independientemente del smbolo ledo ysin mover la cabeza lectora. Dicho de otra manera, las transiciones permiten alautomata cambiar internamente de estado sin consumir el smbolo ledo sobrela cinta.

    En el diagrama de estados, las transiciones dan lugar a aristas con etiquetas .Una palabra de entrada w es aceptada por un AFN- si existe por lo menos unatrayectoria cuyas etiquetas son exactamente los smbolos de w, intercalados concero, uno o mas s.

    El modelo AFN-, al igual que el AFN, permite multiples computos para unamisma palabra de entrada, as como computos abortados. Pero, a diferencia delos AFD y los AFN, en los AFN- pueden existir computos infinitos, es decircomputos que nunca terminan. Ejemplo M :

    Ejemplos de palabras aceptadas por M :

    u = aabv = abaaw = abbaa

  • Computos de aceptacion de u = aab y v = abaa:

    Los AFN- permiten aun mas libertad en el diseno de automatas, especialmentecuando hay numerosas concatenaciones.

    Ejemplo = {a, b, c}.L = abc. AFN que acepta a L:

    AFN- que acepta a L:

  • Ejemplo = {a, b, c}. L =lenguaje de todas las palabras sobre que tienenun numero par de as o un numero par de bs.AFD que acepta el lenguaje de las palabras con un numero par de as:

    AFD que acepta el lenguaje de las palabras con un numero par de bs:

    AFN- que acepta el lenguaje de las palabras con un numero par de as o unnumero par de bs:

    Ejercicios Disenar AFN- que acepten los siguientes lenguajes:1. (ab b)ab, sobre = {a, b}.2. a(a c)a, sobre = {a, b, c}.3. ab ba b(ab ba), sobre = {a, b}.4. abbab(ab ba), sobre = {a, b}.5. (a aba bb)a(ab ba), sobre = {a, b}.

  • 2.7. Equivalencia computacional entre los

    AFN- y los AFN

    En esta seccion se mostrara que el modelo AFN- es computacionalmente equi-valente al modelo AFN. O dicho mas graficamente, las transiciones se puedeneliminar, anadiendo transiciones que las simulen, sin alterar el lenguaje aceptado.

    En primer lugar, un AFN M = (, Q, q0, F,) puede ser considerado como unAFN- en el que, simplemente, hay cero transiciones . Para la afirmacion recpro-ca tenemos el siguiente teorema:

    2.7.1 Teorema. Dado un AFN- M = (, Q, q0, F,), se puede construir unAFN M equivalente a M , es decir, tal que L(M) = L(M )

    Para construir M a partir de M se requiere la nocion de -clausura de unestado. Para un estado q Q, la -clausura de q, notada [q], es el conjuntode estados de M a los que se puede llegar desde q por 0, 1 o mas transiciones .Notese que, en general, [q] 6= (q, ). Por definicion, q [q]. La -clausura deun conjunto de estados {q1, . . . , qk} se define por:

    [{q1, . . . , qk}] := [q1] [qn].

    Ademas, [] := . El AFN M se define como

    M = (, Q, q0, F ,)

    donde : Q (Q)

    (q, a) 7 (q, a) := [([q], a)].y

    F = {q Q : [q] F 6= }.Es decir, los estados finales de M incluyen los estados finales de M y aquellosestados desde los cuales se puede llegar a un estado final por medio de una o mastransiciones .Como se puede apreciar, la construccion de M a partir de M es puramentealgortmica. Ejemplo Vamos a ilustrar el anterior algoritmo con el AFN- M , presentadoen el segundo ejemplo de la seccion 2.6.

  • L(M) = abc sobre = {a, b, c}.Las -clausuras de los estados vienen dadas por:

    [q0] = {q0, q1, q2}.[q1] = {q1, q2}.[q2] = {q2}.

    La funcion de transicion : Q {a, b, c} ({a, b, c}) es:(q0, a) = [([q0], a)] = [({q0, q1, q2}, a)] = [{q0}] = {q0, q1, q2}.(q0, b) = [([q0], b)] = [({q0, q1, q2}, b)] = [{q1}] = {q1, q2}.(q0, c) = [([q0], c)] = [({q0, q1, q2}, c)] = [{q2}] = {q2}.(q1, a) = [([q1], a)] = [({q1, q2}, a)] = [] = .(q1, b) = [([q1], b)] = [({q1, q2}, b)] = [{q1}] = {q1, q2}.(q1, c) = [([q1], c)] = [({q1, q2}, c)] = [{q2}] = {q2}.(q2, a) = [([q2], a)] = [({q2}, a)] = [] = .(q2, b) = [([q2], b)] = [({q2}, b)] = [] = .(q2, c) = [([q2], c)] = [({q2}, c)] = [{q2}] = {q2}.

    El automata M as obtenido es el siguiente:

    Ejercicios Construir AFNs equivalentes a los siguientes AFN-s.1.

  • 2.

    3. El automata presentado en la seccion 2.6, que acepta el lenguaje de todaslas palabras sobre = {a, b} que tienen un numero par de as o un numeropar de bs.

  • 2.8. Teorema de Kleene. Parte I

    En las secciones anteriores se ha mostrado la equivalencia computacional de losmodelos AFD, AFN y AFN-, lo cual puede ser descrito en la forma:

    AFD AFN AFN-Esto quiere decir que para cada automata de uno de estos tres modelos se puedenconstruir automatas equivalentes en los otros modelos. Por lo tanto, los modelosAFD, AFN y AFN- aceptan exactamente los mismos lenguajes. El teorema deKleene establece que tales lenguajes son precisamente los lenguajes regulares.

    2.8.1. Teorema de Kleene. Un lenguaje es regular si y solo si es aceptado porun automata finito (AFD o AFN o AFN-).

    Para demostrar el teorema, consideraremos las dos direcciones por separado. Pri-mero demostraremos que dado un lenguaje regular L, existe un AFN- tal queL(M) = L. En la seccion 2.11, demostraremos que a partir de un AFDM se pue-de encontrar una expresion regular R tal que L(M) = R. En ambas direcciones,las demostraciones son constructivas, lo que permite presentar las construccionesde este captulo en la siguiente forma:

    Parte I. Dada una expresion regular R sobre un alfabeto , se puede construirun AFN- M tal que el lenguaje aceptado por M sea exactamente el lenguajerepresentado por R.

  • Demostracion: Puesto que la definicion de las expresiones regulares se hace re-cursivamente, la demostracion se lleva a cabo razonando por induccion sobre R.

    Para las expresiones regulares basicas, podemos construir facilmente automatasque acepten los lenguajes representados.

    El automata

    acepta el lenguaje , es decir, el lenguaje representado por la expresion regularR = .El automata

    acepta el lenguaje {}, es decir, el lenguaje representado por la expresion regularR = .

    El automata

    acepta el lenguaje {a}, a , es decir, el lenguaje representado por la expresionregular R = a.

    Paso inductivo: supongase que para las expresiones regulares R y S existen AFN-M1 yM2 tales que L(M1) = R, L(M2) = S. Esquematicamente vamos a presentarlos automatas M1 y M2 en la siguiente forma:

    Los estados finales o de aceptacion se dibujan a la derecha, pero cabe advertirque el estado inicial puede ser tambien un estado de aceptacion. Obviando esedetalle, podemos ahora obtener AFN- que acepten los lenguajes R S, L S yL.

  • Automata que acepta R S. Los automatas M1 y M2 se conectan enparalelo y los estados finales del nuevo automata son los estados finales deM1 junto con los de M2:

    Automata que acepta R S. Los automatas M1 y M2 se conectan en seriey los estados finales del nuevo automata son unicamente los estados finalesde M2:

    Automata que acepta R. Los estados finales del nuevo automata son losestados finales de M1 junto con el estado inicial.

    Esto concluye la demostracion de la parte I del teorema de Kleene. En la sigui-ente seccion se presentan ejemplos concretos del procedimiento utilizado en lademostracion.

  • 2.9. Ejemplos de la parte I del Teorema de Klee-

    ne

    De acuerdo con las construcciones de la demostracion de la parte I del Teoremade Kleene, un AFN- que acepta el lenguaje a es:

    Para simplificar las construcciones utilizaremos, en su lugar, el automata

    Ejemplo Vamos a utilizar el procedimiento del teorema para construir unAFN- que acepte el lenguaje a(ab ba) a(b a) sobre elalfabeto {a, b}.Automata que acepta ab:

    Automata que acepta ba:

    Automata que acepta ab ba:

  • Automata que acepta (ab ba):

    Automata que acepta a(ab ba):

  • Automata que acepta b a:

    Automata que acepta a(b a):

    Automata que acepta a(ab ba) a(b a):

  • Ejercicios Disenar automatas AFN- que acepte los siguientes lenguajes so-bre = {a, b, c}:1. a(b ab aba)c (a b)(a ac).2. ca(a ba)(abc) c(a cbc).

  • 2.10. Lema de Arden

    Vamos a utilizar el siguiente resultado, conocido como lema de Arden, parademostrar la segunda parte del teorema de Kleene.

    2.10.1. Lema de Arden. Si A y B son lenguajes sobre un alfabeto y 6 A,entonces la ecuacion X = AX B tiene una unica solucion dada por X = AB.

    Demostracion: Si X es una solucion de X = AXB, entonces B AXB = X.Tambien se tiene AX X; a partir de esta contenencia y usando induccion sobren, se puede demostrar que AnX X para todo n N. Por lo tanto

    AnB AnX X

    para todo n N. As que

    AB =

    (n0

    An

    )B =

    n0

    AnB X.

    Esto muestra que toda solucion deX = AXB contiene a AB, y es facil verificarque, de hecho, AB es una solucion:

    A(AB) B = A+B B = (A+ )B = AB.

    Para la unicidad, demostraremos que si AB C, con C AB = , es unasolucion de la ecuacion, entonces C = .

    AB C = A(AB C) B= A+B AC B= (A+ )B AC= AB AC

    Intersectando con C ambos lados de la anterior igualdad, se tiene:

    (AB C) C = (AB C) (AC C)C = AC C

    Por lo tanto, C AC. Si se tuviera C 6= , existira una palabra u C delongitud mnima. Entonces u = vw, con v A, w C. Por hipotesis, v 6= ; porconsiguiente |w| < |u|. Esta contradiccion muestra que necesariamente C = ,tal como se quera. Ejemplo La ecuacion X = aX bab tiene solucion unica X = abab.

  • Ejemplo La ecuacion X = a2X b+X ab se puede escribir en la formaX = (a2 b+)X ab. Por el lema de Arden tiene solucion unicaX = (a2 b+)ab. Ejemplo La ecuacion X = ab2X aX ab ba se puede escribir comoX = (ab2a)X (abba). Por lema de Arden tiene solucion unicaX = (ab2 a)(ab ba). Ejercicios En los ejercicios 1. y 2. encontrar las soluciones (unicas) de lassiguientes ecuaciones.1. X = aX bX.2. X = aX bab bX a.3. Demostrar de si A, entonces Y es una solucion de la ecuacion

    X = AX B si y solo si Y = A(B D) para algun D .

  • 2.11. Teorema de Kleene. Parte II

    En esta seccion demostraremos que para todo AFN M = (, Q, q0, F,) existeuna expresion regular R tal que L(M) = R.

    El automata M tiene un unico estado inicial y cambiando dicho estado surgennuevos automatas. Para cada qi Q, sea Mi el automata que coincide con Mpero con estado inicial qi. Mas precisamente, Mi = (, Q, qi, F,). Al lenguajeaceptado por Mi lo denotaremos Ai; es decir, L(Mi) = Ai. En particular, A0 =L(M). Puesto que los estados de aceptacion no se han alterado, se tiene que

    Ai = {w : (qi, w) F 6= }.Veremos que cada Ai se puede representar con una expresion regular y por lotanto lo podemos escribir como

    Ai =

    a

    {aAj : qj (qi, a)}, si qi 6 F,a

    {aAj : qj (qi, a)} . si qi F.(2.1)

    Si Q = {q0, q1, . . . , qn}, las igualdades de la forma (2.1) dan lugar a un sistemade n+ 1 ecuaciones con n+ 1 incognitas (los Ai):

    A0 = C01A0 C02A1 C0nAn ()A1 = C11A0 C12A1 C1nAn ()

    ......

    An = Cn1A0 Cn2A1 CnnAn ()donde cada coeficiente Cij o es o es un smbolo de . El termino se anade auna ecuacion solamente si el estado correspondiente es un estado de aceptacion.Utilizando sucesivas veces el lema de Arden, se puede mostrar que este sistemade ecuaciones siempre se puede solucionar y su solucion es unica. En efecto,comenzando con la ultima ecuacion, se escribe An en terminos de los demasAi, para lo cual se usa el lema de Arden si es necesario. Este valor de An sereemplaza en las demas ecuaciones y el sistema se reduce a n ecuaciones con nincognitas. Similarmente, An1 se escribe en terminos de los demas Ai, usando ellema de Arden si es necesario, y tal valor se reemplaza en las ecuaciones restantes.Prosiguiendo de esta manera, el sistema original se reduce a una sola ecuacioncuya incognita es precisamente A0. Esta ecuacion se soluciona recurriendo unavez mas al lema de Arden. Puesto que los coeficientes Cij diferentes de sonsmbolos de , se obtiene una expresion regular R tal que L(M) = A0 = R. Ejercicio Porque la anterior demostracion no es valida para automatas contransiciones ?.

  • 2.12. Ejemplos de la parte II del Teorema de

    Kleene

    A continuacion ilustraremos el procedimiento de la demostracion de la seccion2.11 para encontrar L(M) a partir de un AFN M = (, Q, q0, F,) dado. Ejemplo Considerese el siguiente AFN M :

    Por simple inspeccion sabemos que L(M) = (a b)a2(a b), pero utilizaremosel metodo descrito para encontrar explcitamente L(M).

    El sistema de ecuaciones asociado con el automata M es:(1) A0 = aA0 bA0 aA1(2) A1 = aA2(3) A2 = aA2 bA2

    (3) se puede escribir como

    (4) A2 = (a b)A2 Lema de Arden en (4):

    (5) A2 = (a b) = (a b)(5) en (2):

    (6) A1 = a(a b)(6) en (1):

    (7) A0 = (a b)A0 a2(a b)Lema de Arden en (7):

    A0 = (a b)a2(a b)

  • Ejemplo Encontrar una expresion regular para el lenguaje aceptado por elsiguiente AFN M :

    El sistema de ecuaciones asociado con el automata M es:(1) A0 = aA1(2) A1 = aA2(3) A2 = bA2 bA3 (4) A3 = aA3 bA4(5) A4 = aA2 aA3

    (5) en (4):

    (6)A3 = aA3 baA2 baA3 b

    = (a ba)A3 baA2 bLema de Arden en (6):

    (7)A3 = (a ba)(baA2 b)

    = (a ba)baA2 (a ba)b(7) en (3):

    (8) A2 = bA2 b(a ba)baA2 b(a ba)b El sistema original de cinco ecuaciones y cinco incognitas se reduce al sistema detres ecuaciones y tres incognitas formado por (1), (2) y (8).

    La ecuacion (8) se puede escribir como

    (9) A2 =[b b(a ba)ba]A2 b(a ba)

    Lema de Arden en (9):

    (10) A2 =[b b(a ba)ba][b(a ba)b ]

    se sustituye (10) en (2) y luego el valor de A1 obtenido se sustituye en (1),obtenemos finalmente:

    A0 = a2[b b(a ba)ba][b(a ba)b ]

  • Ejemplo Encontrar una expresion regular para el lenguaje L de todas laspalabras sobre = {a, b} que tienen un numero par de as y unnumero par de bs.

    Este automata da lugar al siguiente sistema de ecuaciones:(1) A0 = aA1 bA2 (2) A1 = aA0 bA3(3) A2 = aA3 bA0(4) A3 = aA2 bA1

    (4) en (3):

    (5) A2 = a2A2 abA1 bA0

    (4) en (2):

    (6) A1 = aA0 baA2 b2A1El sistema original de cuatro ecuaciones y cuatro incognitas se reduce a un sistemade tres ecuaciones y tres incognitas, a saber:

    (1) A0 = aA1 bA2 (6) A1 = aA0 baA2 b2A1(5) A2 = a

    2A2 abA1 bA0

    Lema de Arden en (5):

    (7)A2 = (a

    2)(abA1 bA0)= (a2)abA1 (a2)bA0

    (7) en (6):

    (8) A1 = aA0 ba(a2)abA1 ba(a2)bA0 b2A1

  • (7) en (1):

    (9) A0 = aA1 b(a2)abA1 b(a2)bA0 El sistema se reduce ahora a dos ecuaciones:

    (9) A0 = aA1 b(a2)abA1 b(a2)bA0 (8) A1 = aA0 ba(a2)abA1 ba(a2)bA0 b2A1

    =(ba(a2)ab b2)A1 aA0 ba(a2)bA0

    Lema de Arden en (8):

    (10)A1 =

    (ba(a2)ab b2)(aA0 ba(a2)bA0)

    =(ba(a2)ab b2)aA0 (ba(a2)ab b2)ba(a2)bA0

    Haciendo R =(ba(a2)ab b2), (10) se puede escribir como

    (11) A1 = RaA0 Rba(a2)bA0Lema de Arden en (9):

    (12)A0 =

    (b(a2)b

    )(aA1 b(a2)abA1

    )=

    (b(a2)b

    )aA1

    (b(a2)b

    )b(a2)abA1

    (b(a2)b

    )Haciendo S =

    (b(a2)b

    ), (12) se puede escribir como:

    (13) A0 = SaA1 Sb(a2)abA1 SAl sustituir (11) en (13), el sistema original se reduce a una sola ecuacion:

    (14) A0 = Sa[RaA0 Rba(a2)bA0

    ] Sb(a2)ab[RaA0 Rba(a2)bA0] SAgrupando los terminos en los que aparece A0 y factorizando, se obtiene

    (15) A0 =[SaRa SaRba(a2)b Sb(a2)abRa Sb(a2)abRba(a2)b]A0 S

    Lema de Arden en (15):

    (16) A0 =[SaRa SaRba(a2)b Sb(a2)abRa Sb(a2)abRba(a2)b]S

    Si sustituimos R y S en (16) obtenemos una expresion regular para L. Ejercicios Utilizar el lema de Arden para encontrar una expresion regularpara los siguientes lenguajes sobre = {a, b}:(a) El lenguaje L de todas las palabras que tienen un numero par de as y un

    numero impar de bs.

    (b) El lenguaje L de todas las palabras que tienen un numero par de as o unnumero impar de bs.

  • Ejercicios En los siguientes ejercicios utilizar el Lema de Arden para en-contrar una expresion regular del lenguaje aceptado por el AFNrespectivo.

    1. AFN:

    2. AFN:

    3. AFN:

  • Captulo 3

    Otras propiedades de loslenguajes regulares

    3.1. Lema de bombeo

    El llamado lema de bombeoes una propiedad de los lenguajes regulares que esmuy util para demostrar que ciertos lenguajes no son regulares.

    3.1.1. Lema de bombeo. Para todo lenguaje regular L (sobre un alfabeto dado) existe una constante n N, llamada constante de bombeo para L, tal que todapalabra w L, con |w| n, satisface la siguiente propiedad:

    (B)

    {w se puede descomponer como w = uvx, con |uv| n, v 6= ,y para todo i 0 se tiene uvix L.

    Demostracion: Por el Teorema de Kleene y por los teoremas de equivalencia delos modelos AFD, AFN y AFN-, existe un AFD M tal que L(M) = L. Sea

    n = # de estados de M.

    Si w L y |w| n, entonces durante el procesamiento completo de w, hay por lomenos un estado que se repite. Sea q el primer estado que se repite. Tal como semuestra en la siguiente grafica, w se puede descomponer como w = uvx, donde|uv| n, v 6= .

  • Notese que tanto u como x pueden ser la palabra vaca , pero v 6= . Ademas,la palabra v se puede bombear, en el sentido de que uvix es aceptada por Mpara todo i 0. En el diagrama de estados, se puede visualizar esta propiedadde bombeo de v:

    Uso del lema de bombeo. El lema de bombeo se puede usar para concluirque un cierto lenguaje dado L no es regular, recurriendo a un razonamientopor contradiccion (o reduccion al absurdo). El razonamiento empleado tiene lasiguiente forma:

    1. Si L fuera regular, existira una constante de bombeo n para L.

    2. Se escoge una palabra adecuada w L y se aplica la propiedad (B) dellema de bombeo, descomponiendo w como

    w = uvx, v 6= , |uv| n.

    3. Se llega a la siguiente contradiccion:

    (I) Por el lema de bombeo, uvix L, para todo i 0.(II) uvix no puede estar en L, para algun i I.

  • Ejemplo Usar el lema de bombeo para demostrar que el lenguajeL = {aibi : i 0} no es un lenguaje regular.Solucion: Si L fuera regular, existira una constante de bombeo n para L. Seaw = anbn L. Entonces w se puede descomponer como w = uvx, con |v| 1,|uv| n, y para todo i 0, uvix L. Por lo tanto, u y v constan unicamente deas:

    u = ar, para algun r 0,v = as, para algun s 1.

    Entonces,x = an(r+s)bn = anrsbn.

    De donde,uv2x = arasasanrsbn = ar+2s+nrsbn = an+sbn.

    Por el lema de bombeo, la palabra uv2x L pero como s 1, an+sbn no esta enL. Esta contradiccion muestra que L no puede ser regular. Ejemplo Demostrar que el lenguaje de los palndromes sobre {a, b} no es unlenguaje regular. Recuerdese que un Palndrome es una palabra wtal que w = w1.

    Solucion: Si L fuera regular, existira una constante de bombeo n para L. Seaw = anban L. Entonces w se puede descomponer como w = uvx, con |v| 1,|uv| n, y para todo i 0, uvix L. Por lo tanto, u y v constan unicamente deas:

    u = ar, para algun r 0,v = as, para algun s 1.

    Entonces,x = an(r+s)ban = anrsban.

    De donde,

    uv2x = arasasanrsban = ar+2s+nrsban = an+sban.

    Por el lema de bombeo, la palabra uv2x L, pero como s 1, an+sbn no es unpalndrome. En conclusion, L no puede ser regular. Ejemplo Demostrar que el lenguaje L = {ai2 : i 0} no es regular.Solucion: Si L fuera regular, existira una constante de bombeo n para L. Seaw = an

    2 L. Entonces w se puede descomponer como w = uvx, con |v| 1,|uv| n. Por el lema de bombeo, uv2x L, pero por otro lado,

    n2 < n2 + |v| = |uvx|+ |v| = |uv2x| n2 + |uv| n2 + n < (n+ 1)2.Esto quiere decir que el numero de smbolos de la palabra uv2x no es un cuadrado

  • perfecto y, por consiguiente, uv2x 6 L. En conclusion, L no es regular. Ejercicios Demostrar que los siguientes lenguajes no son regulares:1. L = {w {a, b} : w tiene el mismo numero de as que de bs}.2. L = {aibjai : i 0, j 0}, sobre = {a, b}.3. L = {a2ibi : i 0}, sobre = {a, b}.4. L = {biabia : i 0}, sobre = {a, b}.5. L = {aibjci+j : i 0, j 0}, sobre = {a, b, c}.6. L = {ww : w }, siendo = {a, b}.7. L = {ww1 : w }, siendo = {a, b}.8. L = {ai : i es un numero primo}, sobre = {a, b}.

    3.3. Propiedades de clausura

    El siguiente teorema establece que la coleccion R () de los lenguajes regu-lares sobre un alfabeto es cerrada bajo todas las operaciones booleanas.

    3.3.1 Teorema. Si L,L1 y L2 son lenguajes regulares sobre un alfabeto ,tambien lo son:

    (1) L1 L2 (union)(2) L1L2 (concatenacion)(3) L (estrella de Kleene)(4) L+ (clausura positiva)(5) L = \ L (complemento)(6) L1 L2 (interseccion)(7) L1 \ L2 (diferencia)(8) L1 L2 (diferencia simetrica)

    Demostracion:

    (1), (2) y (3) se siguen de la definicion de los lenguajes regulares.

    (4) Por (2), (3) y L+ = LL.

    (5) Por el Teorema de Kleene y por los teoremas de equivalencia de los modelosAFD, AFN y AFN-, existe un AFDM = (, Q, q0, F, ) tal que L(M) = L. Para

  • construir un AFD que acepte el complemento de L basta intercambiar los estadosfinales con los no finales. Sea M = (, Q, q0, Q \ F, ); entonces L(M ) = L.(6) Se sigue de L1 L2 = L1 L2, (1) y (5).(7) Se sigue de L1 \ L2 = L1 L2, (5) y (6).(8) Puesto que

    L1 L2 = (L1 L2) \ (L1 L2) = (L1 \ L2) (L2 \ L1)

    el resultado se sigue de (1), (6), (7).

    Recuerdese que un algebra booleana de conjuntos es una familia A (X)cerrada bajo las operaciones de union, interseccion y complemento, tal que A,X A.3.3.2 Corolario. La coleccion R () de todos los lenguajes regulares sobreun alfabeto es un algebra booleana de conjuntos.

    Demostracion: Se sigue del teorema 3.3.1 y del hecho de que y son lenguajesregulares sobre .

    Las propiedades de clausura del teorema 3.3.1 se pueden enunciar como procedi-mientos algortmicos de construccion de automatas finitos.

    3.3.3 Teorema. Sean M , M1 y M2 automatas finitos (ya sean AFD o AFN oAFN-) y L(M) = L, L(M1) = L1, L(M2) = L2. Se pueden construir automatasfinitos que acepten los siguientes lenguajes:

    (1) L1 L2 (5) L = \ L(2) L1L2 (6) L1 L2(3) L (7) L1 \ L2(4) L+ (8) L1 L2

    Demostracion: La construccion de automatas para L1 L2, L1L2, L y L+ sepresento en la demostracion de la parte I del Teorema de Kleene. En el numeral(5) del teorema 3.3.1 se vio como se puede construir un AFD M que acepte L apartir de un AFD M que acepte L.

    Los procedimientos de construccion de (1), (2), (3), (4) y (5) se pueden combinarpara obtener automatas que acepten los lenguajes L1 L2, L1 \ L2 y L1 L2.Para disenar un automata que acepte L1 L2, segun el argumento anterior, hayque usar la igualdad L1 L2 = L1 L2 y los procedimientos para union, com-plemento, eliminacion de transiciones y eliminacion del no-determinismo. Elsiguiente teorema muestra que existe una construccion mas sencilla para L1L2.

  • 3.3.4 Teorema. Sean M = (, Q1, q1, F1, 1) y M = (, Q2, q2, F2, 2) dos AFD.Entonces el AFD

    M = (, Q1 Q2, (q1, q2), F1 F2, )

    donde : (Q1 Q2) Q1 Q2

    ((qi, qj), a) = (1(qi, a), 2(qj, a))

    satisface L(M) = L(M1) L(M2).

    Demostracion: Sea w . La conclusion del teorema se sigue demostrandoprimero por induccion sobre w que ((q1, q2), w) = (1(q1, w), 2(q2, w)) para todapalabra w y observando que:

    w L(M) ((q1, q2), w) F1 F2 (1(q1, w), 2(q2, w)) F1 F2 (q1, w) F1 & (q2, w) F2 w L(M1) & w L(M2) w L(M1) L(M2)

    Ejemplo Utilizar el procedimiento del teorema 3.3.4 para construir un AFDque acepte el lenguaje L de todas las palabras sobre = {a, b} quetienen un numero par de as y un numero par de bs.

    AFD M1 que acepta las palabras con un numero par de as:

    AFD M2 que acepta las palabras con un numero par de bs:

    Entonces L = L(M1)L(M2). El nuevo automata tiene 4 estados: (q1, q2), (q1, q4),(q3, q2) y (q3, q4); el unico estado de aceptacion es (q1, q2). Su funcion de transicion

  • es((q1, q2), a) = (1(q1, a), 2(q2, a)) = (q3, q2)((q1, q2), b) = (1(q1, b), 2(q2, b)) = (q1, q4)((q1, q4), a) = (1(q1, a), 2(q4, a)) = (q3, q4)((q1, q4), b) = (1(q1, b), 2(q4, b)) = (q1, q2)((q3, q2), a) = (1(q3, a), 2(q2, a)) = (q1, q2)((q3, q2), b) = (1(q3, b), 2(q2, b)) = (q3, q4)((q3, q4), a) = (1(q3, a), 2(q4, a)) = (q1, q4)((q3, q4), b) = (1(q3, b), 2(q4, b)) = (q3, q2)

    El diagrama de estados del automata as obtenido es un viejo conocido nuestro:

    Ejercicio Utilizar el procedimiento del teorema 3.3.3 para construir unautomata que acepte el lenguaje L de todas las palabras sobre = {a, b} que tienen un numero par de as y un numero par de bs. Comparesecon el AFD construido en el ejemplo inmediatamente anterior. Ejercicios Disenar automatas finitos que acepten los siguientes los siguienteslenguajes sobre el alfabeto {a, b, c}:1. El lenguaje L de todas las palabras que tienen longitud par y terminan en

    a.

    2. El lenguaje L de todas las palabras de longitud par que tengan un numeroimpar de bs.

    3. El lenguaje L de todas las palabras de longitud impar que tengan un numeropar de cs.

    4. El lenguaje L de todas las palabras de longitud impar que tengan exacta-mente dos as.

  • 3.6. Algoritmos de decision

    El argumento empleado en la demostracion del lema de bombeo sirve para obte-ner otras conclusiones importantes sobre los lenguajes aceptados por automatasfinitos.

    3.6.1 Teorema. Sea M un AFD con n estados y sea L = L(M).

    1. L 6= si y solo si M acepta una palabra w tal que |w| < n.2. L es infinito si y solo si M acepta una palabra w tal que n |w| < 2n.

    Demostracion:

    1. La parte si es obvia. Para la otra implicacion, sea w una palabra delongitud mnima en L(M). Entonces |w| < n ya que si |w| n, segun lademostracion del lema de bombeo, w se podra descomponer como w = uvx,donde |uv| n, v 6= . La palabra ux L y |ux| < |w|, lo que contradicela minimalidad de |w|.

    2. Si w M y n |w| < 2n, entonces por la demostracion del lema debombeo, w se puede descomponer como w = uvx, donde |uv| n, v 6= .M acepta infinitas palabras: uvix para todo i 0.Recprocamente, si L es infinito, existe w L con |w| n. Por la demos-tracion del lema de bombeo, w = uvx donde |uv| n, v 6= . Si |w| < 2nla demostracion esta terminada. Si |w| 2n, puesto que |v| |uv| n,se tendra |ux| n y ux L . De nuevo, si |ux| < 2n, la demostraciontermina; en caso contrario, se prosigue de esta forma hasta encontrar unapalabra en L cuya longitud ` satisfaga n ` < 2n.

    3.6.2 Corolario. Sea un alfabeto dado. Existen algoritmos para los siguientesproblemas de decision referentes a automatas finitos sobre :

    1. Dado un automata finito M , Es L(M) 6= ?2. Dado un automata finito M , Es L(M) infinito?

    3. Dados dos automatas finitos M1 y M2, L(M1) = L(M2)?

    Demostracion:

    1. Algoritmo: construir un AFD M que acepte el lenguaje L(M) y chequearla aceptacion o rechazo de todas las palabras w tales que |w| < n,donde n = # de estados de M .

  • 2. Algoritmo: construir un AFDM que acepte el lenguaje L(M) y chequear laaceptacion o rechazo de todas las palabras w tales que n |w| < 2n,donde n = # de estados de M .

    3. Sea L1 = L(M1) y L2 = L(M2). Se tiene

    L1 = L2 L1 L2 =

    Algoritmo: construir un AFD M que acepte el lenguaje L1 L2 y utilizarel procedimiento de la parte 1 para decidir si L1 L2 es o no vaco.

    Ejercicios Sea un alfabeto dado. Encontrar algoritmos para los siguientesproblemas de decision referentes a automatas finitos sobre :1. Dado un automata finito M , Es L(M) = ?

    2. Dado un automata finito M , Es L(M) cofinito? (Recuerdese que un con-junto es cofinito si su complemento es finito).

    3.10. Observaciones finales

    1. Todo lenguaje finito es regular. Por que?

    2. Una union finita de lenguajes regulares es regular, pero una union infinita delenguajes regulares no es necesariamente regular. Considerese, por ejemplo,

    L = {anbn : n 1} =i1{aibi}.

    Cada conjunto {aibi} es regular, pero L no lo es.3. Un sublenguaje (subconjunto) de un lenguaje regular no es necesariamente

    regular. Dicho de otra forma, un lenguaje regular puede contener sublen-guajes no-regulares. Por ejemplo, el lenguaje L = {anbn : n 1} es unsublenguaje del lenguaje regular ab, pero L mismo no es regular.

    Ejercicio Demostrar que ab es la union de dos lenguajes disyuntos no-regulares. Ejercicio Sea L un lenguaje no-regular y N un subconjunto finito de L. De-mostrar que L \N tampoco es regular.

  • Captulo 4

    Lenguajes independientes delcontexto

    Como lo hemos visto, los automatas son mecanismos que procesan palabras de en-trada. En captulos posteriores consideraremos modelos de automatas con mayorpoder computacional que el de los modelos AFD-, AFN y AFD. En el presentecaptulo iniciaremos el estudio de las gramaticas generativas, que son meca-nismos para generar palabras a partir de un smbolo inicial.

    Los automatas procesan palabras Las gramaticas generan palabras

    4.1. Gramaticas independientes del contexto (GIC)

    Una gramatica independiente del contexto (GIC) es una cuadrupla,

    G = (V,, S, P )

    formada por:

    1. Un alfabeto V cuyos elementos se llaman variables o smbolos no-terminales.

    2. Un alfabeto cuyos elementos se llaman smbolos terminales.

    3. Una variable especial S V , llamada smbolo inicial de la gramatica.4. Un conjunto finito P V (V ) de producciones o reglas de re-

    escritura.

  • Notacion y definiciones. Las variables se denotan con letras mayusculas A, B,C, . . . Los elementos de , o smbolos terminales, se denotan con letras minusculasa, b, c, . . . Una produccion (A,w) P de G se denotara por A w. Si u, v (V ) y A w es una produccion, se dice que uwv se deriva directamentede uAv, lo cual se denota por

    uAv uwv.Si se quiere hacer referencia a la gramatica G, se escribe

    uAv G uwv.Si u1, u2, . . . , un son palabras en (V ) y hay una sucesion de derivacionesdirectas

    u1 G u2, u2 G u3, . . . , un1 G unse dice que un se deriva de u1 y se escribe u1

    un. La anterior sucesion dederivaciones directas se representa como

    u1 u2 u3 un1 uny se dice que es una derivacion de un a partir de u1. Para toda palabra w seasume que w

    w; por lo tanto, u v significa que v se obtiene de u utilizandocero, una o mas producciones de la gramatica. El lenguaje generado por unagramatica G se denota por L(G) y se define como

    L(G) := {w : S w}.Un lenguaje L sobre un alfabeto se dice que es un lenguaje independientedel contexto (LIC) si existe una GIC G tal que L(G) = L. Dos GIC G1 y G2son equivalentes si L(G1) = L(G2). Ejemplo Sea G una gramatica (V,, S, P ) dada por:

    V = {S} = {a, b}P = {S aS, S }

    Se tiene S yS aS a aS a a.

    Por consiguiente, L(G) = a.

    De manera mas simple, podemos presentar una gramatica GIC listando sus pro-ducciones y separando con el smbolo | las producciones de una misma variable.Se asume siempre que las letras mayusculas representan variables y las letrasminusculas representan smbolos terminales.

  • Ejemplo La gramatica G = (V,, S, P ) dada por:V = {S,A} = {a, b}P = {S aS, S bA, S , A bA, A b, A }

    se puede presentar como {S aS | bA | A bA | b |

    Se tiene S . Todas las demas derivaciones en G comienzan ya sea con laproduccion S aS o con S bA. Por lo tanto, tenemos

    S aS a aS a a.S bA b bA b b.S aS a aS a abA a ab bA a ab b.

    Por consiguiente L(G) = ab.

    Las siguientes gramaticas tambien generan el lenguaje ab y son, por lo tanto,equivalentes a G:

    S ABA aA | B bB |

    S AB | A aA | a | B bB | b |

    {S aS | AA bA |

    Ejemplo La gramatica G dada por:{S aS | aAA bA | b

    genera el lenguaje a+b+. Ejemplo Encontrar una GIC que genere el lenguaje ababa sobre = {a, b},es decir, el lenguaje de todas las palabras con exactamente dos bs.Solucion: G : {

    S AbAbAA aA |

    Una gramatica equivalente es S aS | bAA aA | bBB aB |

  • Ejemplo Encontrar una GIC que genere el lenguaje L = {aibi : i 0} sobre = {a, b}, el cual no es un lenguaje regular.Solucion: G :

    S aSb | . Ejemplo Encontrar una GIC que genere el lenguaje de todos los palndromessobre = {a, b}, el cual no es lenguaje regular.Solucion: G :

    S aSa | bSb | a | b | . Ejemplo Encontrar una GIC que genere el lenguaje de todas las palabras sobre = {a, b} que tienen un numero par de smbolos.Solucion: G :

    S aSa | bSb | aSb | bSa | .Una gramatica equivalente es

    S aaS | bbS | abS | baS | . Ejemplo Encontrar una GIC que genere el lenguaje (ab ba) sobre = {a, b}.Solucion: G :

    S abS | baS | . Ejercicios Encontrar GICs que acepten los siguientes lenguajes sobre = {a, b}:1. El lenguaje de todas las palabras que tienen un numero par de bs.

    2. El lenguaje de todas las palabras que comienzan con b y terminan con ba.

    3. ab a.4. ab ba.5. (ab ba).6. {aib2i : i 0}. Es este un lenguaje regular?

  • Ejercicio Encontrar una GIC que acepte el lenguaje {aibjci+j : i 0, j 1},sobre {a, b, c}. Es este un lenguaje regular? Ejercicios Sea = {a, b}. Para w , se definenNa(w) = numero de as que hay en w,Nb(w) = numero de bs que hay en w.

    Encontrar GICs que acepten los siguientes lenguajes:

    1. L1 = {w : Na(w) = Nb(w)} (lenguaje de las palabras que tienen igualnumero de as que de bs).

    2. L2 = {w : Na(w) = 2Nb(w)} (lenguaje de las palabras que tienen eldoble de as que de bs).

    3. L3 = {w : Na(w) = Nb(w) + 1}.

    Cual de los lenguajes L1, L2, L3 es regular y cual no?

  • 4.2. Gramaticas regulares

    4.2.1 Definicion. Una GIC se llama regular si sus producciones son de la forma

    {A aB, a , B VA

    Los siguientes teoremas establecen la conexion entre los lenguajes regulares y lasgramaticas regulares.

    4.2.2 Teorema. Dado un AFD M = (Q,, q0, F, ), existe una GIC regularG = (V,, S, P ) tal que L(M) = L(G).

    Demostracion: Sea V = Q y S = q0. Las producciones de G estan dadas por{q ap si y solo si (q, a) = pq si y solo si q F

    Demostraremos primero que para toda w , w 6= y para todo p, q Q setiene

    (1) Si (q, w) = p entonces q wp.

    La demostracion de (1) se hace por induccion sobre w. Si w = a y (q, a) = p,entonces q ap es una produccion de G y obviamente se concluye q ap. Parael paso inductivo, sea (q, wa) = p. Entonces

    p = (q, wa) = ((q, w), a) = (p, a)

    donde (q, w) = p. Por hipotesis de induccion q wp y como (p, a) = p,

    entonces p ap. Por lo tanto,q

    wp wap

    que era lo que se quera demostrar.

    A continuacion demostraremos el recproco de (1): para toda w , w 6= ypara todo p, q Q se tiene(2) Si q

    wp entonces (q, w) = p.La demostracion de (2) se hace por induccion sobre la longitud de la derivacion

    q wp, es decir, por el numero de pasos o derivaciones directas que hay en

    q wp. Si la derivacion tiene longitud 1, necesariamente q ap lo cual significa

    que (q, a) = p. Para el paso inductivo, supongase que q wp tiene longitud

    n+ 1, w = wa y en el ultimo paso se aplica la produccion p ap. Entoncesq

    wp wap = wp

  • Por hipotesis de induccion, (q, w) = p y por consiguiente

    (q, w) = (q, wa) = ((q, w), a) = (p, a) = p,

    que era lo que se quera demostrar.

    Como consecuencia de (1) y (2) se puede ahora demostrar que

    (3) Para toda palabra w , (q0, w) F si y solo si S Gwlo cual afirma que L(M) = L(G). En efecto, si w = , (q0, w) F si y solosi q0 F . Por lo tanto, q0 es una produccion de G. As que S .Recprocamente, si S

    , necesariamente S , q0 F y (q0, ) F .Sea ahora w 6= . Si (q0, w) = p F , por (1) se tiene q0 w, o sea, S w.Recprocamente, si S

    G w, entonces q0 G wp w donde p . Utilizando(2), se tiene (q0, w) = p F . Ejemplo El siguiente AFD M es el ultimo ejemplo de la seccion 2.3, el cualacepta las palabras que terminan en b, sobre = {a, b}

    M induce la gramatica regular G{q0 aq0 | bq1q1 bq1 | aq0 |

    que cumple L(M) = L(G). Ejemplo Para el lenguaje regular ababa, sobre = {a, b} (el lenguaje detodas las palabras con exactamente dos bs), vimos en el cuartoejemplo de la seccion 4.1 una gramatica que lo genera:{

    S AbAbAA aA |

    Esta gramatica no es regular, pero por medio del AFD

  • y el teorema 4.2.2 se puede obtener una GIC regular que genere ababa:S aS | bAA aA | bBB aB |

    4.2.3 Teorema. Dada una GIC regular G = (V,, S, P ), existe un AFNM = (Q,, q0, F,) tal que L(M) = L(G).

    Demostracion: Se construye M = (Q,, q0, F,) haciendo Q = V , q0 = S y{B (A, a) para cada produccion A aBA F si A

    Usando razonamientos similares a los del teorema 4.2.2, se puede demostrar que

    AG wB si y solo si B (A,w),

    para todo w , w 6= , de donde L(M) = L(G). Los detalles se dejan comoejercicio.

    4.2.4 Corolario. Un lenguaje es regular si y solamente si es generado por unagramatica regular.

    Demostracion: Se sigue del teorema 4.2.2, teorema 4.2.3 y del teorema de Kleene.

    4.2.5 Corolario. Todo lenguaje regular es un LIC (pero no viceversa).

    Demostracion: Se sigue del corolario 4.2.4 Por otro lado, {aibi : i 0} es LICpero no es regular.

    4.2.6 Definicion. Una GIC se llama regular por la derecha si sus produccio-nes son de la forma {

    A wB, w , B VA

    4.2.7 Teorema. Las gramaticas regulares y las gramaticas regulares por la de-recha generan los mismos lenguajes, es decir, los lenguajes regulares. Dicho deotra manera, la definicion de gramatica regular es equivalente a la definicion degramatica por la derecha

    Demostracion: Una gramatica regular es obviamente regular por la derecha. Re-cprocamente, en una gramatica regular por la derecha G = (V,, S, P ), unaproduccion de la forma

    A a1a2 anB

  • donde los ai , n 2, B V , se puede simular con producciones de la formaA aB y A . En efecto, se introducen n 1 variables nuevas A1, . . . , An1cuyas unicas producciones son:

    A a1A1A1 a2A2

    ...An1 anB

    De esta manera se puede construir una gramatica regular equivalente a G. Ejercicios Encuentre una GIC regular que genere los siguientes lenguajes,sobre = {a, b}1. aba

    2. (ab ba)

    3. a+b b+ab Ejercicio Una GIC se llama regular por la izquierda si sus produccionesson de la forma:{

    A Bw, w , B VA

    Demostrar que las gramaticas regulares y las gramaticas regulares por la izquierdageneran los mismos lenguajes.

  • 4.3. Eliminacion de variables inutiles de una GIC

    4.3.1. Definiciones.

    (i) Una variable A es alcanzable si existen u, v (V ) tales que S uAv.La variable inicial S es alcanzable por definicion.

    (ii) Una variable A es terminable si existe w tal que A w. En parti-cular, si A es una produccion entonces A es terminable.

    (iii) A es una variable inutil si no es alcanzable o no es terminable.

    Existen algoritmos para detectar todas las variables inutiles de una GIC. Usandotales algoritmos podemos construir una gramatica G equivalente a una gramaticaG dada, de tal manera que G no tiene variables inutiles.

    4.3.2. Algoritmo para encontrar las variables terminables de una GIC.

    El siguiente algoritmo sirve para encontrar todas las variables terminables de unaGIC.

    TERM1 :={A V : Existe una produccion de la forma A w,w }

    TERMi+1:=TERMi {A V : produccion A w,w (TERMi)

    }Obtenemos una sucesion creciente de conjuntos de variables:

    TERM1 TERM2 TERM3

    Como el conjunto de variables es finito, existe k tal que

    TERMk = TERMk+1 = TERMk+2 =

    El conjunto TERM de variables terminables es entonces

    TERM :=i1

    TERMi

    El anterior algoritmo se puede presentar de la siguiente forma:

    INICIALIZAR:TERM :=

    {A V : produccion A w,w }

    REPETIR:TERM := TERM {A V : produccion A w,w ( TERMi)}

    HASTA:No se anaden nuevas variables a TERM

  • Ejemplo Encontrar las variables terminables de la siguiente gramatica G.

    S ACD | bBd | abA aB | aA | CB aDS | aBC aCS | CB | CCD bD | baE AB | aDb

    TERM1 = {S,D}TERM2 = {S,D} {B,E} = {S,D,B,E}TERM3 = {S,D,B,E} {A} = {S,D,B,E,A}TERM4 = {S,D,B,E,A} { } = { }

    TERM= {S,A,B,D,E}. Conjunto de variables no terminables: {C}.4.3.3. Algoritmo para encontrar las variables alcanzables de una GIC.

    El siguiente algoritmo sirve para encontrar todas las variables alcanzables de unaGIC.

    ALC1:={S}ALCi+1:=ALCi {A V : prod. B uAv, B ALCi u, v (V )}Obtenemos una sucesion creciente de conjuntos de variables:

    ALC1 ALC2 ALC3

    Como el conjunto de variables es finito, existe k tal que

    ALCk = ALCk+1 = ALCk+2 =

    El conjunto ALC de variables alcanzables es entonces

    ALC =i1

    ALCi

    El anterior algoritmo se puede presentar de la siguiente forma:

    INICIALIZAR:ALC := {S}

    REPETIR:ALC := ALC {A V : produccion B uAv, B ALC y u, v (V )}

    HASTA:No se anaden nuevas variables a ALC

  • Ejemplo Encontrar las variables alcanzables de la siguiente gramatica G.

    S aS | AaB | ACSA aS | AaB | ACA aA | B bB | DB | BBC aDa | ABD | abD aD | DD | abE FF | aaF aE | EF

    ALC1 = {S}ALC2 = {S} {A,B,C} = {S,A,B,C}ALC3 = {S,A,B,C} {D} = {S,A,B,C,D}ALC4 = {S,A,B,C,D} { } = {S,A,B,C,D}

    ALC={S,A,B,C,D}. Conjunto de variables no alcanzables: {E,F}.

    Dada una GIC G, los dos algoritmos anteriores (algoritmo 4.3.2 y algoritmo 4.3.3)se pueden llevar a cabo en dos ordenes diferentes:

    Esto da lugar a las siguientes preguntas:

    (1) Es G2 = G4?

    (2) G2 tiene variables inutiles?

    (3) G4 tiene variables inutiles?

    El siguiente ejemplo muestra que la respuesta a la pregunta (1) es NO y que alrealizar los algoritmos en el orden (II) pueden permanecer en G4 algunas variablesinutiles. Sin embargo, si los algoritmos se llevan a cabo en el orden (I) la gramaticaG2 ya no tiene variables inutiles (por que?). Ejemplo Considerese la siguiente gramatica G

    G :

    {S a | ABA aA |

    Aplicacion de los algoritmos en el orden (I):

  • Variables terminables de G: TERM= {S,A}.

    G1 :

    {S aA aA |

    Variables alcanzables de G1: ALC= {S}.G2 :

    {S a

    Se tiene que L(G2) = {a}.Aplicacion de los algoritmos en el orden (II):

    Variables alcanzables de G: ALC={S,A,B}.

    G3 :

    {S a | ABA aA |

    Variables terminables de G3: TERM={S,A}.

    G4 :

    {S aA aA |

    Se observa que en G4, A no es alcanzable. Ademas, G2 6= G4. Ejemplo Eliminar las variables inutiles de la siguiente gramatica G.

    G :

    S SBS | BC | BbA AA | aAB aBCa | bC aC | ACC | abbD aAB | abE aS | bAAF aDb | aF

    Ejecutamos los algoritmos en el orden (I):

    TERM1 = {B,C,D}TERM2 = {B,C,D} {S, F}TERM3 = {B,C,D, S, F} {E} = {B,C,D, S, F,E}TERM4 = {B,C,D, S, F,E} { }La unica variable no-terminable de G es A. Por lo tanto, G es equivalente a lasiguiente gramatica G1

    G1 :

    S SBS | BC | BbB aBCa | bC aC | abbD abE aSF aDb | aF

  • Variables alcanzables de G1:

    ALC1 = {S}ALC2 = {S} {B,C}ALC3 = {S,B,C} { }Las variables D,E, F son no alcanzables. Por lo tanto, G es equivalente a lasiguiente gramatica G2, que no tiene variables inutiles.

    G2 :

    S SBS | BC | BbB aBCa | bC aC | abb

    Ejercicios Eliminar las variables inutiles de las siguientes gramaticas.

    G :

    S SS | SBB | CCEA aE | bEB bB | DbC aC | bBD aDb | ab | E aA | bB

    G :

    S EA | SaBb | aEbA DaD | bDB bB | Ab | C aC | bBCD aEb | abE aA | bB | F Fb | Fa | a

  • 4.4. Eliminacion de las producciones

    4.4.1. Definiciones.

    (i) Una produccion de la forma A se llama produccion (ii) Una variable A se llama anulable si A

    .4.4.2. Algoritmo para encontrar las variables anulables de una GIC.

    ANUL1:={A V : A es una produccion}ANULi+1:=ANULi

    {A V : produccion A w,w (ANULi)

    }Obtenemos una sucesion creciente de conjuntos de variables:

    ANUL1 ANUL2 ANUL3 Como el conjunto de variables es finito, existe k N tal que

    ANULk = ANULk+1 = ANULk+2 = El conjunto ANUL de variables anulables es entonces

    ANUL :=i1

    ANULi

    El anterior algoritmo se puede presentar de la siguiente forma:

    INICIALIZAR:ANUL := {A V : A es una produccion}

    REPETIR:ANUL := ANUL {A V : prod. A w, w (ANUL)}

    HASTA:No se anaden nuevas variables a ANUL

    4.4.3 Teorema. Dada una GIC G, se puede construir una GIC G equivalentea G sin producciones , excepto (posiblemente) S .

    Demostracion: Una vez que haya sido determinado el conjunto ANUL de varia-bles anulables, por medio del algoritmo 4.4.2, las producciones de se puedeneliminar (excepto S ) anadiendo nuevas producciones que simulen el efecto delas producciones eliminadas. Mas concretamente, por cada produccion A ude G se anaden las producciones de la forma A v obtenidas suprimiendo dela cadena u una, dos o mas variables anulables presentes, de todas las formasposibles. La gramatica G as obtenida es equivalente a la gramatica original G.

  • Ejemplo Eliminar las producciones de la siguiente gramatica G.

    G :

    S AB | ACA | abA aAa | B | CDB bB | bAC cC | D aDc | CC | ABb

    Primero encontramos las variables anulables de G por medio del algoritmo 4.4.2:

    ANUL1 = {C}ANUL2 = {C} {D} = {C,D}ANUL3 = {C,D} {A} = {C,D,A}ANUL4 = {C,D,A} {S} = {C,D,A, S}ANUL5 = {C,D,A, S} { } = {C,D,A, S}

    Al eliminar de G la producciones (la unica es C ) se obtiene la siguientegramatica equivalente a G:

    G :

    S AB | ACA | ab | B | CA | AA | AC | A | C | A aAa | B | CD | aa | C | DB bB | bA | bC cC | cD aDc | CC | ABb | ac | C | Bb

    Ejercicio Eliminar las producciones de la siguiente gramatica G.G :

    S EA | SaBb | aEbA DaD | bD | BEBB bB | Ab | D aEb | abE aA | bB |

  • 4.5. Eliminacion de las producciones unitarias

    4.5.1. Definiciones.

    (i) Una produccion de la forma A B donde A y B son variables, se llamaproduccion unitaria.

    (ii) El conjunto unitario de una variable A (o conjunto cadena de A) sedefine de la siguiente manera:

    UNIT(A) :={X V : una derivacion A X que usa solo produccionesunitarias}.

    Por definicion, A UNIT(A).4.5.2. Algoritmo para encontrar las producciones unitarias de una GIC.

    El siguiente algoritmo sirve para encontrar el conjunto unitario UNIT(A) de unavariable A.

    UNIT1(A) := {A}.UNITi+1(A) = UNITi(A) {X V : produccion Y X, Y UNITi(A)}.Para el conjunto de producciones unitarias se tiene que:

    UNIT1(A) UNIT2(A) UNIT3(A)

    Puesto que el conjunto de variables es finito, la anterior es una sucesion finita yse tiene

    UNIT(A) =i1

    UNITi(A)

    El anterior algoritmo se puede representar de la siguiente forma:

    INICIALIZAR:UNIT(A):={A}

    REPETIR:UNIT(A):= UNIT(A) {X V : una produccion Y X con

    Y UNIT(A)}HASTA:

    No se anaden nuevas variables UNIT(A)

  • 4.5.3 Teorema. Dada una GIC G, se puede construir una GIC G equivalentea G sin producciones unitarias.

    Demostracion: Las producciones unitarias de G se pueden eliminar anadiendo pa-ra cada variable A de G las producciones (no unitarias) de las variables contenidasen el conjunto unitario UNIT(A). La gramatica G as obtenida es equivalente ala gramatica original G. Ejemplo Eliminar las producciones unitarias de la siguiente gramatica G.

    G :

    S AS | AA | BA | A aA | aB bB | bC | CC aA | bA | B | ab

    Aplicando el algoritmo para cada una de las variables de G, se tiene que:

    UNIT1(S) = {S}UNIT2(S) = {S} { } = {S}UNIT1(A) = {A}UNIT2(A) = {A} { } = {A}UNIT1(B) = {B}UNIT2(B) = {B} {C} = {B,C}UNIT3(B) = {B,C} {B} = {B,C}UNIT1(C) = {C}UNIT2(C) = {C} {B} = {C,B}UNIT3(C) = {C,B} {C} = {C,B}

    Eliminando las producciones unitarias se obtiene una gramatica G equivalente:

    G :

    S AS | AA | BA | A aA | aB bB | bC | aA | bA | abC aA | bA | ab | bB | bC

    Ejemplo Eliminar las producciones unitarias de la siguiente gramatica G.G :

    S ACA | CA | AA | A | C | A aAa | aa | B | CB cC | D | CC bCD aA |

  • Realizando el algoritmo para cada una de las variables de G se obtiene:

    UNIT(S) = {S,A,C,B,D}UNIT(A) = {A,B,C,D}UNIT(B) = {B,C,D}UNIT(C) = {C}UNIT(D) = {D}

    Eliminando las producciones unitarias se obtiene una gramatica G equivalente:

    G

    S ACA | CA | AA | | aAa | aa | bC | cC | aAA aAa | aa | cC | bC | aA | B cC | bC | aA | C bCD aA |

    Ejemplo Eliminar las producciones unitarias de la siguiente gramatica G.G :

    S ACA | ab | B | CA | A | C | A aAa | B | CD | aa | DB bB | bA | bC cC | cD ABb | ac | C | Bb

  • 4.6. Forma Normal de Chomsky (FNC)

    Una GIC G esta en Forma Normal de Chomsky (FNC) si satisface:

    1. G no tiene variables inutiles.

    2. G no tiene producciones (excepto posiblemente S ).3. Todas las producciones son de la forma: A a (producciones simples)

    o A BC (producciones binarias).

    En particular, una gramatica en FNC no tiene producciones unitarias.

    4.6.1 Teorema. toda GIC G es equivalente a una gramatica en Forma Normalde Chomsky.

    Demostracion: Podemos transformar G en una gramatica en FNC, equivalente aG, ejecutando los algoritmos de las secciones anteriores en el siguiente orden:

    1. Eliminar las variables no terminales.

    2. Eliminar las variables no alcanzables.

    3. Eliminar las producciones (excepto, posiblemente, S ).4. Eliminar las producciones unitarias.

    5. Las producciones resultantes (diferentes de S ) son de la forma: A ao A w, donde |w| 2. Estas ultimas se pueden simular con produccionesde la forma A BC o A a. Se introduce primero, para cada a ,una variable nueva Ta cuya unica produccion es Ta a. A continuacion,se introducen nuevas variables, con producciones binarias, para simular lasproducciones deseadas. Esta parte del procedimiento se ilustra en los dossiguientes ejemplos.

    Ejemplo Simular la produccion A abBaC con producciones simples y bi-narias.Introducimos las variables Ta y Tb, y las producciones Ta a y Tb b. EntoncesA abBaC se simula con:

    A TaTbBTaCTa aTb b

  • Ahora introducimos nuevas variables T1, T2, T3 y las producciones binarias nece-sarias. Las unicas producciones de estas nuevas variables son las mostradas:

    A TaT1T1 TbT2T2 BT3T3 TaCTa aTb b

    Ejemplo Simular la produccion A BAaCbb con producciones simples ybinarias.Introducimos las variables Ta y Tb, y las producciones Ta a y Ta b. EntoncesA BAaCbb se simula con:

    A BATaCTbTbTa aTb b

    Ahora introducimos nuevas variables T1, T2, T3, T4 y las producciones binariasnecesarias. Las unicas producciones de estas nuevas variables son las mostradas:

    A BT1T1 AT2T2 TaT3T3 CT4T4 TbTbTa aTb b

    En los siguientes ejemplos se ilustra el procedimiento completo para convertir unagramatica dada a la Forma Normal de Chomsky (FNC). Ejemplo Encontrar una GIC en FNC equivalente a la siguiente a la gramatica:

    G :

    S AB | aBC | SBSA aA | CB bbB | bC cC |

    El conjunto de variables terminables es TERM={B,C, S,A} y el conjunto devariables alcanzables esALC={S,A,B,C}. Es decir, la gramatica no tiene varia-bles inutiles. El conjunto de variables anulables es ANUL={C,A}. Al eliminar

  • las producciones de G (la unica es C ) se obtiene la gramatica equivalenteG1:

    G1 :

    S AB | aBC | SBS | B | aBA aA | C | aB bbB | bC cC | c

    A continuacion encontramos los conjuntos unitarios de todas las variables:

    UNIT(S)={S,B}UNIT(A)={A,C}UNIT(B)={B}UNIT(C)={C}Al eliminar las producciones unitarias obtenemos la gramatica equivalente G2:

    G2 :

    S AB | aBC | SBS | aB | bbB | bA aA | a | cC | cB bbB | bC cC | c

    Luego introducimos las variables nuevas Ta, Tb y Tc, y las producciones Ta a,Tb b y Tc c con el proposito de que todas las producciones sean unitarias ode la forma A w, donde |w| 2.

    G3 :

    S AB | TaBC | SBS | TaB | TbTbB | bA TaA | a | TcC | cB TbTbB | bC TcC | cTa aTb bTc c

    Finalmente, se introducen nuevas variables, con producciones binarias, para si-mular las producciones de la forma A w, donde |w| 2:

    G4 :

    S AB | TaT1 | ST2 | TaB | TbT3 | bA TaA | TCC | a | cB TbT3 | bC TcC | cT1 BCT2 BST3 TbBTa aTb bTc c

  • Ejemplo Encontrar una GIC en FNC equivalente a la siguiente a la gramatica:G :

    S aS | aA | DA aAa | aAD | B aB | BCC aBb | CC | D aB | bA | aa | A

    TERM={A,C,D,S}. Eliminando la variable no-terminable B obtenemos:

    G1 :

    S aS | aA | DA aAa | aAD | C CC | D bA | aa | A

    Las variables alcanzables de G1 son ALC={S,A,D}. Eliminando la variable no-alcanzable C obtenemos:

    G2 :

    S aS | aA | DA aAa | aAD | D bA | aa | A

    El conjunto de variables anulables de G2 es ANUL={A,D, S}. Eliminando lasproducciones obtenemos:

    G3 :

    S aS | aA | D | a | A aAa | aAD | aa | aA | aD | aD bA | aa | A | b

    A continuacion encontramos los conjuntos unitarios de todas las variables:

    UNIT(S)={S,D,A}UNIT(A)={A}UNIT(D)={D,A}Al eliminar las producciones unitarias obtenemos la gramatica equivalente G4:

    G4 :

    S aS | aA | a | | aAa | aAD | aa | aD | a | bA | bA aAa | aAD | aa | aA | aD | aD bA | aa | b | aAa | aAD | aa | aA | aD | a

    Finalmente, simulamos las producciones de G4 con producciones unitarias y bi-narias:

    G5 :

    S TaS | TaA | a | | TaT1 | TaT2 | TaTa | TaD | a | TbA | bA TaT1 | TaT2 | TaTa | TaA | TaD | aD TbA | TaTa | b | TaT1 | TaT2 | TaTa | TaA | TaD | aT1 ATaT2 ADTa aTb b

  • Ejercicios Encontrar una GIC en FNC equivalente a cada una de las sigui-entes gramaticas:1.

    G :

    S ABC | BaC | aBA Aa | aB BAB | babC cC | c

    2.

    G :

    S aASb | BAbA Aa | a | B BAB | bAbC cCC |

  • 4.7. Arbol de una derivacion

    Un arbol es un tipo muy particular de grafo no-dirigido: esta formado por unconjunto de vertices o nodos conectados entre s por aristas o conectores, conla siguiente propiedad: existe un nodo especial, llamado la raz del arbol, talque hay una unica trayectoria entre cualquier nodo y la raz. De esta manera,la raz se ramifica en nodos, llamados descendientes inmediatos, cada uno delos cuales puede tener, a su vez, descendientes inmediatos, y as sucesivamente.La propiedad que caracteriza a un arbol garantiza que un nodo puede tener 0,1, o mas descendientes inmediatos pero un unico antecesor inmediato. El uniconodo que no tiene antecesores es la raz. Los nodos que no tienen descendientes sellaman hojas del arbol. En la terminologa usualmente utilizada, los descendientesde un nodo tambien se denominan hijos y los antecesores padres o ancestros.El numero de vertices (y por lo tanto, el numero de aristas) de un arbol puedeser infinito. Ejemplos de arboles son:

    El arbol de una derivacion S w, w , en una GIC se forma de la siguiente

    manera. La raz del arbol es el smbolo inicial S y si en la derivacion se utilizala produccion A s1s2 sk, si (V ), el nodo A tiene k descendientes

  • inmediatos: s1, s2,. . . , sk. De esta forma, las hojas del arbol de derivacion deS

    w son precisamente los smbolos de la palabra w. Ejemplo Sea G la gramatica:S AB | AaBA aA | aB bBa | b

    El arbol de la derivacion

    S AB AbBa abBa abbaes

    El anterior es tambien el arbol de la derivacion

    S AB aB abBa abbaEsto muestra que dos derivaciones diferentes pueden tener el mismo arbol dederivacion ya que en el arbol aparecen las producciones utilizadas pero no elorden en que han sido aplicadas. Ejemplo Sea G la gramatica:

    S BAaA bBC | aB bB | bC aB | aa

    El arbol de la derivacion

    S BAa bAa bbBCa bbbCa bbbaBa bbbabaes

  • Ejercicio Sea G la gramatica:G :

    S ABC | BaC | aBA Aa | aB BAB | babC cC | c

    Encontrar derivaciones de las palabras w1 = abab, w2 = babacc, w3 = ababababcy hallar los arboles de tales derivaciones.

  • 4.8. Lema de bombeo

    Una de las consecuencias mas importantes de la Forma Normal de Chomsky es ellema de bombeo para lenguajes independientes del contexto, el cual es util parademostrar que ciertos lenguajes no son LIC. Puesto que las producciones en unagramatica en FNC son unitarias (A a) o binarias (A BC), en cada nodoel arbol de una derivacion se ramifica en dos nodos, a lo sumo. Tales arboles sedenominan binarios.

    4.8.1 Teorema. Sea G = (V,, S, P ) una gramatica en FNC y w . Si lalongitud de la trayectoria mas larga en un arbol de derivacion de S

    w tiene k(o menos) nodos, entonces |w| 2k2. Aqu k 2.Demostracion: La siguiente tabla muestra