¿Formulación equivalente de la teoría de la complejidad en el cálculo de Lambda?


11

En la teoría de la complejidad, la definición de complejidad de tiempo y espacio hace referencia a una máquina universal de Turing: resp. la cantidad de pasos antes de detenerse y la cantidad de celdas en la cinta tocada.

Dada la tesis de Church-Turing, también debería ser posible definir la complejidad en términos de cálculo lambda.

Mi noción intuitiva es que la complejidad del tiempo se puede expresar como el número de reducciones β (podemos definir la conversión α usando los índices de De Brujin, y η apenas es una reducción de todos modos), mientras que la complejidad del espacio se puede definir como el número de símbolos (λ, índices DB, símbolos "aplicar") en la reducción más grande .

¿Es esto correcto? Si es así, ¿dónde puedo obtener una referencia? Si no, ¿cómo me equivoco?


Respuestas:


15

Como señala, el cálculo λ tiene una noción aparentemente simple de complejidad temporal: solo cuente el número de pasos de reducción β. Lamentablemente, las cosas no son simples. Deberíamos preguntar:

 Is counting β-reduction steps a good complexity measure?

M|M|Mpoly(|M|)tr(M)poly(|tr(M)|)

Durante mucho tiempo, no estaba claro si esto se puede lograr en el cálculo λ. Los principales problemas son los siguientes.

  • Hay términos que producen formas normales en un número polinómico de pasos que son de tamaño exponencial. Ver (1). Incluso escribir las formas normales lleva tiempo exponencial.

  • La estrategia de reducción elegida también juega un papel importante. Por ejemplo, existe una familia de términos que se reduce en un número polinómico de pasos β paralelos (en el sentido de reducción λ óptima (2), pero cuya complejidad es no elemental (3, 4).

El documento (1) aclara el problema al mostrar una codificación razonable que conserva la clase de complejidad PTIME suponiendo reducciones de llamada por nombre más a la izquierda. La idea clave parece ser que la explosión exponencial solo puede ocurrir por razones poco interesantes que pueden ser derrotadas compartiendo adecuadamente los sub-términos.

Tenga en cuenta que los trabajos como (1) muestran que las clases de complejidad gruesa como PTIME coinciden, ya sea que cuente los pasos β o los pasos de la máquina Turing. Eso no significa que las clases de menor complejidad como O (log n) también coincidan. Por supuesto, tales clases de complejidad tampoco son estables bajo la variación del modelo de máquina de Turing (por ejemplo, 1-cinta versus multi-cinta).

El trabajo de D. Mazza (5) prueba el teorema de Cook-Levin (𝖭𝖯-integridad de SAT) usando un lenguaje funcional (una variante del cálculo λ) en lugar de máquinas de Turing. La idea clave es esta:

BooleancircuitsTuring machines=affine λ-termsλ-terms

No sé si se entiende la situación con respecto a la complejidad del espacio.


  1. B. Accattoli, U. Dal Lago, la reducción beta es invariable, de hecho .

  2. J.-J. Levy, Reducciones correctes et optimales dans le lambda-calcul.

  3. JL Lawall, HG Mairson, Optimalidad e ineficiencia: ¿qué no es un modelo de costo del cálculo lambda ?

  4. A. Asperti, H. Mairson, la reducción beta paralela no es recursiva elemental .

  5. D. Mazza, Church Meets Cook and Levin .



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.