Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 1 / 21 TURINGOVY STROJE Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2012/2013, Lekce 12 Doc. Josef Kolář (ČVUT)Turingovy stroje
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 2 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 2 / 21 Turingovy stroje *) Seznámíme se s následujícími pojmy: struktura a chování Turingova stroje, konfigurace T.S.,přechod mezi konfiguracemi, jazyk rozhodovaný T.S., zobrazení počítané T.S. jazyk polorozhodovaný T.S., možná zobecnění T.S., nedeterministický T.S., univerzální T.S., nerozhodnutelné problémy Skripta odst. 11.2, str *) A.M. Turing: On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, Vol.42 ( ) pp. 230 – 265 (zasláno 28. května 1936)
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 3 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 3 / 21 Turingovým cílem bylo vytvořit model vyčíslitelnosti / vypočitatelnosti tak, aby byl co nejjednodušší pro definici, popis a studium současně dostatečně obecný abaab### řídicí jednotka Konečná řídicí jednotka, V/V hlava a páska Turingovy stroje
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 4 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 4 / 21 DF: Turingův stroj M = Q, A, , s, H Q - konečná množina stavů A - abeceda obsahuje # (prázdný symbol) a (symbol konce pásky), A neobsahuje symboly ⇦ a ⇨ s - počáteční stav H - množina koncových stavů H Q : (Q-H) A Q (A { ⇦, ⇨ }) je přechodové zobrazení –pro všechna q Q-H platí: (q, ) = (p, ⇨ ) –pro všechna q Q-H, a A platí: (q,a) = (p,b) b (tzn. symbol na levém konci se nikdy nepřepíše symbol se nezapíše nikam dovnitř pásky) Turingovy stroje
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 5 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 5 / 21 Interpretace přechodového zobrazení : je-li pro q Q-H, a A, (q,a) = (p,b) b A... stroj přepíše symbol a na pásce symbolem b b { ⇦, ⇨ }... stroj posune hlavu vlevo/vpravo stavznak 11 s a (r, # ) s # (h, # ) s (s, ⇨ ) r a (s, a ) r # (s, ⇨ ) r (r, ⇨ ) stavznak 22 s a (s, ⇨ ) s # (r, ⇦ ) s (r,⇨)(r,⇨) r a r # (s, ⇨ ) r (h, ⇨ ) Jak funguje M 1 / M 2 ?? Př.: M 1 = Q, A, 1, s, {h} M 2 = Q, A, 2, s, {h} Turingovy stroje
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 6 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 6 / 21 Formalizace činnosti T.S. konfiguracepoloha hlavyzkratka (q, a, baa ) a b a a (q, abaa ) (q, ###, #a ) # # # # a # # (q, ####a ) (q, #a##, ) # a # # (q, #a## ) Konfigurace Turingova stroje M = Q, A, , s, H je prvek kartézského součinu Q A* (A*(A-{ # }) { }) stavpáska zleva k hlavěpáska vpravo
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 7 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 7 / 21 výchozí konfigurace (q, wau) přepis symbolu na pásce pro (q,a) = (p,b), b A (q, wau) ⊢ M (p, wbu) posun vlevo pro (q,a) = (p, ⇦ ), w = w’ x –je-li a # nebo u (q, wau) = (q, w‘xau) ⊢ M (p, w‘xau) –je-li a = # a současně u = (q, w # ) = (q, w‘x # ) ⊢ M (p, w‘x) posun vpravo pro (q,a) = (p, ⇨ ), –je-li u = x u', a' A (q, wau) = (q, wax'u') ⊢ M (p, waxu') –je-li u = (q,wa) ⊢ M (p, wa # ) Přechod mezi konfiguracemi ⊢ M
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 8 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 8 / 21 Výpočet délky n : C 0 ⊢ M C 1 ⊢ M... ⊢ M C n M = K, A, , s, H , H = {y,n}, w (A - { , # })* počáteční konfigurace T.S. M při vstupu w... (s, # w) přijímající / odmítající konfigurace (y, w') / (n, w') M přijímá / odmítá vstup w (A - { , # })*, pokud platí (s, # w) (y, w') (přijímá) (s, # w) (n, w'')(odmítá) Označme A 0 (A - { , # }) - vstupní abeceda M rozhoduje jazyk L A 0 * : pro každé w A 0 * platí je-li w L, pak M přijímá w je-li w L, pak M odmítá w Jazyk L je rekurzivní existuje T.S. M, který jej rozhoduje. M * M * Výpočet délky n
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 9 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 9 / 21 Zjednodušený popis Turingových strojů Základní stroje (předpokládáme pevnou abecedu A) stroj píšící jeden znak - označení M a (zjednodušeně a) M a = {s,h}, A, , s, {h} , a A - { # } (s,x) = (h,a) pro všechna x (s, ) = (h, ⇨ ) stroj provádějící krok vlevo/vpravo M ⇦ = L, M ⇨ = R L = {s,h}, A, , s, {h} R = {s,h}, A, , s, {h} (s,x) = (h, ⇦ ) pro vš. x (s,x) = (h, ⇨ ) pro vš. x (s, ) = (h, ⇨ )
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 10 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Pravidla kompozice ?Odpovídá kompozice definici Turingova stroje? M 1 = K 1, A, 1, s 1, H 1 M 2 = K 2, A, 2, s 2, H 2 K i K j = M 3 = K 3, A, 3, s 3, H 3 Výsledkem kompozice je T.S. M = K, A, , s, H určený takto: M1M1 M2M2 M3M3 M : a b M 1 pracuje do zastavení, pak pro a začne M 2 od s 2 pro b začne M 3 od s 3
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 11 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 K = K 1 K 2 K 3, s = s 1, H = H 2 H 3 : pro x A, q K-H položíme – (q,x) = 1 (q,x) pro q K 1 -H 1 – (q,x) = 2 (q,x) pro q K 2 -H 2 – (q,x) = 3 (q,x) pro q K 3 -H 3 pro q H 1 – (q,a) = (s 2,a) – (q,b) = (s 3,b) – (q,x) = (h,x), h H pro x a,b Kompozice je tedy korektní ! Pravidla kompozice
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 12 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Využití kompozice a další zkratky RR ab#ab# RR a, b, #, RR RR R2R2 R # R x#x# R#R# "postupuj vpravo až k mezeře" RLRL #### R#R# L#L# R#R# L#L# najde nejbližší mezeru vpravo od aktuelní pozice (mezeru vlevo, nemezeru vpravo, nemezeru vlevo)
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 13 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Př.: kopírovací Turingův stroj, w (A - {#})* # w # # w # w # L#L# R R#R# # R # 2 x L # 2 x x # # #011##... L # #011##... R ##11# #011#0#... R #011#01# #011#01#... R #011#011# #011#011#... R #011#011#... R # Příklad
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 14 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Př.: Co dělá následující Turingův stroj ?? L R#R# # R# x L# x# R# x L# x x # # # w # ??? Př.: Jak udělat Turingův stroj S L, který posune obsah pásky vlevo o jedno políčko ?? A co posun vpravo S R ? (w neobsahuje mezeru) # w # w # # w # ## w # Příklad
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 15 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Př.: Turingův stroj rozhodující jazyk {a n b n c n : n 0} R y dRdR a # dRdR b dL#dL# c n b,c#,c#,a d a,db,d FSA a T.S. pracují při rozpoznávání jazyka různým způsobem (FSA se vždy zastaví) Příklad
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 16 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Df.: Nechť M = K, A, , s, {h} , A 0 A - { ,#}, w A 0 * z je výstup M na vstup w (píšeme z = M(w)) M se zastaví pro vstup w a platí (s, #w) ⊢ M (h, #z) M počítá zobrazení f : A 0 * A 0 * pro každé w A 0 * platí f(w) = M(w) f je rekurzivní existuje T.S. M, který počítá f Přechod od řetězů na čísla - kódování, např. binární Př.: R#R# 1S R L0 1 #0 1L#1L# Turingův stroj, který počítá funkci succ(n) = n+1 Počítající Turingův stroj
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 17 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Df.: Nechť M = K, A, , s, {h} , A 0 A - { ,#}, L A 0 * M polorozhoduje jazyk L pokud pro lib. w A 0 * platí w L M se zastaví pro vstup w L je rekurzivně spočetný existuje Turingův stroj M, který polorozhoduje L V.: Nechť L je rekurzivní jazyk. Potom platí L je rekurzivně spočetný doplněk L = A 0 * - L je rekurzivní Zobecnění T.S.: vícepáskové oboustranně nekonečná páska více hlav dvojrozměrná páska s náhodným přístupem nedeterministický Polorozhodující Turingův stroj
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 18 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Nerozhodnutelné problémy ?? Kde jsou meze Turingových strojů ?? (zatím jsou podobné pevně naprogramovanému počítači) Univerzální T.S. U - je schopen simulovat libovolný T.S. M "M" = zakódování stroje M pomocí řetězu "w" = zakódování vstupu w U("M" "w") = "M(w)" kódování stavů qxx...x kódování symbolů ayy...yx,y {0,1} ? Jak pracuje univerzální Turingův stroj ?
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 19 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 U má 3 pásky U se zastaví na vstup "M" "w" právě když se M zastaví na vstup w a vrátí i stejný výsledek simuluje pásku stroje M zakódování struktury stroje M zakódování akt. stavu stroje M Problém zastavení Turingova stroje
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 20 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 Problém zastavení Turingova stroje Pro T.S. zadaný kódem "M" a vstup zadaný kódem "w" rozhodnout, zda se M zastaví pro vstup w. Zjednodušená varianta: Pro T.S. zadaný kódem "M" rozhodnout, zda se M zastaví pro vstup "M". Předpokládejme, že T.S. A rozhoduje tento problém. Doplníme T.S. A na stroj B tak, že přidáme nový stav a necháme B cyklit, jakmile se dostane do původního stavu y.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 21 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce / 21 ?? Jak se chová B ?? B se zastaví (ve stavu n), když M se na vstup "M" nezastaví B se nezastaví, když M se na vstup "M" zastaví ?? Co se stane, když dáme "B" na vstup stroje B ?? Problém zastavení je nerozhodnutelný y n A y n A B z (y,a)=(z, ⇨ ) (z,a)=(y, ⇦ ) pro vš. a A Problém zastavení Turingova stroje