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

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

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

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

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.

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

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

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

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

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

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

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

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

Algoritmuselmélet 12. előadás

Nagyordó, Omega, Theta, Kisordó

Függvények növekedési korlátainak jellemzése

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:

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

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

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

Automaták mint elfogadók (akceptorok)

A Számítástudomány alapjai

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:

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

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

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

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

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

Véges automaták, reguláris nyelvek

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

NP-teljesség röviden

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

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

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

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

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

Formális nyelvek - 9.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

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

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.

Algoritmusok bonyolultsága

Logika és számításelmélet Készítette: Nagy Krisztián

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

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

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

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

Algoritmuselmélet 18. előadás

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

2010. október 12. Dr. Vincze Szilvia

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

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

Matematika alapjai; Feladatok

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

Bevezetés a számításelméletbe

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

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

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

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

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

Bonyolultságelmélet feladatok

Algoritmuselmélet 1. előadás

Bonyolultságelmélet. SZTE Informatikai Tanszékcsoport

Dr. Schuster György február / 32

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

Klasszikus algebra előadás. Waldhauser Tamás április 14.

KOVÁCS BÉLA, MATEMATIKA I.

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

Algoritmusok komplexitása. Függvények növekedése Függvények növekedése: Nagy Ordó. Nagy Ordó jelölés. Nagyságrend

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

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

Alap fatranszformátorok II

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

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

Algoritmuselmélet 1. előadás

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

Diszkrét Matematika MSc hallgatók számára. 11. Előadás. Előadó: Hajnal Péter Jegyzetelő: Szarvák Gábor november 29.

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

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

Klasszikus algebra előadás. Waldhauser Tamás április 28.

illetve a n 3 illetve a 2n 5

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

A fontosabb definíciók

Diszkrét matematika I.

ZH feladatok megoldásai

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

HALMAZELMÉLET feladatsor 1.

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Logika es sz am ıt aselm elet I. r esz Logika Hatodik el oad as 1/33

Automaták és formális nyelvek

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.

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

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

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

A valós számok halmaza

Átírás:

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

Elérhetőség, fóliasorok, ajánlott irodalom Előadó: Kolonits Gábor Elérhetőség: 2-708, kolomax@inf.elte.hu Előadások innen tölthetők le: www.cs.elte.hu/ tichlerk Ajánlott irodalom: Gazdag Zsolt: Jegyzet és fóliasor a weben: people.inf.elte.hu/gazdagzs Papadimitriou: Számítási bonyolultság Sipser: Introduction to the Theory of Computation

Bevezetés Algoritmikus megoldás Adott egy való életben előforduló probléma(osztály). Első feladatunk ezen problémát a matematika absztrakt nyelvén matematikai problémává átfogalmazni. Erre általában algoritmikus megoldást keresünk, azaz olyan általánosan megadott egyértelmű utasítássorozatot, mely helyesen működik a problémaosztály minden elemére. A válasz típusa alapján léteznek eldöntési problémák (a válasz igen/nem) illetve általánosabban kiszámítási problémák (bármi lehet a válasz típusa, pl. egy természetes szám). Sok problémaosztályra már ismerünk hatékony algoritmikus megoldást. 1. Kérdés: Van-e egyáltalán mindig algoritmikus megoldás? 2. Kérdés: Ha van, van-e hatékony megoldás? 3. Kérdés: Mikor tekinthető egy algoritmus hatékonynak?

Bevezetés Mikor tekinthető hatékonynak egy algoritmus? Adott egy problémára 5 algoritmus, melyek egy n méretű input esetén rendre log 2 n, n, n 2, n 3, 2 n erőforrást (pl. időt, tárat) használnak. Az erőforrásból legfeljebb K-t használhatnak fel. Egy kétszeres javítás (pl. egy dupla olyan gyors számítógép beszerzése) a maximális inputméretre rendre a következő hatással van: Négyzetes, kétszeres, 2-szeres, 3 2-szeres, +1-es javulás. E tekintetben leggyakrabban a (legfeljebb) polinomiális algoritmusokat tekintik hatékony algoritmusnak. Megjegyzés 1: A tárhatékonysággal kapcsolatosan gyakran erősebbek a követelmények, sokszor konstans vagy logaritmikus tárat használó algoritmust keresünk. Megjegyzés 2: Gyakorlatban lehet jó nem polinomiális algoritmus is. Például n 80 vs. 2 n/100 hatékonyságú algoritmusok illetve várható értékben polinomiális, de legrosszabb esetben exponenciális algoritmusok.

