Apuntes de Automatas y Lenguajes Formales

download Apuntes de Automatas y Lenguajes Formales

of 41

Transcript of Apuntes de Automatas y Lenguajes Formales

Universidad Autnoma del Estado de Mxico

2010-B

APUNTES DE AUTMATAS Y LENGUAJES FORMALES

Asesor: Dra. Lilia Ojeda Toche Alumno: Tereso Antonio Antnez Barbosa

Autmatas y Lenguajes Formales

Facultad de Ingeniera

NDICE

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

Teora de Graficas Conceptos Generales Expresiones Regulares Autmatas Finitos Autmatas Finitos Deterministas Autmatas Finitos No Deterministas Autmatas Finitos No Deterministas con Gramticas Independientes del Contexto o de Contexto Libre Simplificacin de Gramticas Eliminacin de Smbolos Intiles Eliminacin de Producciones psilon Eliminacin de Producciones Unitarias Forma Normal de Chomsky Autmata de Pila Maquina de Turing Maquina de Turing como aceptador de Lenguajes Maquina de Turing para realizar clculos

3 7 8 9 10 14 17 20 25 26 27 28 30 33 38 39 40

2 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

TEORA DE GRFICASGRAFICA: Una grfica (no dirigida) consta de un conjunto de V vrtices o nodos y un conjunto E de aristas o arcos, tales que cada arista e E queda asociado a un par no ordenados de vrtices, es decir si v y w son los nodos asociados a e, entonces e= (v, w) o e= (w, v). Una grfica dirigida o bigrfica G consta de un conjunto V de vrtices o nodos y un conjunto E de aristas o arcos, tales que cada arista e pertenece a E se asocia con un par ordenado de vrtices, si v y w son los nodos asociados a e, entonces es (v, w) que denota un arco que va de v a w. Ejemplo 1:Grfica dirigida: v= {a, b, c, d} E= {e1, e2, e3, e4, e5}c e1= {a, d}, e2= {a, b}, e3= {a, c}, e4= {c, c}, e5= {c, b} Ejemplo 2: Grfica no dirigida: v= {a, b, c, d} E= {e1, e2, e3, e4, e5} e1= {a, d}, {d, a}, e2= {a, b}, {b, a} e3= {a, c}, {c, a} e4= {c, c}, e5= {c, b}, {b, c}

Una grfica etiquetada o con peso es aquella con nmeros o letras (etiqueta) sobre las aristas. Ejemplo 1:

Una grfica G es conexa si dados cualesquiera dos vrtices v y w en G, existe un camino de v a w. Un camino de y de longitud n es una sucesin alternante de n mas un vrtice y n aristas que comienza con el vrtice y termina con el vrtice . 3 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo 1: No es conexa porque es dirigida.

Facultad de Ingeniera

Ejemplo 2: Es conexa porque no es dirigida.

Un ciclo es un camino de longitud distinta de cero de 1 a v, sin aristas repetidos. Un ciclo simple es un ciclo de v a b en el cual no existen vrtices repetidos, excepto por los vrtices inicial y final que son iguales a v. Ejemplo 1:Ciclo simple: {c-e4-c} Ciclo simple: {a-e3-c-e5-b-e2-a} Ciclo no simple= {a-e3-c-e4-c-e5-b-e2-a}

Un rbol es una grfica a cclica (no tiene ciclos) y conexa en vrtice en particular se designa como la raz.

4 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesCaractersticas Conjunto de todas las cadenas de a y b pero la cadena vaca. Conjunto de todas las cadenas que empiezan con a, y solo contiene una a seguida de una serie de infinita de b. Conjunto de todas las cadenas que pueden empezar con a seguidas de una seria de b. Expresin Regular ( , )

Facultad de IngenieraLenguaje L= {, a, b, ab, ba, aab, bba, } L= {a, ab, abb, abbb, abbbb, ab.., .}

L= {, a, b, ab, abb, baa, }

(

)

L= {, a, b, ab, ba, }

Ejemplo 1: Sea el alfabeto = {0, 1}, decir que lenguaje acepta la expresin regular 1*10. Dar una cadena mnima que acepta la condicin y una mnima que no acepta la condicin. Lenguaje: Conjunto de todas las cadenas que pueden empezar con 1 y terminan con 10, y solo contiene un 0. Cadena mnima que acepta: L= {10} Cadena mnima que no acepta: L= {}.

Ejemplo 2: Sea L el conjunto de todas las cadenas de 0 y 1 de longitud par. a) Diga si L es un lenguaje regular, y si es as; b) Construya una expresin regular que represente a L. a) Si es lenguaje regular porque contiene a la cadena vaca. L= {, 11, 00, 01, 10, 1100, 0011, 1001, } b) (11, 00, 01, 10) Ejemplo 3: Sea L el conjunto de todas las cadenas en a, b de longitud 4 o menos. a) Diga si L es un lenguaje regular, y si es as; b) Construya una expresin regular que represente a L. a) Si es lenguaje regular porque contiene a la cadena vaca. L= {, a, b, ab, ba, abb, aaa, bbb, baba, abab, } b) (a, b, )

5 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Ejemplo 4: Sea L el lenguaje de todas las cadenas de x y y que contiene un nmero impar de y. Defina una expresin para este lenguaje. = (x, y) L= {y, xxy, xxy, yyy, xxxxy, yxyy,} ( )

Ejemplo 5: Use temporalmente l (de letra) para denotar la expresin regular: l= (a+b+c++A+B+C) y d (de dgitos) para representar la expresin regular d= (0+1+2+3,++a) un identificador en el lenguaje de programacin C es una cadena de longitud n o mas que contiene solo dos letras, dgitos o el guion bajo (_) y empiece con una letra o este (_). Defina una expresin regular para el lenguaje de todos los identificadores en C. ( , _)(, _ , ) Ejemplo 6: Suponga que mantenemos el uso de l y del ejemplo anterior se aaden las abreviaturas s (de signo) y p (de punto). El smbolo s es de la abreviatura de (+a+m), donde a es + y m es -. Un real en Pascal tiene la forma siguiente: Primero un signo (+, -, o ninguno), uno o ms dgitos, un punto decimal y uno o ms dgitos que pueden ir seguidos de E (que en este caso es un signo del alfabeto), un signo y uno o mas dgitos, o simplemente E, el signo y uno o mas dgitos. Defina una expresin regular para representar nmeros reales en el lenguaje de programacin Pascal. ( )( ) ( , )

6 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

CONCEPTOS GENERALESUn conjunto no vaco y finito de smbolos se conoce como alfabeto y se representa por (sigma).Ejemplo 1: = {1, 2, 3} = {a, b, c}

