viernes

1. Gramática Generativa De Chomsky.

Resumen

1.      INTRODUCCION

Esta investigación está basada en la materia de “AUTOMATAS Y LENGUAJES FORMALES” que tiene como fin conocer la manera en que funcionan los autómatas, y como se expresan en un determinado lenguaje computacional, con respecto a los aportes que realizo Avram Noam Chomsky.
Avram Noam Chomsky, nacido el 7 de diciembre de 1928 en Filadelfia, Estados Unidos, es un profesor emérito de Lingüística en el Massachusetts Institute of Technology (MIT), y una de las figuras más destacadas de la lingüística del siglo XX, con grandes aportaciones en el campo de la informática. Entre su contribución con la informática están sus enormes aportaciones a la Teoría de Autómatas y al estudio de los lenguajes formales. Puesto que han resultado elementos indispensables para la construcción de compiladores y traductores que puedan servir de intérpretes válidos entre las órdenes que dan los seres humanos y su correcta recepción y aplicación por máquinas automáticas
El contenido que aborda la investigación es acerca de la “Gramática de Generativa de Chomsky”, que nos menciona desde el punto de vista de la teoría de autómatas el conjunto finito de reglas que describen toda la secuencia de símbolos pertenecientes a la Gramática de Chomsky, así como la clasificación de la Gramática que realizó con el paso del tiempo en las investigación que realizo acerca de los autómatas.
Además también se proporciona en esta investigación la “Forma Normal de Chomsky”; este tema se centra en los lenguajes libre de contexto, estos son conjuntos finitos de variables y terminales. La Forma Normal de Chomsky nos da a conocer una manera en la que podemos resolver una autómata y también cual puede ser el funcionamiento que realiza el mismo. También se explica la manera en que funcionan los autómatas de cerraduras, este es parecido al AFN a diferencia que la función de transición debe incluir información sobre las transiciones, que se representa por medio de un conjunto.
La última parte de la investigación nos permite conocer cómo funciona un autómata de pila, de igual forma, se proporciona la gramática que posee este autómata, entre otros aspectos importantes que hacen referencia a un autómata de pila.
Todos estos temas tienen relevancia en esta materia pues nos permiten conocer más acerca de los autómatas y las diferencias que existen entre un autómata y otro, además permite una mejor comprensión de las gramáticas libres de contexto, y la relación que existe entre los autómatas. Así mismo, nos ayudan a conocer la importancia que tienen las gramáticas en los autómatas.


2.      GRAMATICA GENERATIVA DE CHOMSKY
Una gramática ("G") desde el punto de vista de la teoría de autómatas es un conjunto finito de reglas que describen toda la secuencia de símbolos pertenecientes a un lenguaje específico L. Dos gramáticas que describan el mismo lenguaje se llaman gramáticas equivalentes.
Una gramática es una estructura algebraica formada por cuatro elementos fundamentales:
G = {V, T, S, P}
Donde:
·         V es el conjunto de elementos No Terminales
·         T es el conjunto de elementos Terminales
·         S es el Símbolo inicial de la gramática
·         P es el conjunto de Reglas de Producción

2.1. JERARQUIA DE CHOMSKY


2.1.1.      TIPO 0  “LENGUAJE NO RESTRINGIDO O RECURSIVAMENTE ENUMERABLES”
x à y
x € ( NT | T)+
y € ( NT | T)*
x puede ser sustituido por y si x está, ya sea, en los símbolos No Terminales o los símbolos Terminales, sin incluir la cadena vacía e y está en los símbolos No Terminales o Terminales, incluyendo la cadena vacía.”
Los lenguajes generados por este tipo de gramáticas se llaman "lenguajes sin restricciones"
Nota: "+" significa "sin incluir la cadena vacía" y "*" significa "incluyendo la cadena vacía". "/" significa "o"
Estos lenguajes también son denominados "recursivamente enumerables".
TIPO DE AUTOMATA: MAQUINA DE TURING

2.1.2.      TIPO 1 “LENGUAJE SENSIBLE AL CONTEXTO”
α à β; | α | ≤ | β |
α = z1 x z2
β = z1 y z2
z1, z2 € T*
x € NT
y € ( NT | T )+

“α puede ser reemplazado por β si la longitud de α es menor o igual a la longitud de β, siendo α un símbolo Terminal o una cadena vacía z1, seguido de un símbolo No Terminal X, seguido de otro símbolo Terminal o una cadena vacía z2. En el caso de β, z1 debe ser el mismo símbolo z1 de α seguido de un símbolo No Terminal o Terminal sin ser la cadena vacía, seguido del símbolo z2.”
TIPO DE AUTOMATA: AUTOMATAS LINEALMENTE ACOTADOS