Bevezetés Példák problémaosztályokra 1. 12322+4566=? És általában? Algoritmikus megoldás: az általános suliból jól ismert összeadó algoritmus. Az algoritmus minden számpárra kiszámítja a megoldást, mindig terminál. Hatékonysága: számjegyek számának lineáris függvénye. 2. Egy közösségi oldalon elérhetem-e tőlem ismerősről ismerősre haladva Roger Federert? Valószínűleg igen, hacsak nem frissen regisztráltam és nincs, vagy alig van ismerősöm. Ha igen, mekkora a minimális lépésszám? Elér probléma: Egy G gráfban elérhető-e u-ból v? Algoritmikus megoldás: pl. szélességi keresés (véges gráfra mindig terminál) Hatékonysága: élszám lineáris függvénye

Bevezetés Példák problémákra 3. A nulladrendű logika eldöntésproblémája. Egy formulahalmaznak következménye-e egy adott formula? Tanultuk, hogy elég egy klózhalmaz (vagy KNF) kielégíthetőségét vizsgálni. Sat probléma: kielégíthető-e adott KNF. Egy algoritmikus megoldás: ítélettábla. Hatékonysága: Legrosszabb esetben exponenciális futási idő, nem hatékony. Nem ismeretes (és majd látni fogjuk, hogy nem is várható) polinom idejű algoritmikus megoldás. 4. Egy város neveztességeit (n db.) úgy szeretné végiglátogatni egy turista (hoteléből indulva és oda visszatérve), hogy semelyik nevezetességet se látogatja meg kétszer. Ez matematikailag megfelel egy adott gráfban Hamilton kör keresésének. Egy algoritmikus megoldás: a nevezetességek minden lehetséges sorrendjének kipróbálása. Hatékonysága: n! (legrosszabb eset). Nem ismeretes (és majd látni fogjuk, hogy nem is várható) polinom idejű algoritmikus megoldás.

Bevezetés Példák problémákra 5. Utazó ügynök probléma (TSP, travelling salesman problem): Egy utazó ügynök szeretne repülővel végiglátogatni n várost. Bizonyos városok között van repülőjárat, a használatának pedig egy költsége ( jegyár). Mennyi a körút minimális költsége? algoritmikus megoldás: minden körút kipróbálása, és az addig talált minimum nyilvántartása. A 4. pontban látotta Hamilton kör probléma általánosítása. 6. generatív grammatikák (nyelvtanok) szóproblémája: adott szót generálja-e a grammatika? algoritmikus megoldás: 3. típus esetén lineáris, 2. típus esetén köbös, 1. típus esetén exponenciális, 0. típus esetén??? (folyt. köv.)

Bevezetés Megoldható-e minden probléma algoritmikusan? Eddigi tanulmányaink során számos olyan problémát láttunk, melyre létezik hatékony algoritmus (pl. Elér), másokra (pl. TSP és Sat) nem ismert hatékony, azaz polinomiális megoldás. Úgy tűnhet, hogy ha nem is mindig hatékonyat, de minden problémára találunk algoritmikus megoldást. David Hilbert 1920-ban meg is hirdette programját. Axiomatizáljuk a matematika összes elméletét egy végesen reprezentálható axiómarendszerrel! ennek részeként: Adjunk meg egy olyan Univerzális Algoritmust (UA), mely az összes matematikai állításról el tudja dönteni, hogy igaz-e vagy hamis!