Una secuencia finita de smbolos se conoce como palabra o cadena. Cada smbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vaca, la cual se denota por (psilon), es una cadena o palabra sobre cualquier alfabeto. Un lenguaje es un conjunto de cadenas que incluyen smbolos de un alfabeto. La longitud de una cadena X en es el nmero de smbolos de la cadena y se denota |X| ||= 0 El conjunto de todas las cadenas en se denota como *. Los lenguajes son conjuntos de cadena, por lo tanto, es posible construir o crear lenguajes nuevos mediante operaciones de conjuntos. Si se tiene dos o ms lenguajes se pueden hablar sobre su unin, interseccin y diferencia. Cuando se habla del complemento de un lenguaje en , se considera que el conjunto universal es el lenguaje. = La operacin de concatenacin de cadenas, tambin permite construir nuevos lenguajes. Se define el conjunto de todas las cadenas que se obtienen al concatenar cualquier nmero de elementos de L como = La operacin * en esta frmula suele denominarse estrella de Kleene. Este uso del smbolo * es compatible con el de para representar el conjunto de cadenas de . siempre es un elemento de

sin importar en qu consiste L ya que L= { } se denota como

Se afirma que la cadena x es una subcadena de la cadena y si existen las cadenas w y z, cualquiera de los cuales puede ser nula o vaca de modo que y=wxz.Ejemplos: y=12121212 w=[121], x=[212], z=[12] x=212 y=wxz y=12121212

como =

y=1001100 w=[], x=[100], z=[1100] w= x=100 y=1001100

7 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

EXPRESIONES REGULARESUn lenguaje regular en un alfabeto es uno que puede obtenerse a partir de lenguajes bsicos con las operaciones de unin, concatenacin y estrella de Kleene. Los lenguajes bsicos son: a) El lenguaje . b) El lenguaje cuyo nico elemento es {}. c) El lenguaje {a} donde a. Es factible describir un lenguaje regular con una formula explicita, que se conoce como expresin regular. Definicin: Sea un alfabeto. El conjunto de los lenguajes regulares son se define recursivamente como sigue: a) El conjunto es un lenguaje regular. b) El lenguaje {} es un lenguaje regular. c) El lenguaje {a} es un lenguaje regular. d) Si son lenguajes regulares entonces , tambin son lenguajes regulares. e) Ningn otro lenguaje sobre es regular.Ejemplo: = = + =

,

= , a, aa, aaa, aaaa, } = , = , = ,

=

,

=

Nota: Por tanto, el conjunto de los lenguajes regulares sobre est formado por el lenguaje , los lenguajes unitario incluido {} y todos los lenguajes obtenidos a partir de la concatenacin, unin y cerradura de lenguajes. Se puede simplificar la especificacin de un lenguaje regular introduciendo una especie abreviatura llamada expresin regular. Una expresin regular sobre el alfabeto se puede definir de forma recursiva empleando lo siguiente. a) b) c) d) y son expresiones regulares. a es una expresin regular donde a . Si r y s son expresiones regulares entonces r+s, r.s y r* tambin son expresiones regulares. Ninguna otra secuencia de smbolo es una expresin regular.

Expresin Regular a

Lenguaje L= {} L= {a}

Expresin Regular a+b a* (a,b)*

Lenguaje L= {a,b} L= {, a, aa, aaa, aaaa, } L={ , a, b, ab, aab, bba, }

8 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo: Sea L= {w {a,b} / w termina en b y no contiene a a} L= {b, ab, abb, abbb, abbb, } (b, ab)*

Facultad de Ingeniera

AUTMATAS FINITOSConsidere el lenguaje regular representado por c*(a+bc)*. Si dada una cadena x, se nos pregunta si x pertenece a este lenguaje regular, debemos analizar no solo los caracteres que aparecen en x sino tambin sus posiciones relativas. Por ejemplo, la cadena abccccccccab pertenece a este lenguaje regular, sin embargo, cabacbc no pertenece a este lenguaje regular. Podemos construir un diagrama que nos ayude a determinar si una cadena pertenece o no a un lenguaje. Este diagrama tiene la forma de digrafica etiquetada o con peso, que se llama diagrama de transicin. Los nodos de esta grafica se llaman estados y se usan para indicar hasta que lugar se ha analizado la cadena. Los arcos de la grfica se etiquetan con smbolos del alfabeto y se llaman transiciones. Si el siguiente smbolo a reconocer concuerda con la etiqueta de alguna transicin que salga del estado actual, nos desplazamos al estado al que nos lleve el arco correspondiente, se debe comenzar por un estado inicial que se marca con una flecha y cuando se hayan tratado todos los smbolos de la cadena, se necesita saber si la cadena es vlida. Para ello, se marcan ciertos estados como estados finales o de aceptacin (con un doble crculo). Si cuando ha sido leda toda la cadena se termina en un estado de aceptacin, entonces la cadena es vlida.Ejemplo: Considere el lenguaje ( ) . Construya un autmata finito.

Diagrama de Transicin.

Se puede representar el diagrama de transicin mediante una tabla que indica el siguiente estado al que desplazarse, desde un estado combinado con un smbolo de la entrada. Esta tabla contiene para cada par (estado actual, entrada) un nico estado siguiente. Por tanto. Para cada estado actual y smbolo de entrada se puede determinar cul ser el estado siguiente. Se puede pensar que el diagrama representa la accin de alguna maquina. Esta mquina puede pasar por diferentes estados. El cambio de estado depende de la entrada y del estado en que se encuentre. Dicha maquina se llama autmata finito.

9 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesTabla de transicin Estado Entradas x y {qo} {q1} {q2} {q1} {q2} {q0} {q2} {q2} {q2}

Facultad de Ingeniera

Existen dos tipos de autmatas finitos: Autmatas Finitos Deterministas (AFD) y Autmatas Finitos No Deterministas (AFND).

AUTMATA FINITO DETERMINISTAFormalmente, un autmata finito determinista M (maquina) es una coleccin de cinco elementos: a) b) c) d) e) Un alfabeto de entrada . Un conjunto finito de estados Q. Un estado inicial s. Un conjunto F de estados finales de aceptacin. Una funcin &: Q x Q que determina el nico estado siguiente para el par ( , ) correspondiente al estado actual y al smbolo de entrada.

M= {, Q, s, F, &}, donde: = {x, y} Q= , , F= { & (q0, x)= q1 & (q0, y)= q2 & (q1, x)= q2 Reglas de transicin & (q1, y)= q0 & (q2, x)= q2 & (q2, y)= q2

10 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Ejemplo 1: Sea el lenguaje de todas las cadenas en (c, d) que terminan en dc. a) Determine una expresin regular para este lenguaje. b) Muestre tres ejemplos de cadenas validas. c) Construya un autmata finito determinista para este lenguaje mediante su diagrama de transicin, tabla de transicin y elementos correspondientes. a) ( + ) b) L= {dc, ddc, cddc} c) Tabla de transicin Estado Entradas c d {qo} {q0} {q1} {q1} {q2} {q1} {q2} {q0} {q1} = {c, d}

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

