In den erweiterten Themen in Typen und Programmiersprachen wird im Kapitel über substrukturelle Typsysteme erwähnt, dass ein "sorgfältig ausgearbeiteter" affiner Lambda-Kalkül mit einem Rekursionskombinator für Listen nur Begriffe eingeben kann, die eine polynomielle Laufzeit haben (dies ist nicht der Fall) den Beweis aufgrund der Komplexität vorlegen). Das wäre super interessant, wenn wir auch jedes Problem in P lösen könnten. Ich könnte versuchen, eine Lösung für ein P-vollständiges Problem mit dem von mir vorgestellten Kalkül zu finden. Ich bin mir nicht sicher, ob dies tatsächlich etwas beweisen würde. Es scheint mir nicht, dass es alle Reduzierungen durchführen kann, die notwendig sind, um eine Lösung für ein P-vollständiges Problem zu verwenden (obwohl es sicher wahrscheinlich erscheint).
Wenn nicht bekannt ist, dass ein affiner Lambda-Kalkül genau die Probleme in P lösen kann, gibt es einen bekannten Kalkül, der genau die Probleme in P lösen kann?
Antworten:
Edit: meine Vermutung im ersten Absatz unten ist falsch! Ugo Dal Lago wies mich auf eine spätere Veröffentlichung von Martin Hofmann (erschienen in POPL 2002) hin, von der ich nichts wusste, und zeigte (als Folge allgemeinerer Ergebnisse), dass das System aus dem ATTPL-Buch für tatsächlich vollständig ist ( obwohl nicht jede Funktion in F P ) berechnet werden kann . Zu meiner Überraschung lautet die Antwort auf die Hauptfrage ja.P FP
In Bezug auf das System, auf das Sie sich beziehen (aus dem ATTPL-Buch), bin ich mir ziemlich sicher, dass es nicht jede Sprache in entscheiden kann . Es kann sicherlich nicht jede Funktion in F P berechnen : Wie in den Anmerkungen dieses Kapitels erwähnt, stammt dieses System aus Martin Hofmanns LICS 1999-Artikel ("Lineare Typen und nicht größenerhöhende Polynomzeitberechnung"), in dem es gezeigt wird dass die darstellbaren Funktionen Polytime sind und nicht die Größe erhöhenP FP , was viele Polytime-Funktionen ausschließt. Es scheint auch eine ernsthafte Einschränkung der Größe des Bandes der Turing-Maschinen zu geben, die Sie in dieser Sprache simulieren können. In der Arbeit zeigt Hofmann, dass Sie die lineare Raumberechnung codieren können. Ich vermute, dass Sie nicht viel mehr tun können, dh die Klasse, die diesem System entspricht, ist ungefähr das Problem, das gleichzeitig in der Polytime und im linearen Raum lösbar ist.
Patrick Baillot, Kazushige Terui. Lichttypen für die Polynomzeitberechnung in der Lambda-Rechnung. Information and Computation 207 (1): 41-62, 2009.
Marco Gaboardi, Simona Ronchi Della Rocca. Von der Lichtlogik bis zur Typzuweisung: eine Fallstudie. Logic Journal der IGPL 17 (5): 499-530, 2009.
In diesen beiden Artikeln finden Sie viele weitere Referenzen.
Es gibt absichtlich vollständige Typsysteme, die in der Lage sind, genau die Polytime-Programme der breiteren Sprache (System F in meinem obigen Beispiel) zu tippen. Natürlich sind sie im Allgemeinen unentscheidbar. Sehen
Ugo Dal Lago, Marco Gaboardi. Linear abhängige Typen und relative Vollständigkeit. Logische Methoden in der Informatik 8 (4), 2011.
quelle