2.1.3.     TIPO 2 “LENGUAJE LIBRE DE CONTEXTO”
xà y
x € NT
y € (NT|T)*
x puede ser reemplazado por y si x pertenece a los símbolos No Terminales e y es un Terminal o No Terminal, incluyendo la cadena vacía.”
TIPO DE AUTOMATA: AUTOMATA PILA

2.1.4.      TIPO 3 “LENGUAJE REGULAR”
α à β
α € NT
B € NT
a € T+
b € T*
También llamada "De contexto regular"
“α puede ser reemplazado por β si α pertenece a los símbolos No Terminales y β es uno de estos 3:
·         Un símbolo Terminal no nulo seguido de un No Terminal.
·         Un símbolo No Terminal seguido de un símbolo Terminal no nulo.
·         Un símbolo Terminal pudiendo ser la cadena vacía.”
TIPO DE AUTOMATA: AUTOMATA FINITO


3.      FORMA NORMAL DE CHOMSKY

TEOREMA:
(Forma Normal de Chomsky o CNF) cualquier lenguaje libre de contexto sin €, es generado por una gramática en la que todas las producciones son de la forma Aà BC o Aà a. Aquí, A, B y C son variables y a es una terminal.

DEMOSTRACION:
Sea G una gramática libre de contexto que genera un lenguaje que no contiene a . Por el teorema, podemos encontrar una gramática equivalente, G1 = (V, T, P, S), tal que P no contenga producciones unitarias o producciones . Por tanto, si una producción tiene un símbolo simple a la derecha, ese símbolo es una terminal, y la producción se halla ya en una forma aceptable.
Ahora considérese una producción P de la forma AàX1 X2… Xm, en donde m ≥ 2. Si x, es una terminal a, introdúzcase una nueva variable Ca y una producción Caàa, que es una forma permisible. Entonces sustituya Xi por Ca. Sea el nuevo conjunto de variables Vn y sea el nuevo conjunto de producciones P1. Considere la gramática G2 = (V1, T, P1, S). Si α  β, entonces αβ. Por lo tanto L (G1) Í L (G2). Ahora mostraremos la inducción sobre el número de pasos de una derivada que si A W, para A en V y W en T*, entonces A  W. El resultado es trivial para derivaciones de un paso. Supóngase que es verdadera para derivaciones de hasta k pasos. Sea A W una derivación (k+1) pasos. El primer paso debe ser de la forma Aà B1 B2… Bmm ≥ 2. Podemos escribir W =  W1 W2… Wm en donde Bi  Wi, 1 ≤ i ≤ m.
Si Bi es Cai para alguna terminal ai, entonces Wi debe ser ai, por la construcción de Pi, existe una producción Aà X1 X2… Xm,  de P en la que Xi = Bi si Bi está en V y Xi=ai si Bi esta Vi–V. Para este Bi en V, sabemos que la derivación Bi  Wi no toma más de k pasos, de modo que la hipótesis inducida Xi  Wi. En consecuencia, A W.
Hemos demostrado el resultado intermedio que consiste en que cualquier lenguaje libre de contexto puede ser generado por una gramática para la cual cada producción es de la forma Aàa o AàB1 B2… Bm, para m ≥ 2. Aquí A y B1, B2,…, Bm son variables, y a es una terminal.
Considérese dicha gramática G= (V1, T, P1, S). Modificamos G2 mediante la adición de algunos símbolos más a V1 y sustituyendo algunas producciones de P1. Para cada producción AàB1 B2… Bm de P1 en donde m ≥ 3, creamos nuevas variables D1, D2,.., Dm-2 y sustituimos AàB1 B2… Bm por el conjunto de producciones.
{AàB1 D1, D1àB2 D2,…, Bm-3à Bm-2 Dm-2, Dm-2à Bm-1 B m}
Sean Vn el nuevo vocabulario no terminal  y Pn el nuevo conjunto de producciones. Sea G3=(Vn, T, Pn,V). G3 está en CFN. Es claro que si Aβ, entonces Aβ de manera que L (G2) Í L (G3). Pero también es verdad que L (G3) Í L (G2), como puede mostrarse, esencialmente de la misma manera en que se mostró que L (G2) Í L (G1).

