Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Turingův stroj.

Podobné prezentace


Prezentace na téma: "Turingův stroj."— Transkript prezentace:

1 Turingův stroj

2 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. Zdroj:

3 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

4 Definice Turingova stroje
Turingův stroj je devítice M = (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 q0Q je počáteční stav qAQ je koncový akceptující stav qRQ je koncový zamítající stav

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.

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 = (qQ, *, 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

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)

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ů

9 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)

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.

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

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.

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

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}

15 Metody konstrukce TS Zapamatování v řídicí jednotce Označování symbolů
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


Stáhnout ppt "Turingův stroj."

Podobné prezentace


Reklamy Google