Determinación de las capacidades de una máquina de estado de almacenamiento dinámico mínimo (u otras máquinas exóticas)

44

Consulte el final de esta publicación para obtener algunas aclaraciones sobre las definiciones de los autómatas min-heap.

Uno puede imaginarse usando una variedad de estructuras de datos para almacenar información para uso de las máquinas de estado. Por ejemplo, los autómatas push-down almacenan información en una pila, y las máquinas Turing usan una cinta. Se ha demostrado que las máquinas de estado que usan colas, y las que usan dos pilas o cintas múltiples, son equivalentes en potencia a las máquinas de Turing.

Imagina una máquina de montón mínimo. Funciona exactamente como un autómata push-down, con las siguientes excepciones:

  1. En lugar de ver lo último que agregó al montón, solo puede ver el elemento más pequeño (con el orden definido por máquina) actualmente en el montón.
  2. En lugar de eliminar lo último que agregó al montón, solo puede eliminar uno de los elementos más pequeños (con el orden definido por máquina) actualmente en el montón.
  3. En lugar de agregar un elemento a la parte superior del montón, solo puede agregar un elemento al montón, con su posición determinada de acuerdo con los otros elementos en el montón (con el orden definido por máquina).

Esta máquina puede aceptar todos los idiomas normales, simplemente al no usar el montón. También puede aceptar el lenguaje {anbn{a,b}n0} mediante la adición de a @ s al montón, y la eliminación de a 's de la pila cuando se lee b 's. Puede aceptar una variedad de otros lenguajes sin contexto. Sin embargo, no puede aceptar, por ejemplo, {w{a,b}w=wR}(indicado sin prueba). EDITAR: ¿o puede? No creo que pueda, pero me he sorprendido antes, y estoy seguro de que seguiré sorprendiéndome cuando mis suposiciones de seguir haciéndome un ... bueno.

¿Puede aceptar idiomas sensibles al contexto o completos de Turing?

En términos más generales, ¿qué investigación, si alguna, se ha llevado a cabo en esta dirección? ¿Qué resultados hay, si los hay? También estoy interesado en otras variedades de máquinas de estado exóticas, posiblemente aquellas que usan otras estructuras de datos para el almacenamiento o varios tipos de restricciones de acceso (por ejemplo, cómo las LBA son TM restringidas). Las referencias son apreciadas. Pido disculpas de antemano si esta pregunta demuestra ignorancia.


Definicion formal:

Proporciono algunas definiciones más detalladas de los autómatas de min-montón aquí para aclarar la discusión adicional en preguntas que hacen referencia a este material.

Definimos un autómata de montón mínimo no determinista de tipo 1 como una tupla de 7 donde ...

(Q,q0,A,Σ,Γ,Z0,δ)
  1. es un conjunto de estados finito, no vacío;Q
  2. es el estado inicial;q0Q
  3. es el conjunto de estados de aceptación;AQ
  4. es un alfabeto de entrada finito, no vacío;Σ
  5. es un alfabeto de entrada finito, no vacío, donde el peso de un símbolo γ Γ , w ( γ ) N , es tal que w ( γ 1 ) = w ( γ 2 )ΓγΓw(γ)N ;w(γ1)=w(γ2)γ1=γ2
  6. es el símbolo especial de la parte inferior del montón;Z0Γ
  7. es la función de transición.δ:Q×(Σ{ϵ})×(Γ{Z0})P(Q×Γ)

La función de transición funciona asumiendo un montón inicialmente vacío que consta de solo . La función de transición puede añadir a la pila una colección arbitraria (finito, pero posiblemente vacío o con repeticiones) de elementos gamma 1 , γ 2 , . . . , γ kΓ . Alternativamente, la función de transición puede eliminar una instancia del elemento γ con el peso más bajo w ( γ )Z0γ1,γ2,...,γkΓγw(γ)de todos los elementos restantes en el montón (es decir, el elemento en la parte superior del montón). La función de transición solo puede usar la instancia de símbolo superior (es decir, de peso mínimo) para determinar cualquier transición dada.

