Lenguaje que consta de cadenas equilibradas de paréntesis
En la teoría de los lenguajes formales de la informática , las matemáticas y la lingüística , una palabra Dyck es una cadena equilibrada de paréntesis. El conjunto de palabras Dyck forma un lenguaje 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 corchetes correctamente anidada, como expresiones aritméticas o algebraicas.
Definición formal
Sea el alfabeto formado por los símbolos [ y ]. Denotemos su clausura de Kleene . El lenguaje Dyck se define como:
Es decir, S es la cadena vacía ( ε ) o es "[", un elemento del lenguaje Dyck, el "]" correspondiente y un elemento del lenguaje Dyck.
Una gramática alternativa libre de contexto para el lenguaje Dyck se da en la 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 "]" correspondiente, 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 Dyck dividiéndolo en clases de equivalencia, como sigue: Para cualquier elemento de longitud , definimos funciones parciales y por
está con " " insertado en la posición th
está con " " eliminado de la posición
con el entendimiento de que no está definido para y no está definido si . Definimos una relación de equivalencia en de la siguiente manera: para elementos tenemos si y solo si existe una secuencia de cero o más aplicaciones de las funciones y que comiencen con y terminen con . El hecho de que se permita la secuencia de cero operaciones explica la reflexividad de . La simetría se desprende de la observación de que cualquier secuencia finita de aplicaciones de a una cadena se puede deshacer con una secuencia finita de aplicaciones de . La transitividad se desprende claramente de la definición.
La relación de equivalencia divide el lenguaje en clases de equivalencia. Si tomamos como denotación la cadena vacía, entonces el lenguaje correspondiente a la clase de equivalencia se denomina lenguaje Dyck .
Generalizaciones
Lenguaje Dyck tipificado
Existen variantes del lenguaje Dyck con múltiples delimitadores, por ejemplo, Dyck-2 en el alfabeto "(", ")", "[" y "]". Las palabras de este tipo de lenguaje son las que están bien separadas entre paréntesis para todos los delimitadores, es decir, se puede leer la palabra de izquierda a derecha, se pueden insertar todos los delimitadores de apertura en la pila y, siempre que lleguemos a un delimitador de cierre, debemos poder sacar 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:
( [ [ ] { } ] ( ) { ( ) } ) [ ]
Profundidad finita
Una oración en lengua Dyck puede ser descrita como un descenso y un ascenso a través de los niveles de corchetes anidados. A medida que se lee una oración en lengua Dyck, cada corchete de apertura aumenta la profundidad de anidación en 1, y cada corchete de cierre disminuye en 1. La profundidad de una oración es la profundidad máxima alcanzada dentro de la oración.
Por ejemplo, podemos anotar la siguiente oración con la profundidad en cada paso:
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 está cerrado bajo la operación de concatenación .
Al tratarlo como un monoide algebraico bajo concatenación, vemos que la estructura del monoide se transfiere al cociente , lo que da como resultado el monoide sintáctico del lenguaje Dyck . La clase se denotará como .
El monoide sintáctico de la lengua Dyck no es conmutativo : si y entonces .
Con la notación anterior, pero ni ni son invertibles en .
El monoide sintáctico de la lengua Dyck es isomorfo al semigrupo bicíclico en virtud de las propiedades de y descritas anteriormente.
El lenguaje Dyck con dos tipos distintos de corchetes se puede reconocer en la clase de complejidad . [3]
El número de palabras Dyck distintas con exactamente n pares de paréntesis y k pares más internos (es decir, la subcadena ) es el número de Narayana .
El número de palabras Dyck distintas con exactamente n pares de paréntesis es el n -ésimo número catalán . Nótese que el lenguaje Dyck de palabras con n pares de paréntesis es igual a la unión, sobre todos los k posibles , de los lenguajes Dyck de palabras de n pares de paréntesis con k pares más internos , tal como se definió en el punto anterior. Como k puede variar de 0 a n , obtenemos la siguiente igualdad, que de hecho se cumple:
Ejemplos
Podemos definir una relación de equivalencia en el lenguaje Dyck . Porque tenemos si y solo si , es decir y tienen la misma longitud. Esta relación divide el lenguaje Dyck: . Tenemos donde . Nótese que está vacío para impar .
Habiendo introducido las palabras de Dyck de longitud , podemos introducir una relación sobre ellas. Para cada definimos una relación sobre ; porque tenemos si y sólo si se puede llegar a desde mediante una serie de intercambios propios . Un intercambio propio en una palabra intercambia una ocurrencia de '][' con '[]'. Para cada la relación se convierte en un conjunto parcialmente ordenado . La relación es reflexiva porque una secuencia vacía de intercambios propios lleva a . La transitividad se deduce porque podemos extender una secuencia de intercambios propios que lleva a concatenándola con una secuencia de intercambios propios que lleva a formando una secuencia que lleva a . Para ver que también es antisimétrica introducimos una función auxiliar definida como una suma sobre todos los prefijos de :
La siguiente tabla ilustra que es estrictamente monótono con respecto a los intercambios adecuados.
Por lo tanto, cuando hay un intercambio propio que toma en . Ahora bien, si suponemos que tanto y , entonces hay secuencias no vacías de intercambios propios tales que se toma en y viceversa. Pero entonces , lo cual no tiene sentido. Por lo tanto, siempre que tanto y estén en , tenemos , por lo tanto es antisimétrico.
El conjunto parcialmente ordenado se muestra en la ilustración que acompaña a la introducción si interpretamos a [ como subiendo y ] como bajando.
^ Hewitt, John; Hahn, Michael; Ganguli, Surya; Liang, Percy; Manning, Christopher D. (15 de octubre de 2020). "Las RNN pueden generar lenguajes jerárquicos acotados con memoria óptima". arXiv : 2010.07515 [cs.CL].
^ Kambites, Comunicaciones en Álgebra Volumen 37 Número 1 (2009) 193-208
^ Barrington y Corbett, Cartas de procesamiento de información 32 (1989) 251-256