Explicación de las clases P y NP a través del cálculo lambda


36

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?


55
Su poder computacional es equivalente solo para funciones sobre números naturales, no para tipos más altos u otras configuraciones.
Kaveh

Turing completo es a veces un concepto más teórico para mostrar una conexión, pero más en su aplicación "conversiones" entre sistemas completos TM no están siempre en realidad llevado a cabo en la práctica, es decir, su a veces más sobre las pruebas de existencia ...
VZN

Respuestas:


40

Las máquinas de Turing y el cálculo de λ son equivalentes solo con las funciones NN 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)MMMM.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 λ .


44
Siento la necesidad de aclarar aquí: no hay una "técnica" especial que Accattoli y Dal Lago usen para "presentar" las clases de tiempo. La presentación es la "ingenua": defina como la clase de lenguajes decidible por un término λ en los pasos de reducción f ( n ) β , bajo cualquier estrategia de reducción estándar ( por ejemplo, el extremo izquierdo -más exterior). Accattoli y Dal Lago demostraron, usando técnicas que provienen de la lógica lineal, que hay un polinomio p tal que λ T I M E ( fλTIME(f(n))λf(n) βp .λTIME(f(n))=TIME(p(f(n))
Damiano Mazza

@DamianoMazza Sí, es cierto, lo que quise decir es que no creo que las técnicas utilizadas para mostrar este resultado puedan usarse, por ejemplo, para mostrar . λTIME(n2)=TIME(n2)
Martin Berger

3
OK veo. En realidad, supongo que : las clases de complejidad como T I M E ( n 2 ) o T I M E ( n log n ) no son robustas , uno no puede esperar que sean estables bajo los cambios en el modelo computacional (este es notoriamente el caso incluso si nos limitamos a las máquinas de Turing, por ejemplo , una sola cinta versus varias cintas).λTIME(n2)TIME(n2)TIME(n2)TIME(nlogn)
Damiano Mazza

3
@DamianoMazza Estoy de acuerdo, del mismo modo para el tamaño del alfabeto elegido. Pero un algoritmo que se ejecuta en en una máquina de n cintas puede simularse en 5 k f 2 ( n ) en una máquina de 1 cinta, una modesta explosión cuadrática. ¿Cuál es la explosión de la traducción actual de Accattoli y Dal Lago's? No recuerdo si lo declaran explícitamente. f(n)n5kf2(n)
Martin Berger

1
@Jake El artículo citado analiza la normalización beta (consulte la página dos). Ya se conocían resultados similares para otras formas de reducción, como la reducción débil (es decir, llamada por valor): ver Dal Lago y Martini, 2008 (discutido en ese documento y en cstheory.stackexchange.com/a/397/989 )
Blaisorblade

12

Pego parte de una respuesta que escribí para otra pregunta :

La complejidad computacional implícita tiene como objetivo caracterizar las clases de complejidad mediante lenguajes dedicados. Los primeros resultados, como el Teorema de Bellantoni-Cook, se expresaron en términos de funciones recursivas , pero los resultados más recientes utilizan el vocabulario y las técnicas de cálculo λ . Consulte esta breve introducción a la complejidad computacional implícita para obtener más información y sugerencias, o las actas de los talleres DICE .μλ

Existen caracterizaciones de (al menos) por medio de cálculo λ .FPλ


5

No sé si esto responde (parte de) su pregunta, pero de hecho hay caracterizaciones alternativas de las clases de complejidad (especialmente P 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 tema P 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í .

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.