Además, defina un autómata de montón mínimo determinista de tipo 1 para que sea un autómata de montón mínimo no determinista de tipo 1 que satisfaga la siguiente propiedad: para todas las cadenas tal que | x | = N y sigma sigma , | δ n + 1 ( q 0 , x σ y , Z 0 ) | 1 .xσyΣ|x|=nσΣ|δn+1(q0,xσy,Z0)|1

Defina también un autómata de montón mínimo no determinista de tipo 2 exactamente igual que un autómata de montón mínimo no determinista de tipo 1, excepto por los siguientes cambios:

  1. es un alfabeto de entrada finito, no vacío, donde el peso de un símbolo γ Γ , w ( γ ) N , es tal que w ( γ 1 ) = w ( γ 2 ) no implica necesariamente γ 1 = γ 2 ; en otras palabras, diferentes símbolos de montón pueden tener el mismo peso.ΓγΓw(γ)Nw(γ1)=w(γ2)γ1=γ2
  2. Cuando se agregan instancias de símbolos de montón distintos con el mismo peso al montón, su orden relativo se conserva de acuerdo con un orden similar a la pila de último en entrar, primero en salir (LIFO).

Gracias a Raphael por señalar esta definición más natural, que captura (y extiende) los lenguajes libres de contexto.


Algunos resultados demostrados hasta ahora:

  1. Los autómatas de montón mínimo de tipo 1 reconocen un conjunto de idiomas que no es ni un subconjunto ni un superconjunto de los idiomas sin contexto. [ 1 , 2 ]
  2. Los autómatas de tipo 2 min-heap, por su definición, reconocen un conjunto de idiomas que es un superconjunto adecuado de los idiomas libres de contexto, así como un superconjunto adecuado de los idiomas aceptados por los autómatas de tipo-1 min-heap.
  3. Los idiomas aceptados por los autómatas tipo 1 min-montón parecen estar cerrados bajo unión, concatenación y estrella de Kleene, pero no bajo complementación [ 1 ], intersección o diferencia;
  4. Los idiomas aceptados por los autómatas de montón mínimo no deterministas de tipo 1 parecen ser un superconjunto apropiado de idiomas aceptados por los autómatas deterministas de montón mínimo de tipo 1.

Puede haber algunos otros resultados que me he perdido. Más resultados están (posiblemente) en camino.


Preguntas de seguimiento

  1. ¿Cierre bajo inversión? -- Abierto
  2. ¿Cierre bajo complementación? -- ¡No!
  3. ¿El no determinismo aumenta el poder? -- ¿Si?
  4. HALCSL
  5. ¿Agregar montones aumenta la potencia para el tipo 1? - para (?) k > 2HAL1HAL2=HALkk>2
  6. ¿Agregar una pila aumenta la potencia para el tipo 1? -- Abierto
Patrick87
fuente
1
Gran pregunta por cierto. Estoy tentado a buscar un lema de bombeo para estos autómatas.
Raphael
@Raphael: Creo que puede usar mi prueba (actualizada) para tal lema: cualquier lenguaje para el que necesite 'recordar' más que una cantidad lineal de información en alguna subcadena para que coincida correctamente con una subcadena posterior no puede ser analizado por Min-Heap Autómatas. No estoy seguro de si es posible un verdadero lema de estilo de bombeo; también podría terminar siendo un caso especial de mi lema.
Alex ten Brink
@AlextenBrink Como las combinaciones de números de símbolo de montón se pueden usar para codificar cosas, no estoy seguro de que sea suficiente un límite lineal.
Raphael

Respuestas:

25

Puede reconocer el lenguaje canónico sin contexto (pero sensible al contexto) con este tipo de máquina de estados. El punto crucial es que se agrega fichas de la pila para cada carácter, y al analizar los caracteres, se agrega fichas 'grandes' de la pila, por lo que sólo terminan en la parte inferior de la pila cuando se han analizado todos los caracteres.a b b{anbncn | n1}abb

