Estou ciente de que alguns ints têm maior ou menor complexidade de Kolmogorov. Por exemplo, o número 5.41126806512
tem uma complexidade muito baixa, como pode ser expresso por 17/pi
. Também estou ciente de que, embora o KC varie dependendo da linguagem da expressão, é sempre o mesmo até uma determinada constante. Então, pergunto: existe uma maneira de calcular uma aproximação do KC para os primeiros N ints?
9
Respostas:
Não, não existe um algoritmo geral para calcular uma aproximação aproximada da complexidade de Kolmogorov da sequência . Qualquer algoritmo candidato que você criar terá algumas entradas nas quais ele fornecerá uma resposta ruim (uma fraca aproximação à resposta correta).1,2,…,n
Denote por a codificação binária do número natural e deixe denotar uma codificação separada por vírgula da sequência . Não é difícil verificar se . Como computar é indecidível, segue-se que calcular uma boa aproximação a também é indecidível.[n] n [[n]]=[1],[2],…,[n] 1,…,n |K([n])−K([[n]])|=O(1) K([n]) K([[n]])
Além disso, sabe-se que para "a maioria" de números inteiros , . Portanto, para "a maioria" de números inteiros , .n K([n])=Θ(logn) n K([[n]])=Θ(logn)
fonte
Uma maneira de expressar a afirmação 'quase todos os números são maximamente aleatórios' é como a afirmação de que . Por conveniência, defina e considere apenas a parte da soma de a ; então, para cada , temos que o número de números desse tamanho com complexidade é (consulte http://en.wikipedia.org/wiki/Kolmogorov_complexity para alguns detalhes disso), para que possamos dividir a soma pela soma dos números ' incompressible' e dos números compressíveis, com o primeiro contribuindo pelo menos∑Ni=1K(i)∈Θ(NlgN) N=2k 2k−1 2k c ≥k−c 2k−1−2k−c c (1−21−c)2k−1(k−c) para a soma. Um pouco mais de massagem deve ser suficiente para obter uma constante da forma na frente (ou seja, uma soma de ).1−o(1) NlgN−o(NlgN)
fonte