Was sind die Unterschiede zwischen NP, NP-Complete und NP-Hard?


1107

Was sind die Unterschiede zwischen NP , NP-Complete und NP-Hard ?

Mir sind viele Ressourcen im gesamten Web bekannt. Ich würde gerne Ihre Erklärungen lesen, und der Grund dafür ist, dass sie sich möglicherweise von dem unterscheiden, was da draußen ist, oder dass mir etwas nicht bewusst ist.

Antworten:


1438

Ich gehe davon aus, dass Sie nach intuitiven Definitionen suchen, da das Verständnis der technischen Definitionen einige Zeit in Anspruch nimmt. Erinnern wir uns zunächst an ein vorläufiges Konzept, das zum Verständnis dieser Definitionen erforderlich ist.

  • Entscheidungsproblem : Ein Problem mit einer Ja- oder Nein- Antwort.

Definieren wir nun diese Komplexitätsklassen .

P.

P ist eine Komplexitätsklasse, die die Menge aller Entscheidungsprobleme darstellt, die in Polynomzeit gelöst werden können .

Das heißt, bei einer Instanz des Problems kann die Antwort Ja oder Nein in Polynomzeit entschieden werden.

Beispiel

Können bei einem verbundenen Diagramm Gseine Scheitelpunkte mit zwei Farben gefärbt werden, sodass keine Kante monochromatisch ist?

Algorithmus: Beginnen Sie mit einem beliebigen Scheitelpunkt, färben Sie ihn rot und alle seine Nachbarn blau und fahren Sie fort. Halten Sie an, wenn Ihnen die Scheitelpunkte ausgehen oder Sie gezwungen sind, eine Kante zu erstellen, bei der beide Endpunkte dieselbe Farbe haben.


NP

NP ist eine Komplexitätsklasse, die die Menge aller Entscheidungsprobleme darstellt, für die die Fälle, in denen die Antwort "Ja" lautet, Beweise haben, die in Polynomzeit verifiziert werden können.

Dies bedeutet, dass wenn jemand uns eine Instanz des Problems und ein Zertifikat (manchmal als Zeuge bezeichnet) mit der Antwort Ja gibt, wir überprüfen können, ob es in der Polynomzeit korrekt ist.

Beispiel

Die ganzzahlige Faktorisierung erfolgt in NP. Dies ist das Problem, das bei ganzen Zahlen gegeben ist, nund mgibt es eine ganze Zahl fmit 1 < f < m, so dass sich fteilt n( fist ein kleiner Faktor von n)?

Dies ist ein Entscheidungsproblem, da die Antworten Ja oder Nein sind. Wenn uns jemand eine Instanz des Problems übergibt (also gibt er uns ganze Zahlen nund m) und eine ganze Zahl fmit 1 < f < mund behauptet, dass dies fein Faktor von n(dem Zertifikat) ist, können wir die Antwort in Polynomzeit überprüfen, indem wir die Division durchführen n / f.


NP-komplett

NP-Complete ist eine Komplexitätsklasse, die die Menge aller Probleme Xin NP darstellt, für die es möglich ist, jedes andere NP-Problem Yauf die XPolynomzeit zu reduzieren .

Intuitiv bedeutet dies, dass wir Yschnell lösen können, wenn wir wissen, wie man Xschnell löst . Genau genommen Yist es reduzierbar auf X, wenn es einen Polynomzeitalgorithmus gibt, fum Instanzen yvon Yin Instanzen x = f(y)von Xin Polynomzeit umzuwandeln , mit der Eigenschaft, dass die Antwort auf yJa ist, genau dann, wenn die Antwort auf f(y)Ja ist.

Beispiel

3-SAT. Dies ist das Problem, bei dem wir eine Konjunktion (ANDs) von 3-Klausel-Disjunktionen (ORs) erhalten, Anweisungen der Form

(x_v11 OR x_v21 OR x_v31) AND 
(x_v12 OR x_v22 OR x_v32) AND 
...                       AND 
(x_v1n OR x_v2n OR x_v3n)

Dabei ist jede x_vijeine boolesche Variable oder die Negation einer Variablen aus einer endlichen vordefinierten Liste (x_1, x_2, ... x_n).