(q0, c) = q0 (q0, d) = q1 (q1, c) = q2 (q1, d) = q1 (q2, c) = q0 (q2, d) = q1

Ejemplo 2: Encuentre una expresin regular que corresponda a cada uno de los lenguajes en x, y que siguen: a) El lenguaje de todas las cadenas que contienen exactamente dos x. b) El lenguaje de todas las cadenas que contienen al menos dos x. c) El lenguaje de todas las cadenas que no terminan en xy. - = ( , ) a) b) ( , ) ( , ) ( , ) c) [( , ) , ( , ) , ( , ) , ( , , )]

11 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Ejemplo 3: Considere la expresin regular ( + ) . a) Diga con sus propias palabras que lenguaje representa. b) De tres o ms ejemplos de cadenas no vlidas. c) Construya un autmata finito determinista mostrando su diagrama de transicin, tabla de transicin y cada uno de sus elementos. a) El conjunto de todas las cadenas que pueden iniciar en aa o bba, pero que terminan en a. b) L= {, b, bab, bb, aaaa}. c) Tabla de transicin Estado Entradas a b {qo} {q1} {q2} {q1} {q0} {q4} {q2} {q4} {q3} {q3} {q0} {q4} {q4} {q4} {q4}

- = , Q= {q0, q1, q2, q3, q4} S= {q0} F= {q2} (q0, a) = {q1} (q0, b) = {q2} (q1, a) = {q0} (q1, b) = {q4} (q2, a) = {q4} (q2, b) = {q3} (q3, a) = {q0} (q3, b) = {q4} (q4, a) = {q4} (q4, b) = {q4}

12 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

AUTMATA FINITO NO DETERMINISTA (AFND)Si se permite que desde un estado se realicen 0, 1 o ms transiciones mediante el mismo smbolo de entrada se dice que el autmata finito es no determinista. Un autmata finito no determinista se define mediante una coleccin de cinco objetos (Q, , s, f, ), donde: a) Q conjunto finito de estados. b) es el alfabeto de entradas. c) s es uno de los estados de Q designado como uno de los estados de inicio. d) F es conjunto de estados finitos o de aceptacin. e) es una relacin sobre QxxQ y se llama relacin de transicin.

Observe que puesto que es una relacin para todo ( , )es puesto por el estado actual y el smbolo de entrada de de ( , ) es un conjunto de 0 o ms estados, es decir ( , ) Q. esto indica que para todo estado Q se pueden tener 0 o ms alternativas a elegir como estado siguiente, todos para el mismo smbolo de entrada. Observe que en la tabla de la relacin de transicin las celdas con el indican que no existe ninguna transicin desde el estado actual mediante la entrada correspondiente. Que para un par estado-entrada, existen ms de un estado posible siguiente, ndica que puede elegir entre las distintas posibilidades. En el modelo no existe nada que determine la eleccin. Por esta razn, se dice que el comportamiento del autmata es no determinista.Ejemplo 1: Sea el autmata finito que se muestra en el siguiente diagrama de transicin. Tabla de transicin Estado Entradas a {qo} {q1, q4} {q1} {q1} {} {q2} {} {q3} {} {q4} a) Defina los elementos del autmata, incluyendo la tabla de transicin. b) Diga qu tipo de autmata finito es. c) Diga cul es el lenguaje que acepta. d) Defina una expresin regular para el lenguaje que acepta el autmata. e) Diga si la cadena abab es vlida, mediante las reglas de transicin. a) = {a, b} Q= {q0, q1, q2, q3, q4} S= q0 F= {q2, q3, q4} (q0, a) = {q1, q4} (q0, b) = {q3} (q1, a) = {q1,} (q1, b) = {q2} (q2, a) = {} (q2, b) = {} (q3, a) = {} (q3, b) = {} (q3, b) = {} (q3, b) = {q4}

b {q3} {q2} {} {} {q4}

13 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formalesb) El diagrama de transicin es un autmata finito no determinista. c) Conjunto de todas las cadenas de a y b, que inician con una a seguida de una serie de b. d) ( , ) e) Sea la cadena abab. Decir si es cadena valida ({q0, a}, bab)) ({q1, q4}, bab)) ({q1, b} u {q4, b}, ab)) (({q2, q4}, a), b) ({q2, a} u {q4, a}, b) u (, b) = , por lo tanto no es cadena valida, porque tiene elementos sin derivar.

Facultad de Ingeniera

Ejemplo 2: Sea la expresin regular ( , ) . a) Diga que lenguaje representa esta expresin regular. b) Construya un autmata finito no determinista que acepte el lenguaje representado incluyendo todos sus elementos. a) El lenguaje de todas las cadenas de x, y, donde es una serie de xy que empieza con x. b) Tabla de transicin Estado Entradas x y {} {qo} {q1} {} {q1} {q0, q2} {} {q2} {q0}

- = , Q= {q0, q1, q2} S= {q0} F= {q0} Ejemplo 3: Dado el autmata finito no determinista siguiente:

a) Construir un autmata finito determinista semejante.

Tabla de transicin Estado Entradas x y {} {qo} {q1} {} {q1} {q0, q2} {} {q2} {q0} {q0q2} {q0q1} {} {q0q1} {q1} {q0q2} {} {} {}

14 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesAutmata finito determinista.

Facultad de Ingeniera

Eliminando el estado q2, porque no tiene entradas.

Tabla de transicin Estado Entradas x y {} {qo} {q1} {} {q1} {q0, q2} {q0q2} {q0q1} {} {q0q1} {q1} {q0q2} {} {} {} Ejemplo 4: Sea la expresin regular ( , ) . a) Diga que lenguaje representa. b) Construya un autmata no determinista que acepte el lenguaje. c) Diga si la cadena ccddc es una cadena valida por medio de la regla de transicin. d) Transforme al autmata de b) en un autmata determinista. a) El conjunto de todas las cadenas que pueden iniciar en dd, ddc pero que terminan en c, con un nmero par de d. b) = , , , , ,

c)

15 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales (q0, ccddc) ((q0, c), cddc) ((q1, c), ddc) Como (q1, c) se va al vaco, la cadena no es vlida. Y aun faltan elementos por derivar. d) Tabla de transicin Estado Entradas c d {qo} {q1} {q2, q3} {} {} {q1} {} {q2} {q0} {} {q3} {q4} {} {q4} {qo} {q2, q3} {q0, q4} {q0, q4} {q0, q1} {q2, q3} {q0, q1} {q1} {q2, q3}

Facultad de Ingeniera

Eliminando estados que no tienen entradas.

16 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

