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 76: Linia 76:


Jeśli wybierzemy wariant (a), lub jeśli <math> \Omega </math> nie jest dwójkowo wymierna, to dla każdego
Jeśli wybierzemy wariant (a), lub jeśli <math> \Omega </math> nie jest dwójkowo wymierna, to dla każdego
<math> n </math> istnieje skończony podzbiór  <math> {\cal S}_n </math> zbioru  <math> {\cal S} </math>,
<math> n </math> istnieje '''skończony''' podzbiór  <math> {\cal S}_n </math> zbioru  <math> {\cal S} </math>,
taki że liczba wyznaczona przez pierwszych <math> n </math>  cyfr <math> \Omega </math> przedstawia się
taki że liczba wyznaczona przez pierwszych <math> n </math>  cyfr <math> \Omega </math> przedstawia się


Linia 91: Linia 91:
niech <math> n = | \langle M \rangle | </math>.
niech <math> n = | \langle M \rangle | </math>.
Maszyna <math> T </math> symuluje działanie <math> M </math> na <math> \varepsilon </math>
Maszyna <math> T </math> symuluje działanie <math> M </math> na <math> \varepsilon </math>
(tzn. na pustej taśmie), a także  
(tzn. na pustej taśmie), a także przegląda kolejne kody maszyn Turinga
symuluje działanie <math> M' </math> na <math> \varepsilon </math> dla wszystkich maszyn <math> M' </math>,
<math>\langle  M' \rangle </math>, powiedzmy w porządku wojskowym, i
takich, że  <math> \langle M' \rangle \leq n </math> (np. korzystając z maszyny uniwersalnej), w celu wyznaczenia zbioru <math>{\cal S}_n </math>. Oczywiście każda z tych maszyn może się zapętlić, dlatego <math> T </math>
symuluje działanie <math> M' </math> na <math> \varepsilon </math>.  
nie może ich symulować ,,po kolei"; zamiast tego wykonuje na przemian po jednej (kolejnej) instrukcji
Oczywiście każda z tych maszyn może się zapętlić, dlatego <math> T </math>
symulowanych maszyn. (Zauważmy na marginesie, żę metodę można stosować także wtedy, gdy zbiór symulowanych
nie symuluje ich ,,po kolei"; zamiast tego wykonuje na przemian po jednej (kolejnej) instrukcji
maszyn nie jest ''a priori'' ograniczony.
kolejnych symulowanych maszyn.  
 
Można to sobie wyobrazić jako ,,ruch zygzakowy'': jeśli przyjąć, że maszyny w porządku wojskowym tworzą
ciąg <math> M_0, M_1, M_2, \ldots </math>, a <math>{\cal W} (M_i) </math> oznacza
''wykonaj kolejną instrukcję maszyny <math> M_i </math>, to plan działania maszyny <math> T </math>
można przedstawić
<center><math>
{\cal W} (M_0 ) \, {\cal W} (M_1 ) \, {\cal W} (M_0 ) \, {\cal W} (M_1 ) \, {\cal W} (M_2 ) \,
\, {\cal W} (M_0 ) \, {\cal W} (M_1 ) \, {\cal W} (M_2 ) \,
{\cal W} (M_3) \, {\cal W} (M_0 ) \dots
</math></center>
 
W trakcie swojego obliczenia,
 
Zgodnie z powyższą oberwacją, w skończonym czasie jeden z dwóch przypadków ma miejsce.
 
(i) <math> T </math> stwierdza, że <math> M(\varepsilon )\downarrow </math>; wtedy daje odpowiedź
'''TAK'''.
 
 


Ad 3.}}
Ad 3.}}

Wersja z 22:47, 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
𝒮={M:M(ε)}.

Jeśli wybierzemy wariant (a), lub jeśli Ω nie jest dwójkowo wymierna, to dla każdego n istnieje skończony podzbiór 𝒮n zbioru 𝒮, taki że liczba wyznaczona przez pierwszych n cyfr Ω przedstawia się

0.ω1ω2ωn=M𝒮n2M

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

Opiszemy teraz działanie maszyny T. Jak zwykle w takich przypadkach, opiszemy algorytm, pozostawiając Czytelnikowi jego formalizację w języku maszyn Turinga. Jeśli na wejściu jest słowo nie będące kodem żadnej maszyny, T je odrzuca. Przypuśćmy, że na wejściu jest M; niech n=|M|. Maszyna T symuluje działanie M na ε (tzn. na pustej taśmie), a także przegląda kolejne kody maszyn Turinga M, powiedzmy w porządku wojskowym, i symuluje działanie M na ε. Oczywiście każda z tych maszyn może się zapętlić, dlatego T nie symuluje ich ,,po kolei"; zamiast tego wykonuje na przemian po jednej (kolejnej) instrukcji kolejnych symulowanych maszyn.

Można to sobie wyobrazić jako ,,ruch zygzakowy: jeśli przyjąć, że maszyny w porządku wojskowym tworzą ciąg M0,M1,M2,, a 𝒲(Mi) oznacza wykonaj kolejną instrukcję maszyny Mi, to plan działania maszyny T można przedstawić

𝒲(M0)𝒲(M1)𝒲(M0)𝒲(M1)𝒲(M2)𝒲(M0)𝒲(M1)𝒲(M2)𝒲(M3)𝒲(M0)

W trakcie swojego obliczenia,

Zgodnie z powyższą oberwacją, w skończonym czasie jeden z dwóch przypadków ma miejsce.

(i) T stwierdza, że M(ε); wtedy daje odpowiedź TAK.


Ad 3.