Teoria informacji/TI Wykład 14: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Niwinski (dyskusja | edycje)
Niwinski (dyskusja | edycje)
Linia 63: Linia 63:


Jakkolwiek w przyszłości wykluczymy taką możliwość (będzie to łatwa konsekwencja własności (3)),
Jakkolwiek w przyszłości wykluczymy taką możliwość (będzie to łatwa konsekwencja własności (3)),
w tej chwili musimy jeszcze wziąć ją pod uwagę.
w tej chwili musimy jeszcze wziąć ją pod uwagę. Otóż bez zmniejszenia ogólności możemy założyć, że
<math> \Omega </math> dana jest w postaci (a). Istotnie, gdybyśmy mieli maszynę <math> T </math> dla tego przypadku,
to łatwo moglibyśmy ją zmodyfikować do maszyny <math> T' </math>, która radziłaby sobie z przypadkiem (b).
Maszyna <math> T' </math> działałaby tak samo jak maszyna <math> T </math>, z tym że począwszy od
<math>k+1 </math>-szej cyfry <math> \Omega </math>, ,,widziałaby na odwrót", tzn. 0 traktowałaby jak 1 a
1 jak 0.


Niech <center><math>
{\cal S} = \{ n : (\exists M) \, M(\varepsilon ) \downarrow \wedge \, | \langle M \rangle | = n \}
</math></center>
i niech
<center><math>
{\cal S}_n  = {\cal S} \cap \{ 0,1,\ldots , n \}
</math></center>


Jeśli wybierzemy wariant (a), lub jeśli <math> \Omega </math> nie jest dwójkowo wymierna, to liczba
wyznaczona przez pierwszych <math> n </math>  cyfr <math> \Omega </math> przedstawia się
<center><math>
0. \omega_1 \omega_2 \ldots \omega_n =   
\sum_{i \in {\cal S}_n  } 2^{ - i}         
</math></center>
(pamiętamy, że <math> \sum_{i = n+1}^{\infty } 2^{-i} = \frac{1}{2^n} </math>).


Ad 3.}}
Ad 3.}}

Wersja z 21:17, 23 sie 2006

Stała Chaitina

Tak jak w poprzednim wykładzie, ustalamy jakieś bezprefiksowe kodowanie maszyn Turinga (przypominamy, że przykład takiego kodowania można znaleźć w 1 wykładzie z Teorii złożoności) oraz maszynę uniwersalną U. Będziemy pisać M(v) na oznaczenie własności maszyna M zatrzymuje się startując ze słowa wejściowego v.

Definicja [Stała Chaitina]

Stałą Chaitina określamy jako sumę szeregu
Ω=U(v)2|v|=M(ε)2|M|


Stała Chaitina jest czasem przedstawiana jako prawdopodobieństwo, że losowo wybrany program się zatrzymuje (ma to miejsce przy pewnym wyborze kodowania i miary prawdopodobieństwa). Oczywiście konkretna wartość Ω zależy od wyboru kodowania i maszyny uniwersalnej, ale jej istotne własności od tego nie zależą.

Twierdzenie

Stała Chaitina ma następujące własności.

(1) Ω<1.

(2) Istnieje maszyna Turinga T z dodatkową taśmą nieskończoną, na której wypisane są kolejne cyfry binarnego rozwinięcia Ω, która dla danego kodu M maszyny M odpowiada na pytanie, czy M(ε).

(3) Istnieje stała c taka, że

KU(ω1ωn)nc,
gdzie ω1ωn oznacza pierwszych n bitów liczby Ω.


Punkt (2) oznacza, że ,,znając" stałą Chaitina potrafilibyśmy rozstrzygać problem stopu, natomiast (3) mówi nam, że z dokładnością do stałej, Ω jest niekompresowalna.

Dowód

Ad 1. Wykażemy, że (*)

M2|M|1

(tu sumowanie rozciąga się na wszystkie maszyny Turinga, a nie tylko te, dla których M(ε)). Istotnie, przy bezprefikowsym kodowaniu, dla każdego skończonego zbioru maszyn , odpowiedni zbiór kodów tworzy kod bezprefiksowy, a zatem z nierówności Krafta spełnia nierówność M2|M|1, co po przejściu do supremum daje nierówność (*). Ponieważ niewątpliwie istnieje maszyna, która nie zatrzymuje się na pustej taśmie, Ω jest ostro mniejsza od lewej strony (*).

Ad 2. Zanim opiszemy konstrukcję maszyny T, zróbmy pewne obserwacje na temat liczby Ω. Znanym problemem w dowodach własności liczb rzeczywistych jest, że a priori liczba może mieć dwie różne reprezentacje (w szczególności binarne). Działoby się tak, gdyby liczba Ω była dwójkowo wymierna, tzn.

(a) Ω=0.ω1ω2ωk0111

(b) Ω=0.ω1ω2ωk1000

Jakkolwiek w przyszłości wykluczymy taką możliwość (będzie to łatwa konsekwencja własności (3)), w tej chwili musimy jeszcze wziąć ją pod uwagę. Otóż bez zmniejszenia ogólności możemy założyć, że Ω dana jest w postaci (a). Istotnie, gdybyśmy mieli maszynę T dla tego przypadku, to łatwo moglibyśmy ją zmodyfikować do maszyny T, która radziłaby sobie z przypadkiem (b). Maszyna T działałaby tak samo jak maszyna T, z tym że począwszy od k+1-szej cyfry Ω, ,,widziałaby na odwrót", tzn. 0 traktowałaby jak 1 a 1 jak 0.

Niech
𝒮={n:(M)M(ε)|M|=n}

i niech

𝒮n=𝒮{0,1,,n}

Jeśli wybierzemy wariant (a), lub jeśli Ω nie jest dwójkowo wymierna, to liczba wyznaczona przez pierwszych n cyfr Ω przedstawia się

0.ω1ω2ωn=i𝒮n2i

(pamiętamy, że i=n+12i=12n).

Ad 3.