Es kann gezeigt werden, dass jedes NP-Problem auf 3-SAT reduziert werden kann . Der Beweis dafür ist technisch und erfordert die Verwendung der technischen Definition von NP ( basierend auf nicht deterministischen Turing-Maschinen ). Dies ist als Cooks Theorem bekannt .

Was NP-vollständige Probleme wichtig macht, ist, dass, wenn ein deterministischer Polynomzeitalgorithmus gefunden werden kann, um eines von ihnen zu lösen, jedes NP-Problem in Polynomzeit lösbar ist (ein Problem, um sie alle zu regieren).


NP-hart

Intuitiv sind dies die Probleme, die mindestens so schwer sind wie die NP-vollständigen Probleme . Beachten Sie, dass NP-harte Probleme nicht in NP sein müssen und keine Entscheidungsprobleme sein müssen .

Die genaue Definition hier ist, dass ein Problem XNP-schwer ist, wenn es ein NP-vollständiges Problem gibt Y, das Yauf die XPolynomzeit reduziert werden kann .

Da jedoch jedes NP-vollständige Problem in der Polynomzeit auf jedes andere NP-vollständige Problem reduziert werden kann, können alle NP-vollständigen Probleme in der Polynomzeit auf jedes NP-harte Problem reduziert werden. Wenn es dann eine Lösung für ein NP-hartes Problem in der Polynomzeit gibt, gibt es eine Lösung für alle NP-Probleme in der Polynomzeit.

Beispiel

Das Stoppproblem ist ein NP-hartes Problem. Dies ist das Problem, das bei einem Programm Pund einer Eingabe zum IStillstand kommt. Dies ist ein Entscheidungsproblem, aber es ist nicht in NP. Es ist klar, dass jedes NP-vollständige Problem auf dieses reduziert werden kann. Als weiteres Beispiel ist jedes NP-vollständige Problem NP-schwer.

Mein Lieblingsproblem bei der vollständigen NP ist das Minesweeper-Problem .


P = NP

Dies ist das bekannteste Problem in der Informatik und eine der wichtigsten offenen Fragen in den mathematischen Wissenschaften. Tatsächlich bietet das Clay Institute eine Million Dollar für eine Lösung des Problems an (Stephen Cooks Bericht auf der Clay-Website ist ziemlich gut).

Es ist klar, dass P eine Teilmenge von NP ist. Die offene Frage ist, ob NP-Probleme deterministische Polynomzeitlösungen haben oder nicht. Es wird weitgehend angenommen, dass dies nicht der Fall ist. Hier ist ein herausragender kürzlich veröffentlichter Artikel über das Neueste (und die Bedeutung) des P = NP-Problems: Der Status des P versus NP-Problems .

Das beste Buch zu diesem Thema ist Computer und Intraktabilität von Garey und Johnson.


32
@ Paul Fisher: Ich werde zeigen, dass SAT auf das Stoppproblem in der Polynomzeit reduziert werden kann. Betrachten Sie den folgenden Algorithmus: Geben Sie als Eingabe einen Satz Iüber nVariablen ein, versuchen Sie alle 2^nmöglichen Zuordnungen zu den Variablen und halten Sie an, wenn einer den Satz erfüllt, und geben Sie andernfalls eine Endlosschleife ein. Wir sehen, dass dieser Algorithmus genau dann anhält, wenn er Ierfüllt werden kann. Wenn wir also einen Polynomzeitalgorithmus zur Lösung des Halteproblems hätten, könnten wir SAT in Polynomzeit lösen. Daher ist das Stoppproblem NP-schwer.
Jason

6
@Jason - Auf diese Weise können Sie ein entscheidbares Problem nicht auf ein unentscheidbares Problem reduzieren. Entscheidbare Probleme müssen zu einer endgültigen Ja- oder Nein-Antwort führen, um als entscheidbar angesehen zu werden. Das Halteproblem hat keine definitive Ja- oder Jetzt-Antwort, da eine willkürliche Antwort jede Lösung in eine Schleife werfen könnte.
rjzii