Los símbolos de montón son y , donde . Consumimos todos los símbolos en la entrada y añadimos símbolos para el montón. Si encontramos una , cambiamos las estrategias: por cada que encontramos posteriormente, eliminamos una del montón y agregamos una al montón. Cuando nos encontramos con una deberíamos haber quedado sin s para eliminar, y luego por cada en la entrada restante eliminamos una del montón. Si el montón está vacío al final, la cadena está en el idioma. Obviamente, rechazamos si algo sale mal.b a < b a a b b a b c a c baba<baabbabcacb

Actualizar:

El lenguaje no puede ser reconocido por los autómatas min-heap. Supongamos que tenemos un autómata min-heap que puede reconocer . Observamos el 'estado' en el que se encuentra el autómata después de leer (la primera parte de la entrada, por lo que es el siguiente). El único estado que tenemos son el contenido de la pila y el estado particular del autómata que se encuentra. Esto significa que después de reconocer , este necesidades estatales para contener suficiente información para que coincida con .E P A L w w R w w REPAL={wwR|w{a,b}}EPALwwRwwR

En particular, con el fin de hacer esto, tiene que haber posible diferente estado de (donde ), ya que hay palabras posibles que constan de y caracteres. Como solo hay un número finito de estados y solo un número finito de caracteres de montón, esto implica que existe alguna palabra para la cual el montón contiene un número exponencial de algún carácter de montón, digamos .2nn=|w|2nabwx

Primero demostramos el teorema de los autómatas deterministas de montón mínimo y luego ampliamos esta prueba a los autómatas no deterministas de montón mínimo. En particular, los autómatas deterministas que reconocen algún lenguaje no se colocarán en un bucle infinito, lo cual es una propiedad útil.

Demostraremos que el montón solo puede contener como máximo una cantidad de tokens de montón que es lineal en el número de caracteres leídos de la entrada. Esto descarta inmediatamente que aparezca un número exponencial de veces en el montón, lo que completa la prueba de que no puede ser reconocido por los autómatas min-montón.xEPAL

Debido a que solo tenemos un número finito de estados en nuestro autómata y porque un autómata determinista no se colocará en un bucle infinito, al leer una señal de entrada agregará como máximo un número constante de caracteres de montón en el montón. Del mismo modo, al consumir algún símbolo de montón , solo puede agregar como máximo un número constante de caracteres de montón que sean estrictamente más grandes que y solo puede disminuir el número de símbolos en la pila (de lo contrario, obtendremos un bucle infinito).yyy

Por lo tanto, consumir símbolos de montón puede causar una acumulación (enorme) de símbolos de montón más grandes, pero como solo hay un número constante de diferentes tipos de símbolos de montón, este es solo un número constante que no depende de . Esto implica que el número de símbolos de montón es como máximo algunas veces (grandes) constantes por el número de símbolos de entrada leídos hasta ahora. Esto completa la prueba para el caso determinista.n

En el caso no determinista, la prueba es similar, pero un poco más complicada: en lugar de agregar como máximo un número constante de tokens de montón al montón, agrega un número arbitrario de tokens de montón al montón. Sin embargo, el punto crucial es que este número no depende de . En particular, si podemos obtener de manera no determinista exactamente los símbolos de almacenamiento dinámico correctos en el almacenamiento dinámico después de reconocer (correcto para reconocer ), también podemos elegir de forma no determinista los símbolos de almacenamiento dinámico que coinciden con alguna otra palabra , y por lo tanto reconoce , lo que contradice que el autómata min-heap reconoce exactamente .nwwRwwwREPAL

Actualización 3: Haré el último argumento (sobre el no determinismo) riguroso. Según el argumento anterior, debe existir un conjunto infinito de palabrasmodo que para cada, después de reconocer, el montón contenga elementos( tenga en cuenta que podemos hablar deya que tenemos un conjunto infinito de palabras). Como no podemos obtener tantos elementos en el montón a través de medios deterministas, debemos haber tenido alguna forma de bucle en el que primero elegimos de manera no determinista agregar más elementos al montón (sin consumir información), y luego elegimos salir de este loop, y debemos haber atravesado este loopveces.W{a,b}wWwω(|w|)O(f(|w|))ω(1)

