Was sagt uns ein Pseudo-Polynom-Algorithmus über das Problem, das er löst? Ich sehe nicht, wie sich die Laufzeit verbessert, wenn der Algorithmus in der Eingabelänge exponentiell und im Eingabewert polynomisch ist. Wie erklären wir diese Verschiebung vom Exponential zum Polynom?
7
Antworten:
Wie in " Computer und Intraktabilität: Ein Leitfaden zur Theorie der NP-Vollständigkeit " angegeben, zeigt ein Pseudo-Polynom-Zeit-Algorithmus nur dann " exponentielles Verhalten " an, wenn er mit Instanzen konfrontiert wird, die " exponentiell große " Zahlen enthalten, was für selten sein kann die Anwendungen, an denen wir interessiert sind. Wenn ja, könnte diese Art von Algorithmus unseren Zwecken fast genauso gut dienen wie ein polynomieller Zeitalgorithmus. “
Sie können den Rucksack als ein gutes Beispiel für ein schwach-Np-vollständiges Problem betrachten . In diesem Fall ist die Komplexität der dynamischen Programmierlösung was in den meisten praktischen Fällen gut ist.O ( n W.)
Es ist bekannt, dass es keinen Pseudo-Polynom-Zeitalgorithmus für starke NP-vollständige Probleme (wie Steiner Tree ) gibt, es sei denn, P = NP.
quelle
Diese Antwort bezieht sich eher auf Quasipolynom- Algorithmen als auf Pseudopolynom- Algorithmen .
Ein Quasipolynom-Algorithmus sagt uns, dass das Problem wahrscheinlich nicht NP-schwer ist. Die (etwas) allgemein angenommene Exponential Time Hypothesis (ETH) besagt, dass 3SAT für Variablen Zeit . Da sich 3SAT in NP befindet, impliziert die ETH, dass jedes NP-vollständige Problem Zeit , die schneller wächst als das Quasipolynom (vorausgesetzt, letzteres bedeutet ).n 2Ω ( n ) 2nΩ ( 1 ) 2LogO ( 1 )n
quelle