You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
KAPITOLA 5. TURINGOVY STROJE 109<br />
2. Při čtení symbolu ∗ je třeba (potenciálně) zvětšit pracovní prostor –<br />
aktivujeme podstroj ∆R ∗ L.<br />
Snadno lze přejít i opačně od přijímání konfigurací pásky ∆Y ∆... k přijímání<br />
přes q F .<br />
Poznámka 5.3.1<br />
✷<br />
• Uvědomme si, že na TS lze také nahlížet jako na výpočetní mechanismy<br />
implementující funkce Σ ∗ → Γ ∗ tím, že transformují počáteční neblankový<br />
prefix své pásky na jiný neblankový prefix při přechodu do koncového stavu.<br />
• Vzhledem k tomu, že TS nemusí každý svůj vstup přijmout, jsou funkce jimi<br />
implementované obecně parciální.<br />
• Blíže se budeme vyčíslováním funkcí TS zabývat dále.<br />
5.3.2 Vícepáskové Turingovy stroje<br />
Přímočarou cestou k zesílení Turingova stroje je zapojení ne jedné, ale několika<br />
pásek. Vícepáskový TS disponuje k jednosměrně nekonečnými páskami, z<br />
nichž každá je vybavena vlastní čtecí/zapisovací hlavou a je připojena ke společné<br />
konečně stavové jednotce. V jednom kroku stroj nejdříve na každé pásce zvlášť<br />
přečte symbol, posune hlavu nebo přepíše symbol a poté v závislosti na čtených<br />
symbolech změní stav řídící jednotky.<br />
Formálněji – uvažujme TS, který má k pásek s páskovými abecedami Γ 1 , Γ 2 , ...,<br />
Γ k a k odpovídajících hlav s přechodovou funkcí tvaru<br />
δ : (Q \ {q F }) × Γ 1 × Γ 2 × ... × Γ k −→ Q ×<br />
⋃<br />
{i} × (Γ i ∪ {L, R}),<br />
i∈{1,...,k}<br />
kde i značí pásku, na kterou se zapisuje (na které se posouvá hlava).<br />
Příklad 5.3.1 Sestrojíme dvoupáskový stroj, který bude akceptovat již známý<br />
jazyk x n y n z n . Výhoda druhé pásky se zde projeví efektivitou stroje. Budeme předpokládat,<br />
že v počáteční konfiguraci mají pásky tvary:<br />
– první páska: ∆w∆∆ . . .<br />
– druhá páska: ∆∆ . . ..<br />
Stroj bude vypadat takto:<br />
M = {Q, Σ, Γ 1 , Γ 2 , δ, q 0 , q F } kde:<br />
Q = {q 0 , q 1 , q 2 , q 3 , q F }<br />
Σ = {x, y, z}<br />
Γ 1 = {x, y, z, ∆}<br />
Γ 2 = {X, Y ∆}<br />
δ ∆, ∆ x, ∆ x, X y, ∆ y, X y, Y z, ∆ z, Y<br />
q 0 q 1 , R, R<br />
q 1 q F q 1 , x, X q 1 , R, R q 2 , y, L<br />
q 2 q 2 , y, Y q 2 , R, L q 3 , z, R<br />
q 3 q F q 3 , R, R<br />
Stroj slovo na první (vstupní) pásce přečte jen jednou zleva doprava. Přitom na<br />
druhé pásce kontroluje jeho tvar takto: Nejdříve zápisem symbolu X na druhou