La complejidad de Kolmogorov de una cadena no es computable. Sin embargo, en un subconjunto aleatorio de tamaño de cadenas binarias de longitud , el número se espera que tengan menos de complejidad algún entero menor que (en función de , y )?
La complejidad de Kolmogorov de una cadena no es computable. Sin embargo, en un subconjunto aleatorio de tamaño de cadenas binarias de longitud , el número se espera que tengan menos de complejidad algún entero menor que (en función de , y )?
Respuestas:
La complejidad de Kolmogorov solo se determina hasta una constante aditiva, por lo que no es posible dar una respuesta exacta. El límite que describo aquí es aún más débil.
Por supuesto, el número esperado se puede calcular fácilmente una vez que sepamos cuántas de las cadenas tienen una complejidad menor que n 0 , así que déjenme responder esto. Por lo general, la primera afirmación sobre la complejidad de Kolmogorov es que este número es como máximo 2 n 0 - 1 , ya que solo hay muchas cadenas de menor longitud. Por otro lado, si su programa dice "de longitud n , tome el número x ", entonces obtendrá 2 n 0 - K ( n ) - C cadenas de complejidad menores que n 0 , donde es la versión sin prefijo de la complejidad de Kolmogorov de n (por lo tanto, a lo sumo, log n + log ∗ n + O ( 1 ) ). Con más detalle, la cadena contiene primero la descripción de la máquina de Turing que tomó la entrada p x , donde p es la descripción de un programa sin prefijo que genera n , genera elnúmero x de longitud n , que es O ( 1 ) bits, y luego esto es seguido por p x .
Probablemente sea posible mejorar estos límites, pero dudo que pueda obtener una respuesta exacta.
Se puede dar una respuesta precisa. El número de cadenas de longitud con complejidad (simple) como máximo n 0 es 2 n 0 - K ( n 0 | n ) , hasta un factor constante. Por lo tanto, cualquier proceso que elija aleatoriamente un subconjunto tendrá, con probabilidad razonable, una fracción 2 - K ( n 0 | n ) + O ( 1 ) de cadenas de complejidad menor que n 0 . Para mostrar nuestro reclamo, es suficiente mostrar que el número de cadenas con complejidadigual a también viene dado por 2 k - K ( k | n ) . Podemos mostrar el resultado necesario determinando la suma de este valor sobre k desde 1 hasta n 0 . Para mostrar esto, utilizamos un resultado de aditividad para la complejidad simple (debido a B. Bauwens y A. Shen. Un teorema de aditividad para la complejidad simple de Kolmogorov . Theory of Computing Systems, 52 (2): 297-302, febrero de 2013), C ( a , b ) = K ( a | C ( a , b ) Aquí K ( ⋅ ) denota la complejidad de Kolmogorov sin prefijo. Al elegir a = n , observamos que para cadacadena de n bits b de complejidad k tenemos k = C ( b ) = C ( n , b ) + O (