Вы находитесь на странице: 1из 54

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO

FACULTAD DE INGENIERA

LENGUAJES FORMALES Y AUTMATAS.

ORTEGA BLANCAS OSCAR.

ndice
Introduccin AFD Expresiones regulares Gramtica tipo 3 Reglas de Thompson AFND Obtener un AFD Obtener un AFD mnimo Gramticas libres de contexto (tipo 2) Algoritmos 1. Eliminacin de smbolos 2. Eliminacin de smbolos inaccesibles 3. Eliminacin de producciones 4. Eliminacin de smbolos unitarios 5. Forma normal de Chomsky 6. Recursividad 7. Forma normal de Greibach 8. Factorizacin Autmata a pila Mquina de Turing (MT) Bibliografa 22 23 24 29 32 35 37 41 43 48 7 8 12 15 18

1 4

a a 5 6 a a a a a 21 a a a a a a a a a a 52

4 5

8 12 14 17 21

23 24 28 31 34 37 40 42 47 52

Lenguajes Formales y Autmatas

Lenguajes Formales y Autmatas Los smbolos son la unidad bsica de los lenguajes Un lenguaje est formado por palabras y estas a su vez estn formadas por smbolos

Nota: En el curso las palabras son sinnimo de cadena Conjuntos: Un grupo de elementos con ciertas caractersticas en comn.

Tangibles: Fsicamente palpables; libros, autos etc. Conjuntos

Intangibles: No se puede tocar, pero si los podemos concebir; Conjunto de nmeros reales, conjunto de nmeros imaginarios.

Lenguaje (L): Un conjunto particular que acta sobre un Alfabeto en particular. En el lenguaje existe un conjunto de smbolos. Alfabeto (): Es un conjunto de smbolos. El alfabeto es un conjunto finito. Cadena o Palabra: Conjunto de smbolos que se concatenan a partir del alfabeto. La palabra tiene que ser finita. En el Lenguaje existe = {Conjunto de Smbolos}

Ejemplo de Lenguaje: L: {#%, %&, &#, #%,E# . . . } donde :{ #, %,&, %,E } Concatenacin: Es un tipo de operacin en el cual se yuxtapone (se pone al lado de otro) con la finalidad de formar palabras. La concatenacin no es conmutativa. Ejemplo de Concatenacin: Ejemplo: Concatenacin de lenguajes L1 L2 Se presentan lenguajes con su respectivo alfabeto: L1={ab, ac, bc . . . . } 1 = {a, b, c} L2={xk, ijk, . . . . } 2 = {x, y, i, j} L1L2: { abxk, acijk, acxk, bcxk, bcijk } L2L1: { xkab, ijkac, xkac, ijkac , xkbc , ijkbc } 1

Lenguajes Formales y Autmatas


Sea el lenguaje A donde: : {#, $, , , } A: {$#,##. . . . } Generador por la Concatenacin: { $ #, # , } Interseccin: La interseccin de los conjuntos A y B es el conjunto de los elementos A que tambin pertenecen a B. Ejemplo: Sea A y B los siguientes conjuntos. A:{1,2, 3} AB :{2,3} B:{2, 3, 4, 55, 32, 75}

Unin: La unin de los conjuntos A y B es el conjunto de todos los elementos de A con todos los elementos de B sin repetir ninguno: Ejemplo: Sea A y B los siguientes conjuntos. A:{1,2, 3} AB: {1,2, 3, 4, 55, 32, 75} Denotacin: Conjunto vaco {}, Conjunto de un elemento B:{2, 3, 4, 55, 32, 75}

{}

NOTA: Un lenguaje puede contener la cadena palabra vaca, Simbologa de la palabra vac a ( ). La palabra: aabca = aabca

Construccin de una palabra: 1.- Alfabeto ={a,b,c} 2.-Lenguaje L:{ab ,aa, aaaa. . . . ba,bc . . . . } ; es la palabra vaca La Palabra: aaaa es formada por smbolos del alfabeto y que est contenida en el lenguaje L. La palabra aaaa se puede formar en dos direcciones

Direccin de la construccin:

Posfijos (derecha) Prefijos (Izquierda)

Lenguajes Formales y Autmatas

Cerradura de Kleene

+ Cerradura Positiva

* Cerradura Estrella

Dnde: = {a, b, c}

L1: + = {a,b,c,aa..}

L2: *= {,a,b,c ..}

0 = Conjunto de potencia Alfabeto = {a}

1 =
2 = 3 =

Las Gramticas: Conjunto de reglas que permiten generar un Lenguaje. Chomsky: Clasifica las gramticas en cuatro tipos:

Gramtica tipo 3 Gramtica tipo 2 Gramtica tipo 1 Gramtica tipo 0

Lenguajes Formales y Autmatas


Gramticas Sin restricciones Tipo 0 Sensible al contexto Tipo 1 Lenguajes Sin restricciones Mquinas Mquina de Turing Producciones Sin restricciones

Sensible al contexto

Autmata linealmente acotado.

A ANT ,, cadenas de T y NT A ANT, cadena de TNT A aB Aa

Libre de contexto Tipo 2

Libre de contexto

Autmata a pila

Gramtica Regular Tipo 3

Lenguaje regular

Autmata Finito

NOTA: Como se puede apreciar la gramtica ms sencilla es la de tipo 3. La gramtica tipo 2 engloba a la 3 y as sucesivamente. De esta manera la gramtica tipo 0, Es la ms compleja y engloba a las otras

Autmata finito determinstico: Es un modelo matemtico de un sistema, con entradas y salidas discretas. El sistema puede estar en cualquiera de un nmero finito de configuraciones o Estados. Su finalidad es la de reconocer cadenas. Este determinar que cadenas son aceptadas y cuales no. Caractersticas 1. Numero finito de estados 2. Slo tiene un estado inicial 3. No puede existir Ambigedad 4. Tiene un estado de Aceptacin o ms

Autmata finito determinstico (AFD): Un autmata finito determinstico es una quntupla de los siguientes Elementos: (Q, , qo , F,): Q= Es el conjunto finito de estados = Es el alfabeto de entrada. Este debe ser finito qo = Debe pertenecer a Q. Es el estado inicial del Autmata (Solo 1 estado Inicial) F= Conjunto de estado finales o aceptacin. = Funcin de transicin. 4

Lenguajes Formales y Autmatas


Inicio o Estado inicial Estado final o de aceptacin 6 = {a,b} L= {abba,baa}

1 3 5

Expresiones Regulares: Una forma de representar un lenguaje que genera un Autmata finito determinstico. Tambin la podemos ver cmo una forma sencilla o reducida de expresar un lenguaje. Expresin Regular

NOTA: = {a, b, c, d, e,. . . .}

a aa aaa aaaa

a aa aaa aaaa

*= {, a, b, c , d ,e . . . .} Contiene

Disyuntiva, (or), (a|b): Indica que se tiene que tomar solo uno de los dos valores. Ejemplo:

Lenguajes Formales y Autmatas

AFND

En donde:

AFD

AFND con t- Expresin Regular

AFD: Autmata finito Determinstico. AFND: Autmata finito no Determinstico. AFND con t-: Autmata finito Determinstico con transiciones psilon.

Programa

GRAMTICAS DE TIPO 3
La gramtica del tipo 3 o gramtica regular. Sus producciones son de la forma: Lineal por la derecha: AaB o Aa Donde A, B NT, a T. Lineal por la izquierda: ABa o Aa Donde A, B NT, a T. Se permiten producciones de la forma .

Gramtica tipo 3 Es reconocida por

AFD

Expresiones regulares

Lenguajes

Relacin existente AFND con t-

AFND sin t-

Lenguajes Formales y Autmatas Las 4 operaciones de Thompson


Cerradura Positiva Concatenacin ab

Cerradura Estrella

Disyuncin (a|b) 2 3 6

4 1

Lenguajes Formales y Autmatas

Autmata Finito No determinstico: (AFND) Caractersticas: 1. Puede contener transiciones 2. Puede tener varios estados iniciales 3. Pude tener ambigedad NOTA: Ambigedad: Sucede cuando se sale de un estado (Nodo) con el mismo smbolo 2 veces o ms.

Relacin entre AFND Y AFND 1 Los AFND contienen a los AFD por ello se pude convertir de AFND a un AFD AFND

2 3

AFD

Lenguajes Formales y Autmatas

Autmata Finito No determinstico (AFND): Un Autmata Finito No Determinstico es una quntupla de los siguientes Elementos: (Q, , qo, F, ): Q= Es el conjunto de estados. = Es el alfabeto de entrada del autmata. Este debe ser finito. qo = Conjunto de estados iniciales. F= Conjunto de estado finales o aceptacin. = Funcin de transicin.

Obtencin de un Autmata Finito No Determinstico sin t- a partir de un Autmata Finito no determinstico con t-.

1.- Para obtener un AFND sin a partir del grafo de nuestro autmata. Se debe anotar todas las transiciones posibles. En los cuales existe un smbolo diferente a . Por ejemplo: 0 -a 1, es un posible camino.

Transiciones
0 -a 1 2 -b 7 5 -a 5 1 -b 2 3 -a 5 5 -b 7 2 -b 2 3 -b 7 6 -b 7 2 -a 5 4 -a 5

NOTA: Obtencin de transiciones 5 -b 7 = 5 - 4, 4 - 3, 3 - 6, 6 -b 7. No se anotan las transiciones con . Slo estado inicial y final. Se deben colocar todas las posibles transiciones de este tipo. 9

Lenguajes Formales y Autmatas


2.- A partir de la tabla de transiciones creamos el nuevo Autmata AFND sin t-. NOTA: Transiciones sin t-: Son aquellos recorridos entre estados que no contienen .

NOTA: Estados Finales (EF): son aquellos estados que a partir del ltimo (que es un estado final) estado se llegan a este ltimo por medio de transiciones . En el siguiente ejemplo los estados finales son: 2, 3, 4

NOTA: Estados Iniciales (EI): Partiendo de un estado inicial. S de un estado inicial se puede llegar a otro estado por medio de este ltimo ser un estado inicial. EI: 1, 2, 4

2 1

10

Lenguajes Formales y Autmatas Ejemplo completo: Obtener un AFND sin t-.

Transiciones 1 -f 2 2 -c 3 3 -f 6 3 -c 9 6 -c 12 9 -c 12 6 -f 6 3 -c 3 3 -c 12 Estados iniciales: 1 Estados Finales: 12 11 -f 6 9 -c 9 11 -c 9 8 -c 9 9 -f 6 10 -f 6 4 -f 6 4 -c 9 9 -c 12 5 -f 6 7 -c 9 7 -c 12 9 -c 12 10 -c 12 11 -c 12 6 -c 9 7 -f 6

11

Lenguajes Formales y Autmatas


A partir de las transiciones Obtenemos el AFND sin t-

Mtodo completo para Obtener un AFD

12

Lenguajes Formales y Autmatas

Transiciones 1 -a 4 2 -c 11 1 -c 8 6 -c 11 1 -c 11 3 -a 4 2 -a 4 7 -c 8 6 -c 8 4 -c 11 8 -c 11 8 -c 8 Estados iniciales: {1, 2, 3, 5, 6, 7,9, 10 } Estados finales: {11} 4 -a 4 10 -c 11 9 -c 11 5 -c 11

Grafo AFND sin t-

13

Lenguajes Formales y Autmatas


Tabla de transiciones , Estados iniciales {1,2,3,5,6,7,9,10} {4} {8,11} {11} , alfabeto {a, c} a C {4} {8, 11} {4} {11} ---{8,11} --------A/R Aceptacin/Rechazo R R A A
NOTA: Aceptacin: Estado final. Rechazo: cualquier otro estado que no es el final

NOTA: La segunda columna se obtiene de la siguiente tabla: Cada estado inicial pasa a un estado por un smbolo de : 1 -a 4 3 -a 4 2 -a 4 1 -c 8 6 -c 8 2 -c 11 6 -c 11 1 -c 11 10 -c 11 9 -c 11 5 -c 11

La tabla de transiciones se puede reducir mediante ms iteraciones. Debido a que tenemos dos o ms estados equivalentes. De esta forma se reducir para obtener nuestro AFD. El AFD en el momento que se reduzca se podr programar de una manera an ms fcil. Ser propone {1, 2, 3, 5, 6, 7, 9, 10}=A y {8,11}=B. Para poder realizar la siguiente tabla:

, Estados iniciales A {4} B {11}

, alfabeto {a, c} a C {4} B {4} {11} ---B ---------

A/R Aceptacin/Rechazo R R A A

14

Lenguajes Formales y Autmatas


Ejemplo de reduccin en la Tabla de transiciones (Autmata mnimo):

Los renglones 3 y 4 se remplazan por X (es renombrado). Cada vez que se refieran en la siguiente reduccin a 3 o 4 se remplaza con X. Luego sucede lo mismo con Y. Que remplaza a 2 y X en la ltima reduccin. Todo esto para obtener el siguiente AFD mnimo.

NOTA: Estados equivalentes: Son aquellos estados en los cuales tanto los nodos (estados) estn unidos por los mismos Smbolos y adems comparten el mismo estado ya sea de aceptacin o rechazo. Columnas 2 y 3 segn el ejemplo anterior

15

Lenguajes Formales y Autmatas

Pasos para Obtener un Autmata Finito Determinstico (AFD) mnimo:


A partir de la Expresin regular: 1.- Utilizando las 4 Reglas de Thompson Obtenemos un AFND con t-. 2.-Obtenemos las transiciones sin . 3.- Utilizamos las transiciones (sin ) para crear el grafo del AFND sin t-. 4.-Por tablas de transiciones eliminamos estados equivalentes. 5.-Por tablas de transicin obtenemos el AFD mnimo. En el siguiente Ejemplo que se presentara. Nos ayudara para identificar la diferencia entre un AFD y un AFD mnimo. Al generarse las tablas se puede observar que a medida que se realizan dichas tablas. Los estados o nodos se van reduciendo. Esto es debido a que se busca el autmata mnimo. En el proceso de realizacin de las tablas se van eliminando estados equivalentes. 1.-En el ejemplo el primer paso es agrupar en 2 grupos. 2.- Despus de esto se genera la siguiente tabla siguiendo la lgica de la primera tabla pero tomando en cuenta que los estados fueron renombrados si son equivalentes. 3.-Las tablas deben de generarse hasta observar que la reduccin ya no es posible. Esto es como se muestra en el ejemplo del inciso 2 al inciso 3 ya no ay un cambio en el nmero de estados. Esto nos indicara que hemos llegado a obtener el AFD mnimo. Del autmata mnimo se puede obtener la gramtica Regular.

NOTA: Para generar todas tablas nos tenemos que basar en la primera tabla. Pues est nos indica a partir de los estados iniciales (primera columna) a que otro estado pasa y con qu smbolo (Segunda columna). Las partes constantes en estas tablas son los estados de aceptacin o rechazo (tercera columna).

16

Lenguajes Formales y Autmatas

17

Lenguajes Formales y Autmatas Gramticas libres de contexto


La gramtica es un conjunto de reglas y rpincipios que gobiernan las lenguajes G=(T, NT, I, P) Reglas. T= terminales (se escriben con Minsculas)

NOTA: Los smbolos para denotar las derivaciones sern:

:=

NT= no terminales (se escriben con Maysculas) I= P= Smbolo inicial Producciones

Ejemplo:

NOTA: Producciones Todas las producciones son Concatenaciones.

Recordando las Gramticas Regulares: 1. Simpre inician con un estado No terminal 2. Despues de la derivacion () tenemos un smbolo no terminal An ; donde : A NT , n T 3. Existen tres posibiliades en las gramticas regulares: AaB Crecen a la derecha las derivaciones ABa Crece a la izquierda las derivaciones Aa Derivacion a un estado final
18

Observemos que la diferencia entre las gramaticas tipo 2 y 3 son sus derivaciones.

Lenguajes Formales y Autmatas

Las gramticas pueden contener:

Smbolos muertos: Es un smbolo no terminal que no genera ninguna cadena de smbolos terminales. Smbolos inaccesibles: S a partir de cero o ms derivaciones no puedo llegar a un smbolo desde el inicial este es un smbolo inaccesible.

Smbolos intiles

Derivaciones vacas (): solo se puede contar con el smbolo en la derivacin del smbolo inicial. Si se cuenta con en otra produccin que no es la inicial () estas son derivaciones vacas. Smbolos unitarios: Es la derivacin de un smbolo No terminal a otro smbolo No terminal. Las producciones unitarias hacen a la gramtica innecesariamente compleja ya que simplemente renombran un smbolo no terminal.

NOTA: Gramticas Propias Como se mencion las gramticas pueden contener este tipo de smbolos intiles. Al eliminar este tipo de smbolos de nuestra gramtica obtenemos una gramtica propia o limpia de smbolos intiles.

19

Lenguajes Formales y Autmatas


Ejemplo de gramtica con Smbolos intiles P: { A aC|Dcab|E| B aa|bd|E C bb|d|CD|aAD D ab|aa|D| } Obtencin de Gramtica a partir de un Grafo Smbolo muerto: E Smbolo inaccesible: B Smbolo unitario: D es unitario de C Derivaciones vacas:

1.-A partir del grafo se renombran los estados: S=II A=III B=I 2.- Los smbolos terminales a, b T. Los smbolos S, A, B NT. Donde S es el smbolo inicial de acuerdo al grafo. 3.-Obtener la gramtica: Del estado S (inicial) por medio de a llega al estado S. Se representara as: SaS. De esta forma separando por | obtenemos la siguiente grmatica. P:{ SaS|bA AbA|aB BbA|aB|a }

20

Lenguajes Formales y Autmatas

Ejemplo: P:{ S0A|1B| A1B|0C|0 B0A|1C|1 C 0C|1C|0|1 } Dnde: Smbolo inicial (I): {S} Smbolos no terminales (NT): {S, A, B, C} Smbolos terminales (T): {0,1}

Algoritmos
Algoritmos: Es un conjunto de Pasos lgicos y estructurados que nos permiten dar solucin an problema. La importancia de un algoritmo radica en desarrollar un razonamiento lgico matemtico a travs de la comprensin y aplicacin de metodologas para la resolucin de problemticas, estas problemticas bien pueden ser disciplinas Como matemticas, qumica y fsica que implican el seguimiento de algoritmos, apoyando as al razonamiento critico deductivo e Inductivo. 1. Smbolos Muertos. 2. Smbolos Inaccesibles. 3. Eliminacin Derivaciones . 4. Smbolos Unitarios. 5. FNC Forma normal de Chomsky. 6. Recursividad por la izquierda. 7. FNG Forma normal de Greibach. 8. Factorizacin.

21

Lenguajes Formales y Autmatas


Algoritmo I Smbolos Muertos

Sea G= { (NT=S, C, B, A) , (T=a, b, e), (I=S) , P: {


S C B A } CaS|aA| BeA|Ca|C|B AaB|a|Be|aS CaA|be|| B

} 1.- Inicializar N con todos los no terminales (NT) para los que Aw es una produccin de G, donde w (T) terminales. En nuestra gramtica los no terminales con producciones de este tipo son: N {S, B, A} donde S, B, A tienen derivaciones finales del tipo Aa de un no terminal a un terminal.
2.- Inicializar P con todas las producciones Aw para las cuales A NT y w T. P: { S Ba A be| }

Donde {, a, b, e} son terminales y cumplen con la produccin Aw

3.- Repetir: Aadir a N todos los no terminales A para los cuales Aw, donde w (N u que sea una produccin de P y aadirla a P. Aadiendo N {S, B, A} ------> N{S, B, A, C}

={a, b ,e} donde (N u ) = {S, B, A, C, a, b, e} y


(N u ={SB, SAB, ab, SBb, SABe, a,be . .. } Se agregaran las otras producciones a P las cuales son ya una combinacin con entre terminales y no terminales.
22

Lenguajes Formales y Autmatas


As Obtenemos:

P: {
S C B A } CaS|aA| BeA|Ca|C|B AaB|a|Be|aS CaA|be|| B

P: { S B A C }

|aA|CaS a |AaB|Be|aS be| | CaA | B BeA|Ca|C|B

Algoritmo II Smbolos Inaccesibles Sea la siguiente gramtica: P: { S B A C }

|aA|CaS a |AaB|Be|aS be| | CaA | B BeA|Ca|C|B

1.- Inicializar N de forma que contenga El Smbolo inicial (S), e incializar P y a 0. N={S} P={0} ={0}

2.- Repetir: Para A N, si A w es una produccin de P, entonces: 1. Introducir A w en P. 2. Para todo no terminal NT de w, introducir el NT en N. 3. Para todo terminal T de w, introducir T en .

2.1 Solo hay S dentro de N as que introducimos las producciones de S a P. P: { S |aA|CaS }

23

Lenguajes Formales y Autmatas


2.2 En la produccin de S el prximo NT es A y por lo tanto. Se introduce en N. N={S, A} 2.3 En la produccin S el prximo terminal (a la derecha) es . Se introduce en . ={ } Este Procedimiento se repite ahora con el siguiente smbolo existente en N. As continuamos en el paso 2 repitiendo las acciones ya vistas. Al final Obtendremos. N={S, A, C, B} P: { S A C B } ={ , a, b, e } y las producciones quedaran como:

| aA| CaS be | | CaA | B BeA | Ca| C| B a | AaB| Be| aS

Algoritmo III Eliminacin de Derivaciones Sea P: P: { S A C B }

| aA| CaS be | | CaA | B BeA | Ca| C| B a | AaB| Be| aS contener

0. El nico smbolo NT (No terminales) que puede producciones vacas () es el smbolo inicial. Como podemos observar en S el smbolo inicial Existe .
NOTA: Antecedente Consecuente A b

24

Lenguajes Formales y Autmatas


1. Crear una lista (L) de elementos NT (No Terminales) que se encuentren en el antecedente de una produccin vaca. Con excepcin de S , Siendo S el estado inicial. Iniciar lista de Smbolos no terminales que contienen en sus derivaciones el elemento . L{ A 2. Si se encuentra una produccin con slo elementos NT en el consecuente y estos estn en la lista anterior, se agrega a la lista el antecedente de la produccin. En este caso se tendran que agregar si se tuviera la siguiente forma: L A|Li|Ua. Donde {A, L, U} y donde LA es una

derivacin con solo elementos en NT por lo tanto C, el antecedente se agrega a L.


3. Repetir el paso 2 hasta ya no poder agregar ms elementos a la lista. 4. Si S (Smbolo inicial) contiene producciones y est en el consecuente de una produccin A w, donde w=BS0 y B,0 (N u T . agregar S a la lista de L. S Contiene producciones . S est en el consecuente de una

produccin Aw. L={A,S}.


5. Formar el nuevo conjunto de Producciones P a partir de P. P: { S | aA| CaS A be | | CaA | B C BeA | Ca| C| B B a | AaB| Be| aS } Se copian las producciones de P a P

25

Lenguajes Formales y Autmatas


5.a: Quitar todas las producciones , Excepto en S. P: { S | aA| CaS A be | CaA | B C BeA | Ca| C| B B a | AaB| Be| aS } 5.b: Si existe un Aw donde w (NTT pero contenga un solo NT L. Se sustituye ese NT por en cada produccin de ese tipo y se agrega la nueva produccin. Dnde: NT (no terminales, Maysculas) Aw0 Bk w1, w (NTT NT L Bk NT Bk L , K=1 Para: w que existe en la concatenacin de terminales y no terminales. NT y Bk que existan en L. Bk existe en los no terminales. Cada Derivacin de la forma: Aw0 Bk w1 L = {A, S}; S se agreg por el punto 4. En cada derivacin en la cual exista un NT. Que tambin exista en L y de la forma que explico. Se agregara la derivacin sustituyendo el no terminal por : P: { S | aA| CaS |a | Ca A be | CaA | B | Ca C BeA | Ca| C | B | Be B a | AaB| Be| aS | aB | a }

26

Lenguajes Formales y Autmatas


5.c: Para cada produccin de la gramtica que tengan la forma Aw0 B1 w1 B2 w2 . . . . donde: (k>1). En el ejercicio que se ha dado no se presenta este caso. Pero se ejemplificara: P: { S A C B }

| aA| CaS |a | Ca | AaAe be | CaA | B | Ca | SbABS BeA | Ca| C | B | Be | aCBSaA a | AaB| Be| aS | aB | a

Paso 1: Las letras en negro son las producciones que cumplen con el inciso 5.c
NOTA: Caso AA, AB

S no se presenta el caso de que nuestra produccin tenga la forma sealada (AA, AB ). El nmero de combinaciones estar dado por: # combinaciones = .

Paso 2: Se sustituyen los no terminales que existen en L. Se hacen todas las combinaciones posibles para cada produccin que cumple con 5.c (en color negro): AaAe aAe Aae ae = = = aAe Aae Ae SbABS bABS SbBS SbAB bBS bAB SbB bB = = = = = = = bABS SbBS SbAB bBS bAB SbB bB aCBSaA aCBaA aCBaA aCBSa = aCBaA = aCBSa = aCBa

27

Lenguajes Formales y Autmatas


La nueva P Contiene todas las posibilidades que determinamos as como la original y estas se agregan a P. P: { S | aA| CaS |a | Ca | AaAe | aAe | Aae | Ae A be | CaA | B | Ca | SbABS | bABS | SbBS | SbAB | bBS | bAB | SbB | bB C BeA | Ca| C | B | Be | aCBSaA | aCBaA | aCBa B a | AaB| Be| aS | aB | a } 6. S S est en la lista de L agregu al conjunto de Producciones P, la produccin de la siguiente manera SS|. S el caso es que S, Quitar esa produccin y hacer S el smbolo inicial. P: { S S| S aA| CaS |a | Ca A be | CaA | B | Ca C BeA | Ca| C | B | Be B a | AaB| Be| aS | aB | a }

NOTA: Se eliminaron las que estaban en 5.b

28

Lenguajes Formales y Autmatas

Algoritmo IV Smbolos unitarios

NT (No terminales) y se define lo siguiente: Observe que para A un unitario (A) puesto que AA mediante 0
A producciones.

Sea P: P: { S S| S aA| CaS |a | Ca A be | CaA | B | Ca C BeA | Ca| C | B | Be B a | AaB| Be| aS | aB | a } 1. Inicializar P de forma que contenga todos los elementos de P. P=P: { S S| S aA| CaS |a | Ca A be | CaA | B | Ca C BeA | Ca| C | B | Be B a | AaB| Be| aS | aB | a } 2. Para cada A que exista en NT, Obtener el conjunto unitario (A). Unitarios: u(S) =(S, S) u(S) =(S) u(A) =(A, B) u(C) =(C, B) u(B) =(B)
NOTA: Unitarios Representacin Unitario (s) de A se representa: u(A) =(A,B)

29

Lenguajes Formales y Autmatas


3.- Para cada A para el cual unitario(A) A. Para cada B unitario en A. Para cada produccin no unitaria Bw de P aadir Aw a P. Conjunto de unitarios U(A) u(S) =(S) u(A) = (B) u(C) =(B) P: { S S| S aA| CaS |a | Ca A be | CaA | B | Ca C BeA | Ca| C | B | Be B a | AaB| Be| aS | aB | a } Aadiendo Aw a P Producciones no unitarias: P: { S S|| aA| CaS |a | Ca S aA| CaS |a | Ca A be | CaA | B | Ca | a | AaB| Be| aS | aB | a C BeA | Ca| C | B | Be | a | AaB| Be| aS | aB | a B a | AaB| Be| aS | aB | a }

30

Lenguajes Formales y Autmatas


4.- Eliminar todas las producciones unitarias que haya en P. Unitarios: u(S) =(S, S) u(S) =(S) u(A) =(A, B) u(C) =(C, B) u(B) =(B)

NOTA: Tambin se eliminan terminales repetidos. Como en:

B a | AaB| Be| aS | aB | a

P: { S S|| aA| CaS |a | Ca S aA| CaS |a | Ca A be | CaA | B | Ca | a | AaB| Be| aS | aB | a C BeA | Ca| C | B | Be | a | AaB| Be| aS | aB | a B a | AaB| Be| aS | aB | a } Despus de eliminar P: { S | aA| CaS |a | Ca S aA| CaS |a | Ca A be | CaA | Ca | a | AaB| Be| aS | aB C BeA | Ca | Be | a | AaB| aS | aB B a | AaB| Be| aS | aB }

31

Lenguajes Formales y Autmatas


Algoritmo V Forma normal de Chomsky (FNC) En Este algoritmo se pretende llegar a dos posibilidades: ABC Aa Dnde: A, B, C NT y a T. Sea: P: { S | a| aA| CaS | Ca A be |a | CaA | Ca | AaB| Be| aS | aB C a | BeA | Ca | AaB| Be| aS | aB S a| aA| CaS | Ca B a | AaB| Be| aS | aB }

1.- Se subrayan las producciones que no cumplen con: ABC Aa

P: { 1) 2) 3) 4) 5) }

S | a| aA| CaS | Ca A be |a | CaA | Ca | AaB| Be| aS | aB C a |BeA | Ca | AaB| Be| aS | aB S a| aA| CaS | Ca B a | AaB| Be| aS | aB

32

Lenguajes Formales y Autmatas


2.- Analizar la primera produccin subrayada si esta no cae en la forma del punto 1. Sustituir de acuerdo con la siguiente convencin: Los terminales se representan con X. Los no terminales se representaran con Y. La sustitucin es de derecha a izquierda. aA: No cae en la forma del punto 1. Sustituyendo de izquierda a derecha. Se propone la siguiente produccin. X1 a 3.- agregar esta nueva produccin a P 6) X1 a 4.- Sustituir la produccin anterior en P. P: { 1) 2) 3) 4) 5) 6) }

S | a| X1A| C X1S | C X1 A be |a | C X1A | C X1 | A X1B| Be| X1S | X1B C a |Be A | C X1 | A X1B| Be| X1S | X1B S a| X1A| CX1S | C X1 B a | A X1B| Be| X1S | X1B X1 a

5.- Repetir los pasos 1, 2, 3, 4 con la actual P hasta que todas las producciones cumplan con las formas: ABC A a. Para continuar con el ejercicio se aplicara el algoritmo a la siguiente produccin: Paso 1: P: { 1) 2) 3) 4) 5) 6) }

S | a| X1A| C X1S | C X1 A be |a | C X1A | C X1 | A X1B| Be| X1S | X1B C a |Be A | C X1 | A X1B| Be| X1S | X1B S a| X1A| CX1S | C X1 B a | A X1B| Be| X1S | X1B X1 a
33

Lenguajes Formales y Autmatas

C X1S:

Esta produccin no cumple con la FNC. NOTA: Y Se utiliza para sustituir a 2 No terminales. La sustitucin es de derecha a izquierda

Paso 2: Y1 X1S Paso 3: 7) Y1 X1S Paso 4:

P: { 1) 2) 3) 4) 5) 6) 7) }

S | a| X1A| C Y1 | C X1 A be |a | C X1A | C X1 | A X1B| Be| Y1 | X1B C a |Be A | C X1 | A X1B| Be| Y1 | X1B S a | X1A| C Y1 | C X1 B a | A X1B| Be| X1S | X1B X1 a Y1 X1S