11
@ Rob: Ja, ich kann. Die Definition von reduzierbar erfordert nicht, dass das reduzierte Problem lösbar ist. Dies gilt entweder für Mehrfachreduzierungen oder für Turingreduzierungen.
Jason

5
@Rob: Na gut, wenn du das fortsetzen willst. Erstens ist "Entscheidbar" nicht synonym mit "Entscheidungsproblem", wie Sie es verwendet haben. "Entscheidbar" bedeutet ungefähr, dass es eine "effektive Methode" zur Bestimmung der Antwort gibt. "Effektive Methode" hat natürlich eine technische Definition. Darüber hinaus kann "entscheidbar" auch als "berechenbare Funktionen" definiert werden. Das Problem beim Anhalten ist also ein Entscheidungsproblem ("Stoppt dieses Programm?" Ist eine Ja / Nein-Frage), aber es ist unentscheidbar. Es gibt keine effektive Methode, um festzustellen, ob eine Instanz des Stoppproblems angehalten wird oder nicht.
Jason

21
Die Verwendung des Halting-Problems als "klassisches Beispiel" für ein NP-hartes Problem ist falsch. Das ist wie zu sagen: "Der Pazifik ist ein klassisches Beispiel für ein Salzwasseraquarium."
Michael

261

Ich habe mich umgesehen und viele lange Erklärungen gesehen. Hier ist ein kleines Diagramm, das nützlich sein kann, um es zusammenzufassen:

Beachten Sie, wie sich der Schwierigkeitsgrad von oben nach unten erhöht: Jeder NP kann in P-Zeit (Polynom) auf NP-Complete und jeder NP-Complete auf NP-Hard reduziert werden.

Wenn Sie eine schwierigere Problemklasse in P-Zeit lösen können, bedeutet dies, dass Sie herausgefunden haben, wie Sie alle einfacheren Probleme in P-Zeit lösen können (z. B. P = NP beweisen, wenn Sie herausfinden, wie Sie ein NP-Complete-Problem in lösen können P Zeit).

____________________________________________________________
| Problemtyp | Überprüfbar in P-Zeit | Lösbar in P-Zeit | Zunehmende Schwierigkeit
___________________________________________________________ | |
| P | Ja | Ja | |
| NP | Ja | Ja oder Nein * | |
| NP-Complete | Ja | Unbekannt | |
| NP-Hard | Ja oder Nein ** | Unbekannt *** | |
____________________________________________________________ V.

Anmerkungen Yesoder NoEinträge:

  • * Ein NP-Problem, das auch P ist, ist in P-Zeit lösbar.
  • ** Ein NP-Hard-Problem, das auch NP-Complete ist, kann in P-Zeit überprüft werden.
  • *** NP-vollständige Probleme (die alle eine Teilmenge von NP-hart bilden) können auftreten. Der Rest von NP ist schwer.

Ich fand dieses Diagramm auch sehr nützlich, um zu sehen, wie all diese Typen einander entsprechen (achten Sie mehr auf die linke Hälfte des Diagramms).


Ich habe Zweifel an Ihrer Antwort. Ich habe es in einer separaten Frage gestellt, aber ich wurde gebeten, es hier zu posten. Können Sie mir bitte hier helfen? stackoverflow.com/questions/21005651/…
Srikanth

Es ist nicht bekannt, ob NP-vollständige Probleme in Polynomzeit lösbar sind. NP-vollständige Probleme sind auch NP-hart, so dass einige NP-harte Probleme in der Polynomzeit überprüfbar und möglicherweise auch in der Polynomzeit lösbar sind.
Falk Hüffner

Diese Tabelle ist falsch und widersprüchlich. Selbst wenn Sie annehmen, dass NP! = P, was noch nicht bewiesen wurde, wäre es immer noch falsch. Zum Beispiel enthält die NP-Hard-Klasse NP-Complete-Probleme; Daher behauptet Ihre Tabelle, dass NP-Complete-Probleme gleichzeitig in der Polynomzeit und nicht in der Polynomzeit überprüfbar sind.
Michael

