Algoritmuselmélet 12. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Április 9.
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása.
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje.
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként véges vezérlő, ennek véges sok állapota van
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként véges vezérlő, ennek véges sok állapota van Lépés: függ a belső állapottól és a fej alatti jelektől
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként véges vezérlő, ennek véges sok állapota van Lépés: függ a belső állapottól és a fej alatti jelektől a gép megáll
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként véges vezérlő, ennek véges sok állapota van Lépés: függ a belső állapottól és a fej alatti jelektől a gép megáll átmegy új állapotba,
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként véges vezérlő, ennek véges sok állapota van Lépés: függ a belső állapottól és a fej alatti jelektől a gép megáll átmegy új állapotba, ír valamit minden fej alatti cellába,
ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek Az algoritmus fogalmának pontosabb meghatározása. Számítógép elméleti, egyszerűsített modellje. Alan Turing 1912-1954 Definíció. Többszalagos Turing-gép (TG), k 1 egész szám k db szalag cellákra osztva, cellákba jelek, a szalag egyik (mindkét) irányban végtelen minden szalaghoz tartozik egy fej, ami jobbra és balra is lépegethet a szalagon cellánként véges vezérlő, ennek véges sok állapota van Lépés: függ a belső állapottól és a fej alatti jelektől a gép megáll átmegy új állapotba, ír valamit minden fej alatti cellába, minden fej lép vagy jobbra, vagy balra egyet vagy helyben marad
ALGORITMUSELMÉLET 12. ELŐADÁS 2 Definíció. Egy k-szalagos Turing-gép egy hetessel jellemezhető: M = (Q, T, ü, I, q 0, F, δ),
ALGORITMUSELMÉLET 12. ELŐADÁS 2 Definíció. Egy k-szalagos Turing-gép egy hetessel jellemezhető: ahol M = (Q, T, ü, I, q 0, F, δ), Q : egy véges halmaz, az M gép belső állapotainak halmaza.
ALGORITMUSELMÉLET 12. ELŐADÁS 2 Definíció. Egy k-szalagos Turing-gép egy hetessel jellemezhető: ahol M = (Q, T, ü, I, q 0, F, δ), Q : T : egy véges halmaz, az M gép belső állapotainak halmaza. egy véges halmaz, a szalagjelek halmaza.
ALGORITMUSELMÉLET 12. ELŐADÁS 2 Definíció. Egy k-szalagos Turing-gép egy hetessel jellemezhető: ahol M = (Q, T, ü, I, q 0, F, δ), Q : T : egy véges halmaz, az M gép belső állapotainak halmaza. egy véges halmaz, a szalagjelek halmaza. ü : egy kitüntetett szalagjel, az üresjel. A bemenetként felírt jeleken és a gép számítása során kiírt jeleken kívül minden szalagcellában ü van.
ALGORITMUSELMÉLET 12. ELŐADÁS 2 Definíció. Egy k-szalagos Turing-gép egy hetessel jellemezhető: ahol M = (Q, T, ü, I, q 0, F, δ), Q : T : egy véges halmaz, az M gép belső állapotainak halmaza. egy véges halmaz, a szalagjelek halmaza. ü : egy kitüntetett szalagjel, az üresjel. A bemenetként felírt jeleken és a gép számítása során kiírt jeleken kívül minden szalagcellában ü van. I : I T \ {ü} az input jelek vagy bemenő jelek halmaza, más szóval az input abc. Az üresjel nem lehet input jel.
ALGORITMUSELMÉLET 12. ELŐADÁS 2 Definíció. Egy k-szalagos Turing-gép egy hetessel jellemezhető: ahol M = (Q, T, ü, I, q 0, F, δ), Q : T : egy véges halmaz, az M gép belső állapotainak halmaza. egy véges halmaz, a szalagjelek halmaza. ü : egy kitüntetett szalagjel, az üresjel. A bemenetként felírt jeleken és a gép számítása során kiírt jeleken kívül minden szalagcellában ü van. I : I T \ {ü} az input jelek vagy bemenő jelek halmaza, más szóval az input abc. Az üresjel nem lehet input jel. q 0 : q 0 Q a kezdő állapot.
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza.
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza. Elfogadó állapotban áll meg = IGEN
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza. Elfogadó állapotban áll meg = IGEN Nem elfogadó állapotban áll meg = NEM
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza. Elfogadó állapotban áll meg = IGEN Nem elfogadó állapotban áll meg = NEM = a Q \ F -be tartozó állapotokat elutasító állapotoknak is nevezik.
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza. Elfogadó állapotban áll meg = IGEN Nem elfogadó állapotban áll meg = NEM = a Q \ F -be tartozó állapotokat elutasító állapotoknak is nevezik. δ : A δ : Q T k Q (T {jobb, bal, helyben}) k egy parciálisan értelmezett függvény, a gép átmenetfüggvénye.
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza. Elfogadó állapotban áll meg = IGEN Nem elfogadó állapotban áll meg = NEM = a Q \ F -be tartozó állapotokat elutasító állapotoknak is nevezik. δ : A δ : Q T k Q (T {jobb, bal, helyben}) k egy parciálisan értelmezett függvény, a gép átmenetfüggvénye. Az átmenetfüggvény tekinthető a gép programjának.
ALGORITMUSELMÉLET 12. ELŐADÁS 3 F : F Q az elfogadó állapotok halmaza. Elfogadó állapotban áll meg = IGEN Nem elfogadó állapotban áll meg = NEM = a Q \ F -be tartozó állapotokat elutasító állapotoknak is nevezik. δ : A δ : Q T k Q (T {jobb, bal, helyben}) k egy parciálisan értelmezett függvény, a gép átmenetfüggvénye. Az átmenetfüggvény tekinthető a gép programjának. Ha a δ(q; a 1, a 2,..., a k ) nincs értelmezve, = megállás
ALGORITMUSELMÉLET 12. ELŐADÁS 4 Példa q0 0 1 0 1 0 0 1
ALGORITMUSELMÉLET 12. ELŐADÁS 4 Példa q0 q0 1 01 10 0 1 10 00 01 1
ALGORITMUSELMÉLET 12. ELŐADÁS 4 Példa q0 q0 q0 1 1101010 0 0 1010000101 1
ALGORITMUSELMÉLET 12. ELŐADÁS 4 Példa q0 q0 q0 q0 1 11 11 01010 0 0 0 001010 0001 0101 1
ALGORITMUSELMÉLET 12. ELŐADÁS 4 Példa q0 q0 q0 q0 q0 1 111111 0 01010 0 00 000010 010 01 001 0101 1
ALGORITMUSELMÉLET 12. ELŐADÁS 4 Példa q0 q0 q0 q0 q0 1 111111 0 01010 0 00 000010 010 01 001 0101 1 animáció: Turing gép
ALGORITMUSELMÉLET 12. ELŐADÁS 5 Turing-gép működése Kezdetben a q 0 állapotban van, az s I bemenet az első szalag elejére van írva, az összes többi mezőn ü
ALGORITMUSELMÉLET 12. ELŐADÁS 5 Turing-gép működése Kezdetben a q 0 állapotban van, az s I bemenet az első szalag elejére van írva, az összes többi mezőn ü A δ függvénynek megfelelően lépeget = új állapot, írás, fej lépése
ALGORITMUSELMÉLET 12. ELŐADÁS 5 Turing-gép működése Kezdetben a q 0 állapotban van, az s I bemenet az első szalag elejére van írva, az összes többi mezőn ü A δ függvénynek megfelelően lépeget = új állapot, írás, fej lépése Ha δ nincs értelmezve, akkor megáll (akár elfogadó állapotban van, akár nem)
ALGORITMUSELMÉLET 12. ELŐADÁS 5 Turing-gép működése Kezdetben a q 0 állapotban van, az s I bemenet az első szalag elejére van írva, az összes többi mezőn ü A δ függvénynek megfelelően lépeget = új állapot, írás, fej lépése Ha δ nincs értelmezve, akkor megáll (akár elfogadó állapotban van, akár nem) Két felhasználás: Függvények kiszámolása
ALGORITMUSELMÉLET 12. ELŐADÁS 5 Turing-gép működése Kezdetben a q 0 állapotban van, az s I bemenet az első szalag elejére van írva, az összes többi mezőn ü A δ függvénynek megfelelően lépeget = új állapot, írás, fej lépése Ha δ nincs értelmezve, akkor megáll (akár elfogadó állapotban van, akár nem) Két felhasználás: Függvények kiszámolása Kérdések eldöntése (0 1 értékű függvény) Definíció. Az M Turing-gép által felismert L M nyelv azokból az s I szavakból áll, amelyekkel mint bemenetekkel elindítva az M megáll, mégpedig elfogadó (azaz F -beli) állapotban.
ALGORITMUSELMÉLET 12. ELŐADÁS 5 Turing-gép működése Kezdetben a q 0 állapotban van, az s I bemenet az első szalag elejére van írva, az összes többi mezőn ü A δ függvénynek megfelelően lépeget = új állapot, írás, fej lépése Ha δ nincs értelmezve, akkor megáll (akár elfogadó állapotban van, akár nem) Két felhasználás: Függvények kiszámolása Kérdések eldöntése (0 1 értékű függvény) Definíció. Az M Turing-gép által felismert L M nyelv azokból az s I szavakból áll, amelyekkel mint bemenetekkel elindítva az M megáll, mégpedig elfogadó (azaz F -beli) állapotban. Ha M az L M nyelvet ismeri fel, akkor a nyelvbe nem tartozó szavakra vagy megáll elutasító állapotban, vagy végtelen ciklusba kerül.
ALGORITMUSELMÉLET 12. ELŐADÁS 6 Definíció. Legyen M egy kitüntetett output szalaggal rendelkező Turing-gép. Az M által kiszámított f M : I I parciális függvényt így értelmezzük: f M (s) = w, ha M az s I inputtal indulva megáll, és megállás után az output szalagon a w I szó szerepel az üresjelek óceánja előtt.
ALGORITMUSELMÉLET 12. ELŐADÁS 6 Definíció. Legyen M egy kitüntetett output szalaggal rendelkező Turing-gép. Az M által kiszámított f M : I I parciális függvényt így értelmezzük: f M (s) = w, ha M az s I inputtal indulva megáll, és megállás után az output szalagon a w I szó szerepel az üresjelek óceánja előtt. Az f M függvény tehát csak azokra az s I szavakra értelmezett, amelyekkel mint bemenetekkel az M gép véges sok lépés megtétele után megáll. Mindegy, hogy a megállás elfogadó vagy elutasító állapotban történt-e.
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve.
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve. Ha 0-t olvas = elutasít
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve. Ha 0-t olvas = elutasít Ha ü üresjelet olvas és nem q 0 -ban van = elutasít
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve. Ha 0-t olvas = elutasít Ha ü üresjelet olvas és nem q 0 -ban van = elutasít Ha ü üresjelet olvas és q 0 -ban van = elfogad
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve. Ha 0-t olvas = elutasít Ha ü üresjelet olvas és nem q 0 -ban van = elutasít Ha ü üresjelet olvas és q 0 -ban van = elfogad Ha 1-et olvas és q i -ben van = jobbra lép, és átmegy a q i+1 állapotba;
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve. Ha 0-t olvas = elutasít Ha ü üresjelet olvas és nem q 0 -ban van = elutasít Ha ü üresjelet olvas és q 0 -ban van = elfogad Ha 1-et olvas és q i -ben van = jobbra lép, és átmegy a q i+1 állapotba; = M pontosan azokat a szavakat fogadja el, amelyek csupa egyesekből állnak, és a hosszuk osztható hárommal.
ALGORITMUSELMÉLET 12. ELŐADÁS 7 Példa Turing-gépre Q = {q 0, q 1, q 2, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v }. δ(q 0, 1) = (q 1, 1, jobb), δ(q 0, ü) = (q v, ü, helyben), δ(q 1, 1) = (q 2, 1, jobb), δ(q 2, 1) = (q 0, 1, jobb). Más párokra δ nincs értelmezve. Ha 0-t olvas = elutasít Ha ü üresjelet olvas és nem q 0 -ban van = elutasít Ha ü üresjelet olvas és q 0 -ban van = elfogad Ha 1-et olvas és q i -ben van = jobbra lép, és átmegy a q i+1 állapotba; = M pontosan azokat a szavakat fogadja el, amelyek csupa egyesekből állnak, és a hosszuk osztható hárommal. = Az M által felismert L M nyelv tehát L M = {1 n : n hárommal osztható természetes szám}.
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Másutt δ nem definiált.
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Másutt δ nem definiált. Meghatározzuk az L M nyelvet és az f M függvényt is.
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál.
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál. 0 = végtelen ciklus
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál. 0 = végtelen ciklus ü = még egy 1-est ír az input után, majd elfogad
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál. 0 = végtelen ciklus ü = még egy 1-est ír az input után, majd elfogad = L M = {1 n ; n 0 egész}
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál. 0 = végtelen ciklus ü = még egy 1-est ír az input után, majd elfogad = L M = {1 n ; n 0 egész} = A gép az 1 n bemeneten az 1 n+1 eredményt adja, vagyis f M (1 n ) = 1 n+1.
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál. 0 = végtelen ciklus ü = még egy 1-est ír az input után, majd elfogad = L M = {1 n ; n 0 egész} = A gép az 1 n bemeneten az 1 n+1 eredményt adja, vagyis f M (1 n ) = 1 n+1. Turing-gép igazi számítógép
ALGORITMUSELMÉLET 12. ELŐADÁS 8 Példa Turing-gépre Másutt δ nem definiált. Q = {q 0, q v }, T = {0, 1, ü}, I = {0, 1}, F = {q v } δ(q 0, 0) = (q 0, 0, helyben), δ(q 0, 1) = (q 0, 1, jobb), δ(q 0, ü) = (q v, 1, helyben). Meghatározzuk az L M nyelvet és az f M függvényt is. Az M a q 0 belső állapotban maradva lépdel jobbra a szalag mentén, amíg 0 vagy ü jelet nem talál. 0 = végtelen ciklus ü = még egy 1-est ír az input után, majd elfogad = L M = {1 n ; n 0 egész} = A gép az 1 n bemeneten az 1 n+1 eredményt adja, vagyis f M (1 n ) = 1 n+1. Turing-gép igazi számítógép Turing-gép többet tud, mint a véges automata.
ALGORITMUSELMÉLET 12. ELŐADÁS 9 A kiszámíthatóság alapfogalmai Algoritmus: ami Turing-géppel kiszámítható
ALGORITMUSELMÉLET 12. ELŐADÁS 9 A kiszámíthatóság alapfogalmai Algoritmus: ami Turing-géppel kiszámítható Definíció. Az L I nyelvet rekurzíve felsorolhatónak nevezzük, ha van olyan M Turing-gép, melyre L = L M, azaz a gép által felismert nyelv éppen L.
ALGORITMUSELMÉLET 12. ELŐADÁS 9 A kiszámíthatóság alapfogalmai Algoritmus: ami Turing-géppel kiszámítható Definíció. Az L I nyelvet rekurzíve felsorolhatónak nevezzük, ha van olyan M Turing-gép, melyre L = L M, azaz a gép által felismert nyelv éppen L. Definíció. Az L I nyelv rekurzív, ha van olyan M Turing-gép, melyre L = L M, és M minden s I szóra megáll.
ALGORITMUSELMÉLET 12. ELŐADÁS 9 A kiszámíthatóság alapfogalmai Algoritmus: ami Turing-géppel kiszámítható Definíció. Az L I nyelvet rekurzíve felsorolhatónak nevezzük, ha van olyan M Turing-gép, melyre L = L M, azaz a gép által felismert nyelv éppen L. Definíció. Az L I nyelv rekurzív, ha van olyan M Turing-gép, melyre L = L M, és M minden s I szóra megáll. RE = {L I : L rekurzíve felsorolható}. R = {L I : L rekurzív}.
ALGORITMUSELMÉLET 12. ELŐADÁS 9 A kiszámíthatóság alapfogalmai Algoritmus: ami Turing-géppel kiszámítható Definíció. Az L I nyelvet rekurzíve felsorolhatónak nevezzük, ha van olyan M Turing-gép, melyre L = L M, azaz a gép által felismert nyelv éppen L. Definíció. Az L I nyelv rekurzív, ha van olyan M Turing-gép, melyre L = L M, és M minden s I szóra megáll. RE = {L I : L rekurzíve felsorolható}. R = {L I : L rekurzív}. = R RE
ALGORITMUSELMÉLET 12. ELŐADÁS 9 A kiszámíthatóság alapfogalmai Algoritmus: ami Turing-géppel kiszámítható Definíció. Az L I nyelvet rekurzíve felsorolhatónak nevezzük, ha van olyan M Turing-gép, melyre L = L M, azaz a gép által felismert nyelv éppen L. Definíció. Az L I nyelv rekurzív, ha van olyan M Turing-gép, melyre L = L M, és M minden s I szóra megáll. RE = {L I : L rekurzíve felsorolható}. R = {L I : L rekurzív}. = R RE Definíció. Az f : I I parciális függvény parciálisan rekurzív függvény, ha létezik olyan M Turing-gép, hogy f = f M. Ha ezen túl még f minden s I inputra értelmezve van, akkor f egy rekurzív függvény.
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,...
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,...
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,... = a rekurzíve felsorolható nyelvek halmaza megszámlálható
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,... = a rekurzíve felsorolható nyelvek halmaza megszámlálható Belátjuk, hogy az összes nyelv halmaza nem megszámlálható (egyébként kontinuum).
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,... = a rekurzíve felsorolható nyelvek halmaza megszámlálható Belátjuk, hogy az összes nyelv halmaza nem megszámlálható (egyébként kontinuum). Az I elemei, a véges hosszúságú I-beli jelekből képzett szavak is megszámlálhatóak = felsorolhatóak: w 0, w 1, w 2,...
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,... = a rekurzíve felsorolható nyelvek halmaza megszámlálható Belátjuk, hogy az összes nyelv halmaza nem megszámlálható (egyébként kontinuum). Az I elemei, a véges hosszúságú I-beli jelekből képzett szavak is megszámlálhatóak = felsorolhatóak: w 0, w 1, w 2,... Tegyük fel, hogy az összes nyelvek halmaza megszámlálható, megmutatjuk, hogy van olyan L I nyelv, amely nem lehet benne az összes nyelvek L M0, L M1, L M2,... sorozatában.
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,... = a rekurzíve felsorolható nyelvek halmaza megszámlálható Belátjuk, hogy az összes nyelv halmaza nem megszámlálható (egyébként kontinuum). Az I elemei, a véges hosszúságú I-beli jelekből képzett szavak is megszámlálhatóak = felsorolhatóak: w 0, w 1, w 2,... Tegyük fel, hogy az összes nyelvek halmaza megszámlálható, megmutatjuk, hogy van olyan L I nyelv, amely nem lehet benne az összes nyelvek L M0, L M1, L M2,... sorozatában. Az L nyelvnek a w i szó pontosan akkor legyen eleme, ha w i L Mi, i = 1, 2,....
ALGORITMUSELMÉLET 12. ELŐADÁS 10 Tétel. Van olyan L I nyelv, amely nem rekurzíve felsorolható. Bizonyítás: Egy Turing-gép leírható véges jelsorozattal = az összes gép számossága megszámlálható = felsorolható: M 0, M 1, M 2,... = a rekurzíve felsorolható nyelvek is felsorolhatók: L M0, L M1, L M2,... = a rekurzíve felsorolható nyelvek halmaza megszámlálható Belátjuk, hogy az összes nyelv halmaza nem megszámlálható (egyébként kontinuum). Az I elemei, a véges hosszúságú I-beli jelekből képzett szavak is megszámlálhatóak = felsorolhatóak: w 0, w 1, w 2,... Tegyük fel, hogy az összes nyelvek halmaza megszámlálható, megmutatjuk, hogy van olyan L I nyelv, amely nem lehet benne az összes nyelvek L M0, L M1, L M2,... sorozatában. Az L nyelvnek a w i szó pontosan akkor legyen eleme, ha w i L Mi, i = 1, 2,.... L L Mi, hiszen a w i L és w i L Mi Cantor-féle átlós módszer
ALGORITMUSELMÉLET 12. ELŐADÁS 11 w 0 w 1... w i w i+1... L M0 nem nem... nem nem... L M1. igen nem... nem nem... L Mi nem igen... igen nem... L Mi+1 igen nem... nem nem.... L igen igen... nem igen...
ALGORITMUSELMÉLET 12. ELŐADÁS 11 w 0 w 1... w i w i+1... L M0 nem nem... nem nem... L M1. igen nem... nem nem... L Mi nem igen... igen nem... L Mi+1 igen nem... nem nem.... L igen igen... nem igen... Tétel. Létezik olyan f : I I parciális függvény, amely nem parciálisan rekurzív.
ALGORITMUSELMÉLET 12. ELŐADÁS 12 Church Turing-tézis A rekurzív nyelveket és a rekurzív függvényeket fogjuk algoritmussal kezelhető nyelveknek és függvényeknek tekinteni.
ALGORITMUSELMÉLET 12. ELŐADÁS 12 Church Turing-tézis A rekurzív nyelveket és a rekurzív függvényeket fogjuk algoritmussal kezelhető nyelveknek és függvényeknek tekinteni. Church Turing-tézis: Ami algoritmussal azaz véges eljárással kiszámítható (eldönthető), az Turing értelmében kiszámítható (eldönthető). Nevezetesen: Egy f : I I parciális függvény kiszámítható rekurzív. f parciálisan
ALGORITMUSELMÉLET 12. ELŐADÁS 12 Church Turing-tézis A rekurzív nyelveket és a rekurzív függvényeket fogjuk algoritmussal kezelhető nyelveknek és függvényeknek tekinteni. Church Turing-tézis: Ami algoritmussal azaz véges eljárással kiszámítható (eldönthető), az Turing értelmében kiszámítható (eldönthető). Nevezetesen: Egy f : I I parciális függvény kiszámítható rekurzív. Egy f : I I (teljes) függvény kiszámítható f parciálisan f rekurzív.
ALGORITMUSELMÉLET 12. ELŐADÁS 12 Church Turing-tézis A rekurzív nyelveket és a rekurzív függvényeket fogjuk algoritmussal kezelhető nyelveknek és függvényeknek tekinteni. Church Turing-tézis: Ami algoritmussal azaz véges eljárással kiszámítható (eldönthető), az Turing értelmében kiszámítható (eldönthető). Nevezetesen: Egy f : I I parciális függvény kiszámítható rekurzív. Egy f : I I (teljes) függvény kiszámítható f parciálisan f rekurzív. Egy L I nyelvre a nyelvbe tartozás problémája algoritmussal eldönthető L rekurzív.
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma.
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma. A tárigénybe nem feltétlenül számítjuk bele az inputot és outputot.
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma. A tárigénybe nem feltétlenül számítjuk bele az inputot és outputot. Definíció. Jelölje T M (n) az M gép maximális számolási idejét az n jelből álló bemeneteken. Az n hosszú szavakon a maximális tárigényt S M (n)-nel jelöljük.
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma. A tárigénybe nem feltétlenül számítjuk bele az inputot és outputot. Definíció. Jelölje T M (n) az M gép maximális számolási idejét az n jelből álló bemeneteken. Az n hosszú szavakon a maximális tárigényt S M (n)-nel jelöljük. Ha van olyan n jelből álló s I szó, amellyel elindítva M nem áll meg véges sok lépés után = T M (n) =
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma. A tárigénybe nem feltétlenül számítjuk bele az inputot és outputot. Definíció. Jelölje T M (n) az M gép maximális számolási idejét az n jelből álló bemeneteken. Az n hosszú szavakon a maximális tárigényt S M (n)-nel jelöljük. Ha van olyan n jelből álló s I szó, amellyel elindítva M nem áll meg véges sok lépés után = T M (n) = Pl. a hárommal oszthatóságot vizsgáló M TG-re: T M (n) = n + 1, S M (n) = n + 1, ha beleszámítjuk az inputot, S M (n) = 0, ha nem.
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma. A tárigénybe nem feltétlenül számítjuk bele az inputot és outputot. Definíció. Jelölje T M (n) az M gép maximális számolási idejét az n jelből álló bemeneteken. Az n hosszú szavakon a maximális tárigényt S M (n)-nel jelöljük. Ha van olyan n jelből álló s I szó, amellyel elindítva M nem áll meg véges sok lépés után = T M (n) = Pl. a hárommal oszthatóságot vizsgáló M TG-re: T M (n) = n + 1, S M (n) = n + 1, ha beleszámítjuk az inputot, S M (n) = 0, ha nem. Ha M és N két Turing-gép, melyekre T M (n) < T N (n) teljesül minden elég nagy n-re, akkor az M algoritmust gyorsabbnak mondhatjuk az N algoritmusnál.
ALGORITMUSELMÉLET 12. ELŐADÁS 13 Idő- és tárigény Az M Turing-gép számolási ideje az s inputon a megállásáig végrehajtott lépések száma tárigénye pedig a felhasznált (olvasott) szalagcellák száma. A tárigénybe nem feltétlenül számítjuk bele az inputot és outputot. Definíció. Jelölje T M (n) az M gép maximális számolási idejét az n jelből álló bemeneteken. Az n hosszú szavakon a maximális tárigényt S M (n)-nel jelöljük. Ha van olyan n jelből álló s I szó, amellyel elindítva M nem áll meg véges sok lépés után = T M (n) = Pl. a hárommal oszthatóságot vizsgáló M TG-re: T M (n) = n + 1, S M (n) = n + 1, ha beleszámítjuk az inputot, S M (n) = 0, ha nem. Ha M és N két Turing-gép, melyekre T M (n) < T N (n) teljesül minden elég nagy n-re, akkor az M algoritmust gyorsabbnak mondhatjuk az N algoritmusnál. Van-e legjobb TG minden L nyelvhez?
ALGORITMUSELMÉLET 12. ELŐADÁS 14 Tétel. [gyorsítási tétel] Van olyan L nyelv, amelyre igazak az alábbiak: 1. Az L felismerhető egy olyan M Turing-géppel, melyre T M (n) véges minden n-re. 2. Tetszőleges, az L-et felismerő N Turing-géphez van olyan N Turing-gép, amelyre L = L N szintén teljesül, továbbá T N (n) = O(log T N (n)).
ALGORITMUSELMÉLET 12. ELŐADÁS 15 k-szalagos TG szimulációja 1-szalagossal Tétel. Legyen M egy k-szalagos Turing-gép. Van olyan egyszalagos M Turing-gép, melyre L M = L M (vagy f M = f M ),
ALGORITMUSELMÉLET 12. ELŐADÁS 15 k-szalagos TG szimulációja 1-szalagossal Tétel. Legyen M egy k-szalagos Turing-gép. Van olyan egyszalagos M Turing-gép, melyre L M = L M (vagy f M = f M ), továbbá T M (n) 2T 2 M (n),
ALGORITMUSELMÉLET 12. ELŐADÁS 15 k-szalagos TG szimulációja 1-szalagossal Tétel. Legyen M egy k-szalagos Turing-gép. Van olyan egyszalagos M Turing-gép, melyre L M = L M (vagy f M = f M ), továbbá T M (n) 2T 2 M (n), S M (n) S M (n) + n.
ALGORITMUSELMÉLET 12. ELŐADÁS 15 k-szalagos TG szimulációja 1-szalagossal Tétel. Legyen M egy k-szalagos Turing-gép. Van olyan egyszalagos M Turing-gép, melyre L M = L M (vagy f M = f M ), továbbá T M (n) 2T 2 M (n), S M (n) S M (n) + n. Bizonyítás: M építésekor az M-hez képest alaposan felfújjuk a szalag abc-t, és megnöveljük a belső állapotok számát is. Az M egyetlen szalagján 2k csík lesz. Egy cellája egy oszlop.
ALGORITMUSELMÉLET 12. ELŐADÁS 15 k-szalagos TG szimulációja 1-szalagossal Tétel. Legyen M egy k-szalagos Turing-gép. Van olyan egyszalagos M Turing-gép, melyre L M = L M (vagy f M = f M ), továbbá T M (n) 2T 2 M (n), S M (n) S M (n) + n. Bizonyítás: M építésekor az M-hez képest alaposan felfújjuk a szalag abc-t, és megnöveljük a belső állapotok számát is. Az M egyetlen szalagján 2k csík lesz. Egy cellája egy oszlop. 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x
ALGORITMUSELMÉLET 12. ELŐADÁS 15 k-szalagos TG szimulációja 1-szalagossal Tétel. Legyen M egy k-szalagos Turing-gép. Van olyan egyszalagos M Turing-gép, melyre L M = L M (vagy f M = f M ), továbbá T M (n) 2T 2 M (n), S M (n) S M (n) + n. Bizonyítás: M építésekor az M-hez képest alaposan felfújjuk a szalag abc-t, és megnöveljük a belső állapotok számát is. Az M egyetlen szalagján 2k csík lesz. Egy cellája egy oszlop. 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x = szalagjelek száma: (2t) k
ALGORITMUSELMÉLET 12. ELŐADÁS 16 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x M az M gép egy lépését egy legfeljebb 2T M (n) lépésből álló menetben utánozza.
ALGORITMUSELMÉLET 12. ELŐADÁS 16 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x M az M gép egy lépését egy legfeljebb 2T M (n) lépésből álló menetben utánozza. Jobbra elmegy a legmesszebb levő x jelig, és közben leolvassa az x-ek felett található eredeti szalagjeleket. Ezeket a belső állapotaiban tárolja.
ALGORITMUSELMÉLET 12. ELŐADÁS 16 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x M az M gép egy lépését egy legfeljebb 2T M (n) lépésből álló menetben utánozza. Jobbra elmegy a legmesszebb levő x jelig, és közben leolvassa az x-ek felett található eredeti szalagjeleket. Ezeket a belső állapotaiban tárolja. Közben egy hellyel jobbra mozdítja az x-eket, kivéve az utolsó oszlopban levő(ke)t.
ALGORITMUSELMÉLET 12. ELŐADÁS 16 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x M az M gép egy lépését egy legfeljebb 2T M (n) lépésből álló menetben utánozza. Jobbra elmegy a legmesszebb levő x jelig, és közben leolvassa az x-ek felett található eredeti szalagjeleket. Ezeket a belső állapotaiban tárolja. Közben egy hellyel jobbra mozdítja az x-eket, kivéve az utolsó oszlopban levő(ke)t. Most a gép ismeri M állapotát és a fejei alatti jeleket, így meghatározhatja a M következő állapotát és a kiírandó jeleket.
ALGORITMUSELMÉLET 12. ELŐADÁS 16 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x M az M gép egy lépését egy legfeljebb 2T M (n) lépésből álló menetben utánozza. Jobbra elmegy a legmesszebb levő x jelig, és közben leolvassa az x-ek felett található eredeti szalagjeleket. Ezeket a belső állapotaiban tárolja. Közben egy hellyel jobbra mozdítja az x-eket, kivéve az utolsó oszlopban levő(ke)t. Most a gép ismeri M állapotát és a fejei alatti jeleket, így meghatározhatja a M következő állapotát és a kiírandó jeleket. M visszamegy a szalag elejére, közben kiírja az M fejeinek régi helyére a k darab jelet, amiket M írt volna,
ALGORITMUSELMÉLET 12. ELŐADÁS 16 1. szalag D A B 1. fej ü x ü... k. szalag D D B k. fej ü ü x M az M gép egy lépését egy legfeljebb 2T M (n) lépésből álló menetben utánozza. Jobbra elmegy a legmesszebb levő x jelig, és közben leolvassa az x-ek felett található eredeti szalagjeleket. Ezeket a belső állapotaiban tárolja. Közben egy hellyel jobbra mozdítja az x-eket, kivéve az utolsó oszlopban levő(ke)t. Most a gép ismeri M állapotát és a fejei alatti jeleket, így meghatározhatja a M következő állapotát és a kiírandó jeleket. M visszamegy a szalag elejére, közben kiírja az M fejeinek régi helyére a k darab jelet, amiket M írt volna, és az M fejmozgásainak megfelelően áthelyezi az x-eket.
ALGORITMUSELMÉLET 12. ELŐADÁS 17 Ha n jelből álló bemenettel kezdjük a munkát, akkor egy meneteben az M feje legfeljebb T M (n) lépést tesz jobbra = legfeljebb ugyanennyit mehet balra.
ALGORITMUSELMÉLET 12. ELŐADÁS 17 Ha n jelből álló bemenettel kezdjük a munkát, akkor egy meneteben az M feje legfeljebb T M (n) lépést tesz jobbra = legfeljebb ugyanennyit mehet balra. Az M pontosan akkor álljon meg (fogadja el a bemenetet), ha M ezt teszi.
ALGORITMUSELMÉLET 12. ELŐADÁS 17 Ha n jelből álló bemenettel kezdjük a munkát, akkor egy meneteben az M feje legfeljebb T M (n) lépést tesz jobbra = legfeljebb ugyanennyit mehet balra. Az M pontosan akkor álljon meg (fogadja el a bemenetet), ha M ezt teszi. = T M (n) 2T M (n)t M (n) = 2T 2 M (n)
ALGORITMUSELMÉLET 12. ELŐADÁS 17 Ha n jelből álló bemenettel kezdjük a munkát, akkor egy meneteben az M feje legfeljebb T M (n) lépést tesz jobbra = legfeljebb ugyanennyit mehet balra. Az M pontosan akkor álljon meg (fogadja el a bemenetet), ha M ezt teszi. = T M (n) 2T M (n)t M (n) = 2T 2 M (n) Ha függvényt számítunk, a végén a felesleget letöröljük.
ALGORITMUSELMÉLET 12. ELŐADÁS 17 Ha n jelből álló bemenettel kezdjük a munkát, akkor egy meneteben az M feje legfeljebb T M (n) lépést tesz jobbra = legfeljebb ugyanennyit mehet balra. Az M pontosan akkor álljon meg (fogadja el a bemenetet), ha M ezt teszi. = T M (n) 2T M (n)t M (n) = 2T 2 M (n) Ha függvényt számítunk, a végén a felesleget letöröljük. Ha M-nek kitüntetett input szalagja volt, akkor a bemenet hosszát, ami n, nem számítottuk bele S M (n)-be = S M (n) S M (n) + n.
ALGORITMUSELMÉLET 12. ELŐADÁS 17 Ha n jelből álló bemenettel kezdjük a munkát, akkor egy meneteben az M feje legfeljebb T M (n) lépést tesz jobbra = legfeljebb ugyanennyit mehet balra. Az M pontosan akkor álljon meg (fogadja el a bemenetet), ha M ezt teszi. = T M (n) 2T M (n)t M (n) = 2T 2 M (n) Ha függvényt számítunk, a végén a felesleget letöröljük. Ha M-nek kitüntetett input szalagja volt, akkor a bemenet hosszát, ami n, nem számítottuk bele S M (n)-be = S M (n) S M (n) + n. Tétel. Az M k-szalagos Turing-géphez megadható olyan 2-szalagos M Turing-gép, amely az előbbi értelemben szimulálja M-et, T M (n) O(T M (n) log T M (n)), és S M (n) S M (n) + n.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi. Osszuk fel az M szalagjait m egymás utáni mezőből álló blokkokra = egy új szalagjel = az új gép t m betűt használ.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi. Osszuk fel az M szalagjait m egymás utáni mezőből álló blokkokra = egy új szalagjel = az új gép t m betűt használ. Az M -nek eggyel több szalagja lesz, mint M-nek. Az első input szalag, ezt először átkódolja egy másik szalagra.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi. Osszuk fel az M szalagjait m egymás utáni mezőből álló blokkokra = egy új szalagjel = az új gép t m betűt használ. Az M -nek eggyel több szalagja lesz, mint M-nek. Az első input szalag, ezt először átkódolja egy másik szalagra. Mi történik a szalagokkal az M gép m egymást követő lépése során?
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi. Osszuk fel az M szalagjait m egymás utáni mezőből álló blokkokra = egy új szalagjel = az új gép t m betűt használ. Az M -nek eggyel több szalagja lesz, mint M-nek. Az első input szalag, ezt először átkódolja egy másik szalagra. Mi történik a szalagokkal az M gép m egymást követő lépése során? Ami ezalatt végbemegy, az csak a fejeket tartalmazó blokkoktól és azok közvetlen szomszédaitól függ.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi. Osszuk fel az M szalagjait m egymás utáni mezőből álló blokkokra = egy új szalagjel = az új gép t m betűt használ. Az M -nek eggyel több szalagja lesz, mint M-nek. Az első input szalag, ezt először átkódolja egy másik szalagra. Mi történik a szalagokkal az M gép m egymást követő lépése során? Ami ezalatt végbemegy, az csak a fejeket tartalmazó blokkoktól és azok közvetlen szomszédaitól függ. M : szalagonként három szomszédos jel megvizsgálása után a memóriájában" meglépi M következő m lépését.
ALGORITMUSELMÉLET 12. ELŐADÁS 18 Tétel. Tegyük fel, hogy az M Turing-gép az L nyelvet ismeri fel, és T M (n) cn teljesül egy c > 0 állandóval. Ekkor tetszőleges ɛ > 0-ra van olyan L-et felismerő M Turing-gép is, hogy alkalmas n 0 N számmal T M (n) n(1 + ɛ), ha n n 0. Bizonyítás: Az M gépet úgy tervezzük, hogy az M gép m lépését az új legfeljebb 7 lépésben elvégzi. Osszuk fel az M szalagjait m egymás utáni mezőből álló blokkokra = egy új szalagjel = az új gép t m betűt használ. Az M -nek eggyel több szalagja lesz, mint M-nek. Az első input szalag, ezt először átkódolja egy másik szalagra. Mi történik a szalagokkal az M gép m egymást követő lépése során? Ami ezalatt végbemegy, az csak a fejeket tartalmazó blokkoktól és azok közvetlen szomszédaitól függ. M : szalagonként három szomszédos jel megvizsgálása után a memóriájában" meglépi M következő m lépését.
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket.
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket. = szimuláció elvégezhető egy bal jobb jobb bal bal lépéssorozatban
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket. = szimuláció elvégezhető egy bal jobb jobb bal bal lépéssorozatban esetleg további 2 jobbralépés szükséges lehet = M feleinek mozgatása = 7 lépés
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket. = szimuláció elvégezhető egy bal jobb jobb bal bal lépéssorozatban esetleg további 2 jobbralépés szükséges lehet = M feleinek mozgatása = 7 lépés A bemenet átkódolása, majd a kódolt szalagon a fejnek a szalag elejére mozgatása = n + n m lépés
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket. = szimuláció elvégezhető egy bal jobb jobb bal bal lépéssorozatban esetleg további 2 jobbralépés szükséges lehet = M feleinek mozgatása = 7 lépés A bemenet átkódolása, majd a kódolt szalagon a fejnek a szalag elejére mozgatása = n + n m lépés n TM (n) T M (n) n + + 7 n + n 7T (n) + m m m m + 8 n + n m + 7cn m + 8n ( n n 1 + 1 m + 7c m + 8 ) n(1 + ɛ), n ha m és n olyan nagyok, hogy 1 m + 7c m + 8 n < ɛ.
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket. = szimuláció elvégezhető egy bal jobb jobb bal bal lépéssorozatban esetleg további 2 jobbralépés szükséges lehet = M feleinek mozgatása = 7 lépés A bemenet átkódolása, majd a kódolt szalagon a fejnek a szalag elejére mozgatása = n + n m lépés n TM (n) T M (n) n + + 7 n + n 7T (n) + m m m m + 8 n + n m + 7cn m + 8n ( n n 1 + 1 m + 7c m + 8 ) n(1 + ɛ), n ha m és n olyan nagyok, hogy 1 m + 7c m + 8 n < ɛ. Komolyabb, hardverrel" könnyebb.
ALGORITMUSELMÉLET 12. ELŐADÁS 19 = felülírja a szomszédos mezőhármasokat, helyükre teszi a fejeket. = szimuláció elvégezhető egy bal jobb jobb bal bal lépéssorozatban esetleg további 2 jobbralépés szükséges lehet = M feleinek mozgatása = 7 lépés A bemenet átkódolása, majd a kódolt szalagon a fejnek a szalag elejére mozgatása = n + n m lépés n TM (n) T M (n) n + + 7 n + n 7T (n) + m m m m + 8 n + n m + 7cn m + 8n ( n n 1 + 1 m + 7c m + 8 ) n(1 + ɛ), n ha m és n olyan nagyok, hogy 1 m + 7c m + 8 n < ɛ. Komolyabb, hardverrel" könnyebb. A Turing-gépmodellben a feladatok időigénye függ a jelkészlet méretétől