Teoria informacji/TI Ćwiczenia 14: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Niwinski (dyskusja | edycje)
m Zastępowanie tekstu – „<math> ” na „<math>”
 
(Nie pokazano 11 wersji utworzonych przez 3 użytkowników)
Linia 2: Linia 2:




{{cwiczenie|1 [Nieobliczalność <math>\Omega </math>]|Ćwiczenie 1|Liczbę rzeczywistą <math>r \in [0,1] </math>
{{cwiczenie|1 [Nieobliczalność <math>\Omega</math>]|Ćwiczenie 1|Liczbę rzeczywistą <math>r \in [0,1]</math>
nazwiemy ''obliczalną'' (''rekurencyjną''), jeśli istnieje algorytm (maszyna Turinga), który dla danej
nazwiemy ''obliczalną'' (''rekurencyjną''), jeśli istnieje algorytm (maszyna Turinga), który dla danej
liczby <math>n </math> oblicza <math>n </math>-tą cyfrę w rozwinięciu binarnym liczby
liczby <math>n</math> oblicza <math>n</math>-tą cyfrę w rozwinięciu binarnym liczby
<math>r </math>.
<math>r</math>.


Liczbę <math>r </math> nazwiemy ''rekurencyjnie aproksymowalną'' jesli jest granicą obliczalnego
Liczbę <math>r</math> nazwiemy ''rekurencyjnie aproksymowalną'', jeśli jest granicą obliczalnego
ciągu liczb wymiernych, tzn. istnieje funkcja obliczalna <math> f : N \to N \times N </math>, taka że
ciągu liczb wymiernych, tzn. istnieje funkcja obliczalna <math>f : N \to N \times N</math>, taka że
<center><math>
<center><math>
r = \lim_{n \to \infty } \frac{f(n) \downarrow_1}{f(n) \downarrow_2}
r = \lim_{n \to \infty } \frac{f(n) \downarrow_1}{f(n) \downarrow_2}
Linia 15: Linia 15:
: Dowiedź, że każda liczba rekurencyjna jest też rekurencyjnie aproksymowalna.
: Dowiedź, że każda liczba rekurencyjna jest też rekurencyjnie aproksymowalna.


: Dowiedź, że istnieją liczby rzeczywiste <math>r \in [0,1] </math>, które nie są rekurencyjnie aproksymowalne.
: Dowiedź, że istnieją liczby rzeczywiste <math>r \in [0,1]</math>, które nie są rekurencyjnie aproksymowalne.
 
}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">  
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">
Linia 22: Linia 24:
</div>
</div>


: Dowiedź, że liczby wymierne, algebraiczne, a także liczby <math>\pi </math> i <math>e </math> są rekurencyjne.
: Dowiedź, że liczby wymierne, algebraiczne, a także liczby <math>\pi</math> i <math>e</math> są rekurencyjne.
 
: Dowiedź, że stała Chaitina <math>\Omega</math> jest rekurencyjnie aproksymowalna (niezależnie od wyboru maszyny uniwersalnej).


: Dowiedź, że stała Chaitina <math>\Omega </math> jest rekurencyjnie aproksymowalna (niezależnie od wyboru maszyny uniwersalnej).
: Dowiedź, że stała Chaitina <math>\Omega</math> nie jest rekurencyjna.


: Dowiedź, że stała Chaitina <math>\Omega </math> nie jest rekurencyjna.
<div class="mw-collapsible mw-made=collapsible mw-collapsed">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">  
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">
Linia 32: Linia 35:
</div>
</div>
</div>
</div>
}}
 
 
 
 
{{definicja|[Test]|test|Funkcję <math>\delta : \{ 0,1 \}^* \to N</math> nazwiemy '''testem''', jeśli dla każdych <math>m,n</math>
<center><math>
\frac{|\{ w \in \{ 0,1 \}^n : \delta (w) \geq m \} |}{2^n} \leq \frac{1}{2^m}
</math></center>}}
 
Zauważmy, że dla każdego <math>w</math> istnieje co najwyżej skończenie wiele <math>m</math> takich, że <math>\delta (w) \geq m</math>.  Intuicyjnie, funkcja <math>\delta (w)</math> wskazuje, jak bardzo słowo <math>w</math> "odbiega od normy". Warunek stwierdza, że takich ciągów nie może być zbyt wiele (w przeciwnym razie stanowiłyby normę).


{{cwiczenie|2 [Uniwersalny test Martina-Lofa]|Ćwiczenie 2|
{{cwiczenie|2 [Uniwersalny test Martina-Lofa]|Ćwiczenie 2|
{{definicja|[Test]|test|Funkcję <math>\delta : \{ 0,1 \}^* \to N </math> nazwiemy '''testem''', jesli dla każdych <math>m,n, </math>
 
Niech <math>Z = \{ \delta_0 , \delta_1 , \ldots  \}</math> będzie przeliczalną rodziną testów.
 
:Dowiedź, że funkcja  określona wzorem
<center><math>
<center><math>
\frac{|\{ w \in \{ 0,1 \}^n : \delta (w) \geq m \} |}{2^n} \leq \frac{1}{2^m}
\delta^Z (w) = \max \{ \delta_n (w) - n : n \geq 0 \}
</math></center>
</math></center>
Ponadto zakładamy, że istnieje algorytm częsciowy, który dla każdej pary <math>w,m, </math> takiej, że
jest testem.
<math> \delta (w) \geq m, </math> zatrzymuje się i daje odpowiedź '''TAK''', natomiast gdy <math> \delta (w) < m, </math> algorytm daje odpowiedź '''NIE''' lub się zapętla. (Natomiast funkcja <math>\delta </math> nie musi być obliczalna.}}
 
Interesujący jest zwłaszcza przypadek, kiedy funkcja <math>\delta^Z</math> sama należy do rodziny <math>Z</math>.
 
Test <math>\delta</math> nazwiemy '''efektywnym''', jeśli istnieje maszyna Turinga <math>M_{\delta }</math>, która przyjmując na wejściu  parę <math>\langle w,m \rangle</math>  
 
  jeśli <math>\delta (w) \geq m</math> zatrzymuje się i daje odpowiedź '''TAK''';
  jesli <math>\delta (w) < m</math> daje odpowiedź '''NIE''', lub się zapętla.  
 
Innymi słowy, zbiór <math>\{ \langle w,m \rangle : \delta (w) \geq m \}</math> jest rekurencyjnie przeliczalny, chociaż funkcja <math>\delta</math> nie musi być rekurencyjna.  
 
Zauważmy, że rodzina <math>E</math> wszystkich testów efektywnych jest przeliczalnie wiele. (Dlaczego ?)
}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
<div class="mw-collapsible-content" style="display:none">
Maszyna <math>M_{\delta }</math> jednoznacznie wyznacza test
<math>\delta (w) = \max \{ m: \delta (w) \geq m \}</math>
a maszyn Turinga jest oczywiście przeliczalnie wiele.
</div>
</div>


Zauważmy, że dla każdego


: Dowiedź, że istnieje
:Dowiedź, że <math>\delta^E</math> jest testem efektywnym.
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
<div class="mw-collapsible-content" style="display:none">
Pokaż najpierw, że istnieje rekurencyjna numeracja wszystkich testów, tzn. maszyna Turinga <math>T</math>, taka że zbiór jej wartości <math>\{ T(x) : x \in \{ 0,1 \}^* \}</math> jest dokładnie zbiorem kodów <math>\{ \langle M_{\delta } \rangle :  \delta \mbox{  jest testem } \}</math>.
</div>
</div>

Aktualna wersja na dzień 22:12, 11 wrz 2023

Ćwiczenia

Ćwiczenie 1 [Nieobliczalność Ω]

Liczbę rzeczywistą r[0,1]

nazwiemy obliczalną (rekurencyjną), jeśli istnieje algorytm (maszyna Turinga), który dla danej liczby n oblicza n-tą cyfrę w rozwinięciu binarnym liczby r.

Liczbę r nazwiemy rekurencyjnie aproksymowalną, jeśli jest granicą obliczalnego ciągu liczb wymiernych, tzn. istnieje funkcja obliczalna f:NN×N, taka że

r=limnf(n)1f(n)2
Dowiedź, że każda liczba rekurencyjna jest też rekurencyjnie aproksymowalna.
Dowiedź, że istnieją liczby rzeczywiste r[0,1], które nie są rekurencyjnie aproksymowalne.
Dowiedź, że liczby wymierne, algebraiczne, a także liczby π i e są rekurencyjne.
Dowiedź, że stała Chaitina Ω jest rekurencyjnie aproksymowalna (niezależnie od wyboru maszyny uniwersalnej).
Dowiedź, że stała Chaitina Ω nie jest rekurencyjna.



Definicja [Test]

Funkcję δ:{0,1}*N nazwiemy testem, jeśli dla każdych m,n
|{w{0,1}n:δ(w)m}|2n12m

Zauważmy, że dla każdego w istnieje co najwyżej skończenie wiele m takich, że δ(w)m. Intuicyjnie, funkcja δ(w) wskazuje, jak bardzo słowo w "odbiega od normy". Warunek stwierdza, że takich ciągów nie może być zbyt wiele (w przeciwnym razie stanowiłyby normę).

Ćwiczenie 2 [Uniwersalny test Martina-Lofa]

Niech Z={δ0,δ1,} będzie przeliczalną rodziną testów.

Dowiedź, że funkcja określona wzorem
δZ(w)=max{δn(w)n:n0}

jest testem.

Interesujący jest zwłaszcza przypadek, kiedy funkcja δZ sama należy do rodziny Z.

Test δ nazwiemy efektywnym, jeśli istnieje maszyna Turinga Mδ, która przyjmując na wejściu parę w,m

 jeśli δ(w)m zatrzymuje się i daje odpowiedź TAK;
 jesli δ(w)<m daje odpowiedź NIE, lub się zapętla. 

Innymi słowy, zbiór {w,m:δ(w)m} jest rekurencyjnie przeliczalny, chociaż funkcja δ nie musi być rekurencyjna.

Zauważmy, że rodzina E wszystkich testów efektywnych jest przeliczalnie wiele. (Dlaczego ?)


Dowiedź, że δE jest testem efektywnym.