Articulo de referencia

Lenguaje de Dyck

En la teoría de los lenguajes formales de la informática , las matemáticas y la lingüística , una palabra de Dyck es una cadena equilibrada de paréntesis. El conjunto de palabra...

En la teoría de los lenguajes formales de la informática , las matemáticas y la lingüística , una palabra de Dyck es una cadena equilibrada de paréntesis. El conjunto de palabras de Dyck forma un lenguaje de Dyck . El más simple, Dyck-1, utiliza solo dos paréntesis coincidentes, por ejemplo ( y ).

Las palabras y el lenguaje de Dyck reciben su nombre del matemático Walther von Dyck . Tienen aplicaciones en el análisis sintáctico de expresiones que deben tener una secuencia de paréntesis anidada correctamente, como expresiones aritméticas o algebraicas.

Definición formal

DejarΣ={[,]}{\displaystyle \Sigma =\{[,]\}}Sea el alfabeto formado por los símbolos [ y ].Σ{\displaystyle \Sigma ^{*}}denotamos su clausura de Kleene . El lenguaje de Dyck se define como:

{Σ| todos los prefijos de  no contienen más ]'s que ['s y el número de ['s en  es igual al número de ]}.{\displaystyle \{u\in \Sigma ^{*}\vert {\text{ todos los prefijos de }}u{\text{ no contienen más ] que ['s}}{\text{ y el número de ['s en }}u{\text{ es igual al número de ]'s}}\}.}

Gramática libre de contexto

En algunas situaciones , puede resultar útil definir el lenguaje de Dyck mediante una gramática libre de contexto . El lenguaje de Dyck se genera mediante la gramática libre de contexto con un único no terminal S y la siguiente producción:

Sε | "[" S "]" S

Es decir, S es o bien la cadena vacía ( ε ) o bien es "[", un elemento del lenguaje Dyck, el correspondiente "]", y un elemento del lenguaje Dyck.

Una gramática alternativa libre de contexto para el lenguaje de Dyck viene dada por la siguiente producción:

S → ("[" S "]") *

Es decir, S es cero o más ocurrencias de la combinación de "[", un elemento del lenguaje Dyck, y un "]" coincidente, donde múltiples elementos del lenguaje Dyck en el lado derecho de la producción son libres de diferir entre sí.

Definición alternativa

En otros contextos, puede ser útil definir el lenguaje de Dyck mediante la divisiónΣ{\displaystyle \Sigma ^{*}}en clases de equivalencia, como sigue. Para cualquier elementoΣ{\displaystyle u\in \Sigma ^{*}}de longitud||{\displaystyle |u|}, definimos funciones parcialesinsertar:Σ×norteΣ{\displaystyle \operatorname {insert} :\Sigma ^{*}\times \mathbb {N} \rightarrow \Sigma ^{*}} yborrar:Σ×norteΣ{\displaystyle \operatorname {delete} :\Sigma ^{*}\times \mathbb {N} \rightarrow \Sigma ^{*}} por

insertar(,j){\displaystyle \operatorname {insert} (u,j)}es{\displaystyle u}con "[]{\displaystyle []}" insertado en elj{\displaystyle j}posición
borrar(,j){\displaystyle \operatorname {delete} (u,j)}es{\displaystyle u}con "[]{\displaystyle []}" eliminado de laj{\displaystyle j}posición

con el entendimiento de queinsertar(,j){\displaystyle \operatorname {insert} (u,j)}no está definido paraj>||{\displaystyle j>|u|}yborrar(,j){\displaystyle \operatorname {delete} (u,j)}no está definido sij>||2{\displaystyle j>|u|-2}Definimos una relación de equivalencia .R{\displaystyle R}enΣ{\displaystyle \Sigma ^{*}}de la siguiente manera: para los elementosa,bΣ{\displaystyle a,b\in \Sigma ^{*}}tenemos(a,b)R{\displaystyle (a,b)\in R}si y solo si existe una secuencia de cero o más aplicaciones de lainsertar{\displaystyle \operatorname {insert} }yborrar{\displaystyle \operatorname {delete} }funciones que comienzan cona{\displaystyle a}y terminando conb{\displaystyle b}. Que se permita la secuencia de operaciones cero explica la reflexividad deR{\displaystyle R}. La simetría se deduce de la observación de que cualquier secuencia finita de aplicaciones deinsertar{\displaystyle \operatorname {insert} }una cadena se puede deshacer con una secuencia finita de aplicaciones deborrar{\displaystyle \operatorname {delete} }La transitividad queda clara a partir de la definición.

La relación de equivalencia divide el lenguaje.Σ{\displaystyle \Sigma ^{*}}en clases de equivalencia. Si tomamosϵ{\displaystyle \epsilon }para denotar la cadena vacía, entonces el lenguaje correspondiente a la clase de equivalenciaCl(ϵ){\displaystyle \operatorname {Cl} (\epsilon )}Se le llama el lenguaje de Dyck .

Generalizaciones

Lenguaje Dyck mecanografiado

