Upload
iram
View
69
Download
2
Embed Size (px)
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 Presentation
Citation preview
Vyčíslitelnost a složitostTomáš Foltý[email protected]
Turingův stroj
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
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
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
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.
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
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)
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ů
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
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.
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ý.
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.
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í.
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}
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