Sind alle bekannten Algorithmen zur Lösung von NP-vollständigen Problemen konstruktiv?

11

Gibt es bekannte Algorithmen, die ein NP-vollständiges Problem korrekt mit "Ja" ausgeben, ohne implizit ein Zertifikat zu generieren?

Ich verstehe, dass es einfach ist, ein Erfüllbarkeits-Orakel in einen Finder für zufriedenstellende Zuweisungen zu verwandeln: Iterieren Sie einfach die Variablen und fordern Sie das Erfüllbarkeits-Orakel jedes Mal auf, die Verbindung dieser Variablen mit dem ursprünglichen Problem zu lösen.

Aber wäre ein solcher Wrapper jemals nützlich? Durchsuchen alle Satellitenlöser den Raum möglicher Aufgaben?

Oder gibt es einige Arten von NP-vollständigen Problemen (reisender Verkäufer, Teilmengen usw.), bei denen der Löser beispielsweise einen mathematischen Satz verwenden kann, um zu beweisen, dass eine Lösung existieren muss? Wie einen Beweis durch Widerspruch zu machen?

user82928
quelle

Antworten:

11

So wie ich es verstehe, stellen Sie zwei Fragen: (1) Gibt es zB SAT-Algorithmen, die klüger als naive Brute Force sind, und (2) gibt es Algorithmen, die bei der Lösung eines NP-vollständigen Problems einfach eine JA / NEIN-Antwort geben ohne tatsächlich zu finden , die Lösung. Ich werde beide Fragen in dieser Reihenfolge beantworten.

(1) Es ist durchaus möglich, ein Problem ohne rohe Gewalt zu lösen, dh ohne alle Möglichkeiten naiv auszuprobieren. So nehmen Sie Ihr Beispiel moderne komplette SAT - Solver können gelten clevere Algorithmen , die angeben oder beweisen bestimmen (Teil-) Aufgaben können nicht zu einer Lösung führen, so dass sie nicht einmal , dass ein Teil untersuchen.

n!nnO(2nn2)

k

kGkGk

O(2k)k


kO(2k)

Juho
quelle
Perfekt. Das K-Path-Papier ist genau das, wonach ich gesucht habe. Vielen Dank!
user82928