21
Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 1 / 15 Doc. 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

Turingovy stroje *)

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

Page 1: Turingovy stroje *)

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

Page 2: 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)

Page 3: Turingovy stroje *)

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

Page 4: 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

Page 5: 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

Page 6: 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

Page 7: Turingovy stroje *)

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

Page 8: Turingovy stroje *)

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

Page 9: Turingovy stroje *)

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,⇨)

Page 10: Turingovy stroje *)

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

Page 11: Turingovy stroje *)

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

Page 12: Turingovy stroje *)

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)

Page 13: Turingovy stroje *)

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

Page 14: Turingovy stroje *)

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

Page 15: Turingovy stroje *)

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

Page 16: Turingovy stroje *)

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

Page 17: Turingovy stroje *)

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

Page 18: Turingovy stroje *)

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 ?

Page 19: Turingovy stroje *)

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

Page 20: Turingovy 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.

Page 21: Turingovy stroje *)

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