En la introducción y explicación, las clases de complejidad P y NP a menudo se dan a través de la máquina Turing. Uno de los modelos de computación es el cálculo lambda. Entiendo que todos los modelos de computación son equivalentes (y si podemos introducir algo en términos de máquina de Turing, podemos introducir esto en términos de cualquier modelo de computación), pero nunca vi la idea de explicación de las clases de complejidad P y NP a través del cálculo lambda . ¿Alguien puede explicar las nociones de clases de complejidad P y NP sin la máquina de Turing y solo con el cálculo lambda como modelo de cálculo?
36
Respuestas:
Las máquinas de Turing y el cálculo deλ son equivalentes solo con las funciones N→N que pueden definir.
Desde el punto de vista de la complejidad computacional, parecen comportarse de manera diferente. La razón principal por la que las personas usan máquinas de Turing y no el cálculo deλ para razonar sobre la complejidad es que usar el cálculo de λ ingenuamente conduce a medidas de complejidad poco realistas, porque puede copiar términos (de tamaño arbitrario) libremente en pasos de reducción de β únicos , por ejemplo (λx.xxx)M→MMM. En otras palabras, pasos de reducción individuales en λ -el cálculo es un modelo de pésimo costo. Por el contrario, los pasos de reducción de una sola máquina de Turing funcionan muy bien (en el sentido de ser buenos predictores del tiempo de ejecución del programa del mundo real).
No se sabe cómo recuperar completamente la teoría convencional de la complejidad basada en la máquina de Turing en el cálculoλ . En un reciente avance (2014), Accattoli y Dal Lago
lograron demostrar que a grandes clases de complejidad temporal como P , NP y EXP se les puede dar una formulación natural de cálculo λ . Pero clases más pequeñas como O(n2) u O(nlogn) no puede presentarse utilizando las técnicas Accattoli / Dal Lago.
Se desconoce cómo recuperar la complejidad espacial convencional utilizando el cálculoλ .
fuente
Pego parte de una respuesta que escribí para otra pregunta :
Existen caracterizaciones de (al menos) por medio de cálculo λ .FP λ
fuente
No sé si esto responde (parte de) su pregunta, pero de hecho hay caracterizaciones alternativas de las clases de complejidad (especialmenteP y NP ) en términos de lógica (lógica de primer orden, lógica de segundo orden, etc.).
Por ejemplo, el trabajo de R. Fagin (et al.) En esta área es notable (e imo podría proporcionar información relacionada con el temaP vs NP y las relaciones con la complejidad descriptiva y algorítmica )
Se pueden encontrar algunas caracterizaciones adicionales de las clases de complejidad computacional en términos de complejidad algorítmica (Kolmogorov-Solomonov) (por ejemplo) aquí y aquí .
fuente