1 / 21

Turingovy stroje *)

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:

Download Presentation

Turingovy stroje *)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TURINGOVY STROJEDoc. RNDr. Josef Kolář, CSc.Katedra teoretické informatiky, FITČeské vysoké učení technické v PrazeBI-GRA, LS 2012/2013, Lekce 12https://edux.fit.cvut.cz/courses/BI-GRA Turingovy stroje

  2. 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)

  3. 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ý Turingovy stroje  a b a a b # # # řídicí jednotka Konečná řídicí jednotka, V/V hlava a páska

  4. DF:Turingův strojM = Q, A, , s, H Turingovy stroje • Q - konečná množina stavů • A - abecedaobsahuje# (prázdný symbol) a (symbol konce pásky), Aneobsahuje 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)

  5. 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 Turingovy stroje Př.:M1 = Q, A, 1, s, {h} M2 = Q, A, 2, s, {h} stav znak 1 stav znak 2 s a (r, #) s a (s,⇨) s # (h, #) s # (r,⇦) s  (s,⇨) s  (r,⇨) r a (s,a) r a (r,⇦) r # (s,⇨) r # (s,⇨) r  (r,⇨) r  (h,⇨) Jak funguje M1 / M2 ??

  6. 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-{#}){}) stav páska zleva k hlavě páska vpravo

  7. 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

  8. 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 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

  9. 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/vpravoM⇦ = 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,⇨)

  10. 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: a M1 M2 • M1 pracuje do zastavení, pak • pro a začne M2 od s2 • pro b začne M3 od s3 b M : M3

  11. 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

  12. Využití kompozice a další zkratky a b #  a,b, #, R R R R R R RR R2 # x# "postupuj vpravo až k mezeře" R# R R # # # # R L R L R# L# R# L# najde nejbližší mezeruvpravo od aktuelní pozice (mezeru vlevo, nemezeru vpravo, nemezeru vlevo)

  13. Př.: kopírovací Turingův stroj, w  (A - {#})* # w ## w # w # Příklad x  # L# R # R#2xL#2x # #011##... L# #011## ... R ##11#0 ... ... #011#0# ... R #011#01# ... ... #011#01# ... R #011#011# ... ... #011#011# ... R #011#011# ... R# R#

  14. Př.: Co dělá následující Turingův stroj ?? Příklad # w # ??? x  # L #R#xL#x # R# 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 #

  15. Př.: Turingův stroj rozhodující jazyk {anbncn : n  0} Příklad d a,d b,d a b c R dR dR dL# # b,c #,c #,a y n FSA a T.S. pracují při rozpoznávání jazyka různým způsobem (FSA se vždy zastaví)

  16. Df.: Nechť M = K, A, , s, {h}, A0 A-{,#}, wA0* z je výstup M na vstupw (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é wA0* 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ř.: Počítající Turingův stroj 1 Turingův stroj, který počítá funkci succ(n) = n+1 R# L 0 # 0 1SR 1L#

  17. Df.: Nechť M = K, A, , s, {h}, A0 A-{,#}, L A0* M polorozhoduje jazyk L pokud pro lib. wA0* 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 = 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

  18. 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?

  19. 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 Problém zastavení Turingova stroje simuluje pásku stroje M zakódování struktury stroje M zakódování akt. stavu stroje M

  20. 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.

  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ý Problém zastavení Turingova stroje B A (y,a)=(z,⇨) (z,a)=(y,⇦) pro vš. aA A y n y n z

More Related