In Lance Fortnows Buch The Golden Ticket erwähnt er, dass Sie einen Polynom-Zeit-Algorithmus für ein NP-vollständiges Problem verwenden können, um einen schnelleren Algorithmus zu finden. Können Sie mir sagen, wie das gemacht wird? Und wenn dies erledigt ist, können Sie den neuen Algorithmus verwenden, um eine noch schnellere ad infinitum bis zu einem festen Punkt zu entdecken . Unten ist das genaue Zitat aus dem Buch:
"Also, was fragst du einen Geist, der dir nur einen Wunsch erfüllt?" sagte der Berater.
"Ich habe keine Ahnung", antwortete Steve.
"Sie fragen nach einem Geist, der alle Ihre Wünsche erfüllt."
Die sprichwörtliche Glühbirne ging in Steves Kopf aus. Er wusste, dass es irgendwo einen besseren Algorithmus geben musste, um Cliquenprobleme zu lösen, aber er konnte es nicht alleine herausfinden. Aber er hatte den Geist, den Tsinghua-Code, der schnell nach einer exponentiellen Anzahl von Möglichkeiten suchen konnte. Also schrieb er ein Programm, das die Tsinghua-Routinen verwendete, um nach einem besseren Algorithmus für NP-Probleme zu suchen. Er erhielt die Erlaubnis, die Computerressourcen des Nationalen Zentrums für Supercomputing-Anwendungen (NCSA) an der Universität von Illinois zu nutzen. Nach wochenlanger Verarbeitungszeit zahlte sich seine Arbeit ein wenig aus und fand einen neuen Algorithmus, der eine 5-prozentige Verbesserung gegenüber dem Tsinghua-Code aufwies - gut genug für eine Forschungsarbeit, aber nicht genug, um eine echte Wirkung zu erzielen.
Sein Berater sagte einfach: "Versuchen Sie es erneut mit dem neuen Code."
Also benutzte Steve seinen neuen Code, um einen noch schnelleren Algorithmus für NP-Probleme zu finden. Einige Wochen später hatte er eine 20-prozentige Verbesserung.
Aber sein Berater war nicht beeindruckt. "Versuche es noch einmal."
Steve antwortete: "Warum richte ich den Computer nicht einfach so ein, dass er es automatisch mit dem neuen Code versucht, den er findet?"
Der Berater warf diesen Blick zu, der einem Schüler sagte, er habe Erleuchtung erlangt oder zumindest das Offensichtliche erkannt.
Steve kehrte in sein Büro zurück und begann mit dem kniffligen Prozess des Schreibens von Code, der nach schnellerem Code sucht. Anschließend verwendete er diesen schnelleren Code, um noch schnelleren Code zu finden und diesen Prozess fortzusetzen, bis keine weitere Verbesserung mehr festgestellt werden konnte.
Konzentrieren Sie sich jetzt auf SAT. MiniSAT ist ein schneller SAT-Löser, allerdings nicht bis zur Polynomzeit.
Wie kann man mit MiniSAT einen neuen SAT-Solver mechanisch entdecken?
quelle
Antworten:
Wahrscheinlich können Sie mit einem SAT-Solver keinen anderen SAT-Solver finden, es sei denn, etwas Überraschendes passiert.
Wenn P = NP, dann können Sie. Wenn P = NP, dann kollabiert die Polynomhierarchie (dh P = PH), so dass es für jedes Problem in PH einen Polynomzeitalgorithmus gibt . Das Problem der Frage, ob es einen schnelleren SAT-Lösungsalgorithmus gibt, ist im Wesentlichen aΣ2 Problem, das Teil der Polynomhierarchie ist; Wenn die Polynomhierarchie zusammenbricht, gibt es für jedes Problem in PH und damit für jedes Problem in einen Polynom-Zeit-AlgorithmusΣ2 . Somit können Sie in Polynomzeit nach einem besseren SAT-Löser suchen, wenn P = NP.
Die meisten Forscher gehen jedoch davon aus, dass P nicht gleich NP ist. Daher ist diese Aussage höchstwahrscheinlich umstritten und in der Praxis wahrscheinlich nicht hilfreich.
Wenn P nicht gleich NP ist, funktioniert diese Argumentation nicht. Tatsächlich erwarten das viele ForscherΣ2 ist noch schwieriger als NP (es gibt Probleme in Σ2 das ist schwieriger als jedes Problem in NP), daher wäre es überraschend, wenn es eine einfache Reduzierung gäbe, um das Problem "Finde mir einen schnelleren SAT-Löser" als Instanz von SAT auszudrücken. Insbesondere können SAT-Löser SAT oder jedes andere Problem in NP lösen - aber auf jeden Fall nur Probleme in NP. Wenn (wie wir vermuten)Σ2 ist schwieriger als NP, dann können SAT-Löser Probleme nicht lösen Σ2 .
Natürlich wissen wir es nicht wirklich. Es ist immer möglich, dass die konventionelle Weisheit falsch ist und dass wir morgen feststellen, dass P tatsächlich gleich NP ist. Das wäre eine große Überraschung, aber wir können es nicht vollständig ausschließen.
Das Goldene Ticket versucht ein tieferes Verständnis dafür zu vermitteln, warum Komplexitätstheoretiker das P vs NP-Problem für so wichtig und grundlegend halten. Ein Teil davon besteht darin, kontrafaktische Welten und kontrafaktische Annahmen zu untersuchen, von denen wir vermuten, dass sie wahrscheinlich falsch sind, um zu sehen, welche Konsequenzen sie haben würden.
Oder um es anders zu erklären:
Das Problem ist, dass das Finden eines besseren SAT-Lösers a ist∃∀ Art der Aussage. Die Aussage hat die Form∃A∀x.P(A,x) , wo P(A,x) ist die Aussage, dass A ist schnell und löst die SAT-Instanz korrekt x . Solche Aussagen können mit einem SAT-Solver nicht gelöst werden. SAT-Löser können Probleme der Form lösen∃x.Q(x) . Jedoch,∃∀ Aussagen sind schwieriger als ∃ Aussagen. Dies ist im Grunde der Unterschied zwischenΣ2 und NP.
quelle