Una vez mostrado el procedimiento se presentan a continuacin las producciones del ejercicio terminado. P: { 1) S | a| X1A| C Y1 | C X1 2) A X3 X2 |a | C Y2 | C X1 | A Y3| B X2| X1S | X1B 3) C a |B Y4 | C X1 | A Y3| B X2| X1S | X1B 4) S a | X1A| C Y1 | C X1 5) B a | A Y3| B X2| X1S | X1B 6) X1 a 7) Y1 X1S 8) X2 e 9) X3 b 10) Y2 X1A 11) Y3 X1B 12) Y4 X2A }

34

Lenguajes Formales y Autmatas


Algoritmo VI Recursividad por la izquierda Para usar recursividad es necesario contar con una gramtica (G) sin ciclos, ni producciones . Libre de Smbolos intiles. Despus de aplicar este algoritmo se obtendr equivalente sin recursividad por la izquierda.
Recursividad propia A donde: B, A NT

una

gramtica

AB

Tipos de Recursividad

Recursividad impropia A donde: B, C

BC

(N U T)*

1.- Ordenar los no terminales (N) de la forma A1, A2, . . . An 2.- For(cada i de 1 a n){ 3.- for(cada j de 1 a (i-1)) { 4.- Sustituir cada produccin de la forma Sustituir cada produccin, de la forma Ai Aj por las producciones Ai 1 | 2 | | k, en donde Aj 1 | 2 | | k sean todas producciones 5.-}
6.- Eliminar la recursividad inmediata por la izquierda entre las

Aj actuales.

producciones Ai Se tienen producciones de la forma: a) A A A A | Sustituir esa produccin por: b) A | A A | A 7) }


