A complexidade de Kolmogorov de uma string não é computável. No entanto, em um subconjunto aleatório do tamanho de cadeias binárias de comprimento , quantas são esperadas para ter complexidade menor que algum número inteiro menor que (como uma função de M , n e n_ {0} )?n
9
Respostas:
A complexidade de Kolmogorov é determinada apenas até alguma constante aditiva, portanto, não é possível fornecer uma resposta exata. O limite que descrevo aqui é ainda mais fraco.
É claro que o número esperado pode ser calculado facilmente, uma vez que sabemos quantas das seqüências têm complexidade menor que , então deixe-me responder isso. Geralmente, é a primeira declaração sobre a complexidade de Kolmogorov que esse número é no máximo - já que existem apenas essas muitas cadeias de comprimento menor. Por outro lado, se o seu programa diz "de comprimento , tomar o th número", então você obtém cordas de complexidade menos de , onde é o versão sem prefixo da complexidade Kolmogorov de (portanto, no máximon 0 2 n 0 - 1 n x 2 n 0 - K ( n ) - C n 0 K ( n ) n log n + log ∗ n + O ( 1 ) p x n x n O ( 1 ) p x2n n0 2n0−1 n x 2n0−K(n)−C n0 K(n) n logn+log∗n+O(1) ) Em mais detalhe, a cadeia contém em primeiro lugar uma descrição da máquina de Turing que feita de entrada , onde p é a descrição de um programa livre de prefixo que saídas , emite o th número de comprimento , que é os bits e, em seguida, isso é seguido por .px n x n O(1) px
Provavelmente é possível melhorar esses limites, mas duvido que você possa obter uma resposta exata.
fonte
Uma resposta precisa pode ser dada. O número de cadeias de comprimento com complexidade (simples) no máximo é , até um fator constante. Portanto, qualquer processo que escolha aleatoriamente um subconjunto terá, com probabilidade razoável, uma fração de de seqüências de complexidade menores que . Para mostrar nossa afirmação, basta mostrar que o número de strings com complexidade igual a também é dado por . Podemos mostrar o resultado necessário determinando a soma desse valor em de 1 an 0 2 n 0 - K ( n 0 | n ) 2 - K ( n 0 | n ) + O ( 1 ) n 0 k 2 k - K ( k | n ) k n 0 C ( a , b ) = K ( a | C ( a , b ) )n n0 2n0−K(n0|n) 2−K(n0|n)+O(1) n0 k 2k−K(k|n) k n0 . Para mostrar isso, usamos um resultado de aditividade para complexidade simples (devido a B. Bauwens e A. Shen. Um teorema de aditividade para complexidade simples de Kolmogorov . Theory of Computing Systems, 52 (2): 297-302, fev 2013),
Aqui indica a complexidade de Kolmogorov sem prefixo. Escolhendo , observa-se que para cada cadeia de bits de complexidade temos
Portanto, para cada um desses , temos . SejaK ( ⋅ ) a = n n b k k = C ( b ) = C ( n , b ) + O ( 1 ) = K ( n | k ) + C ( b | n
fonte