EJEMPLO:
Consideremos la gramática ({S, A, B}, {a,, b}, P, S) que tiene las producciones:
Sàb A | aB
Aàb AA | aS | a
Bàa BB | bS | b
Y encontremos una gramática equivalente en CNF.
Primero, las únicas producciones que ya se encuentran en forma apropiada son Aàa y Bàb. No existen producciones unitarias, así que podemos empezar sustituyendo las terminales de la derecha por variables, excepto en el caso de las producciones Aàa y Bàb. Sàb A se sustituye por SàCb A y Cbàb. De manera similar, Aàa S se sustituye por AàCa S y Caàa; AàbA A es sustituida por AàCb AA; Sàa B se reemplaza por SàCa B; Bàb S es reemplazado por BàCb S; y Bàa BB es sustituido por BàCa BB.
En la siguiente etapa, la producción AàCb AA se sustituye por AàCb D1 y D1àAA y la producción BàCa BB se reemplaza por BàCa D2 y D2àBB. Las producciones para la gramática CNF se muestran a continuación:
SàCb A | Ca B
AàCa S | Cb D1 | a
BàCb S | Ca D2 | b
D1àAA
D2àBB
Caàa
Cbàb
  
4.      AUTOMATAS DE TRANSICION DE CERRADURAS

4.1.NOTACION FORMAL PARA UN AFN-€

Se puede representar un AFN-€ exactamente igual que un AFN, con una sola excepción: la función de transición debe incluir información sobre las transiciones . Formalmente, representamos un AFN-€ A mediante A= (Q, ∑,d, q0, F), donde las componentes tiene la misma interpretación que en un AFN, excepto d es ahora una función con dos argumentos:
1.      Un estado perteneciente a Q.
2.      Un miembro deÈ {€}, es decir, un símbolo de entrada o el símbolo . Se exige que , el símbolo que representa la cadena vacía, no forme parte del alfabeto , para que no se produzca confusiones.

4.2.CLAUSURAS RESPECTO DE €

Formalmente, la clausura respecto de €, CLAUS(q), se define recursivamente de la siguiente forma:
BASE: El estado q está en CLAUS(q).
PASO INDUCTIVO: si el estado p está en CLAUS(q) y existe una transición desde el estado p al estado r con la etiqueta , entonces r está en CLAUS(q). Con más precisión, si d es la función de transición del AFN-€ y p esta en CLAUS (q), entonces CLAUS (q) también contiene todos los estados de d(p, €).

4.3.TRANSICION Y LENGUAJES EXTENDIDOS PARA AFN-€

La clausura con respecto de nos permite explicar fácilmente el aspecto de las transiciones de un AFN-€ cuando se tiene una secuencia de entradas que no contiene .
Supongamos que E= (Q, ∑,d, q0, F) es un AFN-€. Primero definiremos d, la función de transición extendida, para reflejar lo que ocurre con una secuencia de entrada. La idea es que d(q, w) es el conjunto de estados a los que se puede llegar mediante un camino cuyas etiquetas, concatenadas, formen la cadena w. Como siempre, los símbolos que se encuentran a lo largo del camino contribuyen a w. La definición recursiva d es:
BASE: d(q, w)= CLAUS (q). Es decir, si la entrada es , solo podemos seguir aros con la etiqueta que salgan del estado q, esto es exactamente lo que hace CLAUS.
PASO INDUCTIVO: Supongamos que w tiene la forma xa, donde a es un miembro de ; no puede ser , porque no está en . Calculamos d(q, w) de la siguiente forma:
1.      Sea {p1, p2,…, pk} la función d(q, x). Es decir, los pi son todos los estados que podemos alcanzar desde q siguiendo un camino cuya concatenación de etiquetas sea x, y solo estos. Este camino puede terminar con una o más transiciones con la etiqueta , así como contener otras transiciones .
2.      Sea  el conjunto {r1, r2,…, rm}. Es decir, seguimos todas las transiciones con a etiqueta a a partir de los estados que podemos alcanzar desde q siguiendo caminos con la etiqueta x. Los rj son algunos de los estados que podemos alcanzar desde q siguiendo caminos con la etiqueta w. Los estados adicionales que podemos alcanzar se obtienen a partir de los rj siguiendo arcos con la etiqueta en el paso 3.
3.      d(q, w)=  Este paso de clausura adicional añade todos los camino que paren desde q con la etiqueta w, teniendo en cuenta la posibilidad de que el autómata puede seguir arcos adicionales con la etiqueta después de hacer una transición con el ultimo símbolo “real”, a.

4.4.ELIMINACION DE LAS TRANSICIONES €