35

Dnde: A N ( N U )+ ( N U )+

Lenguajes Formales y Autmatas


Sea: P={ S | X1A | C Y1|a| C X1 A X3 X2 | C Y2 | C X1|a| A Y3 |B X2 | X1S | X1B C B Y4| C X1 | B X2| a| AY3 | X1S | X1B S a| X1A | C Y1 | C Y1 | C X1 B a | A Y3 | B X2 | X1S| X1B X1 a Y1 X1S X2 e X3 b Y2 X1A Y3 X1B Y4 X2A } Aplicando el algoritmo VI: 1.- N = {S, X1, A, C, Y1, X3, X2, Y2, Y3, B, S, Y4} 2.3.4.- Para i = 2. i es X1 ; donde j=1 solo se analiza para S. S no tiene producciones S | X1A | C Y1| a | C X1 Entonces en j = 1 por lo tanto solo se analiza para S No tiene producciones S entonces X1 queda igual X1 a Se incrementa i. 4.-Para i=3. i es A; j=1. Para j=1 no hay S, se deja igual e incrementa j+1. 4.- para i=3. i es A; j=2. Se analiza A: A X3 X2 | C Y2 | C X1|a| A Y3 |B X2 | X1S | X1B X1 existe en A por lo tanto se sustituye el valor de a de acuerdo a la lista de producciones (X1 a). Esto nos quedara como: A X3 X2 | C Y2 | C X1|a| A Y3 |B X2 | aS | aB. Termina pasa y se pasa al paso 5.
36