AUTMATA FINITO NO DETERMINISTA CON (AFND-)Se puede ampliar la definicin de autmata finito no determinista para incluir transiciones de un estado a otro que no depende de ninguna entrada. Tales transiciones se llaman -transiciones o transiciones- porque al realizarse no consumen ningn smbolo de entrada.Ejemplo: Sean los siguientes AFND-. Tabla de transicin Estado Entradas a {qo} {q1} {q1}

Tabla de transicin Estado Entradas b a {qo} {q1} {q1} {q2} {q2} {q0} {q0}

) . Si un autmata finito no determinista tiene transiciones , la relacin de transicin asocia pares de ( ). Se puede agregar una columna en una tabla de para colocar los pares Es decir es la relacin sobre ( de la forma ( , ). Cuando hay transiciones en un AFND es conveniente poner que cada estado tiene una transicin que cicla en ese estado, con la finalidad de sistematizar el clculo en los autmatas finitos no deterministas. Para tratar de calcular el conjunto de los estados siguientes de un AFND- debemos tener en cuenta las transiciones anteriores y posteriores a la transicin etiquetada con .Por ejemplo: Considere el siguiente AFND-.

a) Calcular el conjunto de estados siguientes, si el estado actual es q0 y la entrada es a. R= {q1, q4} b) Calcular el conjunto de estados siguientes, si el estado actual es q1 y la entrada es b. R= {q0, q2, q5} c) Calcular el conjunto de estados siguientes, si el estado actual es q0 y la entrada es ababbb. R= {q1, q5}

17 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Se puede sistematizar el proceso para calcular el conjunto de estados siguientes en un AFND-. Para todo estado se define la -cerradura en -clausura o cerradura- de q. ( ) = p | p es accesible desde q sin consumir nada en la entrada ( 0) = 0 ( 1) = 1, 4 ( 2) = 2 ( 3) = 3 ( 4) = 4 Se puede ampliar esta definicin para todo el conjunto de estados de la siguiente manera. =( , ,, )= ( )

y se define ( , ) = p |hay una transicion de q a p etiquetada con ( , )= 1 El conjunto que se obtiene de calcular ( , ) es el conjunto de estados que siguen directamente a q pasando por la transicin etiquetada . Se ampla la definicin de d a los conjuntos como sigue: Para todo ( ( ), ) es el conjunto de todos los estados accesibles desde q tomando Finalmente observe que primero una o ms transiciones , despus una transicin con y por ultimo una o ms transiciones . Por tanto. ( ( ), ) Es el conjunto de todos los estados siguientes al actual q mediante la entrada . Ejemplo: Considere el siguiente AFND-.

( ,

,,

)=

(

, )

a) Calcule el conjunto de estados siguientes, si el estado actual es q0 y la entrada es a. ( ( 0), a) ( 0, ) = ( 0, ) = ( 0, ) = ( ( 0, a) ( 1, )) ( 0, ) = ( 3, 4) ( 0, ) = ( 3) ( 4) ( 0, ) = 1, 3 4, 5 ( 0, ) = 1, 3, 4, 5 b) Calcular el conjunto de estados siguientes a partir de q0 con entrada b. ( 0, 1), a

18 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales( 0, ) = ( 0, ) = ( ( ( ( 0, 0, 0, 0, ( ( 0), b) ( 0, 1), b

Facultad de Ingeniera

) = ( ( 0, b) ( 1, )) ) = ( ( 2) ( 2) ) = 2, 2 )= 2

Ejemplo 2: Considere el AFND-.

a) Obtenga un autmata finito no determinista equivalente. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( , , , , , , , , , , , )= )= )= )= )= )= )= )= )= )= )= , ,

( ( , (

, , , , , , , ,

)= )= )= )= )= )= )= )=

( ( ), a) ( ), a) () ( ( ), a) ( ), a) ()

( ( ), a) ( , , ), a) ( , ) ( , ) ( , a) , , ) ) ( ) ( ) , ( ( ), a) ( , ), a) ( , ) ( , a) , )

( , ) = , ) ( , ) ( , ) = ( ) ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( , ) = ( ) ( ( ), b) ( ), b) ( ) , ( ( ), b) ( ), b) () ( ( ), b) ( , ), b) , ) ( , )

( , ) = ( , ) =

( ( ), b) ( , ), b)

19 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Estados de aceptacin, son nicamente los estados de aceptacin del Autmata original (AFND-). ( )= , , ( )= , ( )= ( )= b) Obtenga un autmata finito determinista equivalente. Tabla de transicin Entradas a {A} {A,B,C,D} {B} {C,D} {} {C} {D} {D} {A,B,C,D}={E} {A,B,C,D} {B,D}={F} {D} {C,D}={G} {C,D} {} {} Estado

b {} {} {} {} {B,D} {} {B,D} {}

GRAMTICAS INDEPENDIENTES DEL CONTEXTO O DE CONTEXTO LIBRE (GCL)Las expresiones regulares y los autmatas finitos nos proporcionan dos medios para especificar o definir lenguajes. Las expresiones regulares nos proporcionan una plantilla o patrn para las cadenas de lenguaje. Igualmente, un autmata finito especifica un lenguaje como el conjunto de todas las cadenas que lo hacen pasar del estado inicial a uno de sus estados de aceptacin. Tambin se podra interpretar un autmata como un generador de cadenas del lenguaje, segn se plantea a continuacin. Un smbolo se genera al recorrer el camino etiquetado con dicho smbolo y que parte del estado actual al siguiente. Se empieza con la cadena vaca y se obtiene una cadena del lenguaje cuando el recorrido llega a un estado de aceptacin.Por ejemplo: Considere el siguiente Diagrama de Transicin. ( , ) | | |

20 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Estas expresiones pueden ser consideradas como reglas de sustitucin para la generacin de cadenas. El smbolo que se encuentra a la izquierda de la flecha puede sustituir por la cadena de la derecha.Por ejemplo: La cadena se puede generar empezando por S.

Sea la cadena

, dervela a partir de las reglas de sustitucin anteriores.

Observe que en este modelo se han introducido una coleccin de nuevos smbolos para representar las porciones de cadena que no han sido generados. Cuando las cadenas han sido completamente generadas, estarn formadas en su totalidad por el smbolo del alfabeto , pero antes de llegar a esta se obtendrn cadenas formadas por smbolos del alfabeto y por nuevos smbolos. Los nuevos smbolos se llaman no terminales y se representan por letras maysculas que indican que deben ser sustituidos por smbolos de alfabeto antes de que la cadena haya sido totalmente generada. Por otro lado, los smbolos del alfabeto se llaman terminales, para indicar que no es posible que sean sustituidos. Una gramtica regular G es una 4-tupla, = , , , , donde es un alfabeto, N es un conjunto de smbolos no terminales, S es un no terminal llamado smbolo inicial y P es un conjunto de reglas de sustitucin llamadas producciones, y que son de la forma , donde AN y w es una cadena sobre que satisface lo siguiente: 1. W contiene un no terminal como mximo. 2. Si w contiene un no terminal, entonces es el smbolo que est en el extremo derecho de w. | | |

