Angenommen, wir haben ein Rechenproblem, z. B. 3-SAT, das eine Reihe von Probleminstanzen (mögliche Eingaben) . Normalerweise haben wir bei der Analyse von Algorithmen oder der Theorie der rechnerischen Komplexität einige Mengen aller Eingaben der Länge und eine Funktion , die die Laufzeit einiger Lösungsalgorithmen für die Eingabe . Die ungünstigste Laufzeitfolge für ist dann
Definieren wir nun die Mengen aller Eingaben mit Kolmogorov-Komplexität und definieren wir die Folge Hier ist die durchschnittliche Laufzeitsequenz für , außer wenn die "Größe" der Eingaben ihre Kolmogorov-Komplexität ist, nicht ihre Länge.
Gibt es Algorithmen, bei denen sich asymptotisch signifikant von ? Wenn ja, gibt es Probleme, deren zeitliche Komplexität sich ändert, wenn diese andere Art der Analyse von Algorithmen verwendet wird?f K n
quelle
Antworten:
Betrachten Sie die Paritätsfunktion (oder eine andere Funktion, die von allen / den meisten Bits der Eingabe abhängt). Für die Paritätsfunktion ist . Also Andererseits ist f n = Θ ( n ) . f K n = Θ ( 1T( w ) = Θ ( | w | )
Man beachte, dass . Also und . In ähnlicher Weise ist ; somit wächst "sehr schnell". Außerdem ist es nicht schwer zu erkennen, dass es für keine berechenbare Obergrenze gibt .max w : K ( w ) = n | w | ≥ 2 2 Ω ( n ) , f K n ≥ 2 2 Ω ( n ) / 2 n → ∞ K ( 2 ... 2 2 n ) = O ( n ) f K nK(22n) = O ( n )
quelle
Angesichts des Interesses an dieser Frage hielt ich es für hilfreich, den Grund, warum wir von der Antwort überhaupt nicht überrascht sein sollten, deutlicher herauszustellen und zu versuchen, eine Richtung für die Verfeinerung der Frage anzugeben. Dies sammelt und erweitert einige Kommentare. Ich entschuldige mich, wenn dies "offensichtlich" ist!
Betrachten Sie die Menge von Strings der Kolmogorov-Komplexität : Es gibt höchstens solcher Zeichenketten, da es Beschreibungen der Länge . Beachten Sie jedoch, dass diese Menge für das allgemeine unentscheidbar ist (andernfalls könnten wir berechnen, indem wir einfach von nach iterieren und die Zugehörigkeit zu überprüfen ). Weiterhin ist die Funktion wächst unberechenbar schnell. Es handelt sich um eine Variante der Besetzt-Biber-Funktion: Was ist die längste Ausgabe einer Turing-Maschine mit der BeschreibungslängeJ K ( n ) = { w : K ( w ) = n } . 2 n 2 n n n K ( w ) n = 1 | w | J K ( n ) g K ( n ) = max w ≤ J K ( n ) | w | n M M ' Mn
Nun zu Andrews Frage: , wobei die Originalsprache ist. Die einzige Möglichkeit, zu vermeiden, dass Eingaben enthält, die in sehr groß sind, wäre, wenn nur sehr unkomprimierbare Zeichenfolgen enthält. (Beachten Sie, dass wir ansonsten die Unterscheidung zwischen Worst-Case- und Average-Case-Analyse völlig ignorieren können, da wir im Durchschnitt höchstens Zeichenfolgen verwenden, die Größe der größten Zeichenfolge jedoch schneller wächst als jede berechenbare Funktion von . )S I K ( n ) n S 2 n nichK( n ) = S∩ JK( n ) S ichK( n ) n S 2n n
Ich bin der Meinung, dass es wahrscheinlich unmöglich ist, ein nicht-triviales (dh unendliches) zu konstruieren , das nur unkomprimierbare Zeichenfolgen enthält und dennoch entscheidbar ist. Aber ich weiß es nicht. Aber hoffentlich gibt diese Intuition, warum sollten wir nicht für die meisten Sprachen hoffen haben wächst langsamer als eine berechenbare Funktion.f K nS fKn
Um einen kleinen Schritt zurückzutreten, müssen Sie die Leistung für Eingaben der Länge mit der Leistung für Eingaben vergleichen, die auf die Länge komprimiert werden können . Wir haben jedoch Vorstellungen von Komprimierung, die weitaus besser handhabbar (und weniger leistungsfähig) sind als die Kolmogorov-Komplexität. Eine einfache Möglichkeit besteht darin, eine Schaltung der Größe zu geben , die bei Eingabe der Binärzahl das te Bit von . Beachten Sie, dass hier die Vergrößerung der Eingangsgröße höchstens exponentiell ist (ein Schaltkreis der Größe hat höchstens mögliche Eingänge).n n b b w n 2 nn n n b b w n 2n
Also können wir die Frage umformulieren, indem wir Und definiere analog. Grund zur Hoffnung ist, dass die meisten Zeichenfolgen eine Schaltung benötigen, die fast so groß ist wie die Zeichenfolge selbst, und keine Zeichenfolge ist mehr als exponentiell größer als die erforderliche Schaltung. Vielleicht könnten wir in diesem Fall Sprachen finden, in denen und asymptotisch ähnlich sind.
Eine ziemlich verwandte Frage ist die Komplexität impliziter Sprachen wie IMPLICIT_SAT ist NEXP-vollständig, und normalerweise ist die implizite Version von NP-vollständigen Problemen NEXP-vollständig. Die Entscheidung für IMPLICIT_SAT ist mindestens so einfach wie die Verwendung der Schaltung zum Ausschreiben von und das Ausführen eines Algorithmus für SAT auf . Wenn also für SAT , scheint dies nahe daran zu liegen, zu beweisen, dass IMPLICIT_SAT im Durchschnitt fast so schnell entscheidbar ist wie SAT im schlechtesten Fall. Aber ich weiß nicht, wie man Ihren Begriff direkt mit impliziten Sprachen vergleichen würde, weil der Begriff "kleinster Stromkreis für
Hoffe das ist hilfreich / interessant!
Ich bin mir nicht sicher, ob in einem Lehrbuch implizite Probleme erwähnt werden, aber hier sind einige Vorlesungsunterlagen: http://people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf
quelle
Ein einfacher Fall scheint zu sein, in dem die Sprache nur aufgefüllte Instanzen enthält. Wenn aus einer Sprache indem jede Instanz der Größe mit Symbolen , kann im Bereich von .S L n 2 n - n f K n 2 f nS S L n 2n- n fKn 2fn
quelle