Existen variantes del lenguaje Dyck con múltiples delimitadores, por ejemplo, Dyck-2 en el alfabeto "(", ")", "[", y "]". Las palabras de dicho lenguaje son aquellas que están bien entre paréntesis para todos los delimitadores; es decir, se puede leer la palabra de izquierda a derecha, insertar cada delimitador de apertura en la pila y, cuando se llega a un delimitador de cierre, se debe poder extraer el delimitador de apertura correspondiente de la parte superior de la pila. (El algoritmo de conteo anterior no se generaliza). Por ejemplo, la siguiente es una oración válida en Dyck-3 (con los delimitadores correspondientes coloreados del mismo color ):

 ( [ [ ] { } ] ( ) { ( ) } ) [ ] 

Profundidad finita

Una oración en el lenguaje Dyck puede visualizarse como un descenso y ascenso a través de niveles de paréntesis anidados. Al leer una oración Dyck, cada paréntesis de apertura aumenta la profundidad de anidamiento en 1, y cada paréntesis de cierre la disminuye en 1. La profundidad de una oración es la profundidad máxima alcanzada dentro de la misma.

Por ejemplo, podemos anotar la siguiente oración con la profundidad en cada paso:

0 ( 1 [ 2 [ 3 ] 2 { 3 } 2 ] 1 ( 2 ) 1 { 2 ( 3 ) 2 } 1 ) 0 [ 1 ] 0

y la oración completa tiene una profundidad de 3.

Definimos Dyck-(k, m) como el lenguaje con k tipos de corchetes y profundidad máxima m. Esto tiene aplicaciones en la teoría formal de redes neuronales recurrentes . [ 1 ]

Propiedades

  • El lenguaje Dyck es cerrado bajo la operación de concatenación .
  • Al tratarΣ{\displaystyle \Sigma ^{*}}como un monoide algebraico bajo concatenación vemos que la estructura del monoide se transfiere al cocienteΣ/R{\displaystyle \Sigma ^{*}/R}, lo que da como resultado el monoide sintáctico del lenguaje de Dyck . La claseCl(ϵ){\displaystyle \operatorname {Cl} (\epsilon )}se denotará1{\displaystyle 1}.
  • El monoide sintáctico del lenguaje de Dyck no es conmutativo : si=Cl([){\displaystyle u=\operatorname {Cl} ([)}yv=Cl(]){\displaystyle v=\operatorname {Cl} (])}entoncesv=Cl([])=1Cl(][)=v{\displaystyle uv=\operatorname {Cl} ([])=1\neq \operatorname {Cl} (][)=vu}.
  • Con la notación anterior,v=1{\displaystyle uv=1}pero ninguno{\displaystyle u}niv{\displaystyle v}son invertibles enΣ/R{\displaystyle \Sigma ^{*}/R}.
  • El monoide sintáctico del lenguaje de Dyck es isomorfo al semigrupo bicíclico en virtud de las propiedades deCl([){\displaystyle \operatorname {Cl} ([)}yCl(]){\displaystyle \operatorname {Cl} (])}descrito anteriormente.
  • Según el teorema de representación de Chomsky-Schützenberger , cualquier lenguaje libre de contexto es una imagen homomórfica de la intersección de algún lenguaje regular con un lenguaje de Dyck en uno o más tipos de pares de corchetes. [ 2 ]
  • El lenguaje Dyck con dos tipos distintos de corchetes se puede reconocer en la clase de complejidad.Tdo0{\displaystyle TC^{0}}. [ 3 ]
  • El número de palabras de Dyck distintas con exactamente n pares de paréntesis y k pares internos (es decir, la subcadena[ ]{\displaystyle [\ ]}) es el número de Narayananorte(norte,k){\displaystyle \operatorname {N} (n,k)}.
  • Las palabras de Dyck son isomorfas a los caminos de Dyck , un subconjunto de los símbolos de recorrido en escalera.
  • El número de palabras de Dyck distintas con exactamente n pares de paréntesis es el n -ésimo número de Catalan.donorte{\displaystyle C_{n}}Nótese que el lenguaje de Dyck de palabras con n pares de paréntesis es igual a la unión, sobre todos los posibles k , de los lenguajes de Dyck de palabras con n pares de paréntesis y k pares internos , tal como se definió en el punto anterior. Dado que k puede variar de 0 a n , obtenemos la siguiente igualdad, que efectivamente se cumple:
donorte=k=1nortenorte(norte,k){\displaystyle C_{n}=\sum _{k=1}^{n}\operatorname {N} (n,k)}

Ejemplos

Retículo de las 14 palabras de Dyck de longitud 8 - [ y ] interpretadas como arriba y abajo

