NP-Vollständigkeit lehren - Turing-Reduktionen versus Karp-Reduktionen

25

Mich interessiert die Frage, wie man Informatik-Majors am besten die NP-Vollständigkeit beibringen kann. Sollten wir es insbesondere unter Verwendung von Karp-Reduktionen oder unter Verwendung von Turing-Reduktionen lehren?

Ich bin der Meinung, dass die Konzepte der NP-Vollständigkeit und -Reduzierung etwas sind, das jeder Major der Informatik lernen sollte. Beim Unterrichten der NP-Vollständigkeit habe ich jedoch festgestellt, dass die Verwendung von Karp-Reduktionen einige Nachteile hat.

Erstens scheinen Karp-Reduktionen für manche Schüler unnötig verwirrend zu sein. Der intuitive Begriff der Reduktion lautet: "Wenn ich einen Algorithmus zur Lösung von Problem X habe, kann ich ihn auch zur Lösung von Problem Y verwenden." Das ist sehr intuitiv - lässt sich aber viel besser auf Turing-Reduktionen als auf Karp-Reduktionen übertragen. Infolgedessen sehe ich, dass Schüler, die versuchen, NP-Vollständigkeit zu beweisen, durch ihre Intuition in die Irre geführt werden und einen falschen Beweis bilden. Der Versuch, beide Arten von Reduktionen zu lehren und diesen Aspekt von Karp-Reduktionen hervorzuheben, fühlt sich manchmal ein wenig nach unnötigem Formalismus an und beansprucht unnötige Unterrichtszeit und Aufmerksamkeit der Schüler für das, was sich als ein unwesentliches technisches Detail anfühlt. Es ist nicht selbstverständlich, warum wir diesen eingeschränkten Begriff der Reduktion verwenden.

Ich verstehe den Unterschied zwischen Karp-Reduktionen und Turing-Reduktionen (Cook-Reduktionen) und wie sie zu unterschiedlichen Vorstellungen von NP-Vollständigkeit führen. Mir ist klar, dass Karp-Reduktionen eine genauere Unterscheidung zwischen Komplexitätsklassen ermöglichen. Für ein ernstes Studium der Komplexitätstheorie sind Karp-Reduktionen offensichtlich das richtige Werkzeug. Aber für Informatikstudenten, die dies gerade erst lernen und sich nie mit Komplexitätstheorie befassen werden, bin ich mir nicht sicher, ob diese feinere Unterscheidung entscheidend ist, damit sie sich damit auseinandersetzen können.

Schließlich erinnere ich mich, dass ich mich als Student verwirrt fühlte, als ich auf ein Problem wie "Tautologie" stieß - z. Was verwirrend war, war, dass dieses Problem eindeutig schwierig ist: Jeder Polynom-Zeit-Algorithmus würde implizieren, dassP=NP; und die Lösung dieses Problems ist offensichtlich so schwierig wie die Lösung des Tautologieproblems. Obwohl die intuitive Tautologie ebenso schwierig wie die Erfüllbarkeit ist, ist die Tautologie nicht NP-hart. Ja, ich verstehe heute, warum dies der Fall ist, aber zu der Zeit erinnere ich mich, dass ich davon verwirrt war. (Was mir durch den Kopf ging, als ich endlich verstand, war: Warum unterscheiden wir überhaupt zwischen NP-hart und co-NP-hart? Das scheint künstlich und durch die Praxis nicht sehr motiviert zu sein. Warum konzentrieren wir uns eher auf NP als co-NP? Sie scheinen gleichermaßen natürlich zu sein. Aus praktischer Sicht scheint die co-NP-Härte im Wesentlichen die gleichen praktischen Konsequenzen zu haben wie die NP-Härte. Warum hängen wir also alle an dieser Unterscheidung? Ja, ich kenne die Antworten, aber als Student erinnere ich mich, dass sich das Thema dadurch arkaner und weniger motiviert anfühlte.)

