1 / 15

Turingův stroj

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ěť

iram
Download Presentation

Turingův stroj

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. 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: www.ecs.syr.edu

  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í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 • 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čtuoznač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 • 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

More Related