turingův stroj
DESCRIPTION
Turingův stroj. Neformální popis Turingova stroje. 1936 Alan Turing Konečný automat s nekonečnou páskou na pásce je napsaný vstup symbol a y na pásce lze libovolně přepisovat po pásce se lze pohybovat oběma směry je možné měnit vnitřní stav Konečný automat neměl žádnou paměť - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/2.jpg)
Vyčíslitelnost a složitost
Neformální popis Turingova stroje
• 1936 Alan Turing• Konečný automat s nekonečnou páskou
– na pásce je napsaný vstup– symbolay na pásce lze libovolně přepisovat– po pásce se lze pohybovat oběma směry– je možné měnit vnitřní stav
• Konečný automat neměl žádnou paměť– jen konečný počet stavů
• Zásobníkový automat měl nekonečný zásobník s přístupem pouze k symbolu na vrcholu
• Turingův stroj má nekonečnou pásku s přístupem kamkoliv.
strana 2
Zdroj: www.ecs.syr.edu
![Page 3: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/3.jpg)
Vyčíslitelnost a složitost
Proč zavádíme Turingův stroj
• Je to zjednodušený model počítače– tzv. “výpočetní model”– model jakéhokoliv možného výpočtu
• Má jasnou formální definici umožňující dokazovat (ne)řešitelnost problémů
• Je formálním ekvivalentem vágně definované “algoritmické řešitelnosti”
• Cílem je ukázat, že existují problémy neřešitelné pomocí počítače
strana 3
![Page 4: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/4.jpg)
Vyčíslitelnost a složitost 4
Definice Turingova stroje
• Turingův stroj je devíticeM = (Q, , , , , , q0, qA, qR), kde– Q je konečná množina vnitřních stavů je konečná množina vstupních symbolů
, je konečná množina páskových symbolů
, , (–) je počáteční symbol pásky (–) je prázdný symbol : (Q – {qA, qR}) Q{L,R} je přechodová funkce– q0Q je počáteční stav– qAQ je koncový akceptující stav– qRQ je koncový zamítající stav
![Page 5: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/5.jpg)
Vyčíslitelnost a složitost 5
Výpočet Turingova stroje I.
• Turingův stroj čte symboly ze vstupní pásky• Na základě vnitřního stavu a čteného symbolu
TS podle přechodové funkce– změní svůj vnitřní stav– zapíše na pásku nový symbol– posune čtecí hlavu doleva, nebo doprava
• Vstupní páska je jednosměrně nekonečná– Zaplněno je vždy jen konečně mnoho políček– Ostatní políčka obsahují prázdný symbol
• Výpočet TS končí, jestliže se stroj dostane do některého ze stavů qA, qR.
![Page 6: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/6.jpg)
Vyčíslitelnost a složitost 6
Konfigurace Turingova stroje
• Konfigurace je jednoznačně určena– vnitřním stavem– obsahem pásky– pozicí čtecí hlavy
• Může být obsah pásky „nekonečný“?• Konfiguraci tedy lze popsat trojicí
– K = (qQ, *, n) Q * N0
• Počáteční konfigurace (q0, w, 0)– počáteční stav– na pásce je vstupní slovo– čtecí hlava se nachází na počátečním políčku pásky
![Page 7: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/7.jpg)
Vyčíslitelnost a složitost 7
Akceptující a zamítající konfigurace
• Výpočet TS končí, dostane-li se do některého ze stavů qA, qR.
• Akceptující konfigurace je tedy konfigurace tvaru (qA, , n)
• Zamítající konfigurace je pak konfigurace tvaru (qR, , n)
![Page 8: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/8.jpg)
Vyčíslitelnost a složitost 8
Krok výpočtu TS
• Na množině všech konfigurací TS definujeme binární relaci krok výpočtu označovanou M
• (p, , n) M{
– (q, snb(), n+1) pro (p,n) = (q,b,R)
– (q, snb(), n-1) pro (p,n) = (q,b,L)
• Reflexivní a tranzitivní uzávěr relace M značíme M
* a definujeme jako k-násobný součin relace M pro všechna k N0
– tedy přechod přes 0-k kroků
![Page 9: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/9.jpg)
Vyčíslitelnost a složitost
Zkrácený zápis konfigurace
• Konfiguraci (q,X1X2…Xk,n) lze zapsat jako řetězec X1X2…Xn-1qXnXn+1…Xk
– označení stavů nesmí být páskovými symboly– pozice stavu jednoznačně určuje pozici čtecí
hlavy
• Krok výpočtu pak lze psát jako– X1…Xn-1pXn…Xk M X1…Xn-1bqXn+1…Xk pro
(p,Xn) = (q,b,R)– X1…Xn-1pXn…Xk M X1…Xn-2qXn-1bXn+1…Xk pro
(p,Xn) = (q,b,L)
strana 9
![Page 10: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/10.jpg)
Vyčíslitelnost a složitost 10
Výpočet Turingova stroje
• Výpočet TS je posloupnost konfigurací K0, K1, K2, …
• K0 je počáteční konfigurace TS• Ki M Ki+1 i≥0• Výpočet může být buď konečný, nebo
nekonečný. Je-li konečný, pak poslední konfigurací ve výpočtu je akceptující, nebo zamítající konfigurace.
![Page 11: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/11.jpg)
Vyčíslitelnost a složitost 11
TS akceptuje, zamítá, cyklí
• Řekneme, že TS M daný vstupní řetězec w*
– akceptuje, jestliže výpočet M je konečný a poslední konfigurace je akceptující, tedy (q0, w*, 0) M
* (qA, z, n)– zamítá, jestliže výpočet M je konečný a poslední
konfigurace je zamítající, tedy (q0, w*, 0) M
* (qR, z, n)• Řekneme, že TS M pro daný vstupní řetězec w* cyklí,
jestliže výpočet TS M na slově w je nekonečný.• Jestliže TS M dané slovo w akceptuje, nebo zamítá, pak
říkáme, že nad daným slovem zastaví.• TS, který zastaví pro každý vstup, se nazývá úplný.
![Page 12: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/12.jpg)
Vyčíslitelnost a složitost 12
Jazyk akceptovaný a rozhodovaný TS
• Jazyk akceptovaný TS M označujeme L(M) a definujeme jako množinu slov, které TS M akceptuje:L(M) = {w* | M akceptuje w}
• Je-li M navíc úplný TS, říkáme, že M rozhoduje jazyk L.
![Page 13: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/13.jpg)
Vyčíslitelnost a složitost 13
Rekursivní a rekursivně spočetné jazyky• Jazyk L* nazýváme
– rekursivně spočetný právě tehdy, když L = L(M) pro nějaký TS M
– rekursivní právě tehdy, když L = L(M) pro nějaký úplný TS M
• Tedy– Ke každému rekursivnímu jazyku existuje TS, který
jej rozhoduje, tj. jeho výpočet je konečný– Ke každému rekursivně spočetnému jazyku musí
existovat TS, který akceptuje každé slovo w L, ale pro slova nepatřící do L buď zamítá, nebo cyklí.
![Page 14: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/14.jpg)
Vyčíslitelnost a složitost 14
Příklady
• Navrhněte TS rozhodující jazyk L = {xux| x {0,1}, u {0,1}*}
• Navrhněte TS rozhodující jazyk L = {cdwcd | c,d {0,1}, w {0,1}*}
• Navrhněte TS rozhodující jazyk L = {anbncn | n >= 0}
• Navrhněte TS rozhodující jazyk L = {w | w {a}*, |w| = 2n, n ≥ 1}
• Navrhněte TS rozhodující jazyk “dominových kostek” L = {w| w{a..z}2, wi[2] = wi+1[1] i}
![Page 15: Turingův stroj](https://reader036.vdocuments.net/reader036/viewer/2022082216/56815720550346895dc4bdc5/html5/thumbnails/15.jpg)
Vyčíslitelnost a složitost 15
Metody konstrukce TS
• Zapamatování v řídicí jednotce– Navrhněte TS rozhodující jazyk L = {xux| x {a,b}, u
{a,b}*} {a,b}• Tedy jazyk všech slov, které začínají a končí
stejným symbolem• Označování symbolů
– Navrhněte TS rozhodující jazyk L = {w | w {a}*, |w| = 2n, n ≥ 1}
• Tedy jazyk všech slov nad jednoprvkovou abecedou, jejichž délka je mocninou dvojky
• Používání více pásek