Ejemplo: = , , = , , , , = , =

*Nota: Todas las gramticas regulares son libres de contexto, pero no todas las gramticas libres de contexto son regulares. El lenguaje generado por la gramtica regular G se denota por L (G).Ejemplo 1: Considere la Gramtica G siguiente: = , = , = = | | a) Defina el lenguaje generado por G. ( ) = ( ) ( + )

21 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formalesb) Genere una cadena a partir de esa Gramtica que pertenece a L (G).

Facultad de Ingeniera

Ejemplo 2: Sea el lenguaje representado por la expresin regular = , = = = |

defina una gramtica para este lenguaje.

Recordemos que en nuestra definicin de Gramticas Regulares se requiere que el lado derecho de las producciones contenga cuando mucho un no terminal. Este requerimiento restringe en gran medida la manera en que se puede formar las producciones y en consecuencia, restringe las clases de lenguajes que se pueden especificar. Suponga que se permite que las producciones puedan tener 0, 1 o mas no terminales que aparezcan en cualquier lugar del lado derecho de las mismas.Ejemplo: Considere la gramtica: | | | = | |

Es una gramtica de este tipo. Una gramtica independiente del contexto esta formado por 4 elementos = Alfabeto de conjunto de terminales.

= , , ,

N = Variables o no terminales. S = Es un no terminal llamado smbolo inicial P = Conjunto de reglas de sustitucin llamadas producciones. El lenguaje generado por la gramtica independiente del contexto se denota por L (G) y se llama lenguaje independiente del contexto.Ejemplo: Considere la gramtica independiente del contexto dada por: | a) Diga si es una gramtica regular. No es gramtica regular b) Diga que lenguaje genera. Acepta la cadena vaca, el numero de x es igual al nmero de y, siempre iniciar con x. c) Genere si es posible la cadena a partir de esta gramtica. Xyxyxy no es valida d) Proponga una cadena valida y dervela a partir de G.

22 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

A veces, es til realizar una grafica de la derivacin, que indique de que manera ha contribuido cada no terminal a formar la cadena final de smbolos terminales. Tal grfica se llama rbol de derivacin o rbol de anlisis. *rbol de la gramtica anterior.

Ejemplo 1: Sea la gramtica independiente del contexto. -Derive la cadena + + y construya su rbol de derivacin. + + + + + + + + | | ( )|

+

+

Ejemplo 2: Suponga que tiene la cadena +

+

+

+

+

+

. Derive esta cadena a partir de G. + +

+

+

+

Una gramtica se dice ambigua cuando hay dos o ms arboles de derivacin distinta para la misma cadena. 23 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo: Considere la gramtica dada por las siguientes producciones.< > < ( (< >) < >|< ( ); ( ); >| > () < >

Considere la instruccin:

O esta instruccin es equivalente a: If (expresin1) If (expresin2) F (); Else: G (); Derive en dos formas distintas esta instruccin:

(

1)

2)

Modula 2. > <

)

|

Forma 2: IF A1 THEN IF A2 THEN S1 ELSE S2 END END

24 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

La ambigedad es una caracterstica que es recomendable eliminar de una gramtica as como otras caractersticas como la creacin de rboles de derivacin casi inconteniblemente tupidos (anchos) como ocurre en el siguiente caso.Ejemplo: Sea la gramtica independiente del contexto.

|

O intilmente profundos y delgados como es:Ejemplo: Sea la gramtica independiente del contexto.

|

Es recomendable establecer restringciones necesarias para que las producciones se formen de manera que l rbol de derivacin resultante no sea necesariamente complejo o intilmente sencillo. A continuacin se analizarn algunas formas de mejorar una gramtica sin cambiar el lenguaje resultante: Primero, al eliminar ciertos tipos de producciones con las que sera difcil trabajar y luego, al estandarizar las producciones de modo que todas tengan una cierta forma normal.

SIMPLIFICACIN DE GRAMTICASPara simplificar una gramtica se debe realizar las siguientes acciones. 1. Eliminar los smbolos intiles: Las variables o smbolos o terminales que no aparecen en ninguna derivacin de una cadena terminal que parta del smbolo inicial. 2. Eliminar las producciones psilon : Las que tienen la forma: Para alguna variable A. 3. Eliminar las producciones unitarias: Las que son de la forma. Para las variables A y B.

25 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

ELIMINACIN DE SMBOLOS INTILES , donde Note que X debe estar en N o en y la forma sentencial puede ser la primera o la ultima de la derivacin. Nuestro mtodo para eliminar los smbolos intiles empieza por identificar los dos casos que un smbolo tiene que poder hacer para ser til: 1. 2. Decimos que X es alcanzable si existe una derivacin Decimos que X es generador si para alguna cadena terminal w. Note que todo smbolo terminal es generador, ya que w puede ser ese mismo terminal que se deriva en cero pasos.

Decimos que un smbolo X es til para una gramtica

= , , ,

si existe alguna derivacin de la forma.

para algn

y .

Sea = , , , una gramtica. Para calcular los smbolos generadores de G, llevamos a cabo la siguiente instruccin: Base: Todo smbolo es generador puesto que se genera a si mismo. Paso inductivo: Suponga que existe una produccin , y que se sabe de todo smbolo de es generador. Entonces A es generadora. Note que esta regla incluye el caso en el que = ; todas las variables que tienen como cuerpo de produccin son generadoras. | Generadores:Ejemplo: Considere la gramtica:

Ejemplo: Considere la gramtica. | 1. Smbolos generadores: , , , Entonces:

Ejemplo 2: Sea la gramtica independiente del contexto. | | | |

, , ,

Elimine smbolos no generables: Generadores= , , , , , ,

|

|

|

26 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Consideremos ahora el algoritmo inductivo mediante el cual encontramos al conjunto de smbolos alcanzables de la gramtica G. Base: S es alcanzable. Pase inductivo: Supongamos que hemos descubierto que alguna variable A es alcanzable. Entonces, para todas las producciones cuya cabeza es A, todos los smbolos de los cuerpos de dichas producciones son tambin alcanzables.Ejemplo 1: | Ejemplo 2: | | | | Alcanzables: {S, A, a, B, b} | | | | Alcanzables: {S, a} Generadores: {a, b, S, A}

Generadores: {a, b, d, S, B, C, A} | | |