Lenguajes Formales y Autmatas


5.- } se cierra el primer ciclo. 6.- Revisamos si hay recursividad inmediata. A X3 X2 | C Y2 | C X1 | a | A Y3 |B X2 | aS | aB existe recursividad inmediata. Se llevan a cabo los incisos a,b. a) A X3 X2 | C Y2 | C X1 | a | X3 X2 A| C Y2 A | C X1 A | a A| B X2 A | aS A | aB A |B X2 | aS | aB b) A Y3 | Y3A 7.- } Se cierra el for exterior. Luego se incrementa i. Donde i=4. Se repite el algoritmo hasta i=12.

Algoritmo VII Forma normal de Greibach FNG Las gramticas independientes libres de contexto (GIC). Presentan la forma normal de Greibach. En donde cada una de sus producciones tiene un consecuente que inicia con un carcter terminal. La forma de las producciones es la siguiente:

A a
A NT y en el antecedente. a P { S CY1 | X1 C e | BY2 | CX1 A X3X2 | CY3 B a | AY4 | BX3 | X1S X1 a Y1 X1S X2 e Y2 X2A X3 b Y3 X1A Y4 X1B

37

Lenguajes Formales y Autmatas


1.- Aplicar la recursividad por la derecha. De esta forma obtendremos el tipo de gramtica que nos interesa. Con las producciones A a N= {Y4, Y3, X3, Y2, X2, Y1, X1, B, A, C, S} P {

S e Y1| a Y2 Y1| bX2 Y3Y4 Y2 Y1 | a B Y2 Y1| bX2 Y4 B Y2 Y1 | aS B Y2 Y1| aS Y2 Y1|e C Y1| a Y2 C Y1 |bX2 Y3Y4 Y2 C Y1 | a B Y2 C Y1| bX2 Y4 B Y2 C Y1| aS B Y2 C Y1| aS Y2 CY1 | a C e | a Y2 | bX2 Y3Y4 Y2 | a B Y2 | bX2 Y4 B Y2 | aS B Y2| aS Y2 |e C | a Y2 C | bX2 Y3Y4 Y2 C | a B Y2 C| bX2 Y4 B Y2 C| aS B Y2 C| aS Y2 C A bX2 | CY3 B a | AY4 | aS| a B | AY4 B | aS B X1 a Y1 aS X2 e Y2 eA X3 b Y3 aA Y4 Ab B X3 C Y3Y4 Y2 | Y3Y4 B Y2 | X1 } 2.-Despues de aplicar recursividad ver si las producciones cumplen con la forma normal de Greibach. N= {Y4, Y3, X3, Y2, X2, Y1, X1, B, A, C, S} P: { S e Y1| a Y2 Y1| bX2 Y3Y4 Y2 Y1 | a B Y2 Y1| bX2 Y4 B Y2 Y1 | aS B Y2 Y1| aS Y2 Y1|e C Y1| a Y2 C Y1 |bX2 Y3Y4 Y2 C Y1 | a B Y2 C Y1| bX2 Y4 B Y2 C Y1| aS B Y2 C Y1| aS Y2 CY1 | a C e | a Y2 | bX2 Y3Y4 Y2 | a B Y2 | bX2 Y4 B Y2 | aS B Y2| aS Y2 |e C | a Y2 C | bX2 Y3Y4 Y2 C | a B Y2 C| bX2 Y4 B Y2 C| aS B Y2 C| aS Y2 C A bX2 | CY3 B a | AY4 | aS| a B | AY4 B | aS B X1 a Y1 aS X2 e Y2 eA X3 b Y3 aA Y4 Ab B X3 C Y3Y4 Y2 | Y3Y4 B Y2 | X1 }
38

Lenguajes Formales y Autmatas


3.- Sustituir a partir de las producciones en aquellas derivaciones que no tienen la FNG. Tienen ya la forma. S e Y1| a Y2 Y1| bX2 Y3Y4 Y2 Y1 | a B Y2 Y1| bX2 Y4 B Y2 Y1 | aS B Y2 Y1| aS Y2 Y1|e C Y1| a Y2 C Y1 |bX2 Y3Y4 Y2 C Y1 | a B Y2 C Y1| bX2 Y4 B Y2 C Y1| aS B Y2 C Y1| aS Y2 CY1 | a C e | a Y2 | bX2 Y3Y4 Y2 | a B Y2 | bX2 Y4 B Y2 | aS B Y2| aS Y2 |e C | a Y2 C | bX2 Y3Y4 Y2 C | a B Y2 C| bX2 Y4 B Y2 C| aS B Y2 C| aS Y2 No tiene la forma y hay que sustituir los valores de C concatenndolo a Y3. A bX2 | CY3 ; A bX2 | e Y3 | a Y2 Y3 | bX2 Y3Y4 Y2 Y3 | a B Y2 Y3 | bX2 Y4 B Y2 Y3 | aS B Y2 Y3| aS Y2 Y3|e C Y3 | a Y2 C Y3 | bX2 Y3Y4 Y2 C Y3 | a B Y2 C Y3| bX2 Y4 B Y2 C Y3| aS B Y2 C Y3| aS Y2 CY3 Se realiza la misma accin para: B a | AY4 | aS| a B | AY4 B | aS B El resultado es: B a | bX2 Y4 | e Y3 Y4| a Y2 Y3 Y4 | bX2 Y3Y4 Y2 Y3 Y4 | a B Y2 Y3 Y4 | bX2 Y4 B Y2 Y3 Y4 | aS B Y2 Y3 Y4| aS Y2 Y3 Y4|e C Y3 Y4 | a Y2 C Y3 Y4 | bX2 Y3Y4 Y2 C Y3 Y4| a B Y2 C Y3 Y4| bX2 Y4 B Y2 C Y3 Y4| aS B Y2 C Y3 Y4| aS Y2 CY3Y4 | aS| a B | bX2 Y4 B | e Y3 Y4 B | a Y2 Y3 Y4 B | bX2 Y3Y4 Y2 Y3 Se realiza la misma accin para: Y4 Ab; Y4 bX2b | e Y3b | a Y2 Y3 b| bX2 Y3Y4 Y2 Y3b | a B Y2 Y3b | bX2 Y4 B Y2 Y3b | aS B Y2 Y3b| aS Y2 Y3b|e C Y3b | a Y2 C Y3b | bX2 Y3Y4 Y2 C Y3b | a B Y2 C Y3b| bX2 Y4 B Y2 C Y3b| aS B Y2 C Y3b| aS Y2 CY3b Se realiza la misma accin para: B X3; B b Se realiza la misma accin para: C Y3Y4 Y2 | Y3Y4 B Y2 | X1 C aA Y4 Y2 | aA Y4 B Y2 | a As obtendramos las siguientes producciones con la forma normal de Greibach.
39

Lenguajes Formales y Autmatas

P:{ S e Y1| a Y2 Y1| bX2 Y3Y4 Y2 Y1 | a B Y2 Y1| bX2 Y4 B Y2 Y1 | aS B Y2 Y1| aS Y2 Y1|e C Y1| a Y2 C Y1 |bX2 Y3Y4 Y2 C Y1 | a B Y2 C Y1| bX2 Y4 B Y2 C Y1| aS B Y2 C Y1| aS Y2 CY1 | a C e | a Y2 | bX2 Y3Y4 Y2 | a B Y2 | bX2 Y4 B Y2 | aS B Y2| aS Y2 |e C | a Y2 C | bX2 Y3Y4 Y2 C | a B Y2 C| bX2 Y4 B Y2 C| aS B Y2 C| aS Y2 A bX2 | e Y3 | a Y2 Y3 | bX2 Y3Y4 Y2 Y3 | a B Y2 Y3 | bX2 Y4 B Y2 Y3 | aS B Y2 Y3| aS Y2 Y3|e C Y3 | a Y2 C Y3 | bX2 Y3Y4 Y2 C Y3 | a B Y2 C Y3| bX2 Y4 B Y2 C Y3| aS B Y2 C Y3| aS Y2 CY3 B a | bX2 Y4 | e Y3 Y4| a Y2 Y3 Y4 | bX2 Y3Y4 Y2 Y3 Y4 | a B Y2 Y3 Y4 | bX2 Y4 B Y2 Y3 Y4 | aS B Y2 Y3 Y4| aS Y2 Y3 Y4|e C Y3 Y4 | a Y2 C Y3 Y4 | bX2 Y3Y4 Y2 C Y3 Y4| a B Y2 C Y3 Y4| bX2 Y4 B Y2 C Y3 Y4| aS B Y2 C Y3 Y4| aS Y2 CY3Y4 | aS| a B | bX2 Y4 B | e Y3 Y4 B | a Y2 Y3 Y4 B | bX2 Y3Y4 Y2 Y3 X1 a Y1 aS X2 e Y2 eA X3 b Y3 aA Y4 bX2b | e Y3b | a Y2 Y3 b| bX2 Y3Y4 Y2 Y3b | a B Y2 Y3b | bX2 Y4 B Y2 Y3b | aS B Y2 Y3b| aS Y2 Y3b|e C Y3b | a Y2 C Y3b | bX2 Y3Y4 Y2 C Y3b | a B Y2 C Y3b| bX2 Y4 B Y2 C Y3b| aS B Y2 C Y3b| aS Y2 CY3b B b C aA Y4 Y2 | aA Y4 B Y2 | a }

40

Lenguajes Formales y Autmatas


Algoritmo VIII factorizacin La factorizacin permite una transformacin gramatical til para el anlisis sintctico de tipo predictivo. Este algoritmo recibe una gramtica y produce como salida una gramtica factorizada por la izquierda. Esto consiste en tomar cada no terminal igual, sea A NT y encontrar el prefijo ms largo (puede ser un smbolo o una sub cadena la cual se repite en las derivaciones) que se presente en todas las producciones para A y que sea diferente al smbolo . Ejemplo: Sea: A 1 | 2 Donde A deriva en: A 1 A NT A 2

El prefijo ms largo es Por lo tanto:

y es el elemento a factorizar.

A1 | 2 | | n | , con = todas las alternativas distintas al prefijo comn por las producciones tenemos: A A |

A 1 | 2 | | n Ejemplo Sea: P: { A bSA | baBD | aBB | bbBB B aaSS | bDB | aa D bab | SSd Sa|b|c }
41

Lenguajes Formales y Autmatas


1.- Identificar los elementos P: { A bSA | baBD | aBB | bbBB B aaSS | bDB | aa D bab | SSd Sa|b|c } 2.- Sustituir A A | en P. para la factorizacin.

P: { A bA |aBB B aaB | bDB D bab | SSd Sa|b|c }

Nota: A A A A 1 | 2 | | n donde es el elemento a factorizar

3.- Generar A 1 | 2 | | n y agregar a las producciones a P: A SA| aBD|bBB; B SS| P: { A b A | aBB B aa B | bDB D bab | SSd Sa|b|c A SA | aBD | bBB B SS | }

42

Lenguajes Formales y Autmatas


Autmata a pila El autmata a pila es una sptupla:

Autmata a Pila

Q: Estados finitos E: Alfabeto de entrada p: Alfabeto a pila q0: Estado inicial Z0: Estado inicial a pila F: Conjunto de estados finales P: Producciones

Hay tres aspectos de sumo inters al momento de trabajar con este tipo de autmatas. 1.- El estado en que estamos trabajando 2.- Elemento a leer 3.- El contenido de la pila

43

Lenguajes Formales y Autmatas


Configuracin de las producciones: Estado inicial (q0, w, ) Estado final (qf, , ) Estado intermedio (q, aw, Z ) Donde: = Smbolo terminal w = cadena Z = Tope de la pila a = el smbolo a leer, lo que se est leyendo. Configuracin para pasar de un estado a otro: (q, aw, Z ) (q, w, B) B es el tope de la pila. En el segundo estado no aparece a debido a que ya se ley este smbolo. Ejercicio: L={ } L es la regla de produccin. En ella se encuentran el alfabeto a usar as como otras restricciones de produccin. Ejemplos de produccin de L: a) 010101 b) 000111 C) 01 Como se pude ver en los ejemplos de produccin de L. Las palabras generadas inician siempre con 0, adems que el nmero de 0 y 1 es el mismo. A partir de la observacin de las restricciones as como del comportamiento. Se debe contemplar todos los posibles casos incluyendo los errores. Si en q0 lee un 1 , deber mandar error. Solo avanzara al siguiente estado q1 Hasta leer un 0 y este 0 lo pone en la pila.
44