3
@ FalkHüffner Danke, Tabelle ist aktualisiert (Fehler beim Übersetzen aus dem Venn-Diagramm).
Johnson Wong

1
@PeterRaeves Alle NP-vollständigen Probleme sind per Definition NP-hart: NP-vollständig = (NP und NP-hart). Das Umgekehrte ist nicht wahr: Es gibt Probleme (wie das Halteproblem) in NP-hard, die nicht in NP-vollständig sind. "NP (in Polynomzeit nicht lösbar)" - das bedeutet NP nicht. NP ist "nicht deterministisch-polynomisch". Alle Probleme in P sind auch in NP. Ob das Gegenteil der Fall ist, ist bekanntlich unbekannt.
Jim Balter

73

Dies ist eine sehr informelle Antwort auf die gestellte Frage.

Kann 3233 als Produkt von zwei anderen Zahlen geschrieben werden, die größer als 1 sind? Gibt es eine Möglichkeit, einen Weg um alle sieben Brücken von Königsberg herum zu gehen, ohne zweimal eine Brücke zu nehmen? Dies sind Beispiele für Fragen, die ein gemeinsames Merkmal haben. Es ist vielleicht nicht offensichtlich, wie die Antwort effizient ermittelt werden kann, aber wenn die Antwort "Ja" lautet, gibt es einen kurzen und schnell zu überprüfenden Beweis. Im ersten Fall eine nicht triviale Faktorisierung von 51; im zweiten eine Route zum Gehen über die Brücken (passend zu den Einschränkungen).

Ein Entscheidungsproblem ist eine Sammlung von Fragen mit Ja- oder Nein-Antworten, die nur in einem Parameter variieren. Sagen Sie das Problem COMPOSITE = {"Ist nzusammengesetzt": nist eine ganze Zahl} oder EULERPATH = {"Hat der Graph Geinen Euler-Pfad?": Ist Gein endlicher Graph}.

Nun eignen sich einige Entscheidungsprobleme für effiziente, wenn nicht offensichtliche Algorithmen. Euler entdeckte vor über 250 Jahren einen effizienten Algorithmus für Probleme wie die "Sieben Brücken von Königsberg".

Auf der anderen Seite ist es bei vielen Entscheidungsproblemen nicht offensichtlich, wie Sie die Antwort erhalten. Wenn Sie jedoch zusätzliche Informationen kennen, ist es offensichtlich, wie Sie beweisen müssen, dass Sie die richtige Antwort haben. COMPOSITE ist wie folgt: Die Teilung von Versuchen ist der offensichtliche Algorithmus und langsam: Um eine 10-stellige Zahl zu faktorisieren, müssen Sie etwa 100.000 mögliche Teiler ausprobieren. Aber wenn Ihnen zum Beispiel jemand gesagt hat, dass 61 ein Teiler von 3233 ist, ist eine einfache lange Teilung ein effizienter Weg, um zu sehen, ob sie korrekt sind.

Die Komplexitätsklasse NP ist die Klasse von Entscheidungsproblemen, bei denen die Ja-Antworten kurz und schnell zu prüfen sind. Wie COMPOSITE. Ein wichtiger Punkt ist, dass diese Definition nichts darüber aussagt, wie schwer das Problem ist. Wenn Sie eine korrekte und effiziente Methode zur Lösung eines Entscheidungsproblems haben, ist es Beweis genug, nur die Schritte in der Lösung aufzuschreiben.

Die Forschung an Algorithmen wird fortgesetzt, und es werden ständig neue clevere Algorithmen erstellt. Ein Problem, das Sie heute möglicherweise nicht effizient lösen können, kann sich morgen als effiziente (wenn auch nicht offensichtliche) Lösung herausstellen. Tatsächlich brauchten Forscher bis 2002 , um eine effiziente Lösung für COMPOSITE zu finden! Bei all diesen Fortschritten muss man sich wirklich fragen: Ist es nur eine Illusion, kurze Beweise zu haben? Vielleicht hat jedes Entscheidungsproblem, das sich für effiziente Beweise eignet, eine effiziente Lösung? Niemand weiß es .

Der vielleicht größte Beitrag auf diesem Gebiet war die Entdeckung einer besonderen Klasse von NP-Problemen. Durch Herumspielen mit Schaltungsmodellen zur Berechnung fand Stephen Cook ein Entscheidungsproblem der NP-Sorte, das nachweislich genauso schwer oder schwerer war als jedes andere NP-Problem. Eine effiziente Lösung für das Problem der booleschen Erfüllbarkeit könnte verwendet werden, um eine effiziente Lösung für jedes andere Problem in NP zu erstellen . Bald darauf zeigte Richard Karp, dass eine Reihe anderer Entscheidungsprobleme dem gleichen Zweck dienen könnten. Diese Probleme, in gewissem Sinne die "schwierigsten" Probleme in NP, wurden als NP-vollständige Probleme bekannt.

Natürlich ist NP nur eine Klasse von Entscheidungsproblemen. Viele Probleme werden natürlich nicht auf diese Weise angegeben: "Finden Sie die Faktoren von N", "Finden Sie den kürzesten Pfad in der Grafik G, die jeden Scheitelpunkt besucht", "Geben Sie eine Reihe von Variablenzuweisungen an, die den folgenden booleschen Ausdruck wahr machen". Obwohl man informell über solche Probleme sprechen kann, die "in NP" sind, macht das technisch wenig Sinn - sie sind keine Entscheidungsprobleme. Einige dieser Probleme haben möglicherweise sogar die gleiche Leistung wie ein NP-vollständiges Problem: Eine effiziente Lösung dieser (Nichtentscheidungs-) Probleme würde direkt zu einer effizienten Lösung für jedes NP-Problem führen. Ein solches Problem heißt NP-hard .


67

P (Polynomzeit): Wie der Name schon sagt, sind dies die Probleme, die in der Polynomzeit gelöst werden können.

NP (Non-Deterministic-Polynomial Time): Dies sind die Entscheidungsprobleme, die in der Polynomial Time verifiziert werden können. Das heißt, wenn ich behaupte, dass es für ein bestimmtes Problem eine polynomielle Zeitlösung gibt, bitten Sie mich, dies zu beweisen. Dann werde ich Ihnen einen Beweis geben, den Sie in Polynomzeit leicht überprüfen können. Diese Art von Problemen werden NP-Probleme genannt. Beachten Sie, dass wir hier nicht darüber sprechen, ob es für dieses Problem eine polynomielle Zeitlösung gibt oder nicht. Wir sprechen jedoch über die Überprüfung der Lösung eines bestimmten Problems in Polynomzeit.

NP-Hard: Diese sind mindestens so schwer wie die schwierigsten Probleme in NP. Wenn wir diese Probleme in Polynomzeit lösen können, können wir jedes mögliche NP-Problem lösen, das möglicherweise existiert. Beachten Sie, dass diese Probleme nicht unbedingt NP-Probleme sind. Das heißt, wir können die Lösung dieser Probleme in der Polynomzeit überprüfen / nicht überprüfen.

NP-Complete: Dies sind die Probleme, die sowohl NP als auch NP-Hard sind. Das heißt, wenn wir diese Probleme lösen können, können wir jedes andere NP-Problem lösen und die Lösungen für diese Probleme können in Polynomzeit verifiziert werden.


Sie haben sich also entschieden, die Definitionen von irgendwoher zu kopieren?
Arun Satyarth

1
Die Antwort macht Sinn!
Konstantin

2
@ArunSatyarth Woher?
Bedeutung-Angelegenheiten

3
Die beste Antwort, da sie kurz ist, gerade genug Terminologie verwendet, normale menschliche Sätze enthält (nicht das schwer zu lesende Zeug, das so korrekt wie möglich ist), und überraschenderweise die einzige Antwort, die schreibt, wofür N steht.
Bedeutung-Angelegenheiten

62

Zusätzlich zu den anderen großartigen Antworten finden Sie hier das typische Schema, mit dem Menschen den Unterschied zwischen NP, NP-Complete und NP-Hard zeigen:

Geben Sie hier die Bildbeschreibung ein