ELIMINACIN DE PRODUCCIONES PSILONLas producciones aunque convenientes, en muchos problemas de diseo de gramticas no son esenciales. Por supuesto, sino existe ninguna produccin cuyo cuerpo sea , es imposible generar la cadena vaca como parte del lenguaje. Si el lenguaje L tiene una gramtica independiente del contexto tiene una gramtica independiente del contexto sin producciones . Comenzaremos descubriendo que variables son anulables. Sea G una gramtica independiente del contexto. Podemos encontrar todos los smbolos anulables de G mediante el algoritmo iterativo que se describe a continuacin. Base: Si es una produccin de G. A es anulable. Paso inductivo: Si existe una produccin , , , , en la que todas son anulables, B es anulable. Note que todo debe ser una variable anulable, por lo que solo tenemos que considerar producciones en cuyo cuerpo solo aparecen variables. A continuacin se da la construccin de una gramtica sin producciones :

27 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Sea G una gramtica independiente del contexto. Se determinan todos los smbolos anulables de G. se construye una gramtica nueva = , , , cuyo conjunto de producciones P, se determina como sigue: Para cada produccin , , , , donde K es mayor o igual a 1, supongamos que m, de los , son smbolos anulables. La nueva gramtica G, tendr 2 versiones de esta produccin, donde los anulables estn presentes o no en todas las combinaciones posibles. Hay una excepcin, si = , es decir, si todos los smbolos son anulables, no incluimos el caso en el que todas las estn ausentes.Ejemplo 1: Considere la gramtica. Anulables: {A, B, S} | | | | | | | | Ejemplo 2: Considere la gramtica independiente del contexto. a)Eliminar las producciones . Anulables= {A} | | |

ELIMINACIN DE PRODUCCIONES UNITARIASUna produccin unitaria es de la forma donde tanto A como B son no terminales o variables. Estas producciones pueden ser tiles, sin embargo, introducen pasos adicionales en las derivaciones que tcnicamente no tendran porque aparecer.

Para eliminar producciones unitarias se deben encontrar primero todos los pares de variables A y B, tales que usando una secuencia que slo hace uso de producciones unitarias. Una vez que hemos determinado todos estos pares, podemos sustituir cualquier secuencia de pasos de derivacin en los que , con una produccin que aplique directamente a partir de A la produccin no ; es decir, . Para empezar, veamos la obtencin por induccin de los pares (A, B) tales que unitaria usando solo producciones unitarias. Llamamos a este tipo de pares par unitario. Base: ( , ) es un par unitario para todo variable A. Paso inductivo: Supongamos que hemos determinado que , es un par unitario y puede ser sustituido por ( ) es una produccin, donde es una variable. Entonces ( , ) es un par unitario.Pares unitarios: ( , ) ( , )( , ) ( , )( , )( , )

Ejemplo 2: Considere la gramtica. | | | | | 1 |( ) | | +

28 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Para eliminar las producciones unitarias, hacemos lo siguiente, duda una gramtica independiente del contexto = , , , , construiremos la gramtica independiente del contexto 1 = , , , 1 de la siguiente forma: 1. Encontramos todos los pares unitarios de . 2. Para cada par unitario ( , ) , aadimos 1 a todas las producciones , donde es una produccin no unitaria de , Note que es posible que = , de esa forma, 1 contiene todas las producciones no unitarias de .Ejemplo: Del ejemplo anterior, y dados estos pasos, la nueva gramtica independiente del contexto quedara as: | | | | | 1 | | | | | 1|( ) | | | | | 1|( )| | | | | | 1|( )| | +

Ejemplo 2: Sea la gramtica. | | | | Aplique los algoritmos para eliminar smbolos intiles, producciones y producciones unitarias para simplificar esta gramtica. Aplicar: 1. Eliminar producciones . 2. Eliminar producciones unitarias. 3. Eliminar producciones intiles. 1. Eliminar producciones . Anulables = {A} La nueva gramtica sera. | | | | 2. Eliminar producciones unitarias. ( , ) es par unitario. La nueva gramtica sera. | | | 3. Eliminar producciones intiles. Generadores= {a, d, S, B, A, D} Alcanzables= {S, a, A, B} La nueva gramtica sera. | | |

Ejemplo 3: Sea la gramtica. | | 1. Eliminar producciones . Anulables = {A, B} La nueva gramtica sera. | | | |

2. Eliminar producciones unitarias. No tiene.

3. Eliminar producciones intiles. Generadores= {a, b, S, B} Alcanzables= {S, a, B, b} La nueva gramtica sera. | | |

29 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

FORMA NORMAL DE CHOMSKYPara completar el estudio de las simplificaciones gramaticales, veremos que todo lenguaje independiente del contexto no vaca sin tiene una gramtica G en la que todas las producciones tienen una de las formas siguientes: 1. , donde , son variables o no terminales. 2. , donde es una variable y es un terminal. Se dice que esta gramtica esta en forma normal de Chomsky (FNC). Para poner una gramtica en FNC, requerimos una gramtica que no contenga producciones , ni producciones unitarias, ni smbolos intiles. Toda produccin de esta gramtica tiene la forma , que ya est en forma permitida para la forma normal del Chomsky o tiene un cuerpo de longitud de 2 o ms. Nuestras tareas son: a) Conseguir que en todos los cuerpos de longitud 2 o ms solo aparezcan variables. b) Descomponer los cuerpos de longitud 3 o ms en una cascada de producciones en cuyos cuerpos solo aparezcan dos variables. La construccin para a) es como sigue: Para cada smbolo terminal que aparezca en un cuerpo de longitud dos o ms, creamos una nueva variable, digamos . Esta variable tiene una sola produccin . Ahora usamos en lugar de siempre que aparezca en un cuerpo de longitud mayor o igual a dos. La construccin para b) es como sigue: Debemos descomponer las producciones de la forma con 3, en un grupo de producciones con dos variables en cada cuerpo. Introducimos menos dos variables nuevas, , se reemplaza la produccin original por menos una produccin. , , , Ejemplo 1: Sea la gramtica. | | | Sustituir , solo donde este acompaado. | | | Ahora la gramtica tiene producciones de la forma:

30 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo 2: Sea la GIC dada por las producciones. | | | | | Pasar a la forma normal de Chomsky. 1. Eliminar producciones . 2. Eliminar producciones unitarias. ( , )( , ) No tiene ( , ) ( , ) ( , ) Es par unitario La nueva gramtica sera. | | | | | Elementos que sern sustituidos. Nueva gramtica. ||

Facultad de Ingeniera

3. Eliminar producciones intiles. Generadores= {a, b, c, d, e, f, g, h, S, A, B, C, D, E} Alcanzables= {S, C, B, a, g, h, A, b, d, e, f, c} La nueva gramtica sera. | | | |

| | Forma normal de Chomsky.

31 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo 3: Sea la gramtica independiente del contexto. | | | | Obtener la forma normal de Chomsky. 1. Eliminar producciones . 2. Eliminar producciones unitarias. Anulables = {A, D} ( , ) es par unitario. La nueva gramtica sera. La nueva gramtica sera. | | | | | | | | | | | | | | | | | | | |

