¿Están los idiomas regulares cerrados bajo adición?

10

Específicamente, lo que quiero decir con suma es que definimos como el alfabeto . Dadas lenguajes regulares y en virtud de algún alfabeto , vistazo a .Σi{0,1,2,...,i}ABΣiA×B

Para cada par ordenado , defina la "suma" de este par ordenado como , donde y son números en la base i. Los 0 iniciales se ignoran, por lo que está delante de cada cadena aceptada. Esto implica que se define como 0.(a,b)A×Ba+bab0ϵ

El lenguaje es el conjunto de cadenas que representan todas las sumas posibles.A+B

Hasta ahora lo sé:

  • Esto es cierto en unario ( ).Σ1
  • Esto es cierto para cualquier lenguaje regular finito y , porque cualquier lenguaje finito es regular y es finito.ABA+B
  • El lenguaje = sCn{|s es un múltiplo de n en la base b debajo de Σ b es regular para cualquier b > = 1 . Esto significa que cualquier idioma de la forma también se puede agregar, como , que también es regular. Sin embargo, hay idiomas como = ss comienza y termina con un 1} que no se ajusta a este criterio, por lo que no describe todos los idiomas normales.}Σbb>=1CnCi+Cj=Ci+jD{|
Phylliida
fuente
2
No es cierto que si A es regular en la base 2, también lo es en la base 3, considere, por ejemplo, los poderes de 2.
domotorp
Ya veo, tienes razón. Edité la pregunta en consecuencia. Estaba tratando de probarlo, y parecía cierto, y luego entendí mal lo que era un homomorfismo y asumí que era cierto. Pero no lo es, perdón por eso. Si un lenguaje es regular en la base b ^ a para algunos a> 1, también es regular en cualquier otra base b ^ (ac) para cualquier 1 <= c <a sin embargo. (por ejemplo, si un lenguaje es regular en la base 8, también lo es en la base 4 y 2, simplemente simulando el dfa de base-8).
Phylliida
"Esto implica que ϵ se define como 0". No entiendo lo que eso significa. Si 0 y ϵ son iguales, entonces todos los 0 pueden eliminarse, y la interpretación del número ya no funciona.
babou
El punto es simplemente que si una cadena vacía ϵ está en un par ordenado, agrega 0 a la otra cadena. También para cualquier cadena dada que tenga ceros a la izquierda se pueden eliminar. Lo que esto significa es que 000101 es lo mismo que 101, por ejemplo. Esto es lo que quise decir, si un ϵ aparece en una cadena por sí mismo , que es equivalente en valor con respecto a una suma como 0, 00 o 000 por sí mismos . Sin embargo, si esas cadenas están dentro de otra cadena, todas las apuestas están desactivadas, y esta sustitución ya no es válida.
Phylliida

Respuestas:

14

Sí lo son.

Primero, considere el alfabeto cuyos símbolos son triples de dígitos (apilados uno encima del otro en una pila de tres dígitos). Sobre este alfabeto, podemos definir un lenguaje regular A ' donde la cadena formada por el más alto de los tres dígitos pertenece a A , un lenguaje regular B ' donde la cadena formada por el medio de los tres dígitos pertenece a B , y un lenguaje regular C donde las dos cadenas superiores suman la inferior. A ' y B ' solo usan autómatas modificados para A y B , mientras que CΣi3AABBCABABC usa el hecho de que puede hacer una suma escaneando de derecha a izquierda mientras mantiene solo un dígito de carry como estado.

Entonces es (por cierre bajo intersección) un lenguaje regular que reconoce pilas de tres cadenas, una en A , una en B y la tercera en la suma. El homomorfismo que quita los dos dígitos superiores de una pila dejando solo el inferior lleva esto al idioma que desea, y el resultado sigue al cierre bajo homomorfismo.ABCAB

David Eppstein
fuente
Eso es realmente asombroso. No me di cuenta de que podrías usar esas pilas de esa manera. ¡Gracias!
Phylliida
Es cierto que esto es un poco dudoso porque en este caso solo contiene sumas de cadenas del mismo tamaño, sin embargo, porque podemos "simular" sumas de cadenas de diferentes tamaños agregando ceros a la izquierda, y es simple modificar un dfa en otro dfa que reconoce 0 * delante de todas las cadenas de aceptación (una vez que construye el dfa sumador para reconocer C con homomorfismo).
Phylliida
Supongo que la clave más importante es que A y B tienen que "modificarse técnicamente" de la misma manera para que sean 0 * A y 0 * B, y una vez que lo hacemos, es suficiente, para cada par de ayb, encontrar el suma de 0 * a + 0 * b st ambos valores tienen suficientes ceros iniciales para que coincidan con los tamaños, y luego el resultado puede ser eliminado de 0 según sea necesario ya que C se modifica de la misma manera. ¿Estaba implícito o hay una forma más sencilla de ver eso que me estoy perdiendo?
Phylliida
Sí, hay algunos aspectos técnicos relacionados con el relleno, pero en realidad no cambian las ideas básicas, así que los omití.
David Eppstein
Genial, eso tiene sentido.
Phylliida
9

Si. Doy un NFA que lee la palabra desde el final, ya que incluso dichos autómatas solo pueden reconocer idiomas normales. También suponemos que y B son dadas por tales autómatas, M A y M B . El NFA adivina a cada paso lo que el dígito respectivo de una y b es, cheques que la adición es correcta, y calcula los nuevos estados respectivos de M A y M B . Al final de la palabra, acepta si y solo si M A y M B aceptan.ABMAMBabMAMBMAMB

domotorp
fuente