Tome el conjunto de todos estos bucles utilizados por . Como solo hay estados , el tamaño de este conjunto es , y el conjunto de todos sus subconjuntos también es . Ahora tenga en cuenta que la parte 'determinista' de las rutas de ejecución solo puede contribuir a de los tokens, lo que significa que gran parte del número exponencial de palabras diferentes debe tener rutas de ejecución cuyas partes 'deterministas' contribuyan igual fichas al montón. En particular, la única forma de obtener más tokens es tomar los bucles que identificamos anteriormente.WO(1)O(1)O(1)O(|w|)

Combinando estas observaciones, esto significa que debe haber dos palabras distintas en , y , cuya parte 'determinista' de las rutas de ejecución contribuyen con los mismos tokens al montón, y que se diferencian tomando algún subconjunto de los bucles anteriores un número diferente de veces, pero que usan el mismo subconjunto de bucles (recuerde que solo hay de estos bucles).Ww1w2O(1)

Ahora podemos mostrar que también puede ser reconocido por el autómata min-heap: seguimos la ruta de ejecución para como se anteriormente, pero recorremos los bucles la misma cantidad de veces que la ruta de ejecución para atraviesa. Esto llena el min-montón con tokens de modo que sea ​​aceptado como sufijo, completando así la prueba.w1w2w1w2w2

Actualización 2:

Se me ocurrió que lo anterior significa que podemos simular un autómata determinista de montón mínimo usando solo el espacio logarítmico: mantenemos un contador para cada tipo de personaje en el montón mínimo. Como se muestra arriba, este contador será como máximo y, por lo tanto, puede almacenarse utilizando solo el espacio (ya que solo hay un número constante de estos contadores). Esto nos da:O(n)O(logn)

DHALL

HALNL

donde es el conjunto de lenguajes reconocidos por algún autómata determinista de montón mínimo.DHAL

Alex ten Brink
fuente
1
+1 para una excelente comprensión, parece que has entendido mi significado por completo. ¿Estoy en lo cierto en mi evaluación de que tales máquinas no pueden reconocer palíndromos? Dado que el orden de los símbolos agregados no se conserva, no parece posible.
Patrick87
@ Patrick87: Estoy pensando en ese problema en este momento :)
Alex ten Brink
@Raphael Observación muy interesante sobre las máquinas de Turing con limitaciones de recursos logarítmicos, ustedes dos han hecho un trabajo fantástico al investigar estos autómatas. ¿Sabes? Acabo de tirar el autómata min-heap como un ejemplo de lo que me interesaba, pero parece que fue bien recibido. ¿Qué otras preguntas se pueden responder sobre tales autómatas? ¿DHAL = HAL? ¿Cuáles son las propiedades de cierre de HAL? ¿Vale la pena explorar más, y de ser así, deberían permanecer aquí o plantearse una nueva pregunta? Gracias de nuevo por las excelentes ideas.
Patrick87
1
@Raphael: He hecho esa parte completamente rigurosa. Tienes razón en que debe ser lo suficientemente grande: pasé por alto algunos detalles a izquierda y derecha. n
Alex ten Brink
1
@Raphael: De hecho, lo hace. , entonces por el teorema de la jerarquía espacial y algunas inclusiones. CSL=NLINSPACEDHALCSL
Alex ten Brink
19

Esto es lo que (creemos) saber:

  • HALCFL (tipo-1, tipo-2)
  • CFLHAL (tipo-1)
  • CFLHAL (tipo-2, por definición)
  • CSLHAL (tipo-1, tipo-2)

Vea los detalles y algunas otras notas a continuación.


HALCFL

Esta parte de la respuesta se relaciona tanto con el tipo 1 como con el tipo 2.

Un autómata de montón mínimo (HA) con alfabeto de montón finito y totalmente ordenado acepta .L={anbncnnN}CSLCFL

Suposiciones: Similar a PDA, nuestra función de transición consume el símbolo de montón más alto y escribe un número arbitrario de símbolos de montón. El montón inicialmente contiene un símbolo distinguido que es más grande que todos los demás símbolos de montón.$