Facultad de Ingeniera

|

3. Eliminar producciones intiles. Generadores= {S, A, C, D, a, b} Alcanzables= {S, A, C, D, a, b} La nueva gramtica sera. | | | | | | | | | |

|

Elementos que sern sustituidos.| | | | | |

Forma normal de Chomsky.

|

|

|

|

|

32 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

AUTMATA DE PILASea G una gramtica independiente del contexto. Desearamos construir un autmata no determinista que acepte a L (G). El autmata que construiremos debera poder verificar que todas las cadenas de L (G) son derivables. La idea principal es construir un autmata que pueda realizar una derivacin por la izquierda para cualquier cadena del lenguaje. Este autmata se llama autmata de pila. Un autmata de pila se comporta de forma similar a como lo hacen los autmatas finitos. En todo momento se encuentra en un estado y el cambio de estado depende del estado actual y de una informacin adicional. En el caso de los autmatas finitos la informacin adicional consiste en el smbolo de entrada actual. En el caso de los autmatas de pila se incluyen del smbolo de entrada actual y el smbolo que est en el tope de la pila. Adems de cambiar de estado el autmata de pila cambia tambin el tope de la pila. Un autmata de pila es una sptupla = , , , , s, F, z , donde Es un conjunto finito de estados. Es un alfabeto de entrada Es un alfabeto llamado alfabeto de la pila. Es una regla de transicin. sQ Y es el estado inicial F Es un subconjunto de y es el conjunto de estados finales o de aceptacin. z Y es el smbolo inicial de la pila. Una regla de transicin para obtener el siguiente estado y la accin a realizar sobre la pila, debe conocer el estado actual, el smbolo de entrada actual y el tope actual de la pila. Por consiguiente se define por medio de ternas ( , , ), donde es un estado de , es un smbolo de y (lo que hay en la pila). El resultado de aplicar a dicha terna es una coleccin de pares ( , ), donde y es el estado siguiente y y es la cadena que se introducir en la pila en lugar del smbolo (gama minscula) que estaban antes ah. Ya que estamos definiendo un autmata de pila no determinista, cabe esperar que (delta) no tiene porque ser una funcin. ), ( , ) del cual se Por tanto, si aplicamos a la terna ( , , ) se obtiene el conjunto ( , ), ( , elige de forma no determinista uno de los pares, de manera que el autmata de pila cambia para reflejar dicha eleccin. Observe que, puesto que los pares resultantes pertenecen a se puede tener que de ( , , ) se obtenga ( , ). Esto indica que el estado siguiente es y que el smbolo se elimin del tope de la pila o se desapila. No es posible ningn movimiento si la pila est vaca, por esta razn se supone que inicialmente la pila contiene algn smbolo que d el smbolo inicial de pila. Por otro lado, un movimiento tal como ( , , ) = ( , ) indica que el autmata de pila puede cambiar a un estado y apilar una sin consumir ningn smbolo de la entrada. Observe que si ( , , ) = no es posible ningn movimiento desde el estado con l smbolo de entrada , ni con el smbolo de entrada . En este caso, el autmata de pila se detendr.

33 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo 1: Suponga que queremos construir un autmata de pila que acepte el lenguaje cantidad de unos que de ceros}. L no es lenguaje regular. ( , 0, ) = ( , 0 ) ( , 1, ) = ( , 1 ) ( , 0,0) = ( , 00) ( , 0, 1) = ( , ) ( , 1, 1) = ( , 11) ( , 1, 0) = ( , ) ( , , ) = ( , ) =

Facultad de Ingeniera0, 1 / contiene la misma

Ejemplo 2: Construya un autmata de pila, dada la expresin . ( , , ) = ( , , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) Derive la cadena abb y diga si es vlida o invalida. ( , , )( , , ) ( , , ) ( , , ) ( , , ) Como ya no hay transicin de q4, decimos que la cadena es invlida. Deriva la cadena aabbbb y diga si es vlida o invalida. ( , , )( , , ) ) ( , , ( , , ) ( , , ) ( , , ) ( , , ) ( , , ) Como se termin de derivar la cadena en el estado q0, dado que hay transicin. Decimos que la cadena es vlida Ejemplo 3: Obtenga un AP para el siguiente lenguaje ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) con 0.