Meine Frage lautet also: Wenn wir den Schülern NP-Vollständigkeit beibringen, ist es dann besser, mit Karp-Reduktionen oder Turing-Reduktionen zu unterrichten? Hat jemand versucht, das Konzept der NP-Vollständigkeit mithilfe von Turing-Reduzierungen zu vermitteln? Wenn ja, wie ist es gelaufen? Gibt es nicht offensichtliche Fallstricke oder Nachteile, wenn wir die Konzepte mit Turing-Reduktionen unterrichten und die mit Karp-Reduktionen verbundenen konzeptionellen Probleme überspringen würden?


Verwandte: siehe hier und hier , wo erwähnt wird, dass der Grund, warum wir Karp-Reduktionen in der Literatur verwenden, darin liegt, dass wir zwischen NP-Härte und Co-NP-Härte unterscheiden können. Es scheint jedoch keine Antwort zu geben, die sich auf die pädagogische Perspektive konzentriert, ob diese Fähigkeit für die Lernziele einer Algorithmusklasse, die von jedem Hauptfach belegt werden sollte, entscheidend ist. Siehe auch hier auf cstheory.SE , wo es eine ähnliche Diskussion gibt.

DW
quelle
Motivationsbeobachtung: Es ist nicht bekannt, dass die Reduzierung auf ein Problem in NP impliziert . XNP
1
@ RickyDemer, verstanden - aber wenn wir versuchen, ein Problem zu demonstrieren, ist es uns egal, ob in NP ist oder nicht, das motiviert mich nicht besonders effektiv. Und ein Problem zu zeigen ist schwer, ist die Hauptanwendung von NP, NP-Vollständigkeit, NP-Härte, etc.X
DW
1
Ich sehe keinen so großen Unterschied. Die Idee von Cook, "auf die Lösung anderer Probleme zurückzugreifen", ist für die Programmierung natürlich , aber für Leute mit etwas abstrakterem Hintergrund (etwas diskreterer Mathematik) ist die Zuordnung zwischen Probleminstanzen ebenfalls natürlich.
Vonbrand

Antworten:

10

Ich würde sagen, auf jeden Fall Karp-Reduktionen zu verwenden. Unabhängig von den Vorteilen der Verwendung von Poly-Time-Turing-Reduzierungen (Cook) sind Karp-Reduzierungen das Standardmodell.

Jeder verwendet Karp und die Hauptgefahr beim Unterrichten von Cook ist, dass Sie mit einer ganzen Klasse von Schülern enden, die krankhaft verwirrt werden, wenn sie ein Lehrbuch lesen oder versuchen, das Thema mit jemandem zu diskutieren, der nicht von Ihnen unterrichtet wurde.

Ich stimme zu, dass Cook-Reduktionen in mehrfacher Hinsicht sinnvoller sind und dass es praktisch keinen Unterschied zwischen NP-Härte und coNP-Härte gibt, in dem Sinne, dass beide bedeuten, dass "dieses Problem ziemlich schwer ist und Sie kein Problem bekommen werden allgemeiner, effizienter, exakter Algorithmus, der große Instanzen bewältigen kann. " Andererseits ist die Unterscheidung zwischen NP und coNP nicht nur ein Artefakt einer Theorie, die auf Karp-Reduktionen basiert: Man spricht nicht oft von Graphen, die nicht 3-färbbar sind oder in denen jeder Satz von  Vertices at enthält mindestens eine Kante. Irgendwie scheint die "natürliche" Version des Problems oft eher NP als coNP zu sein.k

David Richerby
quelle
7

Es ist besser, beides zu lehren ! Ein Informatik-Major sollte über beide Bescheid wissen.

Ich kenne niemanden, der Cook-Reduktionen verwendet, um NP-Vollständigkeit zu lehren, Komplexitätstheoretiker natürlich nicht, Nicht-Komplexitätstheoretiker folgen normalerweise der Standarddefinition seit Karps Artikel und werden in allen Lehrbüchern verwendet (von denen ich weiß). Es wird später viel Verwirrung stiften, wenn Sie die Standardterminologie nicht befolgen.

