opora
KAPITOLA 5. TURINGOVY STROJE 107 ∆ x R x y L ∆ x z y z Příklad 5.1.8 Stroj dekrementující kladné číslo zapsané ve dvojkové soustavě: R ∆ L 1 0 1 0 0L ∆ R 0 S L ∆ 1 1 0L 5.2 Turingovy stroje jako akceptory jazyků 5.2.1 Jazyk přijímaný TS Turingův stroj normálně (přechodem do stavu q F ) zastaví jen pro některá slova množiny Σ ∗ zapsaná na pásce v počáteční konfiguraci. Každý stroj tedy jednoznačně vymezuje množinu slov ze Σ ∗ , se kterými na pásce v počáteční konfiguraci normálně zastaví – jde o jazyk přijímaný Turingovým strojem. Výpočetní problémy je možno nahlížet jako jazyky. Třída jazyků, pro které existuje Turingův stroj, který je přijímá, vlastně reprezentuje třídu všech vypočítatelných problémů. Definice 5.2.1 1. Řetězec w ∈ Σ ∗ je přijat TS M = (Q, Σ, Γ, δ, q 0 , q F ), jestliže M při aktivaci z počáteční konfigurace pásky ∆w∆... a počátečního stavu q 0 zastaví přechodem do koncového stavu q F , tj. (q 0 , ∆w∆ ω , 0) ∗ ⊢ M (q F , γ, n) pro nějaké γ ∈ Γ ∗ a n ∈ N. 2. Množinu L(M) = {w | w je přijat TS M} ⊆ Σ ∗ nazýváme jazyk přijímaný TS M. Příklad 5.2.1 Pro níže uvedený TS M platí L(M) = {x n y n z n | n ≥ 0}: # R x y,z R S L x L # y x y S L y z y R R ∆,z ∆,z ∆,x ∆,x z S L z x,y ∆ L #
KAPITOLA 5. TURINGOVY STROJE 108 Stroj pracuje takto: x n y n z n → x n−1 y n z n → x n−1 y n−1 z n → ...ε. Stroj akceptující stejný jazyk, jehož přechodová relace je definována tabulkou: M = (Q, Σ, Γ, δ, q 0 , q F ) Q = {q 0 , q 1 , q 2 , q 3 , q F } Σ = {x, y, z} Γ = {x, y, z, ×, ∆} δ ∆ x y z × q 0 q 1 , R q 1 q F q 2 , × q 1 , R q 2 q 2 , R g 3 , × q 2 , R q 3 q 3 , R q 4 , × q 3 , R q 4 q 1 , R q 4 , L q 4 , L q 4 , L q 4 , L Stroj si postupně škrtá (symbolem ×) po jednom od každého ze symbolů x, y, z. Ve stavu q 1 hledá x, poté ve stavu q 2 y, a následně ve stavu q 3 z. Ve stavu q 4 se vrací na začátek slova, kde začne vyškrtával další trojici. Akceptuje, jen pokud je slovo prázdné nebo pokud se mu podařilo jej po trojicích symbolů celé proškrtat. 5.3 Modifikace TS Prozkoumáme několik způsobů rozšíření možností Turingova stroje. Protože je ale původní TS velmi robustní, ani zdánlivě obecnější modifikace nás nedovedou k mechanismům s větší výpočetní silou – třída jazyků akceptovaných následujícími modifikovanými Turingovými stroji zůstane stejná. 5.3.1 Přijímání zvláštních konfigurací pásky Někdy může být vhodné, aby Turingův Stroj oznámil korektní ukončení výpočtu jinak, a to např. zapsáním informace o výsledku výpočtu na pásku. Můžeme přijetí řetězce TS definovat tak, že TS začíná s konfigurací pásky ∆w∆... a zastaví s konfigurací pásky ∆Y ∆..., Y ∈ Γ \ Σ, (Y značí Yes). Věta 5.3.1 Máme-li TS M, který přijímá L(M) přechodem do q F , můžeme vždy sestrojit stroj M ′′ , který bude přijímat L(M) zastavením s konfigurací pásky ∆Y ∆.... Důkaz. (Idea) M’’: R ∆ S R R*L ∆ L#R M’ R * # ∆L # ∆RYL • M ′′ začíná s páskou #∆w ∗ ∆.... • M ′ sestrojíme doplněním M s množinou stavů Q o přechody, které řeší nájezd na ∗ a #: 1. ∀q ∈ Q : δ(q, #) = (q, L) – „zajištění přepadnutí“ (abnormálního ukončení), ke kterému by původně došlo.
- Page 57 and 58: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 59 and 60: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 61 and 62: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 63 and 64: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- 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: KAPITOLA 5. TURINGOVY STROJE 106 L:
- Page 111 and 112: KAPITOLA 5. TURINGOVY STROJE 110 p
- Page 113 and 114: KAPITOLA 5. TURINGOVY STROJE 112
- Page 115 and 116: KAPITOLA 5. TURINGOVY STROJE 114 -
- Page 117 and 118: KAPITOLA 5. TURINGOVY STROJE 116 5.
- 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
KAPITOLA 5. TURINGOVY STROJE 108<br />
Stroj pracuje takto: x n y n z n → x n−1 y n z n → x n−1 y n−1 z n → ...ε.<br />
Stroj akceptující stejný jazyk, jehož přechodová relace je definována tabulkou:<br />
M = (Q, Σ, Γ, δ, q 0 , q F )<br />
Q = {q 0 , q 1 , q 2 , q 3 , q F }<br />
Σ = {x, y, z}<br />
Γ = {x, y, z, ×, ∆}<br />
δ ∆ x y z ×<br />
q 0 q 1 , R<br />
q 1 q F q 2 , × q 1 , R<br />
q 2 q 2 , R g 3 , × q 2 , R<br />
q 3 q 3 , R q 4 , × q 3 , R<br />
q 4 q 1 , R q 4 , L q 4 , L q 4 , L q 4 , L<br />
Stroj si postupně škrtá (symbolem ×) po jednom od každého ze symbolů x, y, z. Ve<br />
stavu q 1 hledá x, poté ve stavu q 2 y, a následně ve stavu q 3 z. Ve stavu q 4 se vrací<br />
na začátek slova, kde začne vyškrtával další trojici. Akceptuje, jen pokud je slovo<br />
prázdné nebo pokud se mu podařilo jej po trojicích symbolů celé proškrtat.<br />
5.3 Modifikace TS<br />
Prozkoumáme několik způsobů rozšíření možností Turingova stroje. Protože je<br />
ale původní TS velmi robustní, ani zdánlivě obecnější modifikace nás nedovedou<br />
k mechanismům s větší výpočetní silou – třída jazyků akceptovaných následujícími<br />
modifikovanými Turingovými stroji zůstane stejná.<br />
5.3.1 Přijímání zvláštních konfigurací pásky<br />
Někdy může být vhodné, aby Turingův Stroj oznámil korektní ukončení výpočtu<br />
jinak, a to např. zapsáním informace o výsledku výpočtu na pásku.<br />
Můžeme přijetí řetězce TS definovat tak, že TS začíná s konfigurací pásky<br />
∆w∆... a zastaví s konfigurací pásky ∆Y ∆..., Y ∈ Γ \ Σ, (Y značí Yes).<br />
Věta 5.3.1 Máme-li TS M, který přijímá L(M) přechodem do q F , můžeme vždy<br />
sestrojit stroj M ′′ , který bude přijímat L(M) zastavením s konfigurací pásky<br />
∆Y ∆....<br />
Důkaz. (Idea)<br />
M’’:<br />
R ∆ S R R*L ∆ L#R M’ R *<br />
#<br />
∆L<br />
#<br />
∆RYL<br />
• M ′′ začíná s páskou #∆w ∗ ∆....<br />
• M ′ sestrojíme doplněním M s množinou stavů Q o přechody, které řeší nájezd<br />
na ∗ a #:<br />
1. ∀q ∈ Q : δ(q, #) = (q, L) – „zajištění přepadnutí“ (abnormálního<br />
ukončení), ke kterému by původně došlo.