Bevezetés A számítástudomány (számításelmélet) születése Tétel (Gödel első nemteljességi tétele, 1931) Az elemi aritmetikát tartalmazó effektíven kiszámítható elmélet nem lehet egyszerre helyes és teljes. a Hilbert program megvalósíthatatlan. És az UA? Mi is pontosan az algoritmus? 1930-as évek: különböző algoritmus modellek bevezetése Gödel: rekurzív függvények Church, Kleene, Rosser: λ-kalkulus Turing: Turing gép Melyik az "igazi"? Az 1930-as évek második felétől sorra születtek olyan tételek, melyek ezen modellek megegyező számítási erejét mondták ki.

Bevezetés A Church-Turing tézis Church-Turing tézis A kiszámíthatóság különféle matematikai modelljei mind az effektíven kiszámítható függvények osztályát definiálják. Effektíven kiszámítható függvény (intuitív fogalom): olyan függvény a természetes számokon, ami papírral és ceruzával, egy algoritmus utasításait követve korlátlan erőforrással kiszámítható. Különféle matematikai modellek: Turing gép, rekurzív fv-ek, stb. NEM TÉTEL!!! Ha elfogadjuk a tézis igazságát, ezen modellek bármelyike tekinthető az algoritmus matematikai modelljének. Mi: Turing gép. Az algoritmus néhány további Turing-géppel ekvivalens modellje: 0. típusú grammatika veremautomata 2 vagy több veremmel C, Java, stb.

Bevezetés A negatív válasz Church és Turing egymástól függetlenül a következőkre jutottak Tétel (Church, 1936) Két λ-kalkulusbeli kifejezés ekvivalenciája algoritmikusan eldönthetetlen. Tétel (Turing, 1936) A Turing-gépek megállási problémája algoritmikusan eldönthetetlen.

Bevezetés Példák problémákra 6. (folyt.) szóprobléma, 0. típus: algoritmikusan eldönthetetlen csak parciálisan rekurzív (igen esetben termináló, nem esetben nem feltétlen termináló) algoritmus ismeretes. 7. Az elsőrendű logika eldöntésproblémája (Entscheidungsproblem). Church és Turing (1936) bizonyították, hogy nem adható algoritmus annak eldöntésére, hogy egy elsőrendű logikai formula logikailag igaz-e illetve hogy kielégíthető-e. (Entscheidungsproblem UA létezése).

Bevezetés Példák problémákra 8. Hilbert 23 problémája (1900) közül a 10. a következő volt: Diophantoszi egyenletek. Keressük meg egy tetszőleges egész együtthatós többváltozós egyenlet egész gyökeit. Pl. input: 3xy 2x 2 + 2z + 4, output: x = y = 0, z = 2 A feladat tartalmazza a "nagy Fermat tételt" is. Wiles tétele (1995): igaz a "nagy Fermat tétel", az x n + y n = z n diophantoszi egyenletnek nincs pozitív egész megoldása n 3-ra. Matiyasevich tétele (1970): A diophanthoszi egyenletek problémájára nincs algoritmikus megoldás.

Tematika 1. Turing gép és változatai, mint algoritmusmodell 2. Algoritmikusan eldönthetetlen problémák 3. Eldönthető problémák hatékonyságáról: bevezetés a bonyolultságelméletbe

Turing gépek

Turing gépek Informális bevezető A szalagtartalom végesen reprezentálható része a a b a b b a Véges vezérlő Minkét irányba mozgatható író-olvasó fej Mindkét irányba végtelen szalag a Turing gép (TG) az algoritmus egyik lehetséges modellje a TG egyetlen programot hajt végre (de bármely inputra!!!), azaz tekinthető egy célszámítógépnek. informálisan a gép részei a vezérlőegység (véges sok állapottal), egy mindkét irányba végtelen szalag, és egy mindkét irányba lépni képes író-olvasó fej kezdetben egy input szó van a szalagon (ε esetén üres), a fej ennek első betűjéről indul, majd a szabályai szerint működik. Ha eljut az elfogadó állapotába elfogadja, ha eljut az elutasító állapotába elutasítja az inputot. Van egy harmadik lehetőség is: nem jut el soha a fenti két állapotába, "végtelen ciklusba" kerül.

