Probar el cierre bajo la reversión de los idiomas aceptados por los autómatas min-heap


16

Esta es una pregunta de seguimiento de esta .

En una pregunta anterior sobre máquinas de estado exóticas , Alex ten Brink y Raphael abordaron las capacidades computacionales de un tipo peculiar de máquina de estados: los autómatas de min-montón. Pudieron demostrar que el conjunto de idiomas aceptados por tales máquinas ( ) no es un subconjunto ni un superconjunto del conjunto de lenguajes libres de contexto. Dada la resolución exitosa y el aparente interés en esa pregunta, procedo a hacer varias preguntas de seguimiento.HAL

Se sabe que los idiomas regulares están cerrados bajo una variedad de operaciones (podemos limitarnos a operaciones básicas como unión, intersección, complemento, diferencia, concatenación, estrella de Kleene e inversión), mientras que los idiomas libres de contexto tienen un cierre diferente propiedades (estas están cerradas bajo unión, concatenación, estrella de Kleene e inversión).

¿HAL está cerrado bajo inversión?


¿Cuáles son los usos de tales máquinas? ¿O es este un ejercicio académico?
Dave Clarke

@DaveClark Bueno, en su mayoría son un ejercicio académico (que yo sepa, acabo de inventarlos en la pregunta vinculada). Sin embargo, pueden realizar cálculos de la misma manera que otras máquinas (DFA, TM, etc.), por lo que tal vez podría ser útil para ellos.
Patrick87

Esta pregunta ilustra por qué desea tener gramáticas que acompañen sus autómatas. Arr, mi cerebro!
Raphael

44
Estaba tratando de demostrarlo usando un lenguaje del formato clasificada lexicográficamente  , pero tardó demasiado y me di por vencido. Quizás esta idea ayude a alguien. {xyy is a lexicographically sorted copy of x}
Ran G.

@RanG .: Creo que debería funcionar. Me complace otorgar la recompensa a una respuesta que demuestre que el idioma está en y da un razonamiento decente de que la inversión no lo es. HUNL
Raphael

Respuestas:


4

