(Wie) Können wir NP-Probleme in Abwesenheit des Turing-Berechnungsmodells entdecken / analysieren?

15

Wie kann man aus rein abstrakten mathematischen / rechnerischen Gesichtspunkten überhaupt Probleme wie 3 - SAT, Teilmenge Summe, Handlungsreisender usw. Entdecken oder über sie nachdenken? Wären wir überhaupt in der Lage, sie nur unter funktionalen Gesichtspunkten sinnvoll zu beurteilen? Wäre es überhaupt möglich?

Ich habe diese Frage nur von einem Punkt der Selbstuntersuchung aus betrachtet, als Teil des Lernens des Lambda-Kalkülmodells der Berechnung. Ich verstehe, dass es "nicht intuitiv" ist und deshalb hat Godel das Turing-Modell bevorzugt. Ich möchte jedoch nur wissen, wo die bekannten theoretischen Einschränkungen dieses funktionalen Rechenstils liegen und wie hinderlich es wäre, die NP-Klasse von Problemen zu analysieren.

PhD
quelle
Dies ist keine Frage auf Forschungsniveau für jemanden, der Programmiersprachtheorie professionell macht, aber ich denke immer noch nicht, dass die Frage alle Ablehnungen verdient. Könnten uns die Downvoter sagen, was sie stört? Vielleicht kann die Frage verbessert werden.
Andrej Bauer
2
@AndrejBauer: Ich habe abgelehnt, weil (1) ich denke, dass die (Polynom-) Äquivalenz zwischen Turing-Maschinen und der Lambda-Rechnung ziemlich bekannt ist, und (2) der Beitrag hat eine Menge Flusen, die das als Kernfrage maskieren. Ihre Antwort zeigt jedoch, dass mehr vor sich geht, als ich dachte, sodass ich meine Stimme umkehren kann.
Huck Bennett
Ich bin damit einverstanden, dass der Flaum Discovery Channel gehört.
Andrej Bauer
2
@AndrejBauer, HuckBennet: Ursprünglich habe ich mich entschieden, dies auf dem Informatikportal zu veröffentlichen, aber ich konnte die relevanten Tags nicht finden und habe sie daher hier veröffentlicht. Ich entfernte den Flaum, um direkt zu wissen, was ich wissen möchte. Ich habe meinen "Grund" für das Stellen der Frage verlassen und sie daher als weiche Frage markiert. Ich bin zu wissen , wirklich interessiert , wie man NP - Probleme analysieren könnte rein aus funktionaler Sicht , und wenn es in die Tat jeder Wert, das zu tun - mit der Hoffnung , dass ich etwas tiefer über Lambda - Kalkül verstehen
PhD
Ich denke, der Kern Ihrer Frage ist, ob Komplexität mit Lambda-Kalkül entwickelt werden kann. Die Antwort ist ja, und es gibt eine alte Frage, die das auf dem Aufstellungsort iirc fragt.
Kaveh

Antworten:

16

Möglicherweise möchten Sie sich die Kostensemantik für funktionale Sprachen ansehen . Dies sind verschiedene Rechenkomplexität Maßnahmen für funktionale Sprachen , die sie nicht durch jede Art von Turing - Maschine passieren, RAM - Maschine, usw. Ein guter Ort zu beginnen, ist diese Lambda the Ultimate Post , die einige gute mwN hat.

In Abschnitt 7.4 von Bob Harpers praktischen Grundlagen für Programmiersprachen wird die Kostensemantik erläutert.

Die Arbeit über die relative Nützlichkeit von Feuerbällen von Accattoli und Coen zeigt, dass Kalkül in Bezug auf das RAM-Maschinenmodell höchstens eine lineare Aufblähung aufweist.λ

Zusammenfassend wäre es auf diesem anderen Planeten in Bezug auf NP ziemlich ähnlich, aber es würde weniger Pufferüberläufe geben und es würde nicht so viel Müll herumliegen.

Andrej Bauer
quelle
Ich nehme an, dass die untypisierten Kalkül-Leute immer noch ein (reines) Schema erfinden würden. Naja. λ
Andrej Bauer
Das ist ein schöner Link auf der LtU-Post. Aber irgendwelche Links zu konkreten Beispielen für den Nachweis dieser Klasse von "NP" mit Problemen wie 3Sat? Kurioses zu einem "Beweis" in Lambda-Kalkül
PhD
λ
@ DamianoMazza - Ich stimme Andrej zu und glaube, Ihr Kommentar sollte eine Antwort sein
PhD
@Andrej: Fertig! Ich habe meine vorherigen Kommentare entfernt.
Damiano Mazza
14

Auf Bitte von Andrej und PhD verwandle ich meinen Kommentar in eine Antwort mit Entschuldigung für die Eigenwerbung.

NP

  • Boolean circuitsTuring machines=affine λ-termsλ-terms
    λ
  • λ
  • NP
  • Natürlich kann man dann HO CIRCUIT SAT auf CIRCUIT SAT reduzieren, was das übliche Cook-Levin-Theorem beweist, und die blutigen Details auf niedriger Ebene werden alle verschoben, um eine solche Reduzierung zu erstellen.

NP

λλ


NP

λ

λ

NPNPcoNPλ

λλ

NPλEs spielt keine Rolle, ob Sie wissen, dass Ihre Intuitionen gesund sind. Turing-Maschinen gaben eine sofortige und praktikable Antwort, und die Menschen hatten (und haben immer noch nicht) das Bedürfnis, noch weiter zu gehen.

Damiano Mazza
quelle
2
Nur eine Klarstellung, die viele vermissen: Steve hat die NP-Vollständigkeit für TAUT bewiesen, der Beweis für SAT ist dort implizit enthalten. Der Begriff der Karp-Reduktion gab es zu diesem Zeitpunkt noch nicht. Es ist auch wichtig anzumerken, dass TAUT der Grund war, warum Steve sich für das Thema interessierte und für die automatische Beweisführung von zentraler Bedeutung war. Wären die Leute genauso an der Lösbarkeit linearer Lambda-Terme interessiert? Die alternative Entwicklung ist möglich, aber würde es ohne die vorherige Kenntnis der NP-Vollständigkeit passieren? Ich halte das für unwahrscheinlich, wenn man bedenkt, dass die alternative Entwicklung eher neu ist. :)
Kaveh
1
Ich erinnere mich, dass ich irgendwo gelesen habe, dass ein Teil von Levins Motivation, NP-Vollständigkeit zu entwickeln, die Unfähigkeit war, das Graph-Isomorphismus- und das Minimum-Circuit-Size-Problem (MCSP) zu lösen, und die Hoffnung zu zeigen, dass sie NP-schwer waren (wie wir es jetzt nennen würden). Zumindest hätte GI noch in einer Welt der Lambdas existiert ...
Joshua Grochow
1
@Kaveh, danke für deinen Kommentar, ich habe einige Absätze hinzugefügt, um die Antwort zu vervollständigen.
Damiano Mazza
1
@ Josh, würde so TAUT und SAT.
Kaveh