Relación de la complejidad del algoritmo y la clase de autómatas.

8

No he podido encontrar un gráfico que represente o un texto que responda a la siguiente pregunta: ¿Existe una relación directa entre la complejidad de un algoritmo (como el mejor / peor caso de clasificación rápida) y la clase de autómatas que pueden implementar el algoritmo. Por ejemplo, ¿hay un rango de complejidad que los autómatas de presión pueden expresar? Si la respuesta es sí a dicha pregunta, ¿hay algún recurso que describa la relación? ¡Gracias!

44701
fuente
1
"clase de autómatas que pueden implementar el algoritmo" - ¿de qué conjunto? Por lo general, no habrá un solo tipo. Además, google "zoo de complejidad".
Raphael

Respuestas:

7

¡Sí, hay relaciones en muchos casos!

Por ejemplo, se sabe que cualquier lenguaje que sea aceptado por las máquinas de contador delimitadas por inversión está en P(ver aquí )

Del mismo modo, sabemos que todos los idiomas regulares están en P, ya que existe un algoritmo de tiempo polinómico para determinar si un NFA acepta una palabra determinada.

Hay demasiados para enumerar aquí, pero en general, los modelos de cómputo más limitados se encuentran en clases de complejidad más fáciles.

jmite
fuente
1
Además, los lenguajes libres de contexto están en P ( algoritmo CYK )
vonbrand
9

Aquí hay algunos resultados conocidos:

  1. REG=DSPACE(1)=NSPACE(1)=DSPACE(o(loglogn))=NSPACE(o(loglogn)), dónde REGes el conjunto de idiomas regulares Para ver pruebas, consulte la página de Wikipedia enDSPACE.

  2. DCFLSC, dónde DCFL es el conjunto de lenguajes deterministas sin contexto, y SCes la clase de Steve . Vea la página de Wikipedia enDCFL.

  3. NLLOGCFLAC1, dónde LOGCFLes el conjunto de idiomas logspace-reducible a un lenguaje libre de contexto. Vea la página de Wikipedia enLOGCFL, que también proporciona algunos idiomas completos para LOGCFL bajo reducciones de espacio de registro.

  4. CSL=NSPACE(n), dónde CSLes el conjunto de lenguajes sensibles al contexto. Vea la página de Wikipedia enCSL.

  5. La clase de lenguajes aceptados por los PDA deterministas sin borrado es DSPACE(nlogn), y la clase de lenguajes aceptados por PDA no deterministas no borradores es NSPACE(n2). Vea la página de Wikipedia sobre PDA .

  6. Los autómatas de dos pilas son equivalentes en potencia a las máquinas de Turing, pero restringir los autómatas da como resultado modelos más débiles. Ver un informe técnico de San Pietro.

Yuval Filmus
fuente
3

¿Existe una relación directa entre la complejidad de un algoritmo (como el mejor / peor caso de clasificación rápida) y la clase de autómatas que pueden implementar el algoritmo.

La pregunta sobre qué clase de autómatas puede implementar un algoritmo dado , como la ordenación rápida, es difícil, porque no está claro qué contaría como una implementación de ese algoritmo. Para una ordenación rápida, las comparaciones realizadas ciertamente deberían ser las mismas, pero ¿el orden en que ocurren las comparaciones también debe ser el mismo? ¿Qué pasa con el orden de los accesos de lectura a elementos específicos de la entrada? ¿El orden de las operaciones de copiar, mover e intercambiar para elementos específicos?

Tendría que especificar una gran cantidad de oráculos para esas operaciones que le importan, pero ya se encuentra en una situación muy específica basada en el algoritmo, y bastante lejos de las clases generales de autómatas que comúnmente se estudian. La solución a este dilema es hablar sobre problemas en lugar de algoritmos, y formalizar problemas hablando sobre idiomas.

Por ejemplo, ¿hay un rango de complejidad que los autómatas de presión pueden expresar?

En realidad no, porque un autómata push down puede leer su entrada solo una vez y solo en dirección hacia adelante. Sin embargo, si divide la máquina en una parte que puede leer la entrada hacia adelante y hacia atrás como desee, y mantiene un número finito de punteros a posiciones de entrada específicas (NL), y una parte que es un autómata de empuje que recibe su entrada de la otra parte, entonces obtienes la clase de complejidad LOGCFL , que es igual a SAC 1 (una clase de circuito).

Si no se separan las dos partes y acaba de añadir una pila de NL, a continuación, se obtiene la clase autómatas AuxPDA , que es igual a la clase de complejidad P . Pero si decide limitar el tiempo de ejecución de esos autómatas (con pila y almacenamiento auxiliar logarítmico) al tiempo polinómico, entonces obtiene NAuxPDA P , que nuevamente es igual a LOGCFL. (Y si insiste en un tiempo de ejecución polinomial determinista, deseche la pila, pero permita el almacenamiento auxiliar pollogarítmico, entonces obtendrá SC ).

Por otro lado, si mantiene la restricción de que el autómata puede leer su entrada solo una vez y solo en dirección hacia adelante, y además requiere que pueda usar su pila solo de una manera muy determinista directamente basada en la entrada (es decir, el símbolo de entrada determina si ese autómata empuja algo en la pila, saca algo de la pila o lo deja intacto), luego termina con un autómata visiblemente pushdown, que reconoce exactamente los idiomas de palabras anidadas , que también se pueden reconocer en el espacio logarítmico determinista .

Thomas Klimpel
fuente