Segundo esta fonte, a constante Chaitin é normal.
Cada probabilidade de parada é um número real normal e transcendental que não é computável, o que significa que não há algoritmo para calcular seus dígitos. De fato, cada probabilidade de parada é aleatória de Martin-Löf, o que significa que não existe nenhum algoritmo capaz de adivinhar com precisão seus dígitos.
Além disso, a definição de normal é que cada dígito ocorre com igual probabilidade . E que cada dueto de dígitos ocorre com probabilidade 1 / b ^ 2 e todos os trigêmeos ocorrem com probabilidade 1 / b ^ 3 e assim por diante.
O ômega de Chaitin é calculado via
Escrevendo em binário, obtemos uma lista de 0 e 1. Por exemplo,
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 a posição de cada bit corresponde ao estado de parada do programa de comprimento correspondente ao bit.
Aqui está o que eu estou lutando com
Se é realmente normal, significa que exatamente 50% dos programas são interrompidos e exatamente 50% não. Isso parece muito contra-intuitivo.
Por exemplo, suponha que eu gere programas java concatenando aleatoriamente caracteres únicos. A maioria deles, acho que mais de 99,99% nem compilaria. Isso não implica que pelo menos 99,99% deles não parem? Como justificamos que exatamente metade irá parar e exatamente a metade não, em virtude de ser normal.
Ou a wikipedia está incorreta sobre ser normal?
fonte
Respostas:
Em contraste com o seu exemplo, a constante de Chaitin não é definida da seguinte maneira:
Em vez disso, existe um conjunto de programas permitidos que não contém prefixos (nenhuma string é o prefixo de outra string). Cada um dos programas em é legal (isso nega o seu exemplo de Java). Se os programas são codificação em unário, então é realmente o caso que o º programa tem comprimento , em seguida, a sua definição de funciona. Mas para outras codificações, a definição de éΠ⊆{0,1}∗ Π n n Ω Ω
A constante de Chaitin é algoritmicamente aleatória : a complexidade (prefixo) de Kolmogorov dos primeiros bits é . Para mostrar isso, observe primeiro que , os primeiros bits de , são suficientes para determinar se um programa de comprimento (na codificação ) é interrompido ou não. De fato, como uma fração, . Execute todos os programas em paralelo e, sempre que parar, adicione a algum contador (inicializado em zero). Eventualmente, (desden n−O(1) Ωn n Ω n Π Ωn≤Ω<Ωn+2−n p 2−|p| C C≥Ωn C→Ω de baixo). Nesse ponto, se o programa de entrada de comprimento não parar, você saberá que ele não será interrompido, pois caso contrário .n Ω≥C+2−n≥Ωn+2−n
Dado isso, suponha que, para alguns e infinitamente muitos , você possa calcular usando bits. Para cada um desses , é possível encontrar uma sequência cuja complexidade de Kolmogorov seja maior que , considerando a saída de todos os programas de duração de no máximo . Para suficientemente grande , o resultado é um programa de comprimento no máximo para computar a string cuja complexidade de Kolmogorov é maior que . Essa contradição prova que, para alguns , a complexidade Kolmogorov de é pelo menos .K>0 n Ωn n−K n n n K n n K Ωn n−K
A aleatoriedade algorítmica de implica, em particular, que a frequência de 0s e 1s em sua expansão binária tende a 1/2. De fato, suponha que, para alguns , existam infinitamente muitos tais que a fração de 1s em seja no máximo . Como existem apenas no máximo seqüências com no máximo muitos 1s, podemos compactar no tamanho (a constante depende de pois o programa precisa saberΩ ϵ>0 n Ωn 1/2−ϵ 2h(1/2−ϵ)n 1/2−ϵ Ωn h(1/2−ϵ)n+2logn+Cϵ Cϵ ϵ ϵ ) No entanto, isso é , contradizendo a aleatoriedade algorítmica de .n−ω(1) Ω
fonte
Seu erro está na seguinte linha:
Não. Não é isso que "normal" significa. Ou, para dizer de outra forma: defina como o número de bits 0, nos primeiros bits da expansão da base-2 de . Dizer que é normal implica qued0(n) n Ω Ω
Em outras palavras, "normal" é uma noção assintótica. Isso significa que, quando você olhar o suficiente para os bits de , em média cerca de metade deles será zero. (Da mesma forma, cerca da metade com 1).Ω
No entanto, isso não diz nada sobre os primeiros bits do . Por exemplo, não há implicações de que a expansão binária comece como 0,01 ... ou qualquer outra coisa - e não há implicações de que esteja próximo de 1/2. pode estar próximo de 0 ou próximo de 1 ou em qualquer outro local; isso não contradiz ser normal, e ser normal não implica nada sobre o tamanho do .Ω Ω Ω Ω Ω
fonte