Dado un lenguaje , defina el conjunto de longitud de L como el conjunto de longitudes de palabras en L : L S ( L ) = { | u | ∣ u ∈ L }
¿Qué conjuntos de enteros pueden ser el conjunto de longitud de un lenguaje normal?
fuente
Dado un lenguaje , defina el conjunto de longitud de L como el conjunto de longitudes de palabras en L : L S ( L ) = { | u | ∣ u ∈ L }
¿Qué conjuntos de enteros pueden ser el conjunto de longitud de un lenguaje normal?
Primero, una observación que no es crucial pero conveniente: el conjunto de conjuntos de enteros que son para algún lenguaje regular en un alfabeto no vacío no depende de la elección del alfabeto. Para ver eso, considere un autómata finito que reconoce ; Las longitudes de las palabras que están en son las longitudes de las rutas en el autómata visto como un gráfico sin etiquetar desde el estado inicial hasta cualquier estado de aceptación. En particular, se puede etiquetar cada flecha a y obtener un lenguaje regular con el mismo conjunto longitud sobre el alfabeto . Por el contrario, si es un lenguaje regular sobre un alfabeto de un elemento, se puede inyectar trivialmente en un alfabeto más grande, y el resultado sigue siendo un lenguaje regular.
Por lo tanto, estamos buscando los conjuntos de longitud posibles para las palabras sobre un alfabeto singleton. En un alfabeto singleton, el idioma es la longitud establecida en unario: . Tales lenguas se llaman lenguas unarias.
Deje que sea un lenguaje regular, y considerar un autómata finito determinista (DFA) que reconoce . El conjunto de longitudes de palabras de es el conjunto de longitudes de rutas en el DFA visto como un gráfico dirigido que comienza en el estado de inicio y termina en uno de los estados de aceptación. Un DFA en un alfabeto de un elemento es bastante manso (los NFA serían más salvajes): es una lista finita o una lista circular. Si la lista es finita, numere los estados de a siguiendo el orden de la lista; si es circular, numere los estados de a siguiendo el encabezado de la lista, y de a largo del ciclo.
Sea el conjunto de índices de estados de aceptación hasta , y el conjunto de índices de estados de aceptación de a . Luego
Por el contrario, supongamos que y son dos enteros y y son dos conjuntos finitos de enteros de manera que y . Entonces el conjunto es un lenguaje regular: es el idioma reconocido por el DFA descrito anteriormente. Una expresión regular que describe este lenguaje es .
Para resumir en inglés, los conjuntos de longitud de los idiomas regulares son los conjuntos de enteros que son periódicos¹ por encima de un cierto valor .
¹ Para aferrarse a una noción bien establecida , periódico significa la función característica del conjunto (que es una función que elevamos a una función ) es periódico. Periódico por encima de cierto valor significa que la función está restringida a puede prolongarse en una función periódica.
Cualquier subconjunto finito puede ser el conjunto de longitud de un lenguaje regular L , ya que puede tomar un alfabeto unario { 0 } y definir L como { 0 ℓ 1 , ... , 0 ℓ n } (esto incluye el idioma vacío y { ε } ).{ℓ1,…,ℓn}⊂N L {0} L {0ℓ1,…,0ℓn} {ε}
Ahora para los conjuntos infinitos. Daré un breve análisis, aunque la respuesta final podría no ser lo suficientemente explícita. No daré más detalles a menos que me lo pidas, porque creo que es intuitivo y porque no tengo mucho tiempo ahora.
Sean expresiones regulares que generan lenguajes L 1 y L 2 , respectivamente. Es (más o menos) fácil ver quer1,r2 L1 L2
Por lo tanto, los posibles conjuntos de enteros que pueden ser el conjunto de longitud de un lenguaje regular son los que son subconjuntos finitos de o que se pueden construir tomando los subconjuntos finitos S 1 , S 2 de N y usando las fórmulas anteriores un finito numero de veces.N S1,S2 N
Aquí, estamos usando que los lenguajes regulares se construyen, por definición, aplicando las reglas para construir una expresión regular un número finito de veces. Tenga en cuenta que podemos comenzar con cualquier subconjunto finito de , aunque en las expresiones regulares comenzamos con palabras de longitud 0 y 1 solo como el caso base. Esto se justifica fácilmente por el hecho de que todas las palabras (finitas) son concatenaciones (finitas) de los símbolos del alfabeto.N
fuente
De acuerdo con el lema de bombeo para lenguajes regulares, existe una tal que una cadena x de longitud al menos igual a n se puede escribir de la siguiente forma: x = u v w Donde se cumplen las siguientes tres condiciones: | u v | < n | v | > 0 u v k w ∈ Ln x n
Esto nos da una prueba para los conjuntos: un conjunto no puede ser el conjunto de longitud de un lenguaje normal a menos que todos sus elementos se puedan expresar como un conjunto arbitrario de enteros no mayor que un fijo , más algún múltiplo de un valor indeterminado m (la longitud de v ), más algún valor finito arbitrario.n m v
En otras palabras, parece que los posibles conjuntos de longitudes de lenguaje para los idiomas regulares es el cierre con respecto a la unión de conjuntos (como se discutió en EDIT y EDIT2, gracias a los comentaristas) de conjuntos descritos como sigue: Para a , b ∈ N fijos y todos los conjuntos finitos S , por el lema de bombeo para los idiomas regulares (gracias a Gilles por señalar un error tonto en mi versión original, por el cual estaba definiendo el conjunto N ).
EDITAR: Un poco más de discusión. Ciertamente, todos los conjuntos finitos de enteros son conjuntos de longitud. Además, la unión de dos conjuntos de longitud también debe ser un conjunto de longitud, como debe ser el complemento de cualquier conjunto de longitud (por lo tanto, intersección, por lo tanto, diferencia). La razón de esto es que los idiomas regulares están cerrados bajo estas operaciones. Por lo tanto, la respuesta que doy arriba es (posiblemente) incompleta; en realidad, cualquier unión de tales conjuntos es también el conjunto de longitud de algún lenguaje regular (tenga en cuenta que he abandonado la necesidad de intersección, complemento, diferencia, etc., ya que estos están cubiertos por el hecho de que los idiomas regulares están cerrados bajo estas propiedades, como discutido en EDIT3; creo que solo la unión es realmente necesaria, incluso si los otros tienen razón, lo que podría no ser el caso).
EDIT2: Aún más discusión. La respuesta que doy es básicamente donde terminarías si llevaras la respuesta de Janoma un poco más lejos; la parte proviene de la estrella de Kleene, la a proviene de la concatenación, y la discusión sobre unión, intersección, diferencia y complemento proviene del + de las expresiones regulares (así como otras propiedades de cierre de los lenguajes regulares) demostrables a partir de autómatas) .bn a
EDITAR3: a la luz del comentario de Janoma, olvidemos las propiedades de cierre de los conjuntos de longitud del lenguaje que analizo en la primera EDICIÓN. Dado que los idiomas regulares tienen estas propiedades de cierre, y dado que cada idioma regular tiene un DFA, se deduce que el lema de bombeo para los idiomas regulares se aplica a todas las uniones, intersecciones, complementos y diferencias de los idiomas regulares, y lo dejaremos así. ; ni siquiera es necesario considerar ninguno de estos, excepto la unión, que todavía creo que podría ser necesario para hacer que mi original (modificado, gracias a los aportes de Gilles) sea correcto. Entonces, mi respuesta final es esta: lo que digo en la versión original, más el cierre de los conjuntos de longitud de lenguaje con respecto a la unión de conjuntos.
fuente