Kochreduzierungen lösen im Wesentlichen Probleme mit Black-Box-Subroutinen. Sie sind leicht zu erklären und zu motivieren, wenn Ihre Schüler Programmiererfahrung haben. Sie sind unerlässlich, da Sie ohne Cook-Reduzierungen keine Reduzierungen zwischen Suchproblemen, Optimierungsproblemen usw. diskutieren können.

NPNPPNPNP

NPcoNPNPNPNPPNP

xAf(x)B

Kaveh
quelle
2
NPNPNPNP
@DW hast du in deinem Kommentar "Cook" anstelle von (dem zweiten und dem dritten) "Karp" gemeint? Mit Cook können Sie immer noch beweisen, dass Probleme schwierig sind, das ist nicht das Problem. Das Problem ist, dass NP nicht unter ihnen geschlossen ist, dh Kochreduzierungen bewahren nicht effizient die Überprüfbarkeit von Problemen.
Kaveh
2
Ups, ja, ich meinte Cook, nicht Karp. (argh!) Ich verstehe, dass NP nicht unter Cook Reductions geschlossen ist, aber können Sie erläutern, warum das ein Problem ist, aus der Perspektive, wie wir Studenten Algorithmen beibringen? Welche pädagogischen oder konzeptionellen Probleme entstehen dadurch? Was wären die negativen Konsequenzen, wenn wir solche Algorithmen lehren und nur zugeben / akzeptieren würden, dass NP nicht unter Cook-Reduktionen geschlossen ist? Würde dies beispielsweise zu problematischen Missverständnissen bei den Studierenden führen?
DW
-3

Der intuitive Begriff der Reduktion lautet: "Wenn ich einen Algorithmus zur Lösung von Problem X habe, kann ich ihn auch zur Lösung von Problem Y verwenden."

Ein interessanter Weg, um sich dieser speziellen Lehrfrage zu nähern, besteht darin, zu erkennen, dass die NP-Vollständigkeit Ähnlichkeiten und Analogien mit der Unentscheidbarkeit aufweist, was ebenfalls nicht intuitiv ist. Die Schüler betreten die Klasse nur, wenn sie von Algorithmen gehört haben, die anhalten. Der Hauptsatz von TCS ist jedoch, dass es Probleme gibt, für die es keine garantierte Lösung gibt, dh das Stopp-Problem. und in der Tat können unentscheidbare Probleme anfangen, alles andere als erfunden zu sein, und sie scheinen etwas allgegenwärtig zu sein.

so, sagt die Theorie uns den Weg Berechnung grundsätzlich als Prozess zu sehen , die möglicherweise eine Antwort unter Umständen zurück. Unter anderen Umständen ist dies möglicherweise nicht der Fall. Für die NP-Vollständigkeit und -Entscheidbarkeit lautet die grundlegende und allgemeinste Frage: "Gibt es einen Algorithmus, der Yin P-Zeit zurückkehrt ?". Dies sagt jedoch nichts über einen Algorithmus aus, der Nin P-Zeit zurückkehrt. Ein Algorithmus kann Yin P-Zeit für eine Instanz zurückgeben, in anderen Instanzen jedoch keine Antwort. Die Theorie sagt uns, dass es hier wirklich einen deutlichen Unterschied gibt, auf den wir genau achten müssen. wenn es nicht intuitiv ist, bedeutet es, dass unsere fundamentalen Intuitionen angepasst werden müssen (wie es im theoretischen Unterricht oft der Fall ist).

vzn
quelle
mit anderen Worten, anscheinend kann es Algorithmen geben, die Yin P-Zeit zurückkehren, aber auch "länger" als P-Zeit brauchen, um zurückzukehren, Nund die Theorie basiert auf / orientiert / fokussiert auf die Zeit, die benötigt wird, um zu antworten Y.
VZN
1
Jeder Student, der mehr als fünf Programme geschrieben hat, ist mit dem Konzept eines "Algorithmus, der nicht anhält" aus direkter persönlicher Erfahrung vertraut.
David Richerby
Versuchen Sie einfach, coNP auf eine intuitivere Art und Weise zu definieren, die auf alltäglichen Erfahrungen / Analogien basiert. Ich fand es auch immer uninteressant. Hat jemand einen besseren Weg?
VZN