Algoritmuselmélet 12. előadás

Hasonló dokumentumok
Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

Számításelmélet. Második előadás

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

A digitális számítás elmélete

Turing-gép május 31. Turing-gép 1. 1

Automaták mint elfogadók (akceptorok)

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Deníciók és tételek a beugró vizsgára

Az informatika elméleti alapjai 2 elővizsga december 19.

Algoritmuselmélet 18. előadás

Algoritmusok bonyolultsága

Számításelmélet. Will június 13. A kiszámíthatóság fogalma és a Church-Turing tézis

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Véges automaták, reguláris nyelvek

A Turing-gép. Formális nyelvek III.

9. előadás Veremautomaták 1.

Algoritmuselmélet 7. előadás

A Számítástudomány alapjai

Logika és számításelmélet. 10. előadás

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Logika és számításelmélet. 12. előadás

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

NP-teljesség röviden

Algoritmuselmélet 2. előadás

Tesztkérdések az ALGORITMUSELMÉLET tárgyból, 2001/ félév

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT augusztus 16.

Államvizsga kérdések a matematikus szakon, 2001.

Logika és számításelmélet. 7. előadás

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. Friedl Katalin BME SZIT március 18.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Formális nyelvek - 9.

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Informatika 1 2. el adás: Absztrakt számítógépek

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Programozási módszertan

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

Bevezetés a bonyolultságelméletbe gyakorlatok I. A(0, y) := y + 1 y 0 A(x, 0) := A(x 1, 1) x 1 A(x, y) := A(x 1, A(x, y 1)) x, y 1

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Számításelmélet Tamás Herendi

Algoritmuselmélet 1. előadás

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

1. Bevezetés. A számítógéptudomány ezt a problémát a feladat elvégzéséhez szükséges erőforrások (idő, tár, program,... ) mennyiségével méri.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Algoritmuselmélet 11. előadás

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Logika és számításelmélet. 7. előadás

Logika és számításelmélet

Algoritmuselmélet 1. előadás

Diszkrét matematika 2.C szakirány

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Nagy Gábor compalg.inf.elte.hu/ nagy

2018, Diszkrét matematika

Valószínűségi változók. Várható érték és szórás

Logika és számításelmélet. 11. előadás

Dr. Schuster György február / 32

Algoritmusok helyességének bizonyítása. A Floyd-módszer

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Felismerhető nyelvek zártsági tulajdonságai II... slide #30. Véges nemdeterminisztikus automata... slide #21

Információs rendszerek elméleti alapjai. Információelmélet

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Dicsőségtabló Beadós programozási feladatok

Számítógép és programozás 2

Diszkrét matematika 2. estis képzés

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 3. Előadás

Nagyordó, Omega, Theta, Kisordó

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok


ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 1. Előadás

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Információs rendszerek elméleti alapjai. Információelmélet

A félév során előkerülő témakörök

Mérhetőség, σ-algebrák, Lebesgue Stieltjes-integrál, véletlen változók és eloszlásfüggvényeik

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

2014. november 5-7. Dr. Vincze Szilvia

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. Alapok

Nagy Gábor compalg.inf.elte.hu/ nagy

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára

Diszkrét matematika I.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Automaták és formális nyelvek

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

Határérték. prezentációjából valók ((C)Pearson Education, Inc.) Összeállította: Wettl Ferenc október 11.

Modellek ellenőrzése és tesztelése

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Nagy Gábor compalg.inf.elte.hu/ nagy

Bonyolultságelmélet feladatok

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Átírás:

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