Schwache und starke Vollständigkeit


7

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?


Was meinst du mit "verbessert"? Relativ zu was?
Raphael

@ Raphael Woher kommt der Polynomteil?
Saadtaame

Antworten:


6

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(nW)

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.


Bedeutet dies, dass Pseudopolynomalgorithmen für Probleme funktionieren, die numerische Eingaben erfordern (wie aus Ihrer Antwort hervorgeht)?
Saadtaame

@saadtaame: Ja, der entscheidende Punkt ist, dass es sich um numerische Probleme handelt, bei denen die Laufzeit mit den numerischen Eingabedaten zusammenhängt.
Reza

1

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 ).n2Ω(n)2nΩ(1)2logO(1)n


Es gibt jedoch viele NP-harte Probleme mit Pseudo-Polynom-Algorithmen.
Raphael

Kannst du ein Beispiel geben?
Yuval Filmus

1
Das Pseudopolynom geht nicht davon aus: es hat eine sehr klare Definition. Ich habe auch nirgendwo eine solche Annahme gesehen. Würden Sie einen Hinweis geben? Auch Raphael hat Recht, für alle Probleme, die zu schwach np-compelete gehören (dh sie sind auch np-hart), gibt es einen Pseudo-Polynom-Zeitalgorithmus. 2LogÖ(1)n

Pseudopolynom bedeutet für verschiedene Menschen verschiedene Dinge. In Bezug auf die exponentielle Zeithypothese hat Google eine ganze Datei darauf.
Yuval Filmus

1
Nein, tatsächlich ist , quasipolynomisch (ah - das ist der richtige Begriff!). Die Komplexitätsklasse wird üblicherweise als subexponentiell bezeichnet. 2Ö(Logn)=nÖ(1)2LogÖ(1)n2nÖ(1)
Yuval Filmus
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.