Compte tenu de l'intérêt suscité par cette question, j'ai pensé qu'il pourrait être utile de souligner plus explicitement la raison pour laquelle nous ne devrions pas être du tout surpris par la réponse et essayer de donner des indications pour affiner la question. Cela recueille et développe certains commentaires. Je m'excuse si c'est "évident"!
Considérons l'ensemble des chaînes de complexité de Kolmogorov :
Il y a au plus telles chaînes, comme il y a descriptions de longueur . Mais notez que cet ensemble est indécidable pour général (sinon, nous pourrions calculer simplement en itérant de à et en vérifiant l'appartenance à ). De plus, la fonction
grandit de façon incalculable. C'est une variante de la fonction de castor occupé: quelle est la sortie la plus longue d'une machine de Turing de longueur de descriptionn
JK(n)={w:K(w)=n}.
2n2nnnK(w)n=1|w|JK(n)gK(n)=maxw∈JK(n)|w|
n? Si cela devenait plus lent que certaines fonctions calculables, nous pourrions décider du problème d'arrêt: étant donné un TM , construire qui simule et imprime un à chaque étape. Si la longueur de description de est , alors soit: s'arrête au plus étapes; ou ne s'arrête pas.
MM′M1M′nMgK(n)M
Maintenant, à la question d'Andrew, nous avons que , où est la langue d'origine. Ainsi, la seule façon d'éviter que contienne des entrées très grandes dans serait si ne contient que des chaînes très incompressibles. (Notez que, sinon, nous pouvons complètement ignorer la distinction entre l'analyse du pire et du cas moyen ici, car nous faisons la moyenne sur au plus chaînes mais la taille de la plus grande chaîne augmente plus rapidement que toute fonction calculable de . )IK(n)=S∩JK(n)SIK(n)nS n2nn
Je pense qu'il est probablement impossible de construire un non trivial (c'est-à-dire infini) qui ne contienne que des chaînes non compressibles, mais qui soit décidable. Mais je ne sais pas. Cependant, j'espère que cela donne une intuition quant à la raison pour laquelle nous ne devrions pas espérer que la plupart des langues croissent plus lentement qu'une fonction calculable.f K nSfKn
Pour prendre un peu de recul, la question est de comparer les performances sur les entrées de longueur aux performances sur les entrées qui peuvent être compressées à la longueur . Mais nous avons des notions de compression qui sont beaucoup plus maniables (et moins puissantes) que la complexité de Kolmogorov. Un moyen simple est de donner un circuit de taille , qui en entrée le nombre binaire produit le ème bit de . Notez qu'ici, l'explosion de la taille d'entrée est au plus exponentielle (un circuit de taille a au plus entrées possibles).nnnbbwn2n
Nous pouvons donc reformuler la question en laissant
Et définissez façon analogue. La raison d'espérer ici est que la plupart des chaînes nécessitent un circuit presque aussi grand que la chaîne elle-même, et aucune chaîne n'est plus exponentiellement plus grande que le circuit requis. Peut-être que dans ce cas, nous pourrions trouver des langages où et sont similaires asymptotiquement.
IC(n)={w∈S:the smallest circuit implicitly specifying w has size n}.
fCnfnfCn
Une question assez étroitement liée est la complexité des langages implicites comme
IMPLICIT_SAT est NEXP-complete, et généralement la version implicite des problèmes NP-complete est NEXP-complete. Décider d'IMPLICIT_SAT est au moins aussi simple que d'utiliser simplement le circuit pour écrire tout , puis exécuter un algorithme pour SAT sur . Donc, si pour SAT, cela semble proche de prouver que IMPLICIT_SAT dans le cas moyen est presque aussi rapidement décidable que SAT dans le pire des cas. Mais je ne sais pas comment on comparerait directement votre notion aux langages implicites car la notion de "plus petit circuit pour
IMPLICIT_SAT={circuits C:C implicitly specifies w,w∈SAT}.
wwfCn=Θ(fn)w"n'entre pas en jeu pour les langues implicites.
J'espère que c'est utile / intéressant!
Je ne suis pas sûr d'un manuel qui mentionne des problèmes implicites, mais voici quelques notes de cours: http://people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf