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 ) = maxw ∈ JK( 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.
MM′MM ' n M g K ( n ) M1M′nMGK( 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 ) = S∩ JK( 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 nSfKn
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 ) = { w ≤ S: Die kleinste Schaltung, die implizit w angibt, hat die Größe n } .
fCnfnfCn
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
I M P L I C I T _ S A T ={ Schaltkreise C: C implizit spezifiziert w , w ∈ S A T } .
wwfCn= Θ ( 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