Sea un autómata de montón mínimo conA=(Q,ΣI,ΣH,,q0,QF)

  • Q={q0,q1,q2,qf} el conjunto de estados
  • ΣI={a,b,c} el alfabeto de entrada.
  • ΣH=a,b,$ el alfabeto del montón con ordenar .a<b<$
  • QF={qf}
  •  (Q×ΣI×ΣH)×(Q×ΣH) con
    • (q0,a,σ)(q0,aσ) para todosσΣH
    • (q0,b,a)(q1,b)
    • (q1,b,a)(q1,b)
    • (q1,c,b)(q2,ε)
    • (q2,c,b)(q2,ε)
    • (q2,c,$)(qf,ε)

El autómata escribe una a la pila para cada en la entrada. Cuando ocurre una , consume tantas como haya habido , escribiendo una en el montón por cada encontrada . Esto no perturba el conteo porque el montón convenientemente mantiene en la parte superior. Sólo después de todo se han tomado de la pila son aceptado; solo después de que se encuentren tanto como (y con ello como ), acepta con el montón vacío y el estado final.aabbabbaaccbaA

Por lo tanto, .L(A)=L


CFLHAL

Esta parte de la respuesta se relaciona solo con el tipo 1.

Considere el conjunto de palíndromos pares y suponga que hay HA con .EPAL={wwRw{a,b}}AL(A)=L

Conjetura: encontramos con ytal que está en el mismo estado y tiene el mismo contenido de dinámico después de leer y , respectivamente. Como acepta tanto como , por lo tanto, también acepta (y ), lo que es una contradicción con .w1,w2{a,b}w1w2|w1|=|w2|Aw1w2Aw1w1Rw2w2Rw1w2REPALw2w1RL(A)=EPAL


CSLHAL

Esta parte de la respuesta se relaciona tanto con el tipo 1 como con el tipo 2.

El mismo razonamiento que usamos en (para tipo-1) puede usarse para mostrar que el lenguaje sensible al contexto no está en . { w w w { a , b } } H A LEPAL{www{a,b}}HAL


HAL?CSL

Esto todavía está abierto tanto para tipo 1 como para tipo 2.


Factoides adicionales

HA parece ser ortogonal a un subconjunto de los lenguajes ligeramente sensibles al contexto aceptados por Embedded Pushdown Automata : si bien HA puede simular un número limitado de pilas apiladas, no pueden simular arbitrariamente muchas (como puede hacer EPA). Sin embargo, HA puede acceder a los símbolos superiores de las pilas que actualmente no están en la parte superior (que la EPA no puede).

Rafael
fuente
+1, excelente respuesta. Esencialmente equivalente al método de Brink, ¿verdad? Aún así, el rigor y la precisión son excepcionales. ¿Ha pensado si tales máquinas pueden aceptar todas las CFL? Parece imposible, ya que la información del pedido se pierde por el montón ...
Patrick87
Es la misma idea que Alex tuvo, sí. Me alegro de que puedas obtener algo de eso. Agregué una idea para la otra dirección, pero hay una brecha (¿enorme?). Necesito pensarlo con la mente despejada mañana y tal vez criticar a algunos colegas.
Raphael
Siento que debería haber incluido una prueba de corrección para ganar créditos adicionales por rigor. ;) No debería ser demasiado difícil por inducción sobre , supongo. n
Raphael
El bosquejo de prueba que etiquetas como una conjetura es lo que tenía en mente, y me parece bastante convincente ... también, y este es un punto técnico menor, creo que estás usando el lenguaje de palíndromos de longitud uniforme, no todos palíndromos ... aunque la prueba ciertamente funciona de cualquier manera (tenga en cuenta que también funciona para palíndromos simples, por lo que HAL ni siquiera es tan fuerte como los DPDA, otro resultado).
Patrick87
@ Patrick87 El problema es que puede haber más configuraciones posibles en las que puede estar una HA determinada después de leer símbolos que palabras, en particular si permitimos las transiciones que colocan símbolos en el montón. εnε
Raphael