Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sumario:
!!
4.!
Autmatas
Hemos visto que lenguajes son subconjuntos de las palabras sobre un alfabeto (L!W(")). Cmo se puede definir las palabras que pertenecen a un determinado lenguaje?
"!
!!
"!
"!
Necesitamos un formalismo para definir los lenguajes (las palabras que pertenecen a un lenguaje).
"!
!!
Una gramtica describe de forma inequvoca la estructura de las palabras de un lenguaje Proporcionan un mecanismo para generar todas las palabras que pertenecen a un determinado lenguaje (tambin se llaman gramticas generadoras)
#N es un alfabeto de smbolos no terminales o variables (usamos normalmente letras maysucales del alfabeto A,B,!) #T es un alfabeto de smbolos terminales #N $ #T = % ; llamaremos # al conjunto #N & #T S'#N es el axioma o smbolo inicial P es un conjunto de pares ordenados (xAy,v), tales que: x,y,v ' (#N & #T)* y A'#N, denominados reglas de produccin o reglas de derivacin y denotados mediante xAy::=v o bien xAy(v
!!
!! !!
"!
"!
La letra griega " se usa para denotar a la unin de "N con "T , es decir, "="N "T. Dada una regla xAy ::= v de P, su parte izquierda, xAy, se denomina cabeza de la regla, mientras que su parte derecha, v, se denomina cuerpo de la regla. Si el conjunto P contiene dos o ms reglas con misma cabeza, esas reglas se pueden sustituir por una nica regla con la cabeza dada donde el cuerpo contiene todas las partes derechas, separadas entre ellas por rayas verticales: [xAy ::= v1,...,xAy ::= vk] xAy ::= v1|...|vk La abreviatura anterior, junto con el uso del smbolo ::= en las reglas en lugar de #, forma parte de la notacin conocida como BNF (Backus Normal Form o Backus Naur Form).
Ejemplos:
G1=({S, A}, {a, b}, S, {S::=Ab, A::=aAb, A::=)}) G2=({S}, {1}, S, {S::=1|)})
G=(#N, #T, S, P) no es una gramtica si: 1.! S*#N 2.! u::=v ' P con u ' #T* 3.! + a: a ' #T , a'#N
Aplicando la regla a::=bb a la palabra aabbaa se puede obtener las palabras nuevas:
"! "! "!
bbabbaa abbbbaa !
!!
Una regla xAy ::= v de una gramtica G = ("N,"T,S,P) se puede aplicar sobre cualquier palabra de la forma u = u1xAyu2, con u1, u2 ", dando lugar a la palabra w = u1vu2. Se dice que la palabra w as obtenida es una derivacin directa de u y se escribe u # w.
"!
Ejemplo:
!!
"!
cules de las siguientes palabras son derivaciones directas de u? S, 0, 0S, 01, 00S1S, $, !
Definicin (Derivacin):
!!
!!
Dada una gramtica, una derivacin es una secuencia de cero o ms derivaciones directas: w1 # w2 # . . . # wn. Se denota w1 # wn. La longitud de una derivacin es el nmero de derivaciones directas de la secuencia.
"!
Propiedades de la derivacin
!! !! !!
10
Ejemplo:
!!
0SS # 0SS (longitud cero) S # $ (longitud 1) 0SS # 0S # 0 (longitud 2) S # 0S1 # 1 (longitud 2) S # 0S1 # 00S11 # 000S111# 000111 (longitud 4)
"!
Para definir las palabras generadas por una gramtica nos centramos en las palabras que se pueden derivar a partir del smbolo inicial.
Mquinas Secuenciales, Autmatas y Lenguajes Formales
11
!!
Dada una gramtica G=(#N, #T, S, P), el lenguaje reconocido o generado por G est formado por el siguiente conjunto: L(G)={u | S(*u y u ' #T*} Los elementos de L(G) se denominan sentencias o palabras del lenguaje
"!
Es decir, el lenguaje generado por una gramtica consiste de todas las palabras:
!! !!
que se pueden derivar a partir del axioma o smbolo inicial y que estn compuestos nicamente por smbolos terminales (de #T)
Mquinas Secuenciales, Autmatas y Lenguajes Formales
12
Ejemplos:
G1=({S, A), {a, b}, S, P) con P={ S::=Ab, A::=aAb | ) }
. L(G1)={anbn+1 | n/0}
13
Ejemplos:
Podramos usar producciones para representar oraciones en Castellano: <oracin>::=<sujeto> <predicado>. <sujeto>::=<frase_nominal> <frase_nominal>::=<grupo_nominal> | <grupo_nominal> <calificativo> <grupo_nominal>::=el gato|la pelota|! <calificativo>::=pequeo|grande|! <predicado >::=bota|juega ... Se podran generar sentencias de la siguiente forma: el gato pequeo juega. o el gato grande bota.
14
Ejemplos:
"!
"!
"!
"!
"!
"!
G1=({S,A}, {a,b},S,P) con P={S::=Ab, A::=aAb|)} . L(G1)={anbn+1|n/0} G2=({S,A}, {a,b},S,P) con P={S::=Ab, A::=aAb} . L(G2)? G3=({S,A}, {a,b},S,P) con P={S::=Ab, A::=aAb|aS} . L(G3)? G4=({S,A}, {a,b},S,P) con P={S::=Ab, A::=ab|a} . L(G4)? G5=({A,B,C,D,E,S},{a},S,P) con P={S::=ABaC, Ba::=aaB, BC::=DC|E, aD::=Da, AD::=AB, aE::=Ea, AE::=) } . L(G5)? G6=({S,A}, {a,b},S,P) con P={S::=Ab, A::=Aab|a} . L(G6)?
15
Ejemplos
"!
if_statement ::= if condition then sequence_of_statement end if;| if condition then sequence_of_statement else sequence_of_statements end if; sequence_of_statement ::= SKIP | if_statement | ! condition ::= TRUE | FALSE | ! (smbolos terminales en negrita y variables sin negrita)
16
"!
Ejemplos:
G7=({S}, {a, b}, S, {S::= aSb | ab }) G8=({A, B, C, E},{a, b}, A, P) con P={A::=aABC | ab; BC::=bb; E::=b} . son G7 y G8 equivalentes?
17
Sumario:
!!
4.!
Autmatas
18
Comsky defini una jerarqua formada por 4 tipos de gramticas en funcin de restricciones sobre las producciones de lo ms general (tipo 0) a lo ms especfico (tipo 3):
G0 G1 G2 G3
"!
Se verifica: G3 1 G2 1 G1 1 G0
Mquinas Secuenciales, Autmatas y Lenguajes Formales 19
Gramticas de tipo 0
"!
!!
Toda gramtica es G = ("N , "T , S, P) es una gramtica de tipo 0. Los lenguajes generados por gramticas de tipo 0 se conocen como lenguajes sin restricciones o lenguajes recursivamente enumerables.
"!
20
10
Gramticas de tipo 1
"!
!!
Una gramtica G = ("N , "T , S, P) es una gramtica de tipo 1 si todas las reglas de P tienen necesariamente una de las siguientes formas: S ::= $ xAy ::=xvy con x,y ",A"N,v "+ Los lenguajes generados por gramticas de tipo 1 se conocen como lenguajes sensibles al contexto.
"!
Nota:
!!
!!
Toda derivacin directa w1 # w2 producida por una regla del tipo xAy ::= xvy mantiene o aumenta la longitud de la palabra (|w1| % |w2|) Slo S ::= $ puede comprimir una palabra
21
Gramticas de tipo 1
"!
Ejemplos:
Cules de las siguientes reglas son de tipo 1? AB::=aCdB ABC::=AC aA::=aCBbb AaBF::=AaCF aBA::=a
22
11
Gramticas de tipo 2
"!
!!
Una gramtica G = ("N , "T , S, P) es una gramtica de tipo 2 si todas las reglas de P tienen necesariamente la siguiente forma: A::=v con A"N,v"* Los lenguajes generados por gramticas de tipo 2 se conocen como lenguajes independientes del contexto.
"!
Nota:
Se pueden definir las gramticas del tipo 2 como todas aquellas cuyas reglas tienen una de las siguientes formas: A::=v con A"N,v"+ S::=) siendo S el axioma de la gramtica Con ambas definiciones se puede generar el mismo conjunto de lenguajes.
Mquinas Secuenciales, Autmatas y Lenguajes Formales
23
Gramticas de tipo 2
"!
Ejemplos:
Cules de las siguientes reglas son de tipo 2? AA::=Ab a::=AC A::=aaB A::=) aBA::=a
24
12
Gramticas de tipo 3
"!
!!
!!
Una gramtica G = ("N , "T , S, P) es una gramtica de tipo 3 si pertenece a una de las dos clases siguientes: gramticas lineales por la izquierda: todas aquellas cuyas reglas tienen una de las siguientes formas: A::=a A::=Va (S, A, V ' #N, a ' #T, y S el axioma) S::=) gramticas lineales por la derecha: todas aquellas cuyas producciones tienen una de las siguientes formas: A::=a A::=aV (S, A, V ' #N, a ' #T, y S el axioma) S::=) Los lenguajes generados por gramticas de tipo 3 se conocen como lenguajes regulares.
Mquinas Secuenciales, Autmatas y Lenguajes Formales 25
Gramticas de tipo 3
"!
Ejemplos:
!! !! !! !!
S::=), S::=a, A::=Ca son del tipo 3 (lineal por la izquierda) S::=), S::=a, A::=aC son del tipo 3 (lineal por la derecha) aA::=aaV, A::=abV, A::=), a::=C no son del tipo 3 Es regular esta gramtica? G9=({A, B, C},{a, b}, A, P) con P={A::=aB, B::=Cb, ...}
26
13
Gramticas de tipo 3
"!
Ejemplos:
!!
!!
Lenguaje representado por? G10=({S, B},{0, 1}, S, P) con P={S::=B1 | 1, B::=S0} Lenguaje representado por? G11=({S, B},{0, 1}, S, P) con P={S::=1B | 1, B::=0S}
"!
Para cada gramtica lineal por la derecha GD existe una gramtica lineal por la izquierda GI tal que L(GD)=L(GI) (y viceversa)
27
Jerarqua de Chomsky
Gramtica Reglas Tipo 0 Tipo 1 Tipo 2 xAy ::= v con x,y,v ",A "N Lenguajes recursivamente enumerables o sin restricciones sensibles al contexto o dependientes del contexto independientes del contexto
S ::= $ xAy ::=xvy con x,y ",A"N,v "+ A::=v con A"N,v"* con S, A, V ' #N, a ' #T y S el axioma
Regulares
28
14
Sumario:
!!
Concepto de Autmata
29
Concepto de Autmata
!!
Un autmata es un modelo abstracto de un dispositivo de computacin capaz de procesar de forma secuencial una informacin de partida (entrada) y producir una informacin de salida.
30
15
Concepto de Autmata
!!
Componentes de un autmata:
"! "! "!
"!
Dispositivo de entrada que puede leer una secuencia de smbolos de un alfabeto de forma secuencial Dispositivo de salida mediante el cual el autmata produce una salida Dispositivo de almacenamiento o memoria (opcional) en el cual el autmata puede escribir y leer Unidad de Control que:
!! !!
!!
En cada momento se encuentra en un cierto estado interno Tiene una funcin de transicin que le permite cambiar de estado interno dependiendo de su estado actual, del contenido de su memoria y del smbolo ledo en la entradas En cada cambio de estado puede producir una salida y/o modificar su memoria
Salida
Concepto de Autmata
!!
Los autmatas se diferencian unos de otros dependiendo, fundamentalmente, de: "! El tipo de acceso al dispositivo de entrada. "! La forma en que producen la salida. "! Si tienen o no dispositivo de memoria auxiliar, y, en caso afirmativo, de qu tipo de dispositivo se trata. Existen dos clases de autmatas: "! Autmatas transductores:
!!
!!
Son capaces de producir palabras como salida. Tienen una salida booleana (cierto/falso) que indica si se acepta o no la entrada recibida.
Mquinas Secuenciales, Autmatas y Lenguajes Formales
"!
32
16
Concepto de Autmata
Los autmatas pueden ser deterministas o no deterministas:
!!
Se dice que un autmata es determinista cuando el paso de un estado interno al siguiente siempre est unvocamente determinado por el estado actual, la entrada y la informacin almacenada en la memoria. Se dice que un autmata es no determinista en caso contrario, es decir, cuando para un mismo estado interno, misma entrada y misma informacin en el dispositivo de almacenamiento puedan existir varias posibles transiciones a estados internos distintos.
!!
33
Autmatas finitos
!!
!!
!!
!!
Son los autmatas ms sencillos. Carecen de dispositivo de almacenamiento auxiliar. Los aceptadores son capaces de reconocer lenguajes regulares (tipo 3). Tienen muchas aplicaciones prcticas: diseo de circuitos, anlisis lxico, reconocimiento de patrones, control industrial, etc. Las mquinas de Mealy y las mquinas de Moore son autmatas finitos transductores que pueden producir como salidas palabras de un alfabeto
34
17
Autmatas a pila
!!
!!
!!
Cuentan con un dispositivo de almacenamiento de tipo pila (LIFO). Los aceptadores son capaces de reconocer lenguajes independientes del contexto (tipo 2). Su principal aplicacin es la construccin de analizadores sintcticos de lenguajes de programacin.
35
Mquinas de Turing
!! !! !! !!
!!
Son los autmatas ms complejos. Tienen un dispositivo de almacenamiento infinito. Pueden escribir smbolos de salida en una salida infinita. Los aceptadores son capaces de reconocer lenguajes recursivamente enumerables (tipo 0). Constituyen el pilar fundamental de la teora de la computabilidad: un problema es computable si existe una mquina de Turing capaz de resolverlo.
36
18
Tipo 2
19