La constante de Chaitin es normal?

9

Según esta fuente, la constante Chaitin es normal.Ω

Cada probabilidad de detención es un número real normal y trascendental que no es computable, lo que significa que no hay un algoritmo para calcular sus dígitos. De hecho, cada probabilidad de detención es aleatoria de Martin-Löf, lo que significa que ni siquiera hay un algoritmo que pueda adivinar sus dígitos de manera confiable.

Fuente (Wikipedia)

Además, la definición de normal es que cada dígito ocurre con igual probabilidad . Y que cada dueto de dígitos ocurre con probabilidad y cada triplete ocurre con probabilidad y así sucesivamente.1/b1/b21/b3

Omega de Chaitin se calcula a través de

Ω=phalts2|p|

Escribiendo en binario, obtenemos una lista de 0 y 1. Por ejemplo,Ω

2^-1=0.1 +
2^-2=0.01 +
2^-3=0.001 +
~skip 2^-4 as it does not halt
2^-5=0.00001 +
...
=\Omega
=0.11101...

Claramente, podemos ver que la posición de cada bit corresponde al estado de detención del programa de longitud correspondiente al bit.

Aquí es con lo que estoy luchando

Si es realmente normal, significa que exactamente el 50% de los programas se detienen y exactamente el 50% no. Esto parece muy contrario a la intuición.Ω

Por ejemplo, supongamos que genero programas java concatenando aleatoriamente caracteres individuales. La mayoría de ellos, supongo que más del 99.99% ni siquiera compilaría. ¿No implica esto que al menos el 99,99% de ellos no se detendrá? ¿Cómo justificamos que exactamente la mitad se detendrá y exactamente la mitad no, en virtud de que es normal?Ω

¿O es wikipedia incorrecto acerca de que es normal?Ω

Alexandre H. Tremblay
fuente
2
Bienvenido al sitio! Si coloca su LaTeX entre dólares en lugar de backticks, podremos leer la salida, en lugar de la fuente.
David Richerby
1
Y para las fracciones \ frac {1} {b ^ 2} da lugar de . 1b21/b2
Evil
Creo que Omega de Chaitin se define para codificaciones de máquina de Turing sin prefijos , no para codificaciones arbitrarias. Si es así, creo que nuestras intuiciones normales sobre lo que constituye un TM "aleatorio" podrían no ser tan confiables.
mhum
1
@mhum Puede volver a codificar cualquier programa en una codificación libre de prefijos agregando un 1 entre cada bit del programa original, luego finalizándolo con un 0. Luego, la máquina Turing lee cada segundo bit hasta encontrar el 0 final. Esto deja el código de Java intacto pero lo hace libre de prefijos. Por lo tanto, el problema persiste.
Alexandre H. Tremblay
"Si Ω es realmente normal, significa que exactamente el 50% de los programas se detienen y exactamente el 50% no. Esto parece muy contrario a la intuición". Significa que, asintóticamente, la mitad de los programas se detienen. Esto no es tan contrario a la intuición. A pesar de que puede tomar un poco de esfuerzo encontrar un programa de detención (es decir, golpear una larga cadena de 0 en Ω), una vez que haya encontrado uno, tendrá una cadena muy larga de programas de detención que lo siguen (es decir, un cadena igualmente larga de 1), por ejemplo, programas que son funcionalmente el mismo programa pero con un montón de comentarios superfluos añadidos (una especie de lema de bombeo).
Marcel Besixdouze el

Respuestas:

9

A diferencia de su ejemplo, la constante de Chaitin no se define de la siguiente manera:

Ω=n:nth program halts2n.

En cambio, hay un conjunto Π{0,1}de programas permitidos que no tiene prefijo (ninguna cadena es un prefijo de otra cadena). Cada uno de los programas enΠes legal (esto niega su ejemplo de Java). Si los programas están codificando en unario, entonces es cierto que elnel programa tiene duración ny luego tu definición de Ωtrabajos. Pero para otras codificaciones, la definición deΩ es

Ω=pΠ:p halts2|p|,
dónde |p| es la longitud de la cadena binaria p. La desigualdad de Kraft muestra quepΠ2|p|1.

La constante de Chaitin es algorítmicamente aleatoria : la complejidad de Kolmogorov (prefijo) de la primeran bits es nO(1). Para mostrar esto, tenga en cuenta primero queΩn, el primero n pedazos de Ω, es suficiente para determinar si un programa de duración n (debajo de la codificación Π) se detiene o no. De hecho, como una fracción,ΩnΩ<Ωn+2n. Ejecute todos los programas en paralelo, y siempre quep paradas, agregar 2|p| a algún mostrador C(inicializado en cero). FinalmenteCΩn (ya que CΩdesde abajo). En este punto, si el programa de entrada de longitudn no se detuvo, entonces sabes que no se detiene, ya que de lo contrario ΩC+2nΩn+2n.