Turing gépek Informális bevezető A szalagtartalom végesen reprezentálható része a a b a b b a Véges vezérlő Minkét irányba mozgatható író-olvasó fej Mindkét irányba végtelen szalag a gép determinisztikus, továbbá minden esetben definiált az átmenet a végtelen szalagra úgy gondolhatunk, mint potenciálisan végtelen tárra egy P probléma példányait egy megfelelő ábécé felett elkódolva a probléma igen-példányai egy L P formális nyelvet alkotnak. L P (és így a probléma maga is) eldönthető, ha van olyan mindig termináló gép, mely pontosan L P szavait fogadja el. a Church-Turing tézis értelmében úgy gondolhatjuk tehát, hogy éppen a TG-pel eldönthető problémák (nyelvek) az algoritmikusan eldönthető eldöntési problémák.

Turing gépek Definíció Turing gép A Turing gép (továbbiakban röviden TG) egy M = Q, Σ, Γ, δ, q 0, q i, q n rendezett hetes, ahol Q az állapotok véges, nemüres halmaza, q 0, q i, q n Q, q 0 a kezdő- q i az elfogadó- és q n az elutasító állapot, Σ és Γ ábécék, a bemenő jelek illetve a szalagszimbólumok ábécéje úgy, hogy Σ Γ és Γ \ Σ. δ : (Q \ {q i, q n }) Γ Q Γ {L, S, R} az átmenet függvény. δ az egész (Q \ {q i, q n }) Γ-n értelmezett függvény. {L, S, R} elemeire úgy gondolhatunk mint a TG lépéseinek irányai (balra, helyben marad, jobbra). (Valójában elég lenne 2 irány: A helyben maradó lépések helyettesíthetők egy jobbra és egy balra lépéssel egy, csak erre az átmenetre használt új állapoton keresztül.)

Turing gépek Konfigurácó A TG működtetését a gép konfigurációival írhatjuk le. Konfiguráció A TG konfigurációja egy uqv szó, ahol q Q és u, v Γ, v ε. Az uqv konfiguráció egy tömör leírás a TG aktuális helyzetéről, mely a gép további működése szempontjából minden releváns információt tartalmaz: a szalag tartalma uv (uv előtt és után a szalagon már csak van), a gép a q állapotban van és az író-olvasó fej a v szó első betűjén áll. Két konfigurációt azonosnak tekintünk, ha csak balra/jobbra hozzáírt -ekben térnek el egymástól. (Például abq 2 és abq 2.) A gép egy u Σ -beli szóhoz tartozó kezdőkonfigurációja a q 0 u szó. (Vagyis q 0 u, ha u ε és q 0, ha u = ε). Elfogadó konfigurációi azon konfigurációk, melyre q = q i. Elutasító konfigurációi azon konfigurációk, melyre q = q n. Az elfogadó és elutasító konfigurációk közös neve megállási konfiguráció.

Turing gépek Konfigurácóátmenet Jelölje C M egy M TG-hez tartozó lehetséges konfigurációk halmazát.az M Turing gép C M C M konfigurációátmenet-relációját az alábbiak szerint definiáljuk. C M C M egylépéses konfigurációátmenet Legyen uqav egy konfiguráció, ahol a Γ, u, v Γ. Ha δ(q, a) = (r, b, R), akkor uqav ubrv, ahol v = v, ha v ε, különben v =, ha δ(q, a) = (r, b, S ), akkor uqav urbv, ha δ(q, a) = (r, b, L), akkor uqav u rcbv, ahol c Γ és u c = u, ha u ε, különben u = u és c =. Példa: Tegyük fel, hogy δ(q 2, a) = (q 5, b, L) és δ(q 5, c) = (q 1,, R). Legyen továbbá C 1 = bcq 2 a b, C 2 = bq 5 cb b, C 3 = b q 1 b b. Ekkor C 1 C 2 és C 2 C 3.

