opora

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

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.

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ý.

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

Saved successfully!

Ooh no, something went wrong!