opora

frantisek.plesicek
from frantisek.plesicek More from this publisher
10.02.2019 Views

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.

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!