Teoria informacji/TI Ćwiczenia 14: Różnice pomiędzy wersjami
m Zastępowanie tekstu – „<math> ” na „<math>” |
|||
(Nie pokazano 5 wersji utworzonych przez 2 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>r</math>. | ||
Liczbę <math>r | 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 | : 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''', | |||
{{definicja|[Test]|test|Funkcję <math>\delta : \{ 0,1 \}^* \to N</math> nazwiemy '''testem''', jeśli dla każdych <math>m,n</math> | |||
<center><math> | <center><math> | ||
\frac{|\{ w \in \{ 0,1 \}^n : \delta (w) \geq m \} |}{2^n} \leq \frac{1}{2^m} | \frac{|\{ w \in \{ 0,1 \}^n : \delta (w) \geq m \} |}{2^n} \leq \frac{1}{2^m} | ||
</math></center>}} | </math></center>}} | ||
Zauważmy, że dla każdego <math>w | 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| | ||
Niech <math>Z = \{ \delta_0 , \delta_1 , \ldots \} </math> będzie przeliczalną rodziną testów. | Niech <math>Z = \{ \delta_0 , \delta_1 , \ldots \}</math> będzie przeliczalną rodziną testów. | ||
:Dowiedź, że funkcja określona wzorem | :Dowiedź, że funkcja określona wzorem | ||
Linia 53: | Linia 56: | ||
jest testem. | jest testem. | ||
Interesujący jest zwłaszcza przypadek, kiedy funkcja <math>\delta^Z </math> sama należy do rodziny <math>Z </math>. | 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 | 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 | jeśli <math>\delta (w) \geq m</math> zatrzymuje się i daje odpowiedź '''TAK'''; | ||
jesli <math> \delta (w) < m | 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. | 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 ?) | 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 mw-made=collapsible mw-collapsed"> | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Maszyna <math>M_{\delta }</math> jednoznacznie wyznacza test | Maszyna <math>M_{\delta }</math> jednoznacznie wyznacza test | ||
<math> \delta (w) = \max \{ m: \delta (w) \geq m \} | <math>\delta (w) = \max \{ m: \delta (w) \geq m \}</math> | ||
a maszyn Turinga jest oczywiście przeliczalnie wiele. | a maszyn Turinga jest oczywiście przeliczalnie wiele. | ||
</div> | </div> | ||
Linia 72: | Linia 76: | ||
:Dowiedź, że <math>\delta^E </math> jest testem efektywnym. | :Dowiedź, że <math>\delta^E</math> jest testem efektywnym. | ||
<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"> | ||
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>. | 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> | ||
</div> | </div> | ||
Aktualna wersja na dzień 22:12, 11 wrz 2023
Ćwiczenia
Ćwiczenie 1 [Nieobliczalność ]
nazwiemy obliczalną (rekurencyjną), jeśli istnieje algorytm (maszyna Turinga), który dla danej liczby oblicza -tą cyfrę w rozwinięciu binarnym liczby .
Liczbę nazwiemy rekurencyjnie aproksymowalną, jeśli jest granicą obliczalnego ciągu liczb wymiernych, tzn. istnieje funkcja obliczalna , taka że
- Dowiedź, że każda liczba rekurencyjna jest też rekurencyjnie aproksymowalna.
- Dowiedź, że istnieją liczby rzeczywiste , które nie są rekurencyjnie aproksymowalne.
- Dowiedź, że liczby wymierne, algebraiczne, a także liczby i 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]
Zauważmy, że dla każdego istnieje co najwyżej skończenie wiele takich, że . Intuicyjnie, funkcja wskazuje, jak bardzo słowo "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 będzie przeliczalną rodziną testów.
- Dowiedź, że funkcja określona wzorem
jest testem.
Interesujący jest zwłaszcza przypadek, kiedy funkcja sama należy do rodziny .
Test nazwiemy efektywnym, jeśli istnieje maszyna Turinga , która przyjmując na wejściu parę
jeśli zatrzymuje się i daje odpowiedź TAK; jesli daje odpowiedź NIE, lub się zapętla.
Innymi słowy, zbiór jest rekurencyjnie przeliczalny, chociaż funkcja nie musi być rekurencyjna.
Zauważmy, że rodzina wszystkich testów efektywnych jest przeliczalnie wiele. (Dlaczego ?)
- Dowiedź, że jest testem efektywnym.