Ich möchte die Frage damit beginnen, dass ich ein Programmierer bin und nicht viel Hintergrundwissen in der Komplexitätstheorie habe.
Eine Sache, die mir aufgefallen ist, ist, dass, obwohl viele Probleme NP-vollständig sind, wenn sie auf Optimierungsprobleme ausgedehnt werden, einige weitaus schwieriger zu approximieren sind als andere.
Ein gutes Beispiel ist TSP. Obwohl alle Arten von TSP NP-vollständig sind, werden die entsprechenden Optimierungsprobleme durch sukzessive Vereinfachungen immer einfacher zu approximieren. Der allgemeine Fall ist NPO-vollständig, der metrische Fall ist APX-vollständig und der euklidische Fall hat tatsächlich ein PTAS.
Dies erscheint mir kontraintuitiv und ich frage mich, ob es dafür einen Grund gibt.
Antworten:
Ein Grund, warum wir unterschiedliche Approximationskomplexitäten für NP-vollständige Probleme sehen, ist, dass die notwendigen Bedingungen für NP-vollständige ein sehr grobkörniges Maß für die Komplexität eines Problems darstellen. Sie kennen möglicherweise die grundlegende Definition eines Problems , das NP-vollständig ist:Π
Bedenken Sie Bedingung 2: Alles, was erforderlich ist, ist, dass wir nehmen und es in ein y umwandeln können , das die "Einzelbit" -Ja / Nein-Antwort beibehält. Es gibt keine Bedingungen zum Beispiel bezüglich der relativen Größe der Zeugen zum Ja oder Nein (dh der Größe der Lösung im Optimierungskontext). Das einzige Maß, das verwendet wird, ist die Gesamtgröße der Eingabe, die nur eine sehr schwache Bedingung für die Größe der Lösung darstellt. Es ist also ziemlich "einfach", aus einem Ξ ein Π zu machen .x y Ξ Π
Wir können den Unterschied bei verschiedenen NP-vollständigen Problemen anhand der Komplexität einiger einfacher Algorithmen erkennen. -Färbung hat eine rohe Kraft O ( k n ) (wobei n die Eingangsgröße ist). Für k -Dominating Set nimmt ein Brute-Force-Ansatz O ( n k ) an . Dies sind im Wesentlichen die genauesten Algorithmen, die wir haben. k- Vertex Cover hat jedoch ein sehr einfaches O ( 2 k n c )k O(kn) n k O(nk) k O(2knc) Algorithmus (wählen Sie eine Kante aus, verzweigen Sie sich zu dem einzuschließenden Endpunkt, markieren Sie alle verdeckten Stellen , fahren Sie fort, bis Sie keine nicht markierten Kanten mehr haben oder Ihr Budget für und bactrack erreicht hat). Unter polynomiellen Vielfachreduktionen (Karp-Reduktionen, dh was wir unter der obigen Bedingung 2 tun) sind diese Probleme äquivalent.k
Wenn wir anfangen, uns der Komplexität mit noch etwas feineren Werkzeugen zu nähern (Approximationskomplexität, parametrisierte Komplexität, alle anderen, die mir nicht einfallen), werden die verwendeten Reduktionen strenger bzw. empfindlicher für die Struktur der Lösung die Unterschiede beginnen sich zu zeigen; -Vertex Cover (wie Yuval erwähnte) hat eine einfache 2-Approximation (hat aber kein FPTAS, es sei denn, einige Komplexitätsklassen kollabieren), k -Dominating Set hat einen ( 1 + log n ) -Näherungsalgorithmus (aber keinen ( c log n ) -Näherung für einige c > 0k k (1+logn) (clogn) c>0 ), und eine Annäherung ist für die einfache Version von Coloring überhaupt nicht sinnvoll.k
quelle
Diese Beispiele sind nicht vollständig erfunden. Die Probleme von MAX-INDEPENDENT-SET (äquivalent zu MAX-CLIQUE) und MIN-VERTEX-COVER hängen eng zusammen - die Ergänzung einer unabhängigen Menge ist eine Vertex-Abdeckung. Während die erstere schwer zu approximieren ist, hat die letztere eine einfache 2-Approximation.
Reduktionen, die die NP-Härte eines bestimmten Problems anzeigen, können manchmal verwendet werden, um auch die Näherungshärte anzuzeigen. Dies ist jedoch nicht immer der Fall, sondern hängt von der Reduktion ab. Beispielsweise impliziert die Reduzierung von MAX-INDEPENDENT-SET auf MIN-VERTEX-COVER keine Approximationshärte für das letztere Problem, die viel einfacher zu approximieren ist als das erstere.
Zusammenfassend ist die NP-Härte nur ein Aspekt eines Problems. Die Härte der Approximation ist ein anderer Aspekt und hängt stark vom Begriff der Approximation ab.
quelle
Bedenken Sie als intuitiven Ansatz, dass die Instanziierung von NP-vollständigen Problemen nicht immer so schwierig ist wie im allgemeinen Fall. Die binäre Erfüllbarkeit (Binary Satisifiability, SAT) ist NP-vollständig, aber es ist trivial, die Lösung für A v B v C v D v zu finden .
Der einfachste Weg, ein NP-vollständiges Problem auf etwas Einfacheres zu reduzieren, besteht darin, die harten Teile einfach auszuschließen. Es ist Betrug, ja. Die verbleibenden Teile sind jedoch häufig noch nützlich, um Probleme der realen Welt zu lösen. In einigen Fällen ist die Grenze zwischen "leicht" und "schwer" leicht zu ziehen. Wie Sie für TSP betont haben, verringert sich der Schwierigkeitsgrad erheblich, da Sie das Problem auf "normale" Richtungen beschränken, die Ihnen in den Sinn kommen. Bei anderen Problemen ist es schwieriger, im wirklichen Leben nützliche Wege zu finden, um die einfachen und harten Teile voneinander zu trennen.
Betrachten Sie ein altes Auto, um den Bereich von CS und Mathematik vollständig zu verlassen. Dein Freund will es fahren. Wenn Sie ihm sagen müssen: "Hey, das Auto funktioniert perfekt. Nehmen Sie es einfach nicht über 95 Meilen pro Stunde. Es gibt ein böses Wackeln, das Sie von der Straße hauen wird." Es ist wahrscheinlich keine große Sache. Ihr Freund wollte es wahrscheinlich sowieso nur in die Stadt bringen. Wenn Sie ihm jedoch sagen müssen: "Sie müssen die Kupplung gerade richtig drehen, um vom ersten auf den zweiten Gang zu kommen, sonst geht der Motor aus", könnte es für Ihren Freund schwieriger sein, das Auto in der Stadt ohne ein geringes Training zu benutzen.
Wenn ein NP-vollständiges Problem nur in Ausnahmefällen schwierig wird, verringert sich die Komplexität bei der Betrachtung von Unterdomänen ziemlich schnell. Wenn es jedoch in häufig vorkommenden Fällen schwierig wird, gibt es nicht so viele nützliche Unterdomänen, die den schwierigen Teil umgehen.
quelle