Turing gépek Többlépéses konfigurációátmenet, felismert nyelv Többlépéses konfigurációátmenet: reflexív, tranzitív lezártja, azaz: C M C M többlépéses konfigurációátmenet C C ha C = C vagy ha n > 0 C 1, C 2,... C n C M, hogy 1 i n 1-re C i C i+1 valamint C 1 = C és C n = C. Ekvivalens definíció: C C (C = C ) ( C konfiguráció: (C C ) (C C )) Példa: (folytatás) Legyen C 1, C 2, C 3 ugyanaz, mint a fenti példában. Mivel C 1 C 2 és C 2 C 3 is teljesült, ezért C 1 C 1, C 1 C 2, C 1 C 3 is fennállnak.

Turing gépek Felismerhetőség és eldönthetőség Az M TG által felismert nyelv L(M) = { u Σ q 0 u xq i y valamely x, y Γ, y ε -ra }. Figyeljük meg, hogy L(M) csak Σ feletti szavakat tartalmaz. Egy L Σ nyelv Turing-felismerhető, ha L = L(M) valamely M TG-re. Egy L Σ nyelv eldönthető, ha létezik olyan M TG, mely minden bemeneten megállási konfigurációba jut és L(M) = L. A Turing-felismerhető nyelveket szokás rekurzívan felsorolhatónak (vagy parciálisan rekurzívnak, vagy félig eldönthetőnek) az eldönthető nyelveket pedig rekurzívnak is nevezni. A rekurzívan felsorolható nyelvek osztályát RE -vel, a rekurzív nyelvek osztályát pedig R-rel jelöljük. Nyilván R RE. Igaz-e hogy R RE? Válasz a 9. előadáson.

Turing gépek Futási idő Egy M TG futási ideje (időigénye) az u szóra t (t 0), ha M az u-hoz tartozó kezdőkonfigurációból t lépésben (konfigurációátmenettel) jut el megállási konfigurációba. Ha nincs ilyen szám, akkor M futási ideje az u szóra végtelen. Legyen f : N N egy függvény. Azt mondjuk, hogy M egy f(n) időkorlátos gép (vagy M f (n) időigényű), ha minden u Σ input szóra M futási ideje az u szón legfeljebb f ( u ). Gyakran megelégszünk azzal, hogy a pontos időkorlát helyett jó aszimptotikus felső korlátot adjunk az időigényre.

Turing gépek Egy példa Feladat: Készítsünk egy M Turing gépet, melyre L(M) = {ww 1 w {a, b} }! Az átmenetdiagram. a/b, D megfelel a δ(q, a) = (r, b, D) átmenetnek q r (q, r Q, a, b Γ, D {L, S, R}) Egy megoldás: a/a,r b/b,r q i /, S q 0 a/, R q 1 /, L /, R q 3 a/, L q 5 q n b/, R q 2 /, L q 4 b/, L a/a,l b/b,l a/a,r b/b,r A többi átmenet q n -be megy.

Turing gépek Egy példa (folyt.) a/a,r b/b,r q i /, S q 0 a/, R q 1 /, L /, R q 3 a/, L q 5 q n b/, R q 2 /, L q 4 b/, L a/a,l b/b,l a/a,r b/b,r Példa. Konfigurációátmenetek sorozata az aba inputra: q 0 aba q 1 ba bq 1 a baq 1 bq 3 a q 5 b q 5 b q 0 b q 2 q 4 q n. Az aba inputra 10 lépésben jut a gép megállási konfigurációba. Ebben a példában tetszőleges n-re ki tudjuk számolni a pontos időigényt is, de egyszerűbb (és gyakran elegendő) egy jó aszimptotikus felső korlát megadása.

