opora
KAPITOLA 5. TURINGOVY STROJE 115 5.4.2 Rozhodovací problémy Rozhodovací problém (decision problem) P může být chápán jako funkce f P s oborem hodnot {true, false} 4 . Rozhodovací problém je obvykle specifikován: • definičním oborem A P reprezentujícím množinu možných instancí problému (možných vstupů) a • podmnožinou B P ⊆ A P , B P = {p | f P (p) = true} instancí, pro které je hodnota f P rovna true. V teorii formálních jazyků používáme ke kódování jednotlivých instancí problémů řetězce nad vhodnou abecedou Σ. Pak je rozhodovací problém P přirozeně specifikován jazykem L p = {w ∈ Σ ∗ | w = code(p), p ∈ B P }, kde code : A P → Σ ∗ je injektivní funkce, která přiřazuje instancím problému příslušný řetězec (nezávisle na f P ). Příklad 5.4.1 Příklady rozhodovacích problémů: • P 1 – orientovaný graf je silně souvislý. • P 2 – dvě bezkontextové gramatiky jsou ekvivalentní. • P 3 – n je prvočíslo. Poznámka: Dále budeme o rozhodovacích problémech hovořit jednoduše jako o problémech. 5.4.3 Rozhodování problémů TS Definice 5.4.2 Nechť P je problém specifikovaný jazykem L P nad Σ. Problém P nazveme: • rozhodnutelný, pokud L P je rekurzívní jazyk, tj. existuje TS, který L P rozhoduje (přijme každý řetězec w ∈ L P a zamítne každý řetězec w ∈ Σ ∗ \ L P ), • nerozhodnutelný, když není rozhodnutelný, a • částečně rozhodnutelný, jestliže L P je rekurzívně vyčíslitelný jazyk, tj. existuje TS, který přijme každý řetězec w ∈ L P a každý řetězec w ∈ Σ ∗ \ L P zamítne, nebo je jeho výpočet na něm nekonečný. Poznámka: Z definice 8.2 plyne, že každý rozhodnutelný problém je současně částečně rozhodnutelný. Některé nerozhodnutelné problémy nejsou ale ani částečně rozhodnutelné. 5.5 TS a jazyky typu 0 Odvodíme důležitou korespondenci mezi gramatikami typu 0 a Turingovými stroji. Jazyky generované gramatikami typu 0 jsou totiž právě jazyky akceptované Turingovými stroji (rekurzivně vyčíslitelné). Ukážeme, jak pro každý TS sestrojit gramatiku typu 0, která generuje jazyk jím akceptovaný, a naopak jak pro každou gramatiku typu 0 strojit TS akceptující jazyk jí generovaný.
KAPITOLA 5. TURINGOVY STROJE 116 5.5.1 Jazyky přijímané TS jsou typu 0 Konfigurace TS je dána (1) stavem řízení, (2) obsahem pásky a (3) pozicí hlavy. Pro zápis konfigurace TS v řídícím stavu q a s konfigurací pásky ∆xyz∆... zavedeme konvenci [∆xqyz∆...]. Příklad 5.5.1 TS přijímající jazyk {x m y n | m ≥ 0, n > 0} konfigurací pásky ∆Y ∆ při počáteční konfiguraci pásky ∆w∆: s x/R y/R x/∆ y/∆ ∆/L q 0 ∆/R y/R ∆/L ∆/R ∆/Y Y/L p q r t u q F Posloupnost konfigurací při příjetí xxy: 1. [q 0 ∆xxy∆...] 2. [∆pxxy∆...] 3. [∆xpxy∆...] 4. [∆xxpy∆...] 5. [∆xxyq∆...] 6. [∆xxry∆...] 7. [∆xxs∆∆...] 8. [∆xrx∆∆...] 9. [∆xs∆∆∆...] 10. [∆rx∆∆∆...] 11. [∆s∆∆∆∆...] 12. [r∆∆∆∆∆...] 13. [∆t∆∆∆∆...] 14. [∆uY ∆∆∆...] 15. [q F ∆Y ∆∆∆...] Věta 5.5.1 Každý jazyk přijímaný TS (tj. každý rekurzívně vyčíslitelný jazyk) je jazykem typu 0. Důkaz. Nechť L = L(M) pro nějaký TS M = (Q, Σ, Γ, δ, q 0 , q F ). Sestrojíme gramatiku G = (N, Σ, P, S) typu 0 takovou, že L(G) = L(M). Gramatika G bude umožňovat vytvářet právě derivace odpovídající inverzi posloupnosti konfigurací TS M při přijetí libovolného řetězce w ∈ L(M): 1. N = {S} ∪ Q ∪ (Γ \ Σ) ∪ {[, ]} (předpokládáme, že všechny zde sjednocené množiny jsou po dvou disjunktní). 2. P je nejmenší množina obsahující následující pravidla: (a) S → [q f ∆Y ∆], (b) ∆] → ∆∆] – doplnění ∆, (c) qy → px, jestliže δ(p, x) = (q, y), (d) xq → px, jestliže δ(p, x) = (q, R), (e) qyx → ypx pro každé y ∈ Γ, jestliže δ(p, x) = (q, L), (f) [q 0 ∆ → ε, ∆∆] → ∆], ∆] → ε – zajištění [q 0 ∆w∆...∆] + ⇒ G w. Snadno se nyní nahlédne, že w ∈ L(M) právě tehdy, když existuje derivace S ⇒ G [q F ∆Y ∆] ⇒ G ... ⇒ G [q 0 ∆w∆...] ⇒ G ... ⇒ G w, a že L(G) = L(M). ✷ 4 Otázka s možnou odpovědí ano/ne.
- Page 65 and 66: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 67 and 68: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 69 and 70: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 71 and 72: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 73 and 74: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 75 and 76: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 77 and 78: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 79 and 80: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 81 and 82: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 83 and 84: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 85 and 86: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 87 and 88: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 89 and 90: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 91 and 92: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 93 and 94: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 95 and 96: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 97 and 98: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 99 and 100: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 101 and 102: Kapitola 5 Turingovy stroje Cílem
- Page 103 and 104: KAPITOLA 5. TURINGOVY STROJE 102 5.
- Page 105 and 106: KAPITOLA 5. TURINGOVY STROJE 104
- Page 107 and 108: KAPITOLA 5. TURINGOVY STROJE 106 L:
- Page 109 and 110: KAPITOLA 5. TURINGOVY STROJE 108 St
- Page 111 and 112: KAPITOLA 5. TURINGOVY STROJE 110 p
- Page 113 and 114: KAPITOLA 5. TURINGOVY STROJE 112
- Page 115: KAPITOLA 5. TURINGOVY STROJE 114 -
- Page 119 and 120: KAPITOLA 5. TURINGOVY STROJE 118 D
- Page 121 and 122: KAPITOLA 5. TURINGOVY STROJE 120 5.
- Page 123 and 124: KAPITOLA 5. TURINGOVY STROJE 122 5.
- Page 125 and 126: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 127 and 128: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 129 and 130: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 131 and 132: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 133 and 134: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 135 and 136: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 137 and 138: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 139 and 140: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 141 and 142: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 143 and 144: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 145 and 146: KAPITOLA 6. MEZE ROZHODNUTELNOSTI 1
- Page 147 and 148: KAPITOLA 7. SLOŽITOST 146 7.1.3 Sl
- Page 149 and 150: KAPITOLA 7. SLOŽITOST 148 Příkla
- Page 151 and 152: KAPITOLA 7. SLOŽITOST 150 • Napr
- Page 153 and 154: KAPITOLA 7. SLOŽITOST 152 7.2.4 Ne
- Page 155 and 156: KAPITOLA 7. SLOŽITOST 154 • Stro
- Page 157 and 158: KAPITOLA 7. SLOŽITOST 156 7.3.4 Uz
- Page 159 and 160: KAPITOLA 7. SLOŽITOST 158 Pokud pr
- Page 161 and 162: KAPITOLA 7. SLOŽITOST 160 7.5.1 Po
- Page 163 and 164: KAPITOLA 7. SLOŽITOST 162 7.5.4 V
- Page 165 and 166: KAPITOLA 7. SLOŽITOST 164 6. Uveď
KAPITOLA 5. TURINGOVY STROJE 115<br />
5.4.2 Rozhodovací problémy<br />
Rozhodovací problém (decision problem) P může být chápán jako funkce f P s oborem<br />
hodnot {true, false} 4 .<br />
Rozhodovací problém je obvykle specifikován:<br />
• definičním oborem A P reprezentujícím množinu možných instancí problému<br />
(možných vstupů) a<br />
• podmnožinou B P ⊆ A P , B P = {p | f P (p) = true} instancí, pro které je<br />
hodnota f P rovna true.<br />
V teorii formálních jazyků používáme ke kódování jednotlivých instancí problémů<br />
řetězce nad vhodnou abecedou Σ. Pak je rozhodovací problém P přirozeně<br />
specifikován jazykem L p = {w ∈ Σ ∗ | w = code(p), p ∈ B P }, kde code : A P →<br />
Σ ∗ je injektivní funkce, která přiřazuje instancím problému příslušný řetězec<br />
(nezávisle na f P ).<br />
Příklad 5.4.1 Příklady rozhodovacích problémů:<br />
• P 1 – orientovaný graf je silně souvislý.<br />
• P 2 – dvě bezkontextové gramatiky jsou ekvivalentní.<br />
• P 3 – n je prvočíslo.<br />
Poznámka: Dále budeme o rozhodovacích problémech hovořit jednoduše jako<br />
o problémech.<br />
5.4.3 Rozhodování problémů TS<br />
Definice 5.4.2 Nechť P je problém specifikovaný jazykem L P nad Σ. Problém P<br />
nazveme:<br />
• rozhodnutelný, pokud L P je rekurzívní jazyk, tj. existuje TS, který L P rozhoduje<br />
(přijme každý řetězec w ∈ L P a zamítne každý řetězec w ∈ Σ ∗ \ L P ),<br />
• nerozhodnutelný, když není rozhodnutelný, a<br />
• částečně rozhodnutelný, jestliže L P je rekurzívně vyčíslitelný jazyk, tj. existuje<br />
TS, který přijme každý řetězec w ∈ L P a každý řetězec w ∈ Σ ∗ \ L P<br />
zamítne, nebo je jeho výpočet na něm nekonečný.<br />
Poznámka: Z definice 8.2 plyne, že každý rozhodnutelný problém je současně<br />
částečně rozhodnutelný. Některé nerozhodnutelné problémy nejsou ale ani částečně<br />
rozhodnutelné.<br />
5.5 TS a jazyky typu 0<br />
Odvodíme důležitou korespondenci mezi gramatikami typu 0 a Turingovými stroji.<br />
Jazyky generované gramatikami typu 0 jsou totiž právě jazyky akceptované Turingovými<br />
stroji (rekurzivně vyčíslitelné). Ukážeme, jak pro každý TS sestrojit gramatiku<br />
typu 0, která generuje jazyk jím akceptovaný, a naopak jak pro každou gramatiku<br />
typu 0 strojit TS akceptující jazyk jí generovaný.