Turingovy stroje
Turingovy stroje 1 – p.1/28
Churchova teze ❖ Churchova (Church-Turingova) teze: Turingovy stroje (a jim ekvivalentní systémy) definují svou výpoˇcetní silou to, co intuitivneˇ považujeme za efektivneˇ vyˇcíslitelné. ˇ odpovídá našim ❖ Churchova teze není teorém, nemužeme ˚ formálneˇ dokazovat, že neco intuitivním pˇredstavám, nicméneˇ je podpoˇrena ˇradou argumentu: ˚
• Turingovy stroje jsou velmi robustní – uvidíme, že jejich ruzné ˇ jejich ˚ úpravy nemení výpoˇcetní sílu (determinismus x nedeterminismus, poˇcet pásek, ...).
• Byla navržena ˇrada zcela odlišných výpoˇcetních modelu˚ (λ-kalkulus, parciálneˇ rekurzívní funkce, Minského stroje, ...), jejichž síla odpovídá Turingovým strojum. ˚
• Není znám žádný výpoˇcetní proces, který bychom oznaˇcili za efektivneˇ vyˇcíslitelný a který by nebylo možné realizovat na Turingoveˇ stroji. a
a Existuj´ı formalizovan´ e v´ ypoˇ cetn´ı procesy, realizovateln´ e napˇr. na TS s or´ akulem (n´ apovˇ edou) rozhoduj´ıc´ım atomicky nˇ ejak´ y Turingovsky nerozhodnuteln´ y probl´ em (napˇr. probl´ em zastaven´ı), kter´ e ale nepovaˇ zujeme za efektivn´ı v´ ypoˇ cetn´ı procesy.
Turingovy stroje 1 – p.2/28
Turinguv ˚ stroj páska: x y z ∆ čtecí/zápisová hlava stavové řízení . . . . . . q1 . q0 Definice 7.1 Turinguv ˚ stroj (TS) je šestice tvaru M = (Q, Σ, Γ, δ, q0 , qF ), kde:
• • • •
Q je koneˇcná množina vnitˇrních (ˇrídicích) stavu, ˚ Σ je koneˇcná množina symbolu˚ nazývaná vstupní abeceda, ∆ 6∈ Σ, Γ je koneˇcná množina symbolu, ˚ Σ ⊂ Γ, ∆ ∈ Γ, nazývaná pásková abeceda, parciální funkce δ : (Q \ {qF }) × Γ → Q × (Γ ∪ {L, R}), kde L, R 6∈ Γ, je pˇrechodová funkce,
• q0 je poˇcáteˇcní stav, q0 ∈ Q a • qF je koncový stav, qF ∈ Q. Turingovy stroje 1 – p.3/28
Konfigurace Turingova stroje ❖ Symbol ∆ znaˇcí tzv. blank (prázdný symbol), který se vyskytuje na místech pásky, ˇ která nebyla ješteˇ použita (muže ˚ ale být na pásku zapsán i pozdeji). ˇ ❖ Konfigurace pásky je dvojice sestávající z nekoneˇcného ˇretezce reprezentujícího ˇ ˇ jde o prvek množiny obsah pásky a pozice hlavy na tomto ˇretezci – pˇresneji {γ∆ω | γ ∈ Γ∗ } × N. a ❖ Konfiguraci pásky zapisujeme jako ∆xyzz∆x∆∆... (podtržení znaˇcí pozici hlavy). ❖ Konfigurace stroje je pak dána stavem ˇrízení a konfigurací pásky – formálneˇ se jedná o prvek množiny Q × {γ∆ω | γ ∈ Γ∗ } × N. a Pro libovolnou abecedu Σ je Σω mnoˇ zina vˇsech nekoneˇ cn´ ych ˇretˇ ezc˚ u nad Σ, tj. nekoneˇ cn´ ych posloupnost´ı symbol˚ u ze Σ. Pro pˇripomenut´ı: Σ∗ je mnoˇ zina vˇsech koneˇ cn´ ych ˇretˇ ezc˚ u nad Σ.
Turingovy stroje 1 – p.4/28
Pˇrechodová relace TS ˇ ˇ ❖ Pro libovolný ˇretezec γ ∈ Γω a cˇ íslo n ∈ N oznaˇcme γn n-tý symbol daného ˇretezce a ˇ ˇ který vznikne z γ zámenou γn za b. oznaˇcme sn b (γ) ˇretezec, ❖ Krok výpoˇctu TS M definujeme jako nejmenší binární relaci ⊢ takovou, že M
ω
∀q1 , q2 ∈ Q ∀γ ∈ Γ ∀n ∈ N ∀b ∈ Γ:
• (q1 , γ, n) ⊢ (q2 , γ, n + 1) pro δ(q1 , γn ) = (q2 , R) – operace posuvu doprava pˇri γn M
pod hlavou,
• (q1 , γ, n) ⊢ (q2 , γ, n − 1) pro δ(q1 , γn ) = (q2 , L) a n > 0 – operace posuvu doleva M
pˇri γn pod hlavou a
• (q1 , γ, n) ⊢ (q2 , snb (γ), n) pro δ(q1 , γn ) = (q2 , b) – operace zápisu b pˇri γn pod M
hlavou.
Turingovy stroje 1 – p.5/28
Výpoˇcet TS ❖ Výpoˇcet TS M zaˇcínající z konfigurace K0 je posloupnost konfigurací K0 , K1 , K2 , ...,
• ve které Ki ⊢ Ki+1 pro všechna i ≥ 0 taková, že Ki+1 je v dané posloupnosti, a M
• která je bud’ – nekoneˇcná, a nebo – koneˇcná s koncovou konfigurací (q, γ, n), pˇriˇcemž rozlišujeme následující typy zastavení TS: 1. normální – pˇrechodem do koncového stavu, tj. q = qF , a 2. abnormální, kdy q 6= qF a: (a) pro (q, γn ) není δ definována, nebo ˇ pozici pásky a dojde k posunu doleva, tj. n = 0 a (b) hlava je na nejlevejší ˇ δ(q, γn ) = (q ′ , L) pro nejaké q ′ ∈ Q.
Turingovy stroje 1 – p.6/28
Poznámka – alternativní definice TS ˇ ❖ Používají se i nekteré alternativní definice TS, u kterých se dá snadno ukázat vzájemná pˇrevoditelnost:
• namísto jediného qF je povolena množina koncových stavu, ˚ • namísto qF je zavedena dvojice qaccept a qreject , • na prvním políˇcku pásky je napevno“ zapsán symbol konce pásky, z nehož ˇ není možný posun doleva,
”
• pˇri zavedení obou pˇredchozích bodu˚ je δ obvykle definovaná jako totální funkce, • pˇrepis a posuv hlavy jsou spojeny do jedné operace • apod.
Turingovy stroje 1 – p.7/28
Grafická reprezentace TS ❖ Grafická reprezentace pˇrechodu (x – co se cˇ te, s – zápis/L/R):
❖ Grafická reprezentace poˇcáteˇcního a koncového stavu:
p
p
x/s
q
qF
Pˇríklad 7.1 TS, který posouvá hlavu doprava na první ∆ poˇcínaje aktuální pozicí (napˇr. ∆aab∆... −→ ∆aab∆...): a/R
p
∆/∆
q
b/R
Turingovy stroje 1 – p.8/28
Modulární konstrukce TS ˇ celky. ❖ Modulární konstrukce TS: spojování (kombinace) jednodušších TS ve složitejší x/R
Pˇríklad 7.2 Uvažme tˇri následující komponenty: M1: (R)
• M1 pˇresune hlavu o jeden symbol doprava:
y/R
s
t
∆/R
∆/R x/R
• M2 nalezne první výskyt symbolu x vpravo (od aktuální pozice hlavy):
M2:
l
(Rx)
y/R
x/x
m
n
∆/R y/R ∆/R x/R
• M3 nalezne první výskyt symbolu y vpravo: M3: (Ry)
p
y/R
y/y
q
r
∆/R x/R Turingovy stroje 1 – p.9/28
Následující kombinací M1 , M2 a M3 vznikne TS M , který nalezne druhý výskyt (neblankového) symbolu od poˇcáteˇcní pozice. V pravé cˇ ásti obrázku je T zapsán v podobeˇ tzv. kompozitního diagramu: ∆/R
m
l x/R
x/R
M:
s
y/R
x/x
y/R t
∆/R
y/R p
∆/∆ x/x
x
y/y ∆/∆
∆/R
q
n
M1 ∆/∆ x/x
y/y
M2
y
M3
y/y r
x/R
Turingovy stroje 1 – p.10/28
Kompozitní diagram TS ❖ Konvence pro zjednodušený zápis kompozitního diagramu: ˇ pˇredání ˇrízení – sekvence stroju: ˚ 1. Nepodmínené což cˇ asto zkracujeme na
A
B
C,
ABC .
• Odchozí šipky musí navazovat na poslední stroj v sekvenci, pˇrí-
ABC
chozí mohou navazovat na kterýkoliv z nich (sekvence se pak provádí od pˇríslušné pozice). ˇ ˇ ˇ 2. Podmínené pˇredání ˇrízení – podmínená sekvence, vetvení:
x
A
x
B
M1 y
• • •
M2
x
M2
M1 M3
x
M3
ˇ Na šipce podmíneného pˇredání ˇrízení muže ˚ být seznam symbolu˚ (x, y, ...). ˇ Seznamy symbolu˚ podmínených pˇredání ˇrízení z jednoho bloku musí být disjunktní. ˇ ˇ Pokud nekterý symbol není pokryt žádnou šipkou podmíneného pˇredání ˇrízení a vyskytne se pod cˇ tecí hlavou, výsledný stroj automaticky pˇrejde do koncového stavu, tj. pˇrijme (!). Turingovy stroje 1 – p.11/28
3. Parametrová konvence – používá se tehdy, je-li více ruzných ˚ symbolu˚ zpracováváno stejným zpusobem. ˚
• Používá se notace x,y,z
ω
, kde ω nabývá hodnoty toho symbolu
z {x, y, z}, který je pod cˇ tecí hlavou v okamžiku pˇríslušného pˇredání ˇrízení. • Zkrácený zápis vytvoˇrený pomocí parametrové konvence je možné rozvinout podobneˇ jako u maker vytvoˇrením samostatné kopie pˇríslušné cˇ ásti stroje pro každý uvažovaný symbol.
ω Pˇríklad 7.3 Pˇri použití parametrové konvence je TS
M1
ω
x,y
M2
x ekvivalentní (je zkratkou) pro následující konstrukci:
M1
x
M2
y
M2 y
Turingovy stroje 1 – p.12/28
Základní stavební bloky TS ❖ Uvažujme Γ = {x, y, ∆}, mezi základní stavební bloky TS obvykle patˇrí následující stroje (lze je snadno upravit pro libovolnou jinou Γ): 1. Stroje L, R, x: x/R
x/L y/L
L:
x/x
y/R
R:
y/x
x:
∆/R
∆/L
∆/x
doprava
doleva
na aktuální pozici zapiš x
Pˇríklad 7.4 Stroj
R y L neboli RyL transformuje pásku ∆xyxyx∆∆... na ∆xyxyxy∆...
2. Stroje Lx , Rx , L¬x a R¬x : y
Lx:
L ∆
x
y
Rx:
R ∆
L x:
L
x
R x:
R
Turingovy stroje 1 – p.13/28
ˇ 3. Stroje SR a SL pro posuv (shift) obsahu pásky: Stroj SR posune rˇetezec neblankových symbolu˚ nacházejících se vlevo od aktuální pozice hlavy o jeden ˇ symbol doprava. Stroj SL funguje podobne.
SR:
x,y
∆L ∆ R
ω
L ∆
x,y
σ
RσL
R∆R∆ω
ˇ Pˇríklad 7.5 Cinnost stroju˚ SR a SL si mužeme ˚ pˇriblížit na následujících pˇríkladech: SR • ∆xyyxx∆∆... −→ ∆∆xyyx∆∆... SR • ∆yxy∆∆xxy∆... −→ ∆∆yxy∆xxy∆... SR • xy∆yx∆∆... −→ xy∆∆x∆∆... SL • ∆yyxx∆∆... −→ ∆yxx∆∆∆...
Turingovy stroje 1 – p.14/28
Pˇríklady TS Pˇríklad 7.6 Kopírovací stroj – transformuje ∆w∆ na ∆w∆w∆:
R∆R∆L∆L∆
R
ω
x,y
∆R∆R∆ωR∆L∆L∆ω
ˇ u: Pˇríklad 7.7 Generování ˇretezc ˚
• Následující stroj generuje postupneˇ všechny ˇretezce ˇ nad {x, y, z} v uspoˇrádání ε, x, y, z, xx, yx, zx, xy, yy, zy, xz, yz, zz, xxx, yxx, ....
• Pˇredpokládáme, že stroj zaˇcíná s konfigurací pásky ∆w∆..., kde w je ˇretezec ˇ uvedené posloupnosti, od kterého generování zapoˇcne.
∆ R
x y
x y
L∆
z
z x
Turingovy stroje 1 – p.15/28
ˇ Pˇríklad 7.8 Stroj dekrementující kladné cˇ íslo zapsané ve dvojkové soustave:
0 R∆
L
1 0
0L∆R 1
0
SL 1
∆
0L
1
Turingovy stroje 1 – p.16/28
Turingovy stroje jako akceptory jazyku˚
Turingovy stroje 1 – p.17/28
Jazyk pˇrijímaný TS Definice 7.2 ˇ ezec ˇ w ∈ Σ∗ je pˇrijat TS M = (Q, Σ, Γ, δ, q0 , qF ), jestliže M pˇri aktivaci z 1. Ret poˇcáteˇcní konfigurace pásky ∆w∆... a poˇcáteˇcního stavu q0 zastaví pˇrechodem do ∗
ˇ koncového stavu qF , tj. (q0 , ∆w∆ , 0) ⊢ (qF , γ, n) pro nejaké γ ∈ Γ∗ a n ∈ N. ω
M
2. Množinu L(M ) = {w | w je pˇrijat TS M } ⊆ Σ∗ nazýváme jazyk pˇrijímaný TS M . Pˇríklad 7.9 Pro níže uvedený TS M platí L(M ) = {xn y n z n | n ≥ 0}: L# #
R
x
z y
SL
x
y,z R
y
SL
z
x ∆,z
y
R ∆,z ∆,x
y R ∆,x
SL z
∆
x,y
L #
Stroj pracuje takto: xn y n z n → xn−1 y n z n → xn−1 y n−1 z n → ...ε. Turingovy stroje 1 – p.18/28
Pˇrijímání zvláštní konfigurací pásky ˇ ❖ Alternativneˇ mužeme ˚ pˇrijetí ˇretezce TS definovat tak, že TS zaˇcíná s konfigurací pásky ∆w∆... a zastaví s konfigurací pásky ∆Y ∆..., Y ∈ Γ \ Σ, (Y znaˇcí Yes). ˇ 7.1 Máme-li TS M , který pˇrijímá L(M ) pˇrechodem do qF , mužeme ˚ vždy sestrojit Veta stroj M ′′ , který bude pˇrijímat L(M ) zastavením s konfigurací pásky ∆Y ∆.... Dukaz. ˚ (Idea)
M’’:
R∆SRR*L∆L#R
M’
R*
∆L #
#
∆RYL • M ′ zaˇcíná s páskou #∆w ∗ ∆.... • M ′ sestrojíme doplnením ˇ M o pˇrechody, které ˇreší nájezd na ∗: Pˇri cˇ tení symbolu ˇ ∗ je tˇreba zvetšit pracovní prostor – aktivujeme podstroj ∆R ∗ L. 2 ❖ Snadno lze pˇrejít i opaˇcneˇ od pˇrijímání konfigurací pásky ∆Y ∆... k pˇrijímání pˇres qF .
Turingovy stroje 1 – p.19/28
Poznámka 7.1
• Uvedomme ˇ si, že na TS lze také nahlížet jako na výpoˇcetní mechanismy implementující funkce Σ∗ → Γ∗ tím, že transformují poˇcáteˇcní neblankový prefix své pásky na jiný neblankový prefix pˇri pˇrechodu do koncového stavu.
• Vzhledem k tomu, že TS nemusí každý svuj ˚ vstup pˇrijmout, jsou funkce jimi implementované obecneˇ parciální.
• Blíže se budeme vyˇcíslováním funkcí TS zabývat dále.
Turingovy stroje 1 – p.20/28
Vícepáskové Turingovy stroje
Turingovy stroje 1 – p.21/28
Vícepáskové TS ❖ Uvažujme TS, který má k pásek s páskovými abecedami Γ1 , Γ2 , ..., Γk a k odpovídajících hlav s pˇrechodovou funkcí tvaru [ {i} × (Γi ∪ {L, R}), δ : (Q \ {qF }) × Γ1 × Γ2 × ... × Γk −→ Q × i∈{1,...,k}
kde i znaˇcí pásku, na kterou se zapisuje (na které se posouvá hlava). ˇ 7.2 Pro každý k-páskový TS M existuje jednopáskový TS M ′ takový, že Veta L(M ) = L(M ′ ). Dukaz. ˚ (idea)
x y x x x y y y
y y x x
x ∆ x ∆
y ∆ y ∆
x 1 y ∆
x ∆ y 1
y y x x 1 ∆ ∆ ∆ Nový páskový symbol
Dukaz ˚ pokraˇcuje dále. Turingovy stroje 1 – p.22/28
Pokraˇcování dukazu. ˚ Dukaz ˚ provedeme tak, že ukážeme algoritmus pˇrevodu na ekvivalentní jednopáskový TS:
• Pˇredpokládáme, že pˇrijímaný ˇretezec ˇ je u k-páskového stroje na poˇcátku zapsán na první pásce, všechny ostatní pásky jsou prázdné a všechny hlavy jsou na ˇ pozici. nejlevejší
• Puvodních ˚ k pásek simulujeme rozšíˇrením páskové abecedy o 2k-tice, v nichž )-ní pásky a na pozici i + 1 je ∆ vždy i-tá složka pro liché i reprezentuje obsah ( i+1 2 nebo 1 podle toho, zda se na ní nachází pˇríslušná hlava cˇ i nikoliv.
• Poˇcet naˇcítaných kombinací symbolu˚ v puvodním ˚ automatu je koneˇcný a tudíž si výše uvedené rozšíˇrení mužeme ˚ skuteˇcneˇ dovolit.
• Pˇri simulaci k-páskového TS pak nejprve pˇrevedeme puvodní ˚ obsah první pásky na ekvivalentní obsah zakódovaný v 2k-ticích a pak každý krok simulujeme ˇ nekolika kroky.
• Pˇri simulaci využíváme stavy ve formeˇ (k + 1)-tic, kde první složka je stav puvodního ˚ TS a ostatní složky jsou aktuálneˇ cˇ tené symboly.
• Pˇri rozhodování o dalším kroku pak bereme na zˇretel pˇredevším tento stav, aktuální naˇcítaný symbol není duležitý ˚ a vždy se pˇri cˇ tení pˇremístíme na speciální pozici nalevo od užiteˇcného obsahu pásky. Dukaz ˚ pokraˇcuje dále. Turingovy stroje 1 – p.23/28
Pokraˇcování dukazu. ˚
• Po rozhodnutí o dalším kroku najedeme“ doprava na pozici, na které je simulovaná ” ˇ a vrátíme se hlava pásky, která se má modifikovat, provedeme pˇríslušnou zmenu ˇ doleva. zpet
• Za nový aktuální stav považujeme (k + 1)-tici danou novým stavem simulovaného TS a k-ticí pˇrevzatou z puvodního ˚ stavu nového TS modifikovanou na místeˇ modifikované pásky.
• Navíc je nutné korektneˇ simulovat pˇrepadnutí“ hlavy na kterékoliv pásce a pˇrevod ” dosud nevyužitých míst pásky s ∆ na odpovídající 2k-tici blank symbolu. ˚
• Pˇri ˇrádné formalizaci popsaného algoritmu pak není težké ˇ ukázat, že výsledný TS skuteˇcneˇ simuluje puvodní ˚ TS. 2 ˇ ❖ Záver: ˇ ˇ Zvetšení pamet’ových možností TS nerozšiˇruje jejich schopnosti pˇrijímat jazyky!
Turingovy stroje 1 – p.24/28
Nedeterministické Turingovy stroje
Turingovy stroje 1 – p.25/28
Nedeterministické TS Definice 7.3 Nedeterministický TS je šestice M = (Q, Σ, Γ, δ, q0 , qF ), kde význam jednotlivých složek je shodný s deterministickým TS až na δ, jež má tvar: δ : (Q \ {qF }) × Γ −→ 2Q×(Γ∪{L,R}) ˇ u˚ w ∈ Σ∗ Definice 7.4 Jazyk L(M ) NTS M = (Q, Σ, Γ, δ, q0 , qF ) je množina rˇetezc takových, že M pˇri aktivaci z q0 pˇri poˇcáteˇcním obsahu pásky ∆w∆... muže ˚ zastavit pˇrechodem do qF . ˇ 7.3 Pro každý NTS M existuje DTS M ′ takový, že L(M ) = L(M ′ ). Veta Dukaz. ˚ (idea) • NTS M budeme simulovat tˇrípáskovým DTS. Význam jednotlivých pásek tohoto stroje je následující: – Páska 1 obsahuje pˇrijímaný vstupní ˇretezec. ˇ – Páska 2 je pracovní páska. Obsahuje kopii pásky 1 ohraniˇcenou vhodnými ˇ speciálními znaˇckami. Po neúspešném pokusu o pˇrijetí je její obsah smazán a obnoven z první pásky. – Páska 3 obsahuje kódovanou volbu posloupností pˇrechodu; ˇ ˚ pˇri neúspechu bude její obsah nahrazen jinou posloupností. Dukaz ˚ pokraˇcuje dále. Turingovy stroje 1 – p.26/28
Pokraˇcování dukazu. ˚
• Zvolená posloupnost pˇrechodu˚ je kódována posloupností cˇ ísel pˇriˇrazených pˇrechodum ˚ simulovaného stoje.
• Jednotlivé posloupnosti pˇrechodu˚ na pásce 3 je možno generovat modifikovaným ˇ u˚ ε, x, y, z, xx, .... TS pro generování posloupnosti ˇretezc
• Vlastní simulace probíhá takto: 1. 2. 3. 4.
Okopíruj obsah pásky 1 na pásku 2. Generuj pˇríští posloupnost pˇrechodu˚ na pásce 3. Simuluj provedení posloupnosti z pásky 3 na obsahu pásky 2. Vede-li zkoumaná posloupnost do qF simulovaného stroje, zastav – vstupní ˇretezec ˇ je pˇrijat. V opaˇcném pˇrípadeˇ smaž pásku 2 a vrat’ se k bodu 1.
• Není obtížné nahlédnout, že jazyk takto vytvoˇreného stroje odpovídá jazyku puvodního ˚ NTS. 2 ˇ ❖ Záver: Zavedením nedeterminismu do TS se nezvyšují jejich schopnosti pˇrijímat jazyky!
Turingovy stroje 1 – p.27/28
Poznámka ke kompozitním diagramum ˚ ❖ Vícepáskové a/nebo nedeterministické TS lze také popisovat kompozitními diagramy. ❖ U vícepáskových TS:
• znaˇcíme pˇri podmíneném ˇ pˇredání ˇrízení horním indexem u symbolu, ze které pásky se pˇríslušný symbol cˇ te (napˇr. x1 , y 2 apod.),
• lze se odkazovat na symboly na více páskách souˇcasneˇ použítím notace x1 y 2 ... oznaˇcující, že na první pásce se cˇ te symbol x, na druhé y atd.,
• základní stavební bloky (R, L, ...) indexujeme rovnež ˇ horním indexem pro oznaˇcení, se kterou páskou pracují (tj. R1 , L1 , ...). ˇ ˇ ˇ ❖ U NTS odpadají omezení na to, aby se ruzné ˚ vetve podmíneného cˇ i nepodmíneného pˇredání ˇrízení vzájemneˇ vyluˇcovaly.
Turingovy stroje 1 – p.28/28