NOTA: La pila inicia vaca y termina vaca.

Lenguajes Formales y Autmatas


S en q1 lee una serie de ceros debe de colocarlos en pila por medio de Push. Para pasar al estado q2 es por medio de un 1. En el estado dos para eliminar los ceros metidos en la pila se deber hacer un pop 0 en la pila por cada 1 ledo. Al final se debe de leer el smbolo de fin de cadena. S la pila est vaca la cadena es aceptada. En otro caso error. Q= {q0, q1 q2} E: {0, 1, } p: { , 0} q0: { q0} Z0: { } F: { q0} El grafo del autmata a pila quedara:

45

Lenguajes Formales y Autmatas

Para determinar si El autmata realiza lo requerido se proponen las siguientes cadenas para comprobar el funcionamiento. 00001111

Nota: Manejo de la pila 1.- lee 2.-pude sacar o meter 3.-Avanza

1.-Lee un cero 00001111 y lo mete (Push) a la pila.

0 0 0

5.-Lee un 00001111 y saca un cero (Pop) a la pila.

0 0

2.-Lee un cero 00001111 y lo mete (Push) a la pila.

0 0

6.-Lee un 00001111 y saca un cero (Pop) a la pila.

0 0 0

3.-Lee un cero 00001111 y lo mete (Push) a la pila.

