Verwendung der Kolmogorov-Komplexität als Eingangsgröße


20

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 S

I(n)={wS:|w|=n}
nT(w)AwA
fn=maxwI(n)T(w).

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.

IK(n)={wS:K(w)=n}
nfKA
fnK=1|IK(n)|wIK(n)T(w).
fKA

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 nfnfnK


4
Gute Frage! Eine, über die ich mich oft gewundert habe - ich hoffe, dass sie einige gute Antworten bekommt. (Ich fügte das Tag parametrisierte Komplexität b / c Sie können dies als die Frage der parametrisierten Komplexität von z. B. SAT, wo der Parameter die Kolmogorov-Komplexität ist.)
Joshua Grochow

3
Zufällige Saiten, auch bekannt als die meisten Saiten, haben eine Kolmogorov-Komplexität in der Nähe ihrer ursprünglichen Länge. Für die überwiegende Mehrheit der Eingaben gilt: Sie erhalten möglicherweise ein interessanteres Ergebnis, wenn Sie nach der Rechentiefe fragen, anstatt nach der Komplexität von Kolmogorov. google.com/…fn=fnK
Chad Brewbaker

2
Durch Mischen einiger Instanzen von PARITY in eine harte Sprache, um zu bilden (z. B. durch Präfixieren jeder Instanz mit einem Bitumschalter, der beschreibt, aus welcher Sprache die Instanz stammt), ist kleiner als . Wie klein das ist, hängt von der relativen Dichte ab. f K n f nSfnKfn
András Salamon

1
Ein Platz ist in Vadhans Vorlesungsskript hier (19. Februar): people.seas.harvard.edu/~salil/cs221/spring10/lectures.html
usul

1
@ AndrásSalamon, ja, ich hoffe ich bin nicht zu schlampig, aber ich denkesollte im Wesentlichen die Besetzt-Biber-Funktion sein. nmaxw:K(w)=n|w|
USUL

Antworten:


14

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

fn=Θ(n).
fnK=Θ(1|ichK(n)|w:K(w)=n|w|)Ω(12nmaxw:K(w)=n|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 n2 2 Ω ( n ) / 2 nK ( 2 ... 2 2 n ) = O ( n ) f K nK(22n)=O(n)

maxw:K(w)=n|w|22Ω(n)
fnK22Ω(n)/2nK(222n)=O(n)f K nfnK222Ω(n)/2nfnK

9

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

JK(n)={w:K(w)=n}.
2n2nnnK(w)n=1|w|JK(n)
GK(n)=maxwJK(n)|w|
n? Wenn dies langsamer als irgendeine berechenbare Funktion wird, können wir das Problem des Anhaltens lösen: Wenn ein TM , konstruiere , das simuliert und bei jedem Schritt eine ausgibt. Wenn die Beschreibung Länge von ist , dann: stoppt in höchstens Schritte; oder hält nicht an.MMMM ' n M g K ( n ) M1MnMGK(n)M

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)=SJK(n)SichK(n)nS2nn

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 nSfnK

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 nnnnbbwn2n

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.

ichC(n)={wS:die kleinste Schaltung implizit angeben w hat Größe n}.
fnCfnfnC

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

ichMPLichCichT_SEINT={Schaltungen C:C implizit spezifiziert w,wSEINT}.
wwfnC=Θ(fn)w"kommt für implizite Sprachen nicht ins Spiel.

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


|JK(n)|=2n ? Aber nicht jede Beschreibung ist minimal.
Andrew

1
@ AndrewMacFie, richtig, sollte "höchstens" sein. Wird reparieren.
Usul

Vielen Dank für das Hinzufügen dieser Antwort :) Es klingt wie bei jedem Algorithmus für 3-SAT, wird schnell wachsen. fnK
Andrew

4

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 nSSLn2n-nfnK2fn


Beachten Sie, dass die Antwort von Yury diese hierunter subsumiert und auch das "Kann in der Region von" genau angibt.
András Salamon
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.