Valeurs attendues de la complexité de Kolmogorov dans un échantillon aléatoire

9

La complexité de Kolmogorov d'une chaîne n'est pas calculable. Cependant, dans un sous-ensemble aléatoire de taille de chaînes binaires de longueur n , combien devraient avoir une complexité inférieure à un entier n 0 inférieur à n (en fonction de M , n et n 0 )?Mnn0nMnn0

contre
la source
Utilisez-vous ici la complexité de Kolmogorov "standard" ou la complexité des préfixes?
Aubrey da Cunha
En fait, je ne pensais qu'à la complexité de Kolmogorov. Je devinais le lié que domotorp mentionné lorsque l' on considère l'univers de toutes les chaînes. Je ne savais pas si un résultat «cohérent» pour un sous-ensemble aléatoire arbitraire de taille M pouvait être produit. Mais la complexité des préfixes nous amènerait-elle à un point de vue différent? 2noM
vs
Cela ne changerait certainement pas l'ordre de grandeur, en fait je pense que maintenant ma réponse est liée aux deux versions.
domotorp
1
Pour chaque et chaque c , la probabilité qu'une chaîne aléatoire de n bits x ait la complexité de Kolmogorov K ( x ) n - c est supérieure à 1 - 1ncnxK(x)nc (avecc=n-n0). Donc, dans une distribution aléatoire deMchaînes, vous devez vous attendre àM112cc=nn0M chaînes avecK(x)<n0... intuitivement, il y a une très forte probabilité de choisir une chaîne avec une complexité de Kolmogorov élevée. M2(nn0)K(x)<n0
Marzio De Biasi

Réponses:

10

La complexité de Kolmogorov n'est déterminée que jusqu'à une certaine constante additive, il n'est donc pas possible de donner une réponse exacte. La limite que je décris ici est encore plus faible.

Bien sûr, le nombre attendu peut être calculé facilement une fois que nous savons combien des chaînes ont une complexité inférieure à n 0 , alors permettez-moi de répondre à cela. C'est généralement la première déclaration sur la complexité de Kolmogorov que ce nombre est au plus 2 n 0 - 1 - car il n'y a que ces nombreuses chaînes de plus petite longueur. Par contre, si votre programme dit "de longueur n , prenez le x ème nombre", alors vous obtenez 2 n 0 - K ( n ) - C chaînes de complexité inférieures à n 0 , où2nn02n01nx2n0K(n)Cn0 est la version sans préfixe de la complexité de Kolmogorov de n (donc au plus log n + log n + O ( 1 ) ). Plus en détail, la chaîne contient d'abord la description de la machine de Turing qui a pris l'entrée p x , où p est la description d'un programme sans préfixe qui sort n , sort le x ème nombre de longueur n , qui est O ( 1 ) bits, puis cela est suivi de p x .K(n)nlogn+logn+O(1)pxnxnO(1)px

Il est probablement possible d'améliorer ces limites, mais je doute que vous puissiez obtenir une réponse exacte.

domotorp
la source
Pourriez-vous expliquer un peu la phrase "si votre programme dit" de longueur n, prenez le xième nombre ""?
vs
Vous avez raison, il ne devrait pas y avoir de préfixe, je l'ai corrigé.
domotorp
3

nn02n0K(n0|n)2K(n0|n)+O(1)n0k2kK(k|n)kn0

C(a,b)=K(a|C(a,b))+C(b|a,C(a,b))+O(1).
K()a=nnbk
k=C(b)=C(n,b)+O(1)=K(n|k)+C(b|n,k)+O(1).
bC(b|n,k)=kK(n|k)+O(1)k=kK(n|k)O(2k)b2knC(b|n,k)k+O(1)Ω(2k)C(b|n,k)=k+O(1)
Bruno Bauwens
la source