1
Ist bewiesen, dass es in NP-Hard ein Problem gibt, das nicht in NP-Complete liegt? Weil dieses Bild es nahelegt. Vielen Dank.
Hilder Vitor Lima Pereira

9
@VitorLima ja zB EXPSPACE-vollständige Probleme sind NP-schwer, aber nachweislich nicht NP-vollständig.
Franck Dernoncourt

2
OK danke. Ich habe einige Referenzen gefunden, die darüber sprechen. Zum Beispiel dieses: princeton.edu/~achaney/tmve/wiki100k/docs/NP-hard.html
Hilder Vitor Lima Pereira

47

Der einfachste Weg, P v. NP und dergleichen zu erklären, ohne auf technische Aspekte einzugehen, besteht darin, "Wortprobleme" mit "Multiple-Choice-Problemen" zu vergleichen.

Wenn Sie versuchen, ein "Wortproblem" zu lösen, müssen Sie die Lösung von Grund auf neu finden. Wenn Sie versuchen, ein "Multiple-Choice-Problem" zu lösen, haben Sie die Wahl: Lösen Sie es entweder wie ein "Wortproblem" oder versuchen Sie, jede der Ihnen gegebenen Antworten einzustecken und die passende Kandidatenantwort auszuwählen.

Es kommt häufig vor, dass ein "Multiple-Choice-Problem" viel einfacher ist als das entsprechende "Wortproblem": Das Ersetzen der Kandidatenantworten und das Überprüfen, ob sie passen, erfordert möglicherweise erheblich weniger Aufwand als das Finden der richtigen Antwort von Grund auf.

Wenn wir uns nun auf den Aufwand einigen würden, der die Polynomzeit "leicht" nimmt, würde die Klasse P aus "einfachen Wortproblemen" bestehen, und die Klasse NP würde aus "einfachen Multiple-Choice-Problemen" bestehen.

Das Wesen von P v. NP ist die Frage: "Gibt es einfache Multiple-Choice-Probleme, die als Wortprobleme nicht einfach sind?" Das heißt, gibt es Probleme, bei denen es einfach ist, die Gültigkeit einer bestimmten Antwort zu überprüfen, aber es schwierig ist, diese Antwort von Grund auf neu zu finden?

Jetzt, da wir intuitiv verstehen, was NP ist, müssen wir unsere Intuition herausfordern. Es stellt sich heraus, dass es "Multiple-Choice-Probleme" gibt, die in gewissem Sinne am schwierigsten sind: Wenn man eine Lösung für eines dieser "schwierigsten von allen" Probleme finden würde, könnte man eine Lösung für ALLE finden NP Probleme! Als Cook dies vor 40 Jahren entdeckte, war dies eine völlige Überraschung. Diese "härtesten von allen" Probleme werden als NP-hart bezeichnet. Wenn Sie eine "Wortproblemlösung" für eine von ihnen finden, finden Sie automatisch eine "Wortproblemlösung" für jedes einzelne "einfache Multiple-Choice-Problem"!

Schließlich sind NP-vollständige Probleme diejenigen, die gleichzeitig NP- und NP-hart sind. Nach unserer Analogie sind sie gleichzeitig "einfach wie Multiple-Choice-Probleme" und "am schwierigsten als Wortprobleme".


18

NP-vollständige Probleme sind solche Probleme, die sowohl NP-hart als auch in der Komplexitätsklasse NP sind. Um zu zeigen, dass ein bestimmtes Problem NP-vollständig ist, müssen Sie daher zeigen, dass das Problem sowohl in NP als auch in NP-schwer ist.

Probleme, die in der NP-Komplexitätsklasse liegen, können in Polynomzeit nicht deterministisch gelöst werden, und eine mögliche Lösung (dh ein Zertifikat) für ein Problem in NP kann auf Richtigkeit in Polynomzeit überprüft werden.

Ein Beispiel für eine nicht deterministische Lösung des k-Clique-Problems wäre etwa:

1) wähle zufällig k Knoten aus einem Graphen aus

2) Vergewissern Sie sich, dass diese k Knoten eine Clique bilden.

Die obige Strategie ist in der Größe des Eingabegraphen polynomisch und daher liegt das k-Clique-Problem in NP.

