Wenn ich einen Algorithmus für ein neues Problem entwerfe und nach einiger Zeit keinen Polynom-Zeit-Algorithmus mehr finde, kann ich versuchen, zu beweisen, dass er NP-schwer ist. Wenn es mir gelingt, habe ich erklärt, warum ich den Polynom-Zeit-Algorithmus nicht gefunden habe. Es ist nicht so, dass ich mit Sicherheit weiß, dass P! = NP ist, es ist nur so, dass dies das Beste ist, was mit dem aktuellen Wissen erreicht werden kann, und in der Tat ist der Konsens, dass P! = NP ist.
Angenommen, ich habe für ein Problem eine Lösung für die Polynomzeit gefunden, aber die Laufzeit ist . Nach viel Mühe mache ich keine Fortschritte bei der Verbesserung. Also könnte ich stattdessen versuchen zu beweisen, dass es 3SUM-schwer ist. Dies ist in der Regel ein zufriedenstellender Zustand, nicht weil ich der Ansicht bin, dass 3SUM tatsächlich Θ ( n 2 ) Zeit benötigt, sondern weil dies der aktuelle Stand der Technik ist und viele kluge Köpfe versucht haben, ihn zu verbessern. und sind gescheitert. Es ist also nicht meine Schuld, dass es das Beste ist, was ich tun kann.
In solchen Fällen ist das Beste, was wir tun können, ein Härteergebnis anstelle einer tatsächlichen Untergrenze, da wir für Turingmaschinen keine superlinearen Untergrenzen für Probleme in NP haben.
Gibt es eine einheitliche Reihe von Problemen, die für alle Polynomlaufzeiten verwendet werden können? Wenn ich zum Beispiel beweisen möchte, dass es unwahrscheinlich ist, dass ein Problem einen Algorithmus hat, der besser ist als , gibt es ein Problem X, sodass ich zeigen kann, dass es X-schwer ist, und belasse es dabei?
Update : Diese Frage wurde ursprünglich für Problemfamilien gestellt. Da es nicht so viele Problemfamilien gibt und diese Frage bereits ausgezeichnete Beispiele für einzelne schwierige Probleme erhalten hat, entspanne ich die Frage zu jedem Problem, das für polynomielle Zeithärteergebnisse verwendet werden kann. Ich füge dieser Frage auch ein Kopfgeld hinzu, um mehr Antworten zu ermutigen.