10.02.2019 Views

opora

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KAPITOLA 6. MEZE ROZHODNUTELNOSTI 124<br />

• Předpokládejme, že 2 Σ∗ je spočetná. Pak dle definice spočetnosti existuje<br />

bijekce f : N ←→ 2 Σ∗ .<br />

• Uspořádejme Σ ∗ do nějaké posloupnosti w 1 , w 2 , w 3 , ..., např. ε, x, y, xx, xy,<br />

yx, yy, xxx, ... pro Σ = {x, y}. Nyní můžeme f zobrazit nekonečnou maticí :<br />

w 0 w 1 w 2 ... w i ...<br />

L 0 = f(0) a 00 a 01 a 02 ... a 0i ...<br />

L 1 = f(1) a 10 a 11 a 12 ... a 1i ...<br />

L 2 = f(2) a 20 a 21 a 22 ... a 2i ...<br />

...<br />

, kde a ij =<br />

{ 0, jestližewj ∉ L i ,<br />

1, jestližew j ∈ L i .<br />

• Uvažujme jazyk L = {w i | a ii = 0}. L se liší od každého jazyka L i = f(i),<br />

i ∈ N:<br />

– je-li a ii = 0, pak w i patří do jazyka,<br />

– je-li a ii = 1, pak w i nepatří do jazyka.<br />

• Současně ale L ∈ 2 Σ∗ , f tudíž není surjektivní, což je spor.<br />

✷<br />

6.2 Problém zastavení<br />

Problém, zda výpočet daného TS zastaví, je prvním problémem, jehož nerekurzívnost<br />

ukážeme. Za tím účelem zavedeme (s pomocí vhodného kódování TS) univerzální<br />

Turingův stroj, což je TS schopný simulovat výpočet kteréhokoli jiného stroje z<br />

jakékoliv počáteční konfigurace (stroj a konfigurace jsou vstupem univerzálního<br />

stroje). Ten bude dále důležitý nejen v důkazu nerozhodnutelnosti problému zastavení.<br />

6.2.1 Kódování TS<br />

Kódovací systém pro TS zahrnuje (1) kódování stavů (tak, aby byly odlišeny<br />

všechny stavy včetně q 0 a q F ), (2) symbolů z Γ a (3) přechodové funkce δ. Kódování<br />

stavů: Množinu stavů Q uspořádáme do posloupnosti q 0 , q F , q, p, ..., t. Stav q j<br />

zakódujeme jako 0 j , přičemž indexujeme (např.) od nuly.<br />

Kódování symbolů a příkazů L/R: Předpokládejme, že Γ = Σ ∪ {∆}. Uspořádáme<br />

Σ do posloupnosti a 1 , a 2 , ..., a n a zvolíme tyto kódy: ∆ ↦→ ε, L ↦→ 0,<br />

R ↦→ 00, a i ↦→ 0 i+2 .<br />

Přechod δ(p, x) = (q, y), kde y ∈ Γ ∪ {L, R}, reprezentujeme čtveřicí (p, x, q, y)<br />

a kódujeme zřetězením kódů p, x, q, y při použití 1 jako oddělovače, tj. jako<br />

〈p〉1〈x〉1〈q〉1〈y〉, kde 〈_〉 značí kód _.<br />

Celý TS kódujeme jako posloupnost kódů přechodů oddělených a ohraničených<br />

1.<br />

Příklad 6.2.1 q 0<br />

∆/x<br />

q F kód: 1110100010100011001<br />

6.2.2 Univerzální TS<br />

x/R<br />

Zavádí koncept „programovatelného“ stroje, který umožňuje ve vstupním řetězci<br />

specifikovat konkrétní TS (tj. program) i data, nad nimiž má tento stroj pracovat.

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

Saved successfully!

Ooh no, something went wrong!