Dado un AFN-€ E, se puede encontrar un AFD D que acepte el mismo lenguaje que E. La construcción  que vamos a utilizar es muy parecida a la construcción de subconjuntos, pues los estados de D son subconjuntos de los estados de E. La única diferencia es que hay que incorporar las transiciones de E, lo que se hace mediante el mecanismo de la clausura respecto de .
Sea E = (QE, ∑,dE, q0, FE). El AFD equivalente se define así:
1.      QD es el conjunto de los subconjuntos de QE. De forma más precisa, los únicos estados accesibles de D son subconjuntos de QE cerrados respecto de ; es decir, los subconjuntos S Í QE tales S= CLAUS (S). Dicho de otra forma, los conjuntos de estados de S cerrados respecto de son aquellos para los que cualquier transición que salga de uno de los estados que pertenecen a S lleva a otro estado que también pertenece a S. Nótese que Æ es un conjunto cerrado respecto a .
2.      qD= CLAUS (q0); es decir, el estado inicial de D se obtiene cerrando el conjunto que solo contiene el estado inicial de E. Nótese que esta regla difiere de la construcción de subconjuntos original, donde el estado inicial del autómata construido era el conjunto que solo contenía el estado inicial de AFN dado.
3.      FD está formado por los conjuntos de estados que contiene al menos un estado de aceptación de E. Es decir, FD= {S | s pertenece a QD, y S Ç FE ¹Æ }.
4.      dD(S, a) se calcula así para todo a perteneciente a y todo conjunto S perteneciente a QD:
a)      Sea S = {p1, p2,…, pk}.
b)      Se calcula ; sea este conjunto {r1, r2,… rm}.
c)      Entonces, dD(S, a) = .

4.5.AUTOMATAS FINITOS CON TRANSICIONES €

PASO INDUCTIVO: Supongamos que w = xa, donde a es el símbolo final de w, y supongamos que la afirmación se cumple para x. Es decir, dE (q0, x)= dD (qD, x). Supongamos que estos dos conjuntos de estado son {p1, p2,…pk}. Por la definición de d para los AFN-€, calculamos dE (q0, w) así:
1.      Sea {r1, r2,…, rm} igual a E (pi,a).
2.      Entonces, dE (q0, w) = .
Si se examina la construcción de AFD D realizada más arriba mediante la construcción de subconjuntos modificada, vemos que dD ({p1, p2,…, pk}, a) se construye con los mismos pasos (1) y (2) anteriores. Por lo tanto, dD (qD, w), que es dD ({p1, p2,…, pk}, a), es el mismo conjunto que dE (q0, w). Hemos demostrado que dE (q0, w) = dD (qD. w), y se completa la parte inductiva.


5.      AUTOMATAS DE PILA

5.1.DEFINICION

Un autómata con pila, autómata a pila o autómata de pila es un modelo matemático de un sistema que recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. El lenguaje que reconoce un autómata con pila pertenece al grupo de los lenguajes libres de contexto en la clasificación de la Jerarquía de Chomsky. Formalmente, un autómata con pila puede ser descrito como una séptupla  M = (S, \Sigma, \Gamma, \delta, s, Z, F)  donde:
·         S es un conjunto finito de estados;
·         \Sigma y \Gamma  son alfabetos (símbolos de entrada y de la pila respectivamente);
·         \delta: S \times (\Sigma \cup \{\epsilon \} )  \times \Gamma \rightarrow \mathcal{P} ( S \times \Gamma^*)
·         s \in S es el estado inicial;
·         Z\ \in \Gamma es el símbolo inicial de la pila;
·         F \subseteq S es un conjunto de estados de aceptación o finales;

La interpretación de
 \delta (q, a, b) = \{ (q_1, \gamma_1), (q_2, \gamma_2), \ldots, (q_n, \gamma_n) \}, con q, q_i \in S, a \in (\Sigma \cup \{ \epsilon \} ), b \in \Gamma, y  \gamma_i \in \Gamma^*  es la siguiente:
Cuando el estado del autómata es q, el símbolo que la cabeza lectora está inspeccionando en ese momento es a, y en la cima de la pila nos encontramos el símbolo b, se realizan las siguientes acciones:
·         Si  a \in \Sigma, es decir no es la cadena vacía, la cabeza lectora avanza una posición para inspeccionar el siguiente símbolo.
·         Se elimina el símbolo b de la pila del autómata.
·         Se selecciona un par  (q_i, \gamma_i ) de entre los existentes en la definición de \delta(q, a, b), la función de transición del autómata.
·         Se apila la cadena  \gamma_i = c_1 c_2 \ldots c_k, con  c_i \in \Gamma en la pila del autómata, quedando el símbolo c_k en la cima de la pila.
·         Se cambia el control del autómata al estado q_i.

5.2.FUNCIONAMIENTO