34 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesRealice una descripcin instantnea de la cadena xxyy. ( , , )( , , ) ) ( , , ( , , ) ( , , ) ( , , ) Se detiene, y la cadena es vlida porque q1 es un estado de aceptacin. Ejemplo 4: Obtenga un AP para el siguiente lenguaje con ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) Realice una descripcin instantnea de la cadena xxyxyy. ( , , )( , , ) ) ( , , ( , , ) La cadena es invlida.

Facultad de Ingeniera

1.

Descripcin instantnea: Una descripcin instantnea es una configuracin del estado actual, del contenido de la pila y de la entrada no leda.Ejemplo para cadena valida. ( , 0110, ) ( , 110,0 ) ( , 10, ) ( , 0,1 ) ( , , ) ( , , ) El autmata se detiene aqu. Ejemplo para cadena invalida. ( , 111, ) ( , 11,1 ) ( , 1,11 ) ( , , 111 ) El autmata se detiene aqu y como no hay transicin, la cadena no es vlida.

35 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

Dada una gramtica G, deseamos construir un AP que acepte L (G). Empezaremos por introducir en la pila el smbolo inicial de G. En cada una de las etapas posteriores realizaremos una de estas acciones. 1. Si el smbolo que est en el tope de la pila, es un no terminal A, lo sustituimos por el lado derecho de la produccin para A, . 2. Si el smbolo del tope de la pila es un terminal y se corresponde con el siguiente smbolo de la entrada, lo desapilaremos de la pila. Estas acciones imitan una derivacin por la izquierda para la cadena de entrada. Si se agota la cadena de entrada y en el tope de la pila se encuentra el smbolo inicial de la pila, aceptaremos la cadena puesto que es posible la derivacin de la misma. Para definir el AP que acepte a L (G) sean:= , , = , donde z es el smbolo inicial de la pila y es distinto de todos los smbolos de . = = = , , , , F, S, z y la regla de transicin est compuesta por cuatro tipos de transiciones: 1. ( , , ) = ( , ), la cual corresponde con la introduccin del smbolo inicial en la pila. 2. ( , , ) = ( , )| para cada no terminal de N. 3. ( , , ) = ( , ) para cada smbolo terminal de . 4. ( , , ) = ( , )

Ejemplo 1: Sea la gramtica: 0 0|1 1|2 L (G). = , , = , 0,1,2, = = ( , , ) = ( , ) ( , , ) = ( , 0 0), ( , 1 ( , 0,0) = ( , ) ( , 1, 1) = ( , ) ( , 2, 2) = ( , ) ( , , ) = ( , ) Para la cadena 2. ( , 2, ) ( , , ) ( , 2, ) ( , 2,2 ) ( , , ) ( , , )

1), ( , 2)

Para la cadena 020 ( , 020, ) ( , , ) ( , 020, ) ( , 020,0 0 ) ( , 20, 0 ) ( , 20,20 ) ( , 0,0 ) ( , , ) ( , , )

Para la cadena 101 ( , 121, ) ( , , ) ( , 121, ) ( , 121,1 1 ) ( , 21, 1 ) ( , 21,21 ) ( , 1,1 ) ( , , ) ( , , )

36 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales | | | | descripciones instantneas para la cadena xxxyxx.Ejemplo 2: Sea la gramtica = , , = , , , = = ( , , ) = ( , ) ( , , ) = ( , ), ( , ( , , ) = ( , ) ( , , ) = ( , ) ( , , ) = ( , ) Para xxxyxx. ( , , )( , ) ( , , ( , , ) ) ( , , ( , ) , ) ( , , ) ( , , ) ( , , ( , , ) ) ( , , ( , , ) ( , , ) ( , , ) ( , , )

Facultad de Ingeniera

, construya un autmata de pila que acepte L (G) y obtenga las

), ( , , )

), ( ,

), ( ,

)

Ejemplo 3: Sea la gramtica G dada por las siguientes producciones. + | | Construya un autmata de pila que acepte L (G). = , , = , , = =( ( ( ( ( ( ( , , )=( , ) , , ) = ( , + ), ( , ) , , ) = ( , ), ( , ) , +, +) = ( , ) ,,) = ( , ) , , )=( , ) , , )=( , )

Para la cadena a+a-a

37 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales( , + , )( , + , ) ( , + , + ) ( , + , + ) ( , + , + ) ( ,+ ,+ ) ( , , ) ( , , ) ( , , ) Q3 no es un estado de aceptacin, por lo tanto la cadena es invlida.

Facultad de Ingeniera

MAQUINA DE TURINGUna maquina de Turing es una sptupla = , , , , , , , donde: Es el conjunto finito de estados. Es el alfabeto de entrada. Es el alfabeto llamado alfabeto de la cinta. Y es el estado inicial. Y es el smbolo espacio en blanco. (y no est en ). Es un subconjunto de y es el conjunto de estados finales de aceptacin. Es una funcin de transicin = QxxX. Esta definicin se supone que el valor inicial de todas las celdas de la cinta es el smbolo espacio en blanco (). La funcin de transicin transforma pares ( , ) formados por el estado actual y los smbolos de la cinta en ternas de la forma ( , , ), donde: = El estado siguiente. = Smbolo escrito en la cinta. = Es un movimiento de la cabeza de lectura-escritura, que puede ser , segn el movimiento sea hacia la izquierda o hacia la derecha.Ejemplo 1: Si tenemos la cinta siguiente || | | || ( , )=( , , ) || | | |

Las configuraciones de una maquina de turing tambin se pueden conocer mediante descripciones instantneas para representar una descripcin instantnea. La primera representa una configuracin como un par ( , ), donde es el estado actual, es la cadena de la cinta que precede a la celda sobre la que se encuentra de cabeza de entradasalida, es el smbolo de la cinta sobre el que se encuentra la cabeza de entrada-salida y es la cadena que halla continuacin de la cabeza de entrada-salida. ( , )( , ) 38 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes Formales

Facultad de Ingeniera

(

Otra notacin alternativa viene dada por una cadena que representa a la configuracin ), es decir la cabeza de entrada-salida, se coloca sobre la celda que contiene y el estado actual es . ( ,Ejemplo 1: Considere la mquina de Turing definida mediante: ( , = , = , ( , = , , ( , = ( , = ( , ( , )=( , , ) ( , )=( , , ) ( , ) = ( , , )

)(

)

)( , ) ) ) )

)

Ejemplo 2: Construya una maquina de Turing que analice una cadena sobre , que reemplace todas las por y todas por y que termine con la cadena sobre el blanco final (el blanco que sigue a la o a la que este mas a la derecha en la cadena transformada). ( , )=( , , )

MAQUINA DE TURING COMO ACEPTADOR DE LENGUAJESUna maquina de Turing se puede comportar como un aceptador de un lenguaje, dar la misma forma que lo hace un autmata finito o un autmata de pila.Ejemplo 1: Considere que se disea una maquina de Turing que acepte el lenguaje regular = ( , ) = ( , , ) ( , )=( , , )

= = = = =

=

, ,

,

,

.

, ,

=

Derive la cadena aaaa. ( , )( , ( , ) ( , ) ( , ) ( , ) ( , )

)

39 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo 2: Considere el lenguaje ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , )=( , , ) ( , ) = ( , , ) 1.

Facultad de Ingeniera

Supongamos que tenemos = 0,1 y que representamos los enteros positivos mediante cadenas de 0, as, el entero positivo n estara representado por 0 . La funcin suma ( , ) = + podra ser implementado mediante la transformacin de 0 10 en 0 1. Podramos disear una maquina de Turing apropiada para calcular la funcin suma.Ejemplo 1: ( , ) = 000+00= 2+3 ||0|0|0|1|0|0|| ( ( ( ( ( ( , )=( , 1) = ( , )=( , ) = ( , 0) = ( , ) = ( , 0, , 0, , 0, , , , 1, , , +

MAQUINA DE TURING PARA REALIZAR CLCULOS

( , 000100) ( , 000100) ( , 000100) ( , 000100) ( , 000000) ( , 000000) ( , 000000) ( , 000001) ( , 000001)

) ) ) ) ) )

40 Universidad Autnoma del Estado de Mxico | 2010-B

Autmatas y Lenguajes FormalesEjemplo 2: ( ) = 2 ||0|0|0||| ( ( ( ( ( ( ( ( ( ( ( ( ( , 0) = ( , 0) = ( , ) = ( , 0) = ( , 2) = ( , 1) = ( , 1) = ( , 1) = ( , 2) = ( , ) = ( , 2) = ( , 1) = ( , ) = ( , 2, , 0, , 1, , 0, , 2, , 1, , 1, , 1, , 2, , , , 0, , 0, , ,

Facultad de Ingeniera

( , 00) ( , 20) ( , 20) ( , 201) ( , 201) ( , 201) ( , 221) ( , 221) ( , 2211) ( , 2211) ( , 2211) ( , 2211) ( , 2211) ( , 2211) ( , 0211) ( , 0011) ( , 0001) ( , 0000) ( , 0000)

) ) ) ) ) ) ) ) ) ) ) ) )

41 Universidad Autnoma del Estado de Mxico | 2010-B