Turingův stroj.

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Rozhodnutelnost.
Teorie vyčíslitelnosti
1 – Informatika Nauka (tj. věda) o informacích, tj. o zápisu (kódování (angl.)), přenosu (transfer (angl.)), zpracování (procesování (angl.)) informací.
ALGO – Algoritmizace 1. cvičení
Algebra.
Teorie čísel Nekonečno
Základy informatiky přednášky Kódování.
Varianty Turingova stroje Výpočet funkcí pomocí TS
Úvod do Teorie množin.
Základní číselné množiny
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Church-Turingova teze Univerzální Turingův stroj Diagonalizace
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Formální jazyky a gramatiky
Abeceda a formální jazyk
Příklady jazyků Příklad 1: G=({S}, {0,1}, P, S)
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Číselným oborem rozumíme číselnou množinu, na které jsou definovány bez omezení početní operace sčítání a násobení, tj. číselný obor je vzhledem k těmto.
Složitost.
Kruhový registr. Kruhový registr zpracovává načtenou informaci do registru. Charakteristikou kruhového registru je, že se na rozdíl od předchozích typů.
Teorie vyčíslitelnosti
Predikátová logika.
Predikátová logika.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Kruhový registr.
Pre-algebra Antonín Jančařík.
Algebra II..
AUTOMATY Bori · Brkos Formální jazyk {a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb} nad abecedou {a, b}
Úvod do předmětu Opakování
Vztah bezkontextových jazyků a ZA
Regulární výrazy Regulární výrazy představují další možnost popisu regulárních jazyků (právě od nich dostaly své jméno). Definice: Množina všech regulárních.
Konečné automaty Vít Fábera.
Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Složitost II TIN063 Ondřej Čepek. 2 Sylabus 1.Výpočetní model – DTS a NTS 2.Časová a prostorová složitost výpočtu 3.Technické pomůcky: lineární komprese,
P-těžké, np-těžké a np-úplné problémy
Pre-algebra Antonín Jančařík.
Relace, operace, struktury
Úvod do logiky 5. přednáška
Množiny.
Úvod do teorie konečných automatů
Automaty a gramatiky.
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
polynom proměnné x f = anxn + an-1xn-1 + ……. + a0
Konečné automaty a vyhledávání
Jak může Turingův stroj řešit úlohu? Mám rozhodnout, zda posloupnost znaků 0 a 1 obsahuje dvě 0 za sebou.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 1 / 21 TURINGOVY.
Formální definice Konečná množina vnitřních stavů Q Konečná vstupní abeceda A Počáteční stav q 0 Množina přijímacích stavů K.
Turingův stroj c qiqi Konečná množina vnitřních stavů Q Pásková abeceda P Počáteční stav q 0 Množina koncových stavů K Přechodová funkce.
Množiny Matematika Autor: Mgr. Karla Bumbálková
DNA počítače Řešení NP-úplných problémů za použití DNA počítačů Jaromír Malenko 2001.
Matice Přednáška č.4. Definice: Soubor prvků nazýváme maticí typu i-tý řádek j-tý sloupec prvky matice.
MNOŽINY RNDr. Jiří Kocourek. Množina: skupina (souhrn, soubor) nějakých objektů.
Mocniny Druhá mocnina.
Mocniny Druhá mocnina.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Základní konstrukce Osa úhlu.
Překladače 5. Syntaktická analýza
Matematická logika 5. přednáška
1 Lineární (vektorová) algebra
Predikátová logika (1. řádu).
Matematická logika 5. přednáška
Základní konstrukce Osa úhlu.
MNOŽINY RNDr. Jiří Kocourek.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Sémantika PL1 Interpretace, modely
Predikátová logika.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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

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

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

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.

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

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)

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ů

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)

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.

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

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.

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

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}

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