Los autómatas de pila, en forma similar a como se usan los autómatas finitos, también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A. Los autómatas de pila pueden aceptar lenguajes que no pueden aceptar los autómatas finitos. Un autómata de pila cuenta con una cinta de entrada y un mecanismo de control que puede encontrarse en uno de entre un número finito de estados. Uno de estos estados se designa como estado inicial, y además algunos estados se llaman de aceptación o finales. A diferencia de los autómatas finitos, los autómatas de pila cuentan con una memoria auxiliar llamada pila. Los símbolos (llamados símbolos de pila) pueden ser insertados o extraídos de la pila, de acuerdo con el manejo last-in-first-out (LIFO). Las transiciones entre los estados que ejecutan los autómatas de pila dependen de los símbolos de entrada y de los símbolos de la pila. El autómata acepta una cadena x si la secuencia de transiciones, comenzando en estado inicial y con pila vacía, conduce a un estado final, después de leer toda la cadena x.1
5.3.AUTOMATA CON PILA DETERMINISTA
Nótese que, a diferencia de un autómata finito o una máquina de Turing, la definición básica de un autómata con pila es de naturaleza no determinista, pues la clase de los autómatas con pila deterministas, a diferencia de lo que ocurría con aquellos modelos, tiene una potencia descriptiva estrictamente menor. Para calificar a un autómata con pila como determinista deben darse dos circunstancias; en primer lugar, por supuesto, que en la definición de cada componente de la función de transición existan un único elemento lo que da la naturaleza determinista. Pero eso no es suficiente, pues además puede darse la circunstancia de que el autómata esté en el estado  s  y en la pila aparezca el símbolo  sZ, entonces, si existe una definición de transición posible para algún símbolo cualquiera  a  del alfabeto de entrada, pero, además existe otra alternativa para la palabra vacía  \epsilon, también esto es una forma de no determinismo, pues podemos optar entre leer un símbolo o no hacerlo. Por eso, en autómata determinista no debe existir transición posible con lectura de símbolo si puede hacerse sin ella, ni al contrario.
Para cada q \in Q, Z \in \Gamma, se dé que: \mid \delta(q,\epsilon,Z)\mid + \mid \delta(q,a,Z)\mid \le 1 , para cada a \in \Sigma
Un autómata de pila determinista (AFPD) es una 7-upla,
P = (Q, Σ, Г,Δ, q0, T,Z) donde:
·         Q es un conjunto finito de estados.
·         Σ es el alfabeto de entrada.
·         Г es el alfabeto de la pila.
·         q0 є Q es el estado inicial.
·         Z є Г símbolo inicial de la pila.
·         T es subconjunto de Q (conjunto de estados finales).
·         Δ es la función de transición tal que:
         Δ: Q × (Σ U { ε }) × Г → (Q × Г *)

5.4.AUTOMATA CON PILA NO DETERMINISTA
Un autómata finito con pila no determinista (AFPN) consta de los mismos parámetros de un AFPD.
P = (Q, Σ, Г, Δ, q0, T,Z): Donde la función de transición Δ es de la forma:
       Δ: Q × (Σ U { ε }) × Г→ Pf(Q × Г*)
Donde Pf (Q× Г *) es un conjunto de subconjuntos finitos de Q × Г*. Para q є Q, a є Σ U {ε} y s є Г
       Δ (q, a, s) = {(q1, γ1), (q2, γ 2), . . . , (qn, γ n)}
Donde γi є Г*
EJEMPLO
Diseñar un AFPN que acepte el lenguaje \{a^ib^i: i\geq 0\}4
Sobre:
Σ = {a, b}
·         Δ (q0, a, Z) = (q0, AZ)
·         Δ (q0, ε, Z) = (q2, Z) (acepta ε)
·         Δ (q0, a, A) = (q0, AA)
·         Δ (q0, b, A) = (q1, ε)
·         Δ (q1, b, A) = (q1, ε)
·         Δ (q1, ε, Z) = (q2, Z)

6.      FICHAS BIBLIOGRAFICAS

·         HOPCROFT, John E.; ULMAN, Jeffrey D.,” INTRODUCCION A LA TEORIA DE AUTOMATAS, LENGUAJES FORMALES Y COMPUTACION”, Primera Edición, 1993; edit. CECSA, pág. 100-101.

·         HOPCROFT, J.E.; MOTWANI, R.; ULLMAN, J.D.; “INTRODUCCION A LA TEORIA DE AUTOMATAS, LENGUAJES Y COMPUTACION”; Segunda Edición, 2002; edit. PEARSON EDUCACION; pág. 79-87.

CIBERGRAFIAS

No hay comentarios.:

Publicar un comentario