Valores esperados de la complejidad de Kolmogorov en una muestra aleatoria


9

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 )?Mnn0nMnortenorte0 0


¿Está utilizando la complejidad de Kolmogorov "estándar" aquí, o la complejidad del prefijo?
Aubrey da Cunha

En realidad, solo pensaba en la complejidad de Kolmogorov. Estaba adivinando el 2norteo límite que mencionó domotorp cuando consideramos el universo de todas las cadenas. No estaba claro si se puede producir algún resultado 'consistente' para un subconjunto aleatorio arbitrario de tamaño METROSin embargo, ¿la complejidad del prefijo nos llevaría a un punto de vista diferente?
vs

Ciertamente no cambiaría el orden de magnitud, de hecho, creo que ahora mi respuesta es un límite para ambas versiones.
domotorp

1
Para cada cada c , la probabilidad de que una cadena aleatoria de n bits x tenga una complejidad de Kolmogorov K ( x ) n - c es mayor que 1 - 1ncnxK(x)nc (conc=n-n0). Entonces, en una distribución aleatoria decadenasM, debe esperarM112cc=nn0M cadenas conK(x)<n0... intuitivamente, hay una probabilidad muy alta de elegir una cadena con alta complejidad de Kolmogorov. M2(nn0)K(x)<n0 0
Marzio De Biasi

Respuestas:


10

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 , donde2nn02n01nx2n0K(n)Cn0 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 .K(n)nlogn+logn+O(1)pxnxnO(1)pX

Probablemente sea posible mejorar estos límites, pero dudo que pueda obtener una respuesta exacta.


¿Podría explicar un poco sobre la frase 'si su programa dice "de longitud n, tome el número x" "?
vs

Tienes razón, debería estar libre de prefijos allí, lo corregí.
domotorp

3

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 complejidadnn02n0K(n0|n)2K(n0|n)+O(1)n0igual 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 )k2kK(k|n)kn0 0 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 (

C(a,b)=K(unaEl |C(una,si))+C(siEl |una,C(una,si))+O(1).
K()una=nortenortesik Por lo tanto, para cada b tenemos C ( b | n , k ) = k - K ( n | k ) + O ( 1 ) . Sea k = k - K ( n |
k=C(si)=C(norte,si)+O(1)=K(norteEl |k)+C(siEl |norte,k)+O(1).
siC(siEl |norte,k)=k-K(norteEl |k)+O(1) . Ahora se puede observar que a lo sumo O ( 2 k ) tales cadenas b , y cada una de las primeras 2 k lexicográficamentecadenas de longitud n satisfacen C ( b | n , k ) k + O ( 1 ) . Así, Ω ( 2 k ) de ellos satisfacen C ( b | n , k ) =k=k-K(norteEl |k)O(2k)si2knorteC(siEl |norte,k)k+O(1)Ω(2k) .C(siEl |norte,k)=k+O(1)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.