In der Einführung und Erläuterung werden P- und NP-Komplexitätsklassen häufig durch Turing-Maschinen gegeben. Eines der Rechenmodelle ist die Lambda-Rechnung. Ich verstehe, dass alle Rechenmodelle gleichwertig sind (und wenn wir irgendetwas in Form von Turing-Maschine einführen können, können wir dies in Form eines Rechenmodells einführen), aber ich habe nie eine Erklärung für die Komplexitätsklassen P und NP durch Lambda-Berechnung gesehen . Kann jemand die Begriffe P und NP der Komplexitätsklassen ohne Turingmaschine und nur mit Lambda als Rechenmodell erklären?
36
Antworten:
Turing-Maschinen undλ Kalkül sind nur für die Funktionen N→N äquivalent, die sie definieren können.
Vom Standpunkt der rechnerischen Komplexität aus scheinen sie sich unterschiedlich zu verhalten. Der Hauptgrund, warum Leute Turing-Maschinen und nichtλ Kalkül verwenden, um über Komplexität nachzudenken, ist, dass die Verwendung von λ Kalkül naiv zu unrealistischen Komplexitätsmaßen führt, weil Sie Terme (beliebiger Größe) frei in einzelnen β Reduktionsschritten kopieren können, z. B. (λx.xxx)M→MMM. Mit anderen Worten, einzelne Reduktionsschritte in λ -Kalkül sind ein mieses Kostenmodell. Im Gegensatz dazu funktionieren einzelne Turing-Maschinen-Reduktionsschritte hervorragend (im Sinne einer guten Vorhersage der tatsächlichen Programmlaufzeit).
Es ist nicht bekannt, wie vollständig die konventionelle Komplexitätstheorie auf Turing-Maschinen-Basis inλ Kalkül wiederhergestellt werden kann. In einem kürzlichen Durchbruch (2014) haben Accattoli und Dal Lago
gezeigt, dass große Klassen von Zeitkomplexität wie P , NP und EXP eine natürliche λ Kalkulus-Formulierung erhalten können. Aber kleinere Klassen wie O(n2) oder O(nlogn) kann nicht mit der Accattoli / Dal Lago-Technik präsentiert werden.
Wie konventionelle Raumkomplexität mitλ Kalkül wiederhergestellt werden kann, ist unbekannt.
quelle
Ich füge einen Teil einer Antwort ein, die ich für eine andere Frage geschrieben habe :
There exist characterizations of (at least)FP by means of λ -calculus.
quelle
Ich weiß nicht, ob dies einen Teil Ihrer Frage beantwortet, aber es gibt in der Tat alternative Charakterisierungen der Komplexitätsklassen (insb.P und N P ) in logischer Hinsicht (Logik 1. Ordnung, Logik 2. Ordnung usw ..).
Zum Beispiel ist die Arbeit von R. Fagin (et al.) In diesem Bereich bemerkenswert (und imo könnte Einsicht in Bezug auf dieP vs N P Problem und Beziehungen mit beschreibender und algorithmischer Komplexität)
Einige weitere Charakterisierungen von rechnerischen Komplexitätsklassen in Bezug auf algorithmische (Kolmogorov-Solomonov) Komplexität sind hier und hier zu finden .
quelle