Deníciók és tételek a beugró vizsgára (a szóbeli viszgázás jogáért) Utolsó módosítás: 2008. december 2.
2 Bevezetés Számítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést, amire számítógéppel szeretnénk megadni a választ. Egy problémát a hozzá tartozó konkrét bementettel együtt a probléma egy példányának nevezzük. Speciális számítási probléma az eldöntési probléma. Ilyenkor a problémával kapcsolatos kérdés egy eldöntend kérdés, tehát a probléma egy példányára a válasz igen vagy nem lesz. Egy f : A B függvényt kiszámíthatónak nevezünk, ha létezik olyan algoritmus amely minden x A elemre véges sok lépésben kiszámítja az f(x) B értéket (tehát f teljesen deniált, azaz totális függvény). Egy probléma megoldható, ha az általa meghatározott függvény kiszámítható. Ha egy eldöntési probléma megoldható, akkor azt is mondjuk, hogy a probléma eldönthet. Egy eldönthet probléma tekinthet úgy is mint egy formális nyelv. A probléma példányait elkódoljuk egy megfelel ábécé feletti szavakban. Ezek után magát a problémát azonosítjuk azzal a formális nyelvvel, mely azokat a szavakat tartalmazza, melyek a probléma igen példányait kódolják, vagyis azokat a példányokat melyekre a problémát eldönt algoritmus igen választ ad. Legyenek f, g : N R + függvények, ahol N a természetes számok, R + pedig a nemnegatív valós számok halmaza. Azt mondjuk, hogy f legfeljebb olyan gyorsan n mint g (jelölése: f(n) = O(g(n))) ha létezik olyan c > 0 szám és n 0 N, hogy f(n) c g(n) minden n n 0 számra. Az f(n) = Ω(g(n)) jelöli azt, hogy g(n) = O(f(n)) teljesül, és f(n) = Θ(g(n)) jelöli azt, hogy f(n) = O(g(n)) és f(n) = Ω(g(n)) is teljesül. Tétel Minden polinomiális függvény lassabban n, mint bármely exponenciális függvény, azaz minden p(n) polinomhoz és c pozitív valós számhoz van olyan n 0 egész szám, hogy minden n n 0 esetén p(n) 2 cn. Az algoritmus fogalmának egy intuitív deníciója: Utasítások egy jóldeniált, véges sorozata, melyeket végrehajtva megoldható egy adott feladat (probléma). Eszközök, melyek az algoritmus fogalmának matematikai modelljei: rekurzív függvények, λ-kalkulus, Turing-gépek, RAM gépek, Post-gépek, Markovalgoritmusok. Church-Turing tézis A kiszámíthatóság különböz matematikai modelljei mind az eektíven kiszámítható függvények osztályát deniálják.
3 Formális nyelvi alapismeretek Legyen Σ egy véges, nem üres halmaz. Σ-t ábécének, az elemeit pedig bet knek nevezzük. Σ bet inek egy tetsz leges véges (akár üres) sorozatát Σ-feletti szónak nevezzük. Σ jelöli az összes Σ-feletti szót, Σ + a Σ {ε} halmazt, l(u) az u Σ szó hosszát, l a (u) pedig az u-beli a bet k számát. A 0 hosszú szót üres szónak nevezzük (jele: ε). Σ-feletti nyelven a Σ egy részhalmazát értjük. A kiszámíthatóság elmélet alapjai A Turing-gép egy olyan M = (Q, Σ, Γ, δ, q 0, q i, q n ) rendszer, 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 szalag szimbólumok ábécéje úgy, hogy Σ Γ és Γ Σ tartalmaz egy speciális szimbólumot, δ : (Q {q i, q n }) Γ Q Γ {L, R} az átmenet függvény. A Turing-gép m ködésének fázisait a gép úgynevezett kongurációival írjuk le. A Turing-gép kongurációja egy uqv szó, ahol q Q és u, v Γ, v ε. Ez a konguráció a gép azon állapotát tükrözi amikor a szalag tartalma uv (uv után szalagon már csak van), a gép a q állapotban van, és a gép író-olvasó feje a v els bet jére mutat. A gép kezd kongurációja egy olyan q 0 u szó, ahol u csak Σ beli bet ket tartalmaz. Egy Turing-gép kongurációátmenetét az alábbiak szerint deniáljuk. Legyen uqav egy konguráció, ahol a Γ és u, v Γ. Ha δ(q, a) = (r, b, R), akkor uqav ubrv, ahol v = v, ha v ε, különben v =. Most tegyük fel azt, hogy δ(q, a) = (r, b, L). Ebben az esetben ha u ε, akkor uqav u rcbv, ahol c Γ és u c = u, egyébként pedig uqav urbv. Azt mondjuk, hogy M véges sok lépésben eljut a C kongurációból a C kongurációba (jele C C ), ha van olyan n 0 és C 1,..., C n kongurációsorozat, hogy C 1 = C, C = C n és minden 1 i < n-re, C i C i+1. Ha q {q i, q n }, akkor azt mondjuk, hogy az uqv konguráció egy megállási konguráció. q = q i esetében elfogadó, míg q = q n esetében elutasító kongurációról beszélünk. Az M által felismert nyelv (amit L(M)-mel jelölünk) azoknak az u Σ szavaknak a halmaza, melyekre igaz, hogy q 0 u xq i y valamely x, y Γ, y ε szavakra.
4 Egy L Σ nyelv Turing-felismerhet, ha L = L(M) valamely M Turinggépre. Továbbá, egy L Σ nyelv eldönthet, ha létezik olyan M Turinggép, mely minden bemeneten megállási kongurációba jut és felismeri az L- et. A Turing-felismerhet nyelveket szokás rekurzívan felsorolhatónak, az eldönthet nyelveket pedig rekurzívnak is nevezni. A rekurzívan felsorolható nyelvek osztályát RE-vel, a rekurzív nyelvek osztályát pedig R-rel jelöljük. Tekintsünk egy M = (Q, Σ, Γ, δ, q 0, q i, q n ) Turing-gépet és annak egy u Σ bemen szavát. Azt mondjuk, hogy M futási ideje (id igénye) az u szón n (n 0), ha M a q 0 u kezd kongurációból n lépésben el tud jutni egy megállási kongurációba. Ha nincs ilyen szám, akkor M futási ideje az u-n végtelen. Legyen f : N N egy függvény. Azt mondjuk, hogy M id igénye f(n) (vagy, hogy M egy f(n) id korlátos gép), ha minden u Σ input szóra, M id igénye az u szón legfeljebb f(l(u)). Legyen k > 1. Egy k-szalagos Turing-gép egy olyan M = (Q, Σ, Γ, δ, q 0, q i, q n ) rendszer, ahol a komponensek a δ kivételével megegyeznek az egyszalagos Turinggép komponenseivel, δ pedig a következ képpen adódik. δ : (Q {q i, q n }) Γ k Q Γ k {L, R, S} k. Itt az S szimbólum azt az esetet jelöli amikor az író-olvasó fej helyben marad. A többszalagos Turing-gép kongurációi, a kongurációátmenetek valamint a felismert illetve elöntött nyelv deníciója az egyszalagos eset értelemszer általánosításai. A többszalagos Turing-gép modell id igényét is az egyszalagoshoz hasonlóan deniáljuk. A továbbiakban egy L nyelvet f(n) id ben eldönthet nek nevezünk, ha eldönthet egy f(n) id korlátos (akár többszalagos) Turing-géppel. Tétel Minden k-szalagos, f(n) id korlátos Turing-géphez van vele ekvivalens egyszalagos, O(f(n) 2 ) id korlátos Turing-gép. Egy M nemdeterminisztikus Turing-gép átmenetfüggvénye δ : (Q {q i, q n }) Γ P(Q Γ {L, R}) alakú. Tehát M minden kongurációjából néhány (esetleg nulla) különböz kongurációba mehet át. Ily módon M számítási sorozatai egy u szón egy fával reprezentálhatók. A fa csúcsa M kezd kongurációja, a szögpontjai pedig M kongurációi. A fa minden levele megfelel M egy számítási sorozatának az u-n. Végül M akkor fogadja el u-t, ha a fa valamelyik levele elfogadó konguráció. Nevezzük ezt a most leírt fát M nemdeterminisztikus számítási fájának az u-n. Az M nemdeterminisztikus Turing-gép által felismert nyelv a determinisztikus esethez hasonlóan deniálható, a gép által eldöntött nyelv pedig a következ képpen. Azt mondjuk, hogy egy nemdeterminisztikus Turing-gép eldönt egy L Σ nyelvet ha felismeri, és minden u Σ szóra M számítási sorozatai végesek és elfogadási vagy elutasítási kongurációba vezetnek. A nemdeterminisztikus Turing-gép deníciója értelemszer en kiterjeszthet a többszalagos esetre is. A nemdeterminisztikus Turing-gép id igényét a következ módon deniáljuk. Legyen f : N N egy függvény és M egy nemdeterminisztikus Turing-gép.
5 Azt mondjuk, hogy az M id igénye f(n), ha egy n hosszú bemeneten nincsenek M-nek n-nél hosszabb számítási sorozatai. Tétel Minden M f(n) id igény nemdeterminisztikus Turing-gép ekvivalens egy 2 O(f(n)) (exponenciális) id igény determinisztikus Turing-géppel. Eldönthetetlen problémák Az L átló nyelv azon {0, 1}-feletti Turing-gépek bináris kódjait tartalmazza, melyek nem fogadják el önmaguk kódját, mint bemen szót. Formálisan, L átló = {w i i 1, w i L(M i )}, ahol w i az i-ik szó a {0, 1}-feletti szavak felsorolásában, M i pedig a w i bináris szóval elkódolt {0, 1} ábécé feletti Turing-gép. Tétel Az L átló nem rekurzívan felsorolható. Legyen L egy Σ-feletti tetsz leges nyelv. Az L nyelv komplementerét L-el jelöljük és az alábbi módon deniáljuk: L = {w w Σ, w L}. Tétel Ha L egy rekurzív nyelv, akkor a komplementere is rekurzív. Tétel Legyen L egy nyelv. Ha L és L is rekurzívan felsorolható, akkor L rekurzív. Az L u nyelv azon (M, w) párok halmaza (egy megfelel bináris szóban elkódolva), ahol M egy {0, 1} bemen ábécé feletti Turing-gép, w pedig egy {0, 1}- feletti szó úgy, hogy w L(M), azaz M elfogadja w-t. Formálisan, L u = { M, w w L(M)}. Tétel L u rekurzívan felsorolható, de nem rekurzív. Legyen Σ és két ábécé és f egy Σ -ból -ba képez függvény. Azt mondjuk, hogy f kiszámítható, ha van olyan M Turing-gép, hogy M-et egy w Σ szóval a bemenetén indítva, M úgy áll meg, hogy a szalagján az f(w) szó van. Legyen L 1 Σ és L 2 két nyelv (azaz eldöntési probléma). Azt mondjuk, hogy L 1 visszavezethet L 2 -re, ha van olyan f : Σ kiszámítható függvény, hogy minden w Σ szóra, w L 2 akkor és csak akkor teljesül, ha f(w) L 2 is teljesül. Tétel Legyen L 1 és L 2 két eldöntési probléma és tegyük fel, hogy L 1 visszavezethet L 2 -re. Akkor igazak az alábbi állítások: 1. Ha L 1 eldönthetetlen, akkor L 2 is az (azaz ha L 1 R, akkor L 2 R). 2. Ha L 1 RE, azaz nem rekurzívan felsorolható, akkor L 2 RE szintén teljesül. A Turing-gépek megállási problémája, mint formális nyelv: L halt = { M, w M megáll a w bemeneten},
6 azaz L halt azon (M, w) Turing-gép és bemenet párosokat tartalmazza megfelel en elkódolva, hogy az M gép megáll a w bemenetet. Tétel L halt rekurzívan felsorolható, de nem rekurzív. Ha P a rekurzívan felsorolható nyelvek egy halmaza, akkor P-t a rekurzívan felsorolható nyelvek egy tulajdonságának nevezzük. Továbbá, P egy nem triviális tulajdonság, ha P és P RE. Azt mondjuk, hogy egy L RE nyelv rendelkezik a P tulajdonsággal, ha L P. L P azon Turing-gépek kódjait tartalmazza, melyek P tulajdonsággal rendelkez nyelveket ismernek fel. Tétel (Rice tétele) Legyen P a rekurzívan felsorolható nyelvek egy nem triviális tulajdonsága. Akkor az L P nyelv eldönthetetlen (azaz L P R). A Post Megfelelkezési Probléma (PMP) a következ képpen deniálható: Adott egy D = { u1 v 1,..., un v n } dominóhalmaz, ahol n 1 és minden 1 i n-re, u i és v i egy Σ-feletti nem üres szó. A kérdés az, hogy van-e D-nek megoldása, azaz van-e olyan i 1,..., i m {1,..., n} indexsorozat valamely m 1-re, melyre teljesül, hogy u i1... u im = v i1... v im. Tétel A Post Megfelelkezési Probléma algoritmikusan eldönthetetlen. Másképpen fogalmazva az L D = { D D egy olyan dominókészlet aminek van megoldása} nyelv nem R-beli. Tekintsük az alábbi nyelveket (problémákat): T AUT 1 = { ϕ ϕ egy els rend tautológia}, UNSAT 1 = { ϕ ϕ egy kielégíthetetlen els rend formula}, SAT 1 = { ϕ ϕ egy kielégíthet els rend formula}, Tétel A T AUT 1, UNSAT 1 és SAT 1 problémák egyike sem eldönthet, azaz T AUT 1, UNSAT 1, SAT 1 R. Következmény Algoritmikusan eldönthetetlen, hogy els rend formulák egy tetsz leges véges F halmazára illetve egy A els rend formulára teljesül-e, hogy F = A. Tétel A T AUT 1 és az UNSAT 1 nyelvek rekurzívan felsorolhatóak. Továbbá, ha F els rend formulák egy tetsz leges véges halmaza, akkor azon A formulák halmaza, melyekre igaz, hogy F = A szintén rekurzívan felsorolható. Következmény SAT 1 RE, azaz SAT 1 nem rekurzívan felsorolható.
7 Bevezetés a bonyolultságelméletbe Legyen f(n) : N N egy függvény. Akkor TIME(f(n)) = {L L eldönthet O(f(n)) id igény Turing-géppel}. Továbbá, P = k 1 TIME(nk ). Tehát P azon nyelveket tartalmazza, melyek eldönthet ek polinom id korlátos determinisztikus Turing-géppel. NTIME(f(n)) = {L L eldönthet O(f(n)) id igény nemdeterminisztikus Turing-géppel}. Továbbá, NP = k 1 NTIME(nk ). Tehát NP azon nyelveket tartalmazza, melyek eldönthet ek polinom id korlátos nemdeterminisztikus Turing-géppel. Tétel P NP. Az a sejtés (azaz még nem bizonyított), hogy a fenti tartalmazás valódi. Legyen Σ és két ábécé és f egy Σ -ból -ba képez függvény. Azt mondjuk, hogy f polinom id ben kiszámítható, ha kiszámítható egy polinom id igény Turing-géppel. Legyen L 1 Σ és L 2 két nyelv. Azt mondjuk, hogy L 1 polinom id ben visszavezethet L 2 -re (jele: L 1 p L 2 ), ha van olyan f : Σ polinom id ben kiszámítható függvény, hogy minden w Σ szóra, w L 1 akkor és csak akkor teljesül, ha f(w) L 2 is teljesül. Tétel Legyen L 1 és L 2 két probléma úgy, hogy L 1 p L 2. Ha L 2 1. P-beli, akkor L 1 is P-beli. 2. NP-beli, akkor L 1 is NP-beli. Legyen L egy probléma. Azt mondjuk, hogy L NP-teljes, ha 1. NP-beli és 2. minden további NP-beli probléma polinom id ben visszavezethet L-re. Tétel Legyen L egy NP-teljes probléma. Ha L P, akkor P = NP. Tétel Legyen L 1 egy NP-teljes és L 2 egy NP-beli probléma. Ha L 1 p L 2 (azaz L 1 polinom id ben visszavezethet L 2 -re), akkor L 2 is NP-teljes. Literálnak nevezünk egy ítéletváltozót (melynek értéke igaz illetve hamis lehet) illetve annak negáltját. Tagnak nevezzük a literálok diszjunkcióját (vagy kapcsolatát) és konjunktív normálformának (knf) a tagok konjunkcióját (és kapcsolatát). Ezek után a Sat problémát a következ képpen deniáljuk. Sat={ φ φ kielégíthet konjunktív normálformában adott logikai formula}
8 Tehát Sat azon konjunktív normálformákat tartalmazza, egy megfelel ábécé felett elkódolva, melyek kielégíthet ek. Tétel (Cook tétele) Sat NP-teljes. Legyen k 1. A ksat problémát a következ képpen deniáljuk. ksat = { φ : φ sat, φ minden tagjában k literál van }. Tétel 3sat NP-teljes. A Teljes részgráf, Független csúcshalmaz és Csúcslefedés problémákat a következ képpen deniáljuk. Teljes részgráf = { G, k G véges gráf, k 1, G-nek létezik k csúcsú teljes részgráfja }. Tehát a Teljes részgráf azon G és k párokat tartalmazza, megfelel ábécé feletti szavakban elkódolva, melyekre igaz, hogy G-ben van k csúcsú teljes részgráf, azaz olyan részgráf, melyben bármely két csúcs között van él. Független csúcshalmaz = { G, k G véges gráf, k 1, G-nek van k elem független csúcshalmaza }. Vagyis a Független csúcshalmaz azon G és k párokat tartalmazza, melyekre igaz, hogy G-ben van k olyan csúcs, melyek közül egyik sincs összekötve a másikkal. Csúcslefedés = { G, k G véges gráf, k 1, G-nek van olyan k elem csúcshalmaza, mely tartalmazza G minden élének legalább egy végpontját }. Tétel A Teljes részgráf, Független csúcshalmaz és Csúcslefedés problémák NP-teljesek. Tétel Ha P NP, akkor van olyan L NP nyelv, hogy L P, de L nem is NP-teljes.