Beachten Sie, dass alle Probleme, die in der Polynomzeit deterministisch lösbar sind, auch in NP liegen.

Das Zeigen, dass ein Problem NP-schwer ist, beinhaltet normalerweise eine Reduzierung von einem anderen NP-harten Problem auf Ihr Problem unter Verwendung einer polynomiellen Zeitzuordnung: http://en.wikipedia.org/wiki/Reduction_(complexity)


Nicht, dass ich in dieser Antwort etwas Falsches sehe, aber ich weiß nicht, warum es akzeptiert wurde. Es bietet nicht wirklich viel zu dem, was das OP verlangte. Es unterscheidet sich nicht einmal wirklich von den Standarderklärungen dieser Probleme, und es gibt keine klaren Erklärungen darüber, was diese Probleme in diesen Klassen ausmacht. Keine Ablehnung wert, aber sicherlich keine Antwort wert.
San Jacinto

18

Ich denke, wir können es viel prägnanter beantworten. Ich beantwortete eine verwandte Frage und kopierte meine Antwort von dort

Aber zuerst ist ein NP-hartes Problem ein Problem, für das wir nicht beweisen können, dass es eine polynomielle Zeitlösung gibt. Die NP-Härte einiger "Problem-P" wird normalerweise durch Konvertieren eines bereits nachgewiesenen NP-harten Problems in das "Problem-P" in Polynomzeit bewiesen.

Um den Rest der Frage zu beantworten, müssen Sie zunächst verstehen, welche NP-harten Probleme auch NP-vollständig sind. Wenn ein NP-hartes Problem zum Set-NP gehört, ist es NP-vollständig. Um zu Set NP zu gehören, muss ein Problem sein

(i) ein Entscheidungsproblem,
(ii) die Anzahl der Lösungen für das Problem sollte endlich sein und jede Lösung sollte eine Polynomlänge haben, und
(iii) bei einer Polynomlängenlösung sollten wir sagen können, ob die Antwort auf die Problem ist ja / nein

Nun ist es leicht zu erkennen, dass es viele NP-schwierige Probleme geben kann, die nicht zu Set NP gehören und schwerer zu lösen sind. Als intuitives Beispiel ist die Optimierungsversion des reisenden Verkäufers, bei der wir einen tatsächlichen Zeitplan finden müssen, schwieriger als die Entscheidungsversion des reisenden Verkäufers, bei der wir nur bestimmen müssen, ob ein Zeitplan mit der Länge <= k existiert oder nicht.


5

Es gibt wirklich nette Antworten auf diese spezielle Frage, daher macht es keinen Sinn, meine eigene Erklärung zu schreiben. Daher werde ich versuchen, mit einer hervorragenden Ressource einen Beitrag zu verschiedenen Klassen von Rechenkomplexität zu leisten.

Für jemanden, der der Meinung ist, dass es bei der Komplexität von Berechnungen nur um P und NP geht, ist hier die umfassendste Ressource zu verschiedenen Problemen bei der Komplexität von Berechnungen. Abgesehen von den von OP gestellten Problemen wurden ungefähr 500 verschiedene Klassen von Rechenproblemen mit netten Beschreibungen sowie die Liste der grundlegenden Forschungsarbeiten, die die Klasse beschreiben, aufgelistet.


3

So wie ich es verstehe, ist ein np-hartes Problem nicht "schwerer" als ein np-vollständiges Problem. Tatsächlich ist per Definition jedes np-vollständige Problem:

  1. in NP
  2. np-hart

Geben Sie hier die Bildbeschreibung ein

- Intro. zu Algorithmen (3ed) von Cormen, Leiserson, Rivest und Stein, S. 1069


3
Ihr Verständnis ist falsch. Ihre Definition von NP-complete ist korrekt, hat jedoch keinen Einfluss auf Ihre erste Aussage. Alle Probleme in NP-hard sind mindestens so schwer wie die in NP-complete. Einige (z. B. das unendlich schwierige Halteproblem und en.wikipedia.org/wiki/EXPSPACE ) sind nachweislich schwieriger.
Jim Balter

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.