Függvények aszimptotikus nagyságrendje Definició Legyenek f, g : N R + 0 függvények, ahol N a természetes számok, pedig a nemnegatív valós számok halmaza. R + 0 f -nek g aszimptotikus felső korlátja (jelölése: f (n) = O(g(n)); ejtsd: f (n) = nagyordó g(n)) ha létezik olyan c > 0 konstans és N N küszöbindex, hogy f (n) c g(n) minden n N-re. f -nek g aszimptotikus alsó korlátja (jelölése: f (n) = Ω(g(n))) ha létezik olyan c > 0 konstans és N N küszöbindex, hogy f (n) c g(n) minden n N-re. f -nek g aszimptotikus éles korlátja (jelölése: f (n) = Θ(g(n))) ha léteznek olyan c 1, c 2 > 0 konstansok és N N küszöbindex, hogy c 1 g(n) f (n) c 2 g(n) minden n N-re. Megjegyzés: a definíció könnyen kiterjeszthető aszimptotikusan nemnegatív, azaz egy korlát után nemnegatív értékű függvényekre. Ilyenek például a pozitív főegyütthatójú polinomok.

Függvények aszimptotikus nagyságrendje Függvények aszimptotikus nagyságrend szerinti osztályozása O, Ω, Θ 2-aritású relációnak is tekinthető az N R + 0 függvények univerzumán, ekkor O, Ω, Θ tranzitív (pl. f = O(g), g = O(h) f = O(h)) O, Ω, Θ reflexív Θ szimmetrikus O, Ω fordítottan szimmetrikus ( f = O(g) g = Ω( f )) (köv.) Θ ekvivalenciareláció, az N R + 0 függvények egy osztályozását adja. Az egyes függvényosztályokat általában "legegyszerűbb" tagjukkal reprezentáljuk. Pl. 1 (korlátos függvények), n (lineáris függvények), n 2 (négyzetes függvények), stb. Persze a négyzetes függvények osztálya nem csak másodfokú polinomokat tartalmaz. Pl. 2n 2 + 3 log 2 n = Θ(n 2 ).

Függvények aszimptotikus nagyságrendje Tételek f, g = O(h) f + g = O(h), hasonlóan Ω-ra, Θ-ra. (Összeadásra való zártság) Legyen c > 0 konstans f = O(g) c f = O(g), hasonlóan Ω-ra, Θ-ra. (Pozitív konstanssal szorzásra való zártság) f + g = Θ(max{ f, g}) (szekvencia tétele). A domináns tag határozza meg egy összeg aszimptotikus nagyságrendjét. Ha létezik az f /g határérték ha f (n)/g(n) + f (n)=ω(g(n)) és f (n) O(g(n)) ha f (n)/g(n) c (c > 0) f (n) = Θ(g(n)) ha f (n)/g(n) 0 f (n) = O(g(n)) és f (n) Ω(g(n))

Függvények aszimptotikus nagyságrendje Konkrét függvények p(n) = a k n k + + a 1 n + a 0 (a k > 0), ekkor p(n) = Θ(n k ), Minden p(n) polinomra és c > 1 konstansra p(n) = O(c n ), de p(n) Ω(c n ), Minden c > d > 1 konstansokra d n = O(c n ), de d n Ω(c n ), Minden a, b > 1-re log a n = Θ(log b n), Minden c > 0 -ra log n = O(n c ), de log n Ω(n c ).

Turing gépek Egy példa (folyt.) a/a,r b/b,r q i /, S q 0 a/, R q 1 /, L /, R q 3 a/, L q 5 q n b/, R q 2 /, L q 4 b/, L a/a,l b/b,l a/a,r b/b,r A TG időigénye O(n 2 ), hiszen O(n) iteráció mindegyikében O(n)-et lépünk, +1 lépés q i -be vagy q n -be. Van-e jobb aszimptotikus felső korlát? Nincs, mert van végtelen sok szó, melyre Ω(n 2 )-et lép. Eldönti-e L = {ww 1 w {a, b} }-et vagy "csak" felismeri? Eldönti. Van-e olyan TG, ami nem dönti el, de azért felismeri L-et? Igen, a q n -be menő átmeneteket vezessük végtelen ciklusba.