Dado esto, supongamos que para algunos K>0 e infinitamente muchos n, podrías calcular Ωn utilizando nKbits Para cada unon, puede encontrar una cadena cuya complejidad de Kolmogorov sea mayor que n, al considerar la salida de todos los programas de detención de longitud como máximo n. Para lo suficientemente grandeK, el resultado es un programa de duración como máximo n para calcular una cadena cuya complejidad de Kolmogorov es más que norte. Esta contradicción prueba que para algunosK, la complejidad de Kolmogorov de Ωnorte Por lo menos norte-K.

Aleatoriedad algorítmica de Ωimplica, en particular, que la frecuencia de 0s y 1s en su expansión binaria tiende a 1/2. De hecho, supongamos que para algunos (racional)ϵ>0 0 existen infinitamente muchos norte tal que la fracción de 1s en Ωnorte es a lo sumo 1/ /2-ϵ. Como solo hay a lo sumo2h(1/ /2-ϵ)norte cadenas con como máximo 1/ /2-ϵ muchos 1s, podemos comprimir Ωnorte medir h(1/ /2-ϵ)norte+2Iniciar sesiónnorte+Cϵ (el constante Cϵ depende de ϵ ya que el programa necesita saber ϵ) Sin embargo, esto esnorte-ω(1), contradiciendo la aleatoriedad algorítmica de Ω.

Yuval Filmus
fuente
Gracias por la respuesta muy completa. Estoy luchando con el primer párrafo y me disculpo por no haber pasado por mi cráneo. Si solo tomamos esos programas java que compilan, luego los codificamos a unarios, ¿significa que exactamente la mitad de ellos se detendrá?
Alexandre H. Tremblay
@ AlexandreH.Tremblay Sí, esa es la implicación. Para más información, recomiendo un libro de texto sobre la complejidad de Kolmogorov, como Li y Vitanyi.
Yuval Filmus
¿Podría hacer que la máquina de Turing incluya un compilador de Java? Imagínate esto. Primero, enumere todas las posibles cadenas de caracteres generadas aleatoriamente, desde la más corta hasta la más larga. Segundo, codifique estas cadenas en unario. En tercer lugar, alimente las cadenas unarias a la máquina de Turing como entrada. La máquina de Turing comprueba si la entrada se compila en Java. Si lo hace, lo ejecuta y la mitad se detendrá y la otra mitad no. Si no se compila, se repite para siempre (while (true) {};). ¿Esto no sesgaría la relación de detención / no detención? Leí a Li y Vitanyi la semana pasada, pero tendré que volver a leerlo;).
Alexandre H. Tremblay
Sospecho que la codificación unaria en la forma en que sugieres no sería admisible . Por ejemplo, en la codificación unaria (incluso la simple) no podrá componer programas con una sobrecarga constante. Verificaría a Li y Vitanyi para obtener una lista de propiedades que una computadora universal admisible tiene que satisfacer. Esto sería parte de la definición de la complejidad de Kolmogorov.
Yuval Filmus
Hola, ¿me puede recomendar la sección de Li y Vitanyi donde esta información está presente? Leí el libro por segunda vez y no pude encontrarlo.
Alexandre H. Tremblay
0

Su error está en la siguiente línea:

Si Ω es realmente normal, entonces significa que exactamente el 50% de los programas se detienen y exactamente el 50% no.

No Eso no es lo que significa "normal". O, para decirlo de otra manera: definirre0 0(norte) ser el número de bits que son un 0, en el primer norte bits de la expansión de base-2 de Ω. Diciendo queΩes normal implica que

limnortere0 0(norte)norte=1/ /2)

En otras palabras, "normal" es una noción asintótica. Significa que a medida que miras lo suficiente en los pedazos deΩ, en promedio, aproximadamente la mitad de ellos serán ceros. (Del mismo modo, aproximadamente la mitad con be 1's).

Sin embargo, esto no dice nada acerca de los primeros bits de Ω. Por ejemplo, no hay implicación de que la expansión binariaΩ comienza como 0.01 ... o en cualquier otra cosa, y no hay implicación de que Ω está cerca de 1/2. Ωpuede estar cerca de 0, o cerca de 1, o en cualquier punto intermedio; eso no contradice ser normal, y ser normal no implica nada sobre qué tan grandeΩ es.

DW
fuente
Tenga en cuenta que Ωes la probabilidad de que una máquina aleatoria de Turing se detenga bajo una distribución muy extraña. El OP está interesado en la distribución uniforme (en cierto sentido limitante). Entonces nadie insinúa queΩestá cerca de 1/2.
Yuval Filmus