opora
KAPITOLA 5. TURINGOVY STROJE 113 Příklad 5.3.5 Sestrojíme dvoupáskový nedeterministický stroj, který bude akceptovat jazyk L = {ww R | kde w ∈ {x, y} ∗ }. Nedeterminismus zde využijeme k „uhádnutí“ poloviny vstupního slova. To znamená, že stroj nejprve čte slovo na první pásce a přečtené symboly zapisuje na druhou pásku. V určitém okamžiku stroj nedeterministicky přejde do stavu, kdy začne porovnávat obsah druhé pásky s dosud nepřečteným vstupem na první pásce (na druhé pásce se pohybuje zprava doleva). Budeme předpokládat, že v počáteční konfiguraci mají pásky tvary: – první páska: ∆w∆∆ . . . – druhá páska: ∆∆ . . . Jelikož stroj je nedeterministický, jeho přechodová funkce δ vrací množinu stavů. To znamená, že v jednotlivých poličkách tabulky pro přechodovou funkci může být víc než jedna položka. Stroj bude vypadat takto: M = {Q, Σ, Γ 1 , Γ 2 , δ, q 0 , q F } kde: Q = {q 0 , q 1 , q 2 , q F } Σ = {x, y} Γ 1 = {x, y, ∆} Γ 2 = {x, y, ∆} δ ∆, ∆ x, ∆ x, x y, ∆ y, y x, y y, x ∆, x ∆, y q 0 q 1 , R, R q 1 q 0 , R, R q 1 , x, x q 1, R, R q 2 , R, x q 1, y, y q 1, R, R q 2 , R, y q 2 q F q 0 , x, ∆ q 2 , R, L q 0 , y, ∆ q 2 , R, L q 0 , x, y q 0 , y, x q 0 , ∆, x q 0 , ∆, y Pro popis NTS je opět možno užít kompozitních diagramů. Jejich použití je podobné jako v případě DTS, odpadají zde ale některá omezení vyskytující se u DTS. U NTS je možné podmíněné předání řízení přes stejný symbol více strojům, šipky doplňkového podmíněného předání řízení (s využitím symbolu ¬) nemusí být označeny seznamem symbolů vytvářejícím přesný doplněk množiny symbolů vyskytujících se v ostatních podmíněných předáních řízení a je možná i kombinace podmíněného a nepodmíněného předání řízení. Je-li kombinováno podmíněné a nepodmíněné předání řízení, nedoplňují se implicitní přechody do nového koncového stavu přes symboly nepokryté podmíněným předáním řízení. Příklad 5.3.6 Navrhněte vícepáskový nedeterministický TS akceptující jazyk {a p | kde p není prvočíslo}. Věta 5.3.3 Pro každý NTS M existuje DTS M ′ takový, že L(M) = L(M ′ ). Důkaz. (idea) • NTS M budeme simulovat třípáskovým DTS. Význam jednotlivých pásek tohoto stroje je následující: – Páska 1 obsahuje přijímaný vstupní řetězec. – Páska 2 je pracovní páska. Obsahuje kopii pásky 1 ohraničenou vhodnými speciálními značkami. Po neúspěšném pokusu o přijetí je její obsah smazán a obnoven z první pásky.
KAPITOLA 5. TURINGOVY STROJE 114 – Páska 3 obsahuje kódovanou volbu posloupností přechodů; při neúspěchu bude její obsah nahrazen jinou posloupností. • Zvolená posloupnost přechodů je kódována posloupností čísel přiřazených přechodům simulovaného stoje. • Jednotlivé posloupnosti přechodů na pásce 3 je možno generovat modifikovaným TS pro generování posloupnosti řetězců ε, x, y, z, xx, .... • Vlastní simulace probíhá takto: 1. Okopíruj obsah pásky 1 na pásku 2. 2. Generuj příští posloupnost přechodů na pásce 3. 3. Simuluj provedení posloupnosti z pásky 3 na obsahu pásky 2. 4. Vede-li zkoumaná posloupnost do q F simulovaného stroje, zastav – vstupní řetězec je přijat. V opačném případě smaž pásku 2 a vrať se k bodu 1. • Není obtížné nahlédnout, že jazyk přijímaný takto vytvořeným strojem odpovídá jazyku přijímaným původním NTS. Závěr: Zavedením nedeterminismu do TS se nezvyšují jejich schopnosti přijímat jazyky! ✷ 5.4 Jazyky rekurzivně vyčíslitelné a jazyky rekurzivní Zavedeme klasifikaci jazyků (problémů) vzhledem k jejich akceptovatelnosti Turingovými stroji (řešitelnosti). Dojdeme k základním třem třídám jazyků, které reprezentují problémy řešitelné, problémy řešitelné jen částečně a problémy algoritmicky neřešitelné. 5.4.1 Rekurzivní vyčíslitelnost a rekurzivnost Turingův stroj se nazývá úplný (total), právě když pro každý vstup zastaví. Definice 5.4.1 Jazyk L ⊆ Σ ∗ se nazývá • rekurzívně vyčíslitelný, jestliže L = L(M) pro nějaký TS M, • rekurzívní, jestliže L = L(M) pro nějaký úplný TS M. Je-li M úplný Turingův stroj, pak říkáme, že M rozhoduje jazyk L(M). Ke každému rekurzívnímu jazyku existuje TS, který ho rozhoduje, tj. zastaví pro každé vstupní slovo – tento TS lze samozřejmě upravit tak, aby pro každý řetězec z daného jazyka zastavil s páskou ∆Y ∆∆..., a jinak zastavil s páskou ∆N∆∆.... TS přijímající rekurzívně vyčíslitelný jazyk L zastaví pro každé w ∈ L, ovšem pro w ∉ L může zastavit, ale také může donekonečna cyklit.
- 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 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: KAPITOLA 5. TURINGOVY STROJE 112
- 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
- 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
KAPITOLA 5. TURINGOVY STROJE 114<br />
– Páska 3 obsahuje kódovanou volbu posloupností přechodů; při neúspěchu<br />
bude její obsah nahrazen jinou posloupností.<br />
• Zvolená posloupnost přechodů je kódována posloupností čísel přiřazených přechodům<br />
simulovaného stoje.<br />
• Jednotlivé posloupnosti přechodů na pásce 3 je možno generovat modifikovaným<br />
TS pro generování posloupnosti řetězců ε, x, y, z, xx, ....<br />
• Vlastní simulace probíhá takto:<br />
1. Okopíruj obsah pásky 1 na pásku 2.<br />
2. Generuj příští posloupnost přechodů na pásce 3.<br />
3. Simuluj provedení posloupnosti z pásky 3 na obsahu pásky 2.<br />
4. Vede-li zkoumaná posloupnost do q F simulovaného stroje, zastav – vstupní<br />
řetězec je přijat. V opačném případě smaž pásku 2 a vrať se k bodu<br />
1.<br />
• Není obtížné nahlédnout, že jazyk přijímaný takto vytvořeným strojem odpovídá<br />
jazyku přijímaným původním NTS.<br />
Závěr:<br />
Zavedením nedeterminismu do TS se nezvyšují jejich schopnosti<br />
přijímat jazyky!<br />
✷<br />
5.4 Jazyky rekurzivně vyčíslitelné a jazyky rekurzivní<br />
Zavedeme klasifikaci jazyků (problémů) vzhledem k jejich akceptovatelnosti Turingovými<br />
stroji (řešitelnosti). Dojdeme k základním třem třídám jazyků, které reprezentují<br />
problémy řešitelné, problémy řešitelné jen částečně a problémy algoritmicky<br />
neřešitelné.<br />
5.4.1 Rekurzivní vyčíslitelnost a rekurzivnost<br />
Turingův stroj se nazývá úplný (total), právě když pro každý vstup zastaví.<br />
Definice 5.4.1 Jazyk L ⊆ Σ ∗ se nazývá<br />
• rekurzívně vyčíslitelný, jestliže L = L(M) pro nějaký TS M,<br />
• rekurzívní, jestliže L = L(M) pro nějaký úplný TS M.<br />
Je-li M úplný Turingův stroj, pak říkáme, že M rozhoduje jazyk L(M).<br />
Ke každému rekurzívnímu jazyku existuje TS, který ho rozhoduje, tj. zastaví<br />
pro každé vstupní slovo – tento TS lze samozřejmě upravit tak, aby pro každý<br />
řetězec z daného jazyka zastavil s páskou ∆Y ∆∆..., a jinak zastavil s páskou<br />
∆N∆∆....<br />
TS přijímající rekurzívně vyčíslitelný jazyk L zastaví pro každé w ∈ L, ovšem<br />
pro w ∉ L může zastavit, ale také může donekonečna cyklit.