Kann affine Lambda-Rechnung jedes Problem in P lösen?

10

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?

Jake
quelle
1
Entschuldigen Sie meine Unwissenheit, aber was ist ein Beispiel für ein vollständiges Problem, und was noch wichtiger ist, welchen Begriff der Reduktion verwenden Sie? P
Andrej Bauer
Ich habe einige auf Wikipedia gefunden: en.wikipedia.org/wiki/P-complete#P-complete_problems . Interessant ist das Schaltungswertproblem und Horn-SAT. Die lineare Programmierung ist anscheinend auch vollständig. Diese Folien beschreiben das Problem des Schaltungswerts vorab gut cs.cornell.edu/courses/CS6820/2012sp/Handouts/cvp.pdf . Es scheint , dass entweder L Reduzierungen oder N C verwendet werden, L Reduzierungen schwächer sind als N C Reduzierungen. Ich wäre mit beiden zufrieden; Ich bin mir nicht sicher, welche Konsequenzen die Verwendung von L gegen N C genau hat. PLNCLNCLNC
Jake
6
Es gibt lineare Sprachen, die für P vollständig sind. Interessanterweise sind sie im Allgemeinen für Probleme vollständig, jedoch nicht für Algorithmen. Das heißt, Sie können für jedes Problem in P ein Polyzeitprogramm schreiben, aber nicht jeder Polytime-Algorithmus ist ausdrückbar.
Neel Krishnaswami
Wäre diese Aussage ungefähr gleichbedeutend mit "sie sind im Allgemeinen für P vollständig, aber nicht für FP"? Auch wenn Sie einige Beispiele nennen könnten, wäre dies eine erstaunliche Antwort.
Jake
3
Neel Krishnaswami, können Sie eine Referenz liefern? Das klingt interessant.
Mateus de Oliveira Oliveira

Antworten:

12

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.PFP


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öhenPFP, 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.

λPλFPλ318 (1-2): 163-180, 2004). Typsysteme, die sich aus diesen beiden letztgenannten logischen Systemen ergeben und die Beendigung der Polytime sicherstellen (während sie immer noch vollständig sind), finden sich in:

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.

λΦP:stringbool

Φ(P)PP

LPPLΦ(P)

ΦLPPLΦ(P)PLΦ(P)PPΦLPΦ

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.

Damiano Mazza
quelle
1
Ich verstehe nicht, was Sie in der zweiten Hälfte sagen wollen. Basierend auf Ihrer Beschreibung gibt es eine syntaktische Transformation von polyzeitgesteuerten Turing-Maschinen zu F-Programmen, die das gleiche Problem lösen. Soweit ich sehen kann, ist dies das Beste, auf das man hoffen kann, wenn man von einem Rechenmodell in ein anderes übersetzt.
Emil Jeřábek
3
ΦNat:=X.(XX)XXλmNat.λnNat.ΛX.λsXX.mX(nXs)
3
for
Ich finde das ok Ich interessiere mich hauptsächlich für die Funktionssuche (das Finden von Funktionen, die eine bestimmte Eigenschaft maximieren), damit ich nicht der Programmierer sein muss, sondern der Computer. Heute Abend werde ich irgendwann diese Referenzen durchsehen müssen. Vielen Dank!
Jake