Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... 1 Államvizsga kérdések a matematikus szakon, 2001. 10. tétel : Algoritmusok bonyolultsága (Számítási modellek, véges automaták, Turinggépek, eldönthet ség, tár és id ) 1. Véges Automaták, reguláris nyelvek Jelölések: Σ: véges ABC, Σ : Σ szavai, ε: üres szó. Deníció. Véges Automata: A = (Σ, Γ, S, α, E). Σ: véges ABC, Γ: bels állapotok véges halmaza, s Γ start állapot, α : Σ Γ Γ átmeneti függvény, E Γ elfogadó állapotok halmaza. (Véges Automata=VA). A VA outputja egy x Σ sorozaton: α (x) Γ, ami rekurzíven deniált: α (ε) = s, α (xa) = α(a, α (x)). (x Σ, a Σ). L Γ reguláris nyelv, ha A VA, hogy L A = L, ahol L A = {x Σ α (x) E}, az A által elfogadott szavak halmaza. Tétel. Reguláris nyelvek tulajdonságai Ha L, L 1, L 2 reguláris, akkor az alábbi nyelvek is: L 1 L 2, L 1 L 2, L 1 L 2, L = {x 1... x k x i L}, L R = { x k x L } ahol x k : x megfordítottja, L = Σ L. Pumpálási Lemma Ha L reguláris n N, hogy x L, x n -re: y, z, t Σ : x = yzt, yz n, z 1, k 0 -ra y(z) k t L. Tétel L Reguláris {{y Σ xy L} x Σ } véges. Deníció. Nemdeterminisztikus Véges Automaták(NVA) NVA: A = (Σ, Γ, S, α, E) ahol Σ: véges ABC, Γ: bels állapotok véges halmaza, S Γ: startállapotok halmaza, E Γ: elfogadó állapotok halmaza, α (Σ ε) Γ Γ (α (a, B, c) jelentése: a hatására B állapotból c állapotba ugrásra van lehet ség). NVA megengedett futása az x Σ inputon x = n esetén egy olyan a 0, a 1,... a n Γ bels állapot sorozat, hogy a 0 S és (x i, a i 1, a i ) α i = 1, 2,... n, ahol x i az x i-dik karaktere. Kidolgozta: Futó Gábor, kiegészítette: Henk Csaba (és köszönet Yu Dának a LATEX-elésért!)
2 Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... NVA-ra L A = {x Σ x-et elfogadja A}, ahol x-et elfogadja A, ha létezik elfogadó állapotban végz d megengedett futása A-nak az x inputon. Tétel. NVA tulajdonságai Ha A NVA k bels állapottal B VA 2 k állapottal, hogy L A = L B. tehát NVA-k is a reguláris nyelveket ismerik fel. NVA-k segítségével könnyen beláthatók az el z oldal zártsági állításai. minden k-ra van olyan k állapotú NVA-val felismerhet nyelv, aminek VA-val való felismeréséhez 1 4 2k állapot lett. 2. Turing-gépek (TG), rekurzív függvények Deníció. Turing gép, rekurzív függvények, rekurzív nyelvek Turing gép: T = (k, Σ, Γ, start, stop, α, β, γ). k: szalagok száma, Σ véges ABC, Γ bels állapotok, Γ start, stop, α : Γ Σ k Γ bels állapot átmenetfüggvénye. β : Γ Σ k Σ k mit ír a küls szalagokra, ha valamit olvas és valami a bels állapot. γ : Γ Σ k {Bal, Marad, Jobb} k : merre mozdulnak a fejek a szalagokon. Egy T TG helyzete (ID) az adott pillanatban a bels állapot-ból, a szalagok tartalmától és a fejek helyzetéb l áll. TG egy lépése: ID ID, értelelmszer en deniálva a fentiekb l. Start bels állapotból indul a gép, k db Σ 0 = (Σ ε) -ból származó x 1,... x k sorozat van a szalagon (input), fejek kezdetben a sorozatok els bet jén állnak; k szalagos gép inputja x alatt az (x, ε,..., 0) inputot értjük. IDŽ, TÁR Ha a T TG az (x 1,... x k ) inputon megáll, akkor t T (x 1,... x k ) = lépések száma, space T (x 1,..., x k ) = mez k száma, ahova T ír. 1. f : Σ 0 Σ 0 rekurzív függvény (kiszámolható), ha T (1-szalagos) TG, ami minden inputon megáll és x-en f(x)-et ad. 2. f : H Σ 0, H Σ 0 parciálisan rekurzív függvény, ha T (1-szalagos) TG, hogy: T megáll x-en x H, és ekkor f(x) van a szalagon. A T 1-szalagos TG elfogadja x-et x-en megáll és a fej alatt a 0 áll (pl.) 1. A L Σ 0 nyelv rekurzív felsorolható (RE), ha T (1-szalagos) TG: T elfogadja x-et x L. Jel.: L RE 2. A L Σ 0 nyelv rekurzív eldönthet (R), ha T (1-szalagos) TG, ami minden inputon megáll, és elfogadja x-et x L. Jel.: L R.
Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... 3 Deníció. A T k+1-szalagos TG a p programmal szimulálja az S k-szalagos TG-t, ha x 1... x k Σ 0-ra T megáll az (x 1,..., x k ) inputon S az megáll az (x 1,... x k ) inputon, és akkor az els k szalagjukon ugyanaz van. A T k + 1-szalagos TG univerzális (a k szalagos TG-kre nézve), ha bármely k- szalagos S TG-hez van olyan p prgram, amivel T szimulálja S-et. Tétel. Univerzális TG minden k 1, Σ-hoz létezik k + 1-szalagos univerzális TG m inden k-szalagos S TG-hez van 1-szalagos T TG, hogy ugyanazon inputokra állnak meg véges sok lépésben, és T szalagján ugyanaz lesz mint S 1. szalagján, továbbá ha S t ideig fut, akkor T max O(t 2 ) ideig adott inputon. T 1-szalagos univerzális TG is. ami pl. úgy deniálható, hogy tetsz leges S (valahány, mondjuk k szalagos) TG-hez p Σ 0 program, hogy x 1,... x k Σ 0- ra T az x 1 x 2... x k p inputon, (ahol valami elválasztó jel) akkor és csakis akkor áll meg véges lépésben, ha S (x 1,... x k )-n, és ugyanaz lesz a szalagján, ami S els szalagján, amikor megállnak. Tétel. Rekurzivitás, eldönthet ség, megállási probléma 1. L rekuzív f(x) = { 1 ha x L, 0 ha x / L, rekurzív fv. 2. L RE (rekurzív felsorolható) f(x) = { 1 ha x L, értelmezetlen 3. L parciálisan rekurzív T TG ami x L-re megáll, x / L-re nem áll meg. 4. R = RE RE (ahol L RE L RE) 5. (a) Legyen T 2-szalagos TG-re L T = {x Σ 0 T x, x inputon megáll} ; L T RE (b) de ha T univerzális L T / RE, L T RE nem rekurzív (diagonalizáció). = van olyan 1-szalagos TG, amire eldönthetetlen, hogy x inputon megáll-e. eldönthetetlen, hogy egy (leírásával adott) TG az üres inputon megáll-e. eldönthetetlen, hogy egy (leírásával adott) TG elfogad-e nem üres szót. Deníció. L 1 αl 2 : visszavezethet L 2 -re, ha f : Σ 0 Σ 0 rekurzív: x x L 1 f(x) L 2 Tétel. L 1 αl 2, L 2 R L 1 R. Tétel. Egyéb algoritmitkusan eldönthetetlen problémák
4 Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... DIOPHANTOSZI EGYENLET P (x 1,..., x n ) adott egész együtthatós, n változós polinom, döntsük el, hogy van-e az egésznek felett megoldása p(x 1,..., x n ) = 0-nak. SÍK DOMINÓZÁSA Adott véges sok féle négyzet alakú dominó, oldalaikon természetes számokkal, minden fajtából végtelen készlet. Ki lehet-e rakni ezekkel a síkot úgy, hogy illeszked oldalakon azonos szám legyen? (Eltolni lehet, elforgatni nem). Metatétel. Church-tézis: Bármely ésszer számítási modellben (TG, NTG, rekurzív függvények, RAM gép (ld. alább!),...) minden elképzelhet algoritmus megvalósítható. (A konkrét számítási modellek ekvivalenciája formálisan bizonyítva van.) Deníció. Nem-determinisztikus TG (NTG) T NTG: T = k, Σ, Γ, α, β, γ, ahol k a szalagok száma, Σ véges ABC, Γ a bels állapotok halmaza és (eltér en a TG-t l:) α (Γ Σ k ) Γ: bels állapotok lehetséges átmenetei, β (Γ Σ k ) Σ k : mit irhat? γ (Γ Σ k ) {Bal, Marad, Jobb} k : merre tolhatja a szalagot. T NTG megengedett futása lépések olyan sorozata, hogy minden lépésnél (lásd TG-ek esetén) a megfelel állapot-átmenet leíró α-ban, β-ban, σ-ban van. T NTG t id ben elfogadja x Σ 0-t, ha els szalagjára x-et, a többire Σ-t írva létezik k t lépésb l álló megengedett futás, és megálláskor az els szalagon pl. 0 áll a fej alatt. Hasonlóan: k tárban elfogadja x-et. T NTG felismeri az L Σ 0 nyelvet, ha L pontosan azokkal a szavakból áll, amit T elfogad. Tétel. Az NTG-vel felismerhet nyelvek pontosan a rekurziv felsorolhatók. Deníció. RAM-gép: el nye. hogy jól párhuzamosítható (ld. kés bb). RAM-gép pillanatnyi állapota: N Z függvény (regiszterekben egész számokat tárol). Kezdeti állapota: véges sok regiszter kiv telével 0 (input: ahol nem 0). M ködését a RAM-program határozza meg, ami parancsok véges sorozata; egy parancs: (utasítás, operandusz, szám) hármas. Utasítások: READ, STORE, LOAD, STOP + aritmetikai utasítások; értelemszer en m ködnek. Operandusz: hogy mit kezdjen a számmal ( = j továbbiakban): Az utasítás alkalmazható magára j-re, a j-edik regiszter tartalmára, vagy annak a regiszternek a tartalmára, akinek az indexe a j-edik regiszter tartalma). RAM futása: κ programszámláló értékei: parancsok számai. Minden utasítás el írt módon módosítja κ-t, a köv. végrehajtandó utasítás az lesz, aminek a száma κ módosított téke. Ha ez STOP, a RAM-gép leáll. Futási id : minden egyes parancs végrehajtása egységynyi id alatt történik.
Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... 5 3. TÁR ÉS IDŽ - bonyolultsági osztályok Deníció. time T (x) : x inputon a T TG lépésszáma, time T (n) = max x =n time T (x). space T (x): x inputon a T TG által írt mez k száma, space T (n) = max x =n space T (x). DT IME(f(n)) = {L Σ 0 T TG, felismeri L-t és time T (n) = O(f(n))}. NT IME(f(n)) = {L Σ 0 T NTG, felismeri L-t és time T (n) = O(f(n))}. (P T IME) = P = c>0 DT IME(n c ); DSPACE, NSPACE, PSPACE, NP hasonlóan. Tétel. Nemdeterminisztikus (tanúnyelves) számolás 1. Deníció L -nek f(n) hosszú, g(n) idej tanulja az L 0 DT IME(g(n)) nyelv, ha x L y Σ 0 : y < f( x ) és x y L 0 ( elválasztó jel). 2. Tétel (a) L NTIME(f(n)) L -nek van O(f(n)) hosszú, lineáris idej tanúja. (b) L-nek van g(n) idej, f(n) hosszú tanúja L NTIME(g(n + f(n))). Tétel. Tételek a tár és id osztályok hierarchiájáról 1. nyelv (pl. palindrómák), hogy 2-szalagos TG-vel lineáris id ben felismerhet, de 1-szalagos TG-vel O(n 2 ) id kell! 2. Deníció (a) f társzámolható, ha f DSP ACE(f(n)), ahol f inputját unárisan nézz uk. (b) f id számolható, ha f DT IME(f(n)) f inputját unárisan írva. 3. DSP ACE(f 1 (n)) DSP ACE(f 2 (n)) ha lim sup f 1(n) f 2 (n) és f 1 (n) log n. =, f 1 társzámolható 4. DT IME(f 1 (n)) DT IME(f 2 ()) ha f 2(n) [f 2 és f (n)] 2 1 id számolható ( -vel is igaz). f 1 f 2 log f 2 5. Ha f(n) társzámolható, DT IME(f(n)) NT IME(f(n)) DSP ACE(f(n)) NSP ACE(f(n)) c DT IME(cf(n) ). 6. Savitch tétele f társzámolható és f(n) log n N SP ACE(f(n)) DSP ACE(f 2 (n)), = P SP ACE = NP ASP ACE. NP, polinomiális visszavezetés, NP-teljesség 1. Denició L 1 Σ 0 nyelv polinomálisan visszavezethet L 2 nyelvre, ha van olyan f P f : Σ 0 Σ 0 függvény: x Σ 0 ra : x L 1 f(x) L 2. 2. Metatétel. Modern Church-tézis: Bármely ésszer számítási modellben minden elképzelhet algoritmus megvalósítható legfeljebb polinomiális bonyolutságbeli eltéréssel.
6 Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... 3. P és NP is zárt a polinomiális visszavezethet ségre. 4. Denició L nyelv NP -teljes, ha minden NP-beli nyelv polinomiálisan visszavezethet L-re(azaz max.elem). 5. Cook tétele A SAT nyelv NP-teljes. SAT kielégíthet konjuktív normálformák (CNF) nyelve (CNF = i j ε ijx ij, ahol ε ij vagy a, vagy semmi.) 6. Egyéb (kombinatorikus) NP-teljes problémák: (a) 3-SAT ((x 1 x 2 x 7 ) (x 1 x 7 x 3 )... ) (Mj.: 2-SAT P). (b) Gráfok 3 színnel való színezhet sége. (Mj.: 2-szin P). (c) k csúccsal lefoghatók-e egy adott hipergráf élei? (d) Adott G gráf, k N, van-e k db független pont G-ben? (e) Lineáris egyenl tlenségrendszer egész számokkal megoldható-e? (f) Adott a 1,... a k, b N, van-e {a 1,..., a k }-nek olyan részhalmaza, amiben az elemek összege éppen b? (g) Adott H halmazrendszer, létezik-e H H diszjunkt halmazokkal, hogy H = H? 7. {prímek} NP co-np. 4. Egyéb bonyolultsági kérdések 4.1. Párhuzamos számítás Deníció. A párhuzamos számítás modellje a párhuzamos RAM-gép (PRAM). a PRAM-gép véges sok ún. processzor együttese, mely processzorok maguk RAM-gépek, de regisztereik közösek. PRAM-program: minden processzorhoz egy program. PRAM gép futása: a gépek külön-külön végzik a maguk dolgát, csak arra nézvést kell vmi. megállapodás, hogy ha egyszerre több akar írni/olvasni egy regisztert, akkor mi legyen. Több konvenció is van; ezekben a köv. rövidítéseket használjuk: C, mint current: egyidej ; E, mint exclusive: külön; R, mint READ: olvasás, és W, mint write: írás. Ezekb l kirakva a konvenciók: EREW... CRCW. Az egyidej írás (CW) alatt az értend, hogy, hogy a legkisebb számú próbálkozó processzor gy z. Deníció. párhuzamos bonyolultság: kétparaméteres mennyiség: egyik paraméter az id, v. más bevett bonyolultsági mérték, a másik, meg hogy hány processzort használunk. Tehát nem egy konkrét PRAM-géppel kezelünk egy probléma-családot, hanem azok egy rendszerével (mely rendszerleírását pl. egy TG kódolja). Azaz ilyesmiket mondunk: a probléma t id ben, p processzorral megoldható, v. a probléma t id ben, pt összmunkával megoldható. NC: log k id ben, polinom sok processzorral megoldható problémák (v. ami uaz. ebben az esetben: pol. sok munka).
Államvizsga '01, 12. tétel: Algoritmusok bonyolultsága... 7 Tétel. Problémák párhuzamos bonyolultsága. Minden megnnyiség nagyordó értend, persze. Szorzás: log n id. n 2 log n munka. Elérhet ség: van-e út egy gráfban x-b l y-ba? log 2 n id, n 3 log n összmunka ( n3 log n proci); míg szekvenciális (nem párhuzamos) bonyolultság: n2 id. Detemináns kiszámolása (egy id egység itt egy aritmetikai m velet): log n id, n 2 munka; míg szekvenciálisan: n 3 id. 4.2. Kommunikációs komplexitás Deníció. modell 2 ember (Andi, Béla) a közösen ismert f(x, y) függvényt akarja a privát inputokon kiértékelni minimális bit kommunikációval. kommunikációs probléma. f : X Y {0, 1} (Andi privát inputja x X, Béláé y Y ) protokol (p): szabály arra, hogy mikor ki jöjjön a kommunikációban és mit mondjon az eddig elhangzottak és a a saját privát input (x X, van y Y ) függvényében, úgy, hogy a végén mindkét játékos tudja f(x, y)-t. Elhangzott bit-sorozat: p(x, y) f kommunikációs bonyolultsága: C(f) = min P max x X,y Y p(x, y). f M f mátrix x sor, y oszlop M f (x, y) = f(x, y) Tétel. M f felbomlik 2 C (f) homogén részmátrixra, s t, ha ezek közül 2 C(f) 1 homogén 1-es (illetve 0-s) C(f) log rang(m f ) + 1. C(= n ) := C(adott két n hosszúságú sorozat egyenl -e) = n + 1. Megjegyzés. lehet deniálni a véletlen protokolt is: pl. C 2/3 (f), ahol a játékosok privátvéletlent használnak és csak 2/3, valószín séggel kell a jó eredményt kapniuk. ugyanezt lehet denálni úgy, hogy közös véletlent használnak C 2/3 (f). C 2/3 (= n ) = O(log n), C 2/3 (= n) = konstans!! = 2.