Upload
kylee-watson
View
34
Download
0
Embed Size (px)
DESCRIPTION
TURINGOVY STROJE Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 201 2 /201 3 , Lekce 12 https://edux.fit.cvut.cz/courses/BI-GRA. Turingovy stroje *). Seznámíme se s následujícími pojmy: - PowerPoint PPT Presentation
Citation preview
Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT) Turingovy stroje GRA, 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
https://edux.fit.cvut.cz/courses/BI-GRA
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 stroje GRA, 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. 181 - 200
*) A.M. Turing: On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, Vol.42 (1936 - 37) 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 stroje GRA, 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ý
a b a a b # # #
ří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 stroje GRA, 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ů HQ
• : (Q-H) A Q (A {⇦, ⇨}) je přechodové zobrazení
– pro všechna qQ-H platí: (q,) = (p, ⇨)
– pro všechna qQ-H, aA 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 stroje GRA, LS 2012/13, Lekce 12 5 / 21
Interpretace přechodového zobrazení :
je-li pro qQ-H, aA, (q,a) = (p,b)• bA ... stroj přepíše symbol a na pásce symbolem b• b{⇦,⇨} ... stroj posune hlavu vlevo/vpravo
stav znak 1
s a (r, #)
s # (h, #)
s (s,⇨)
r a (s,a)
r # (s,⇨)
r (r,⇨)
stav znak 2
s a (s,⇨)
s # (r,⇦)
s (r,⇨)
r a (r,⇦)
r # (s,⇨)
r (h,⇨)
Jak funguje M1 / M2 ??
Př.: M1 = Q, A, 1, s, {h} M2 = 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 stroje GRA, LS 2012/13, Lekce 12 6 / 21
Formalizace činnosti T.S.
konfigurace poloha hlavy zkratka
(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-{#}){})
stav pá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 stroje GRA, LS 2012/13, Lekce 12 7 / 21
výchozí konfigurace (q, wau)
• přepis symbolu na pásce pro (q,a) = (p,b), bA
(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 stroje GRA, LS 2012/13, Lekce 12 8 / 21
Výpočet délky n : C0 ⊢M C1 ⊢M ... ⊢M Cn
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 A0 (A - {,#}) - vstupní abeceda
M rozhoduje jazyk L A0* : pro každé w A0
* platí
• je-li wL, pak M přijímá w• je-li wL, 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 stroje GRA, 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í Ma (zjednodušeně a)
Ma = {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,⇨) (s,) = (h,⇨)
Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 10 / 15Doc. Josef Kolář (ČVUT) Turingovy stroje GRA, LS 2012/13, Lekce 12 10 / 21
Pravidla kompozice
?Odpovídá kompozice definici Turingova stroje?
M1 = K1, A, 1, s1, H1
M2 = K2, A, 2, s2, H2 Ki Kj =
M3 = K3, A, 3, s3, H3
Výsledkem kompozice je T.S. M = K, A, , s, H určený takto:
M1 M2
M3
M :
a
b
M1 pracuje do zastavení, pak
• pro a začne M2 od s2
• pro b začne M3 od s3
Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 11 / 15Doc. Josef Kolář (ČVUT) Turingovy stroje GRA, LS 2012/13, Lekce 12 11 / 21
K = K1 K2 K3 , s = s1, H = H2 H3
:
pro x A, q K-H položíme
– (q,x) = 1(q,x) pro q K1-H1
– (q,x) = 2(q,x) pro q K2-H2
– (q,x) = 3(q,x) pro q K3-H3
pro q H1
– (q,a) = (s2,a)
– (q,b) = (s3,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 stroje GRA, LS 2012/13, Lekce 12 12 / 21
Využití kompozice a další zkratky
R R
a
b
#
R Ra,b, #, R R RR R2
R
#
R
x#
R#"postupuj vpravo až k mezeře"
R L R L
# # # #
R# L# R# 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 stroje GRA, LS 2012/13, Lekce 12 13 / 21
Př.: kopírovací Turingův stroj, w (A - {#})*
# w # # w # w #
L# R
R#
# R#2
x L#2
xx #
#
#011##... L#
#011## ... R##11#0 ... ...#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 stroje GRA, LS 2012/13, Lekce 12 14 / 21
Př.: Co dělá následující Turingův stroj ??
L
R#
# R# x L# xx #
#
# w # ???
Př.: Jak udělat Turingův stroj SL, který posune obsah pásky vlevo
o jedno políčko ?? A co posun vpravo SR ?
(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 stroje GRA, LS 2012/13, Lekce 12 15 / 21
Př.: Turingův stroj rozhodující jazyk {anbncn : n 0}
R
y
dRa
#
dRb dL#
c
n
b,c #,c #,a
d a,d b,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 stroje GRA, LS 2012/13, Lekce 12 16 / 21
Df.: Nechť M = K, A, , s, {h}, A0 A - {,#}, wA0*
• 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 : A0* A0* pro každé wA0* 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#
1SR
L 01
# 0
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 stroje GRA, LS 2012/13, Lekce 12 17 / 21
Df.: Nechť M = K, A, , s, {h}, A0 A - {,#}, L A0*
• M polorozhoduje jazyk L pokud pro lib. wA0* platí wL 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 = A0* - 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 stroje GRA, LS 2012/13, Lekce 12 18 / 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...y x,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 stroje GRA, LS 2012/13, Lekce 12 19 / 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 stroje GRA, LS 2012/13, Lekce 12 20 / 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 stroje GRA, LS 2012/13, Lekce 12 21 / 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
Ay
n
AB
z
(y,a)=(z, )⇨(z,a)=(y, ) pro vš. a⇦ A
Problém zastavení Turingova stroje