7.-Lee un 00001111 y lo saca un cero (Pop) a la pila.

0 0 0 0

4.-Lee un cero 00001111 y lo mete (Push) a la pila.

8.-Lee un 00001111 y saca un cero (Pop) de la pila.

46

Lenguajes Formales y Autmatas


El ltimo smbolo a leer es . Y por tanto se acepta la cadena. Sea la cadena 011

1.-Lee un cero 011 y lo mete (Push) a la pila.

2.-Lee un 011 y saca un cero (Pop) de la pila.

Por lo tanto la cadena 011 no es aceptada. Sea la cadena 0000111 Se realiza este ejemplo de una manera ms sintetizada. 0 0 0 0

3.-Lee un 011 y marca error debido a que = . La pila esta vaca antes de leer el smbolo final.

Reconoce los 4 ceros mismos que se ingresan a la pila PUSH

Reconoce los 3 unos mismos que quita de la pila. Acto seguido lee el smbolo final.

Pero al leer el smbolo final la pila no est vaca. Por este motivo mandara un error y por consiguiente la cadena 0000111 no es aceptada por el autmata. Que por supuesto no cumple con las reglas establecidas de produccin donde debe existir el mismo nmero de 1 as como 0. A partir del grafo podemos establecer las producciones del autmata.

47

Lenguajes Formales y Autmatas

P: { (q0, 0w, ) (q1, w, 0 ) (q1, (q1, (q2, (q2, } Alan Mathison Turing (1912 1954) Es considerado como uno de los fundadores de la ciencia de la computacin siendo el precursor de la informtica moderna. Fue matemtico, filsofo, hbil decodificador, visionario. Durante la segunda guerra mundial trabaj en descifrar los cdigos de los nazis. Sus perspicaces observaciones matemticas contribuyeron a romper los cdigos de la mquina Enigma y de los codificadores de teletipos FISH. Entre los muchos trabajos de Turing hubo un artculo, publicado en la revista Mind en 1950, que provoc tal conmocin que, an hoy, se sienten los efectos de su onda expansiva. Llevaba por ttulo Computing Machinery and Intelligence y en l planteaba por primera vez una forma de dilucidar si una mquina es capaz de pensar o no, dicho con otras palabras, si es inteligente. Aquella propuesta es conocida como Test de Turing el cual se basa en la idea siguiente: si una persona se comunica slo a travs de un terminal con otras dos partes, que estn escondidas, y no se puede discriminar a travs de preguntas cul de ambas partes es una persona y cul es un ordenador, entonces no se puede negar que la mquina muestra la cualidad que, en las personas, se llama inteligencia. 0w, 0 1w, 0 1w, 0 1, 0 ) ) (q1, w,0 ) ) (q2, w, ) ) (q2, w, ) (q2, , )

(q2, , ) cadena aceptada

48

Lenguajes Formales y Autmatas

La mquina de Turing (MT) Es un modelo matemtico que formaliza la idea intuitiva de algoritmo. Tambin podemos verlo como un dispositivo de reconocimientos de lenguaje, es ms general que cualquier autmata finito y cualquier autmata de pila. La mquina de Turing realiza una lectura/escritura de manera automtica sobre una entrada llamada cinta, generando una salida en esta misma. Este modelo est conformado por un alfabeto de entrada y uno de salida, un smbolo especial llamado blanco (normalmen te b, o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una funcin de transicin, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta, borrando el smbolo, escribir el nuevo smbolo perteneciente al alfabeto de salida y finalmente avanza a la izquierda o a la derecha (solo una celda a la vez), repitiendo esto segn se indique en la funcin de transicin, para finalmente detenerse en un estado final o de aceptacin, representando as la salida.

49

Lenguajes Formales y Autmatas


Definicin formal de una mquina de Turing. Una mquina de Turing con una sola cinta puede ser definida como una sptupla: MT= (Q, , r, s, b, F, ) Dnde: Q: Es un conjunto finito de estados. : Es un conjunto finito de smbolos distinto del espacio en blanco, denominado alfabeto de mquina o de entrada. r: Es un conjunto finito de smbolos de cinta, denominado alfabeto de cinta. s: Es el estado inicial. S Q. b: Es un smbolo denominado blanco, y es el nico smbolo que se puede repetir un nmero infinito de veces. b r. F: Es el conjunto de estados finales de aceptacin. : Funcin de transicin

Turing demostr que dicha mquina era capaz de implementar cualquier problema matemtico que pudiera representarse mediante un algoritmo. Lenguajes aceptados por una maquina Turing Aceptan lenguajes formales que pueden ser generados por una gramtica de tipo 0 o sin restricciones. Gramtica tipo 1. Acepta lenguajes libres de contexto o tipo 2. Lenguajes regulares: las gramticas (de tipo 3) o formales.

Gramtica tipos 3: Las gramticas regulares (aquellas reconocidas por un autmata finito Determinstico). Son las gramticas ms restrictivas. El lado derecho de una produccin debe contener un smbolo Terminal y como mximo un smbolo no Terminal. 50

Lenguajes Formales y Autmatas


Ejemplo1: Crear una MT que agrega un 1 a la cinta donde los 0 son los Blancos. Dnde: H= se queda en el mismo estado. R= Avanza al siguiente estado.

: { (q0, (q0, (q1, (q1, (q2, (q2, } Ejemplo 2: Sea una MT que hace la concatenacin de smbolos 1 en donde existe un 0 separador entre cada secuencia a fin de obtener la suma de unos totales en un rango de cinta hasta antes del espacio en blanco B. 0) 1) 0) 1) 0) 1) (q0, (q1, (q2, (q1, (q2, (q2, 0, 1, 1, 1, 0, 0, R) R) R) R) H) H)

51

Lenguajes Formales y Autmatas

MT= (Q, , r, s, b, F, ) Q: { q0, q1, q2, q3, q4} : {0,1} r: {0, 1, B} s: {q0} b: {B} F: { q4} : { (q0, (q0, (q1, (q1, (q2, (q3, (q3, } 0) 1) 1) 0) 1) 1) B) (q0, (q1, (q1, (q2, (q3, (q3, (q4, 0, R) 0, R) 1, R) 1, R) 1, R) 1, R) B, R) //Conjunto finito de estados //Alfabeto de entrada //Alfabeto de la cinta //Estado inicial //Blanco //Estado de aceptacin

Bibliografa: Durn Jacobo. Introduccin a los Lenguajes formales. Aho, A. Sethi, R. Ullman, J. Compiladores: Principios, Tcnicas y Herramientas. Mxico, Pearson Educacin (1990).

52

Вам также может понравиться