Considere el lenguaje (donde # 0 ( x ) denota el número de ceros en x ).

L×2={XyzX,y,z{0 0,1},# #0 0(X)=# #0 0(y) y El |XEl |+El |yEl |=z}
# #0 0(X)X

Es fácil decidir usando una máquina HAL: observe que la máquina necesita realizar un seguimiento de dos propiedades: el número de ceros en x vs y y la longitud de x , y (vs z ). Puede empujar a al montón por cada cero que ve en x (y luego explotar por cualquier cero visto en y ); además, empuja para cualquier bit en x , y (y luego aparece para cualquier bit de z ). Como todos los s son empujados hacia abajo en el montón, no interfieren con el conteo. El L×2Xyx,yz0x0y1x,y1z10 sirve como delimitador y puede ser prácticamente ignorado.

Ahora, dejemos que , sea el lenguaje inverso. Es decir, L = { z y x x , y , z { 0 , 1 } , # 0 ( x ) = # 0 ( y )  y  | x | + | y | = Z } Vamos a mostrar que ninguna máquina HAL puede decidir L .L=L×2R

L={zyxx,y,z{0,1},#0(x)=#0(y) and |x|+|y|=z}
L

La intuición es lo siguiente. Como se indicó anteriormente, la máquina debe realizar un seguimiento tanto de la longitud de como del número de ceros en x , y . Sin embargo, en este caso necesita rastrearlos simultáneamente . Esto no se puede hacer a través de un montón. En más detalles, después de leer z , el montón contiene información sobre la longitud de | x | + | y | . mientras lee y, la máquina también debe mantener en el montón el número de ceros en y . Sin embargo, esta información no puede interferir con la información que el montón ya tiene sobre la longitud que esperamos xzx,yz|x|+|yEl |yyXser - estar. Muy intuitivamente, la información sobre el número de ceros estará "debajo" de la información sobre la longitud de , y luego no podremos acceder a ella mientras leemos x , o estará "encima" de esa información, haciendo que este último sea inaccesible, o el dos informaciones serán "mixtas" y carecerán de sentido.XX

Más formalmente, vamos a utilizar algún tipo de argumento de "bombeo". Es decir, tomaremos una entrada muy larga y mostraremos que el "estado" de la máquina debe repetirse durante el procesamiento de esa entrada, lo que nos permitirá "reemplazar" la entrada una vez que la máquina repita su "estado".

Para la prueba formal, requerimos una simplificación de la estructura de la máquina HAL, a saber, que no contiene un "bucle" de -transiciones 1 . Con esta suposición, podemos ver que para cada símbolo de entrada que procesa la máquina, el contenido del montón puede aumentar / disminuir a lo sumo c (para algunos constantes lo suficientemente grandes c ).ε1CC

Prueba.
Suponga que decide L y considere una entrada lo suficientemente larga (digamos, de longitud 4 n , por lo tanto | x | = | y | = n , | z | = 2 n , ignorando los s de aquí en adelante). Para ser concreto, arregle z , y y suponga que # 0 ( y ) = n / 2 . Observe que hay ( nHL4norteEl |XEl |=El |yEl |=norteEl |zEl |=2nortez,y# #0 0(y)=norte/ /2diferentesx'S tal quezyxL.(nn/2)xzyxL

Considere el contenido del montón inmediatamente después de procesar . Contiene en la mayoría de 3 n c símbolos (donde cada símbolo es de un alfabeto fijo Γ ), por nuestra suposición. Sin embargo, hay ( nzy3ncΓdiferentesx'sque deberían aceptarse (que es sustancialmente mayor que la cantidad de diferentes contenidos posibles para el montón, ya que esto aumenta exponencialmente, mientras que el número diferente de montones aumenta polinomialmente, ver más abajo). Tome dos entradasx1,x2que deberían aceptarse, de modo que se cumpla lo siguiente:(nn/2)xsx1,x2

  1. El prefijo de longitud de x 1 tiene un número diferente de ceros que el prefijo de x 2 de la misma longitud.n/2x1x2
  2. En el momento en la máquina lee un prefijo de longitud de la x parte, el montón se ve el mismo para ambos x 1 y x 2 , y también, la máquina está en el mismo estado (esto debe ocurrir por alguna x 1 , x 2 , para n lo suficientemente grande , ya que hay más de 2 0.8 n diferentes opciones 2 para x 1 , x 2 y como máximo ( 3.5 c n ) | Γ | | Qn/2xx1x2x1,x2n20.8n2x1,x2diferentes opciones para el contenido del montón y el estado 3 ).(3.5cn)|Γ||Q|3

Está claro que la máquina debe aceptar la palabra , donde x p 1 es un prefijo de x de longitud n / 2 y x s 2 es un sufijo de x 2 de la misma longitud. Tenga en cuenta que el número de ceros en x p 1 x s 2 difiere del número de ceros en x 1 y x 2 (es decir, desde # 0 ( yzyx1px2sx1pxn/2x2sx2x1px2sx1x2 ), debido a la forma en que elegimos x 1 y x 2 , llegamos a una contradicción.#0(y)x1x2

¿Este supuesto daña la generalidad? No lo creo, pero esto realmente requiere una prueba. Si alguien ve cómo evitar esta suposición adicional, me encantaría saberlo. 2 Arreglemos x 1 para que sea el prefijo (de longitud n / 2 tiene exactamente n / 4 ceros). Recordemos que usandola aproximación de Stirlingsabemos que log ( n1
2 x1n/2n/4dondeH()es lafunción de entropía binaria. DesdeH(1/4)0,81tenemos ( nlog(nk)nH(k/n)H()H(1/4)0.81para lo suficientemente granden. (nn/4)>20.8nn3Asumiendo el alfabetoΓ, hay| Γ| ncadenas diferentes de longitudn, así que si esto fuera una pila, estaríamos jodidos. Sin embargo, empujar "01" en un montón es equivalente a empujar "10": el montón almacena solo la versión ordenada del contenido. El número de diferentescadenasordenadasde tamañones (n+1
3 Γ|Γ|nnn, para una constante| Γ| .(n+1|Γ|1)n|Γ||Γ|


¡Agradable! Tendrá que volver a leer la parte formal más tarde. 1) Anuncio ¹: Ver también aquí . 2) El argumento se descompone si permitimos la elección no determinista del símbolo de montón devuelto (entre todos los símbolos de la misma prioridad).
Raphael
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.