Podemos definir una relación de equivalencia.L{\displaystyle L}sobre el lenguaje de DyckD{\displaystyle {\mathcal {D}}}. Para,vD{\displaystyle u,v\in {\mathcal {D}}}tenemos(,v)L{\displaystyle (u,v)\in L}si y solo si||=|v|{\displaystyle |u|=|v|}, es decir{\displaystyle u}yv{\displaystyle v}tienen la misma longitud. Esta relación particiona el lenguaje de Dyck:D/L={D0,D1,}{\displaystyle {\mathcal {D}}/L=\{{\mathcal {D}}_{0},{\mathcal {D}}_{1},\ldots \}}. TenemosD=D0D2D4=norte=0Dnorte{\displaystyle {\mathcal {D}}={\mathcal {D}}_{0}\cup {\mathcal {D}}_{2}\cup {\mathcal {D}}_{4}\cup \ldots =\bigcup _{n=0}^{\infty }{\mathcal {D}}_{n}}dóndeDnorte={D||=norte}{\displaystyle {\mathcal {D}}_{n}=\{u\in {\mathcal {D}}\mid |u|=n\}}. Tenga en cuenta queDnorte{\displaystyle {\mathcal {D}}_{n}}está vacío para imparnorte{\displaystyle n}.

Habiendo introducido las palabras de Dyck de longitudnorte{\displaystyle n}, podemos introducir una relación sobre ellos. Para cadanortenorte{\displaystyle n\in \mathbb {N} }definimos una relaciónSnorte{\displaystyle S_{n}}enDnorte{\displaystyle {\mathcal {D}}_{n}}; para,vDnorte{\displaystyle u,v\in {\mathcal {D}}_{n}}tenemos(,v)Snorte{\displaystyle (u,v)\in S_{n}}si y solo siv{\displaystyle v}Se puede acceder desde{\displaystyle u}mediante una serie de intercambios adecuados . Un intercambio adecuado en una palabraDnorte{\displaystyle u\in {\mathcal {D}}_{n}}intercambia una ocurrencia de '][' con '[]'. Para cadanortenorte{\displaystyle n\in \mathbb {N} }la relaciónSnorte{\displaystyle S_{n}}marcasDnorte{\displaystyle {\mathcal {D}}_{n}}en un conjunto parcialmente ordenado . La relaciónSnorte{\displaystyle S_{n}}es reflexivo porque una secuencia vacía de intercambios adecuados toma{\displaystyle u}a{\displaystyle u}La transitividad se deduce porque podemos extender una secuencia de intercambios propios que toma{\displaystyle u}av{\displaystyle v}al concatenarlo con una secuencia de intercambios adecuados que tomav{\displaystyle v}aw{\displaystyle w}formando una secuencia que toma{\displaystyle u}enw{\displaystyle w}Para ver esoSnorte{\displaystyle S_{n}}También es antisimétrico, introducimos una función auxiliar.σnorte:Dnortenorte{\displaystyle \sigma _{n}:{\mathcal {D}}_{n}\rightarrow \mathbb {N} }definido como una suma sobre todos los prefijosv{\displaystyle v}de{\displaystyle u}:

σnorte()=vw=((recuento de ['s en v)(recuento de ]'s en v)){\displaystyle \sigma _{n}(u)=\sum _{vw=u}{\Big (}({\text{count of ['s in }}v)-({\text{count of ]'s in }}v){\Big )}}

La siguiente tabla ilustra queσnorte{\displaystyle \sigma _{n}}es estrictamente monótono con respecto a los intercambios adecuados.

Por esoσnorte()σnorte()=2>0{\displaystyle \sigma _{n}(u')-\sigma _{n}(u)=2>0}entoncesσnorte()<σnorte(){\displaystyle \sigma _{n}(u)<\sigma _{n}(u')}cuando hay un intercambio adecuado que toma{\displaystyle u}en{\displaystyle u'}Ahora bien, si asumimos que ambos(,v),(v,)Snorte{\displaystyle (u,v),(v,u)\in S_{n}}yv{\displaystyle u\neq v}, entonces existen secuencias no vacías de intercambios propios tales{\displaystyle u}es llevado av{\displaystyle v}y viceversa. Pero entoncesσnorte()<σnorte(v)<σnorte(){\displaystyle \sigma _{n}(u)<\sigma _{n}(v)<\sigma _{n}(u)}lo cual no tiene sentido. Por lo tanto, siempre que ambos(,v){\displaystyle (u,v)}y(v,){\displaystyle (v,u)}están enSnorte{\displaystyle S_{n}}, tenemos=v{\displaystyle u=v}, por esoSnorte{\displaystyle S_{n}}es antisimétrico.

El conjunto ordenado parcialD8{\displaystyle D_{8}}se muestra en la ilustración que acompaña a la introducción si interpretamos un [ como hacia arriba y ] como hacia abajo.

Véase también

Notas

  1. Hewitt, John; Hahn, Michael; Ganguli, Surya; Liang, Percy ; Manning, Christopher D. (2020-10-15). "Las RNN pueden generar lenguajes jerárquicos limitados con memoria óptima". arXiv : 2010.07515 [ cs.CL ].
  2. Kambites, Communications in Algebra Volumen 37 Número 1 (2009) 193-208
  3. Barrington y Corbett, Information Processing Letters 32 (1989) 251-256

Referencias

  • Lenguaje Dyck en PlanetMath .
  • Una demostración del teorema de Chomsky-Schützenberger
  • Una entrada del blog de AMS sobre las palabras de Dyck