Turing-gépek Logika és számításelmélet, 7. gyakorlat 2009/10 II. félév Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1
A Turing-gép Az algoritmus fogalmának egy intuitív definíciója: Utasítások egy jóldefiniált, véges sorozata, melyeket végrehajtva megoldható egy adott feladat (probléma). Az algoritmus fogalmának matematikai modelljei közül az egyik leggyakrabban használt a Turing gép. Turing-gép A Turing-gép egy olyan M = Q, Σ, Γ, δ, q 0,, rendszer, ahol Q az állapotok véges, nemüres halmaza, q 0,, Q, q 0 a kezdő- az elfogadó és az elutasító állapot, Σ és Γ ábécék, a bemenő jelek illetve a szalagszimbólumok ábécéje úgy, hogy Σ Γ és Γ \ Σ tartalmaz egy speciális szimbólumot, δ : (Q \ {, }) Γ Q Γ {L, S, R} az átmenet függvény. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 2 / 1
Konfiguráció, konfigurációátmenet A Turing-gép működésének fázisait a gép konfigurációival írjuk le. A Turing-gép konfigurációja egy uqv szó, ahol q Q és u, v Γ, v ε. Ez a konfiguráció a gép azon állapotát tükrözi amikor a szalag tartalma uv (uv előtt és után a szalagon már csak van), a gép a q állapotban van, és a gép író-olvasó feje a v szó első betűjére mutat. A gép kezdőkonfigurációja egy olyan q 0 u szó, ahol u csak Σ-beli betűket tartalmaz. Egy Turing-gép konfigurációátmenetét az alábbiak szerint definiáljuk. Legyen uqav egy konfiguráció, ahol a Γ, u, v Γ. Ha δ(q, a) = (r, b, R), akkor uqav ubrv, ahol v = v, ha v ε, különben v =, ha δ(q, a) = (r, b, S), akkor uqav urbv, ha δ(q, a) = (r, b, L), akkor uqav u rcbv, ahol c Γ és u c = u, ha u ε, különben u = u és c =. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 3 / 1
Turing-gép által felismert nyelv Azt mondjuk, hogy M véges sok lépésben eljut a C konfigurációból a C konfigurációba (jele C C ), ha van olyan n 0 és C 1,..., C n konfigurációso- rozat, hogy C 1 = C, C n = C és minden 1 i n-re, C i C i+1. Ha q {, }, akkor azt mondjuk, hogy az uqv konfiguráció egy megállási konfiguráció. q = esetében elfogadó, míg q = esetében elutasító konfigurációról beszélünk. Az M által felismert nyelv (amit L(M)-mel jelölünk) azoknak az u Σ szavaknak a halmaza, melyekre igaz, hogy q 0 u x y valamely x, y Γ, y ε szavakra. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 4 / 1
Turing-felismerhető és eldönthető nyelvek, időigény Egy L Σ nyelv Turing-felismerhető, ha L = L(M) valamely M Turing-gépre. Továbbá, egy L Σ nyelv eldönthető, ha létezik olyan M Turing-gép, mely minden bemeneten megállási konfigurációba jut és felismeri az L-et. A Turing-felismerhető nyelveket szokás rekurzívan felsorolhatónak, az eldönthető nyelveket pedig rekurzívnak is nevezni. A rekurzívan felsorolható nyelvek osztályát RE -vel, a rekurzív nyelvek osztályát pedig R-rel jelöljük. Tekintsünk egy M = Q, Σ, Γ, δ, q 0,, Turing-gépet és annak egy u Σ bemen szavát. Azt mondjuk, hogy M futási ideje (időigénye) az u szón n n 0, ha M a q 0 u kezdőkonfigurációból n lépésben el tud jutni egy megállási konfigurációba. Ha nincs ilyen szám, akkor M futási ideje az u-n végtelen. Legyen f : N N egy függvény. Azt mondjuk, hogy M időigénye f (n) (vagy, hogy M egy f (n) időkorlátos gép), ha minden u Σ input szóra, M időigénye az u szón legfeljebb f (l(u)). Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 5 / 1
Többszalagos Turing-gép k-szalagos Turing-gép A Turing-gép egy olyan M = Q, Σ, Γ, δ, q 0,, rendszer, ahol Q az állapotok véges, nemüres halmaza, q 0,, Q, q 0 a kezdő- az elfogadó és az elutasító állapot, Σ és Γ ábécék, a bemenő jelek illetve a szalagszimbólumok ábécéje úgy, hogy Σ Γ és Γ \ Σ tartalmaz egy speciális szimbólumot, δ : (Q \ {, }) Γ k Q Γ k {L, S, R} k az átmenet függvény. A k szalagos Turing-gép konfigurációja egy és u i, v i Γ, v i ε (1 i k). u 1 v 1. q. szó, ahol q Q u k v k Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 6 / 1
Szófüggvényt kiszámító Turing-gép Az M Turing-gép kiszámítja az f : Σ Γ { } szófüggvényt, ha M pontosan akkor jut megállási konfigurációba a kezdőkonfigurációból, ha f (u) és a megállási konfiguráció vqw, ahol q {, } és vw = f (u). (Nem lényeges, hogy -be vagy -be jut.) Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 7 / 1
Feladatok 1. Feladat: Készítsünk TG-et, mely a 7-tel osztható hosszúságú szavak nyelvét ismeri fel! t/t, R t/t, R q 6 q 5 q 4 (t Σ) /, R t/t, R t/t, R t/t, R t/t, R t/t, R q 0 q 1 q 2 q 3 2. Feladat: Készítsünk TG-et, mely azon szavakat ismeri fel, melyeknek 3. és 6. betűje azonos! (Σ = {a, b}) q 0 q 1 q 2 a/a, R b/b, R q 3 q 6 q 4 q 7 q 5 q 8 a/a, R b/b, R Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 8 / 1
Feladatok 3. Feladat: Készítsünk TG-et, mely mindig megáll, és megálláskor az input szó olvasható a szalagon, de egy cellával jobbra tolva! (Σ = {0, 1}) 0/0, R q S 0/, R 0/1, R q 0 1/0, R /0, R 1/, R q 1 /1, R /, R 1/1, R Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 9 / 1
Feladatok 4. Feladat: Készítsünk 2-szalagos TG-et, mely átmásolja az inputot a 2. szalagra és a.) nem törli b.) törli az inputot az első szalagról! (Σ = {a, b}) a.) a, /a,a,r,r b, /b,b,r,r b.) a, /,a,r,r b, /,b,r,r, /,, S, S q 0, /,, S, S q 0 Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 10 / 1
Feladatok 5. Feladat: Készítsünk TG-et, mely az u uu szófüggvényt számolja ki! (Σ = {a, b}) â/â,r ˆb/ˆb,R /, S â/a,r ˆ q 0 a/ā, R q 1 ā/a, R b/b, R /â, L a/a,l b/b,l q 3 â/â,l ˆb/ˆb,L b/ b, R q 2 /ˆb, L â/â,r ˆb/ˆb,R Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 11 / 1
Feladatok 6. Feladat: Készítsünk TG-et, mely az L = {w#w 1 w {a, b} } nyelvet ismeri fel! #/#,R /, S q 6 #/#, R q 0 a/, R q 1 /, L /, R q 3 a/, L a/a,l b/b,l #/#,L q 5 b/, R q 2 /, L q 4 b/, L /, S q 0 a/, R q 1 /, L /, R q 3 a/, L #/#,R q 5 b/, R q 2 /, L q 4 b/, L a/a,l b/b,l (L = {ww 1 w {a, b} }) Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 12 / 1
Feladatok 7. Feladat: Készítsünk TG-et, mely az L = {w#w w {a, b} } nyelvet ismeri fel! /, S ā/ā,r b/ b,r q 6 #/#, R q 0 a/, R q 1 #/#, R /, R ā/ā,r b/ b,r q 3 a/ā, L ā/ā,l b/ b,l a/a,l b/b,l #/#,L q 5 b/, R q 2 #/#, R q 4 b/ b, L ā/ā,r b/ b,r Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 13 / 1
Feladatok 8. Feladat: Készítsünk TG-et, mely az L = {ww w {a, b} } nyelvet ismeri fel!,a,a/,a,a,s,l,r,b,b/,b,b,s,l,r a,, /a,,,l,s,s b,, /b,,,l,s,s,, /,,, S, S, S q 4,, /,,, S, L, R q 5,, /,,, S, S, L q 3 a,, /,a,,r,r,s b,, /,b,,r,r,s,, /,,, R, S, S q 0 q 1 a,, /,,a,l,s,r b,, /,,b,l,s,r,, /,,, L, S, S q 2,,a/,,a,S,S,L,,b/,,b,S,S,L a,, /a,,,r,s,s b,, /b,,,r,s,s Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 14 / 1