Aus der Sicht von jemandem, der Code für seinen Lebensunterhalt schreibt, ist eine gute Kenntnis der NP-Vollständigkeit wichtig für:
1. Erkennen, wann Sie den falschen Baum bellen
NP-vollständige Probleme sind die einfachsten der NP-harten Probleme. Soweit wir das beurteilen können, nimmt die Lösung eines solchen Entscheidungsproblems exponentiell viel Zeit in Anspruch. Wenn Sie also praktisch nachweisen können, dass das Problem, das Sie zu lösen versuchen, NP-schwer ist (in der Regel, indem Sie zeigen, dass eine effiziente Lösung auch eine effiziente Lösung für ein NP-vollständiges Problem darstellt), wissen Sie, dass dies der Fall ist Sie können aufhören, nach einem effizienten Algorithmus zu suchen , um ihn im Allgemeinen genau zu lösen. Stattdessen können Sie aus bekannten Algorithmen auswählen, die gute Näherungen für NP-harte Optimierungsprobleme versprechen, und mit dem Rest Ihres Projekts weitermachen.
2. Den richtigen Baum finden
Da Computer häufig für den Angriff auf NP-schwierige Probleme eingesetzt werden, wurden spezielle Löser entwickelt, mit denen einige NP-schwierige Problemfälle effizient gelöst werden können . Das Erkennen, dass Ihr Problem NP-vollständig ist, ist der erste Schritt, um ein vorhandenes Tool (SAT, ILP, SMT, CSP, um nur einige zu nennen) zu finden, mit dem Sie in einigen Fällen, in denen Sie sich andernfalls mit einem hätten zufrieden geben müssen, genaue Lösungen finden können Annäherung.