Bevezetés a bonyolultságelméletbe gyakorlatok I. B. Az Ackermann függvény avagy nem minden olyan egyszerű, mint amilyennek látszik Legyen A(x, y) a következő, rekurzív módon definiált függvény: 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 Határozzuk meg (akárhogy: fejben, papíron, számítógépen, komputeralgebrai programmal, stb.) A(4,2) és A(5,1) értékét. 1. Tegyük fel, hogy egy számítógép a TSP problémát az összes lehetséges ( 1 2 (n 1)!) körút előállításával oldja meg, mindegyik körút elemzésére n 5 10 5 másodperc időt fordítva. Körülbelül mennyi ideig tart így a feladat megoldása n = 10, 14, 18, 22 város esetén? Megkönnyítené a dolgunkat, ha egy egymilliószor gyorsabb,,szuperszámítógép állna rendelkezésünkre? 2. Tegyük fel, hogy van egy számítógépes programunk, ami egy k méretű feladaton a jelenlegi gépünkön 1 nap alatt fut le. beszerzünk egy százszor gyorsabb számítógépet. Ugyanazon programmal mekkora feladatot lehet az új gépen egy nap alatt megoldani, ha a program lépésszáma n méretű feladat esetén (a) n-nel; (b) n 3 -bel; (c) 2 n -nel arányos? 3. Papadimitriou 1.4.9. Mutassuk meg, hogy minden p(n) polinomhoz és c konstanshoz létezik egy n 0 egész szám úgy, hogy n n 0 estén 2 cn p(n). Határozzuk meg n 0 értékét, ha (a) p(n) = n 2 és c = 1; (b) ha p(n) = 100n 100 és c = 1 100. 4. (Papadimitriou 1.4.10. alapján) Legyen f(n) és g(n) valamelyik kettő az alábbi függvények közül. Döntsük el, hogy teljesül-e (i) f(n) = O(g(n)); (ii) f(n) = Ω(g(n)); (iii) f(n) = Θ(g(n)). a) n 2 b) n 3 c) 3n 2 + 2n d) n 2 log n e) 2 n f) 3 n g) 2 n+1 h) n n i) n log n j) 2 2n k) 2 2n+1 { n 2 ha n páratlan, l) 2 n ha n páros Rajzoljuk meg azt az irányított gráfot, melynek csúcsai a felsorolt függvények, és f-ből g-be pontosan akkor vezet él, ha f(n) = O(g(n)). Az áttekinthetőség kedvéért hagyjuk el azokat az éleket, amelyek a megmaradó élekből az O reláció tranzitivitása miatt következnek. 5. Papadimitriou 1.4.4. (a) Egy irányított gráfot körmentesnek nevezünk, ha nem tartalmaz irányított kört. Mutassuk meg, hogy minden körmentes gráfban van forrás (olyan csúcs, melybe nem vezet él). (b) Igazoljuk, hogy egy n csúcsú gráf akkor és csak akkor körmentes, ha csúcsai sorszámozhatók 1-től n-ig úgy, hogy minden él kisebb sorszámú csúcsból nagyobb sorszámúba mutat (alkalmazzuk ismételten az (a) pontban bizonyított tulajdonságot). (c) Adjunk meg polinom idejű algoritmust, mely eldönti, hogy egy adott gráf körmentes-e. (Valósítsuk meg a (b) pont alatti ötletet úgy, hogy az algoritmus a gráf minden élének feldolgozására konstans időt fordítson.) 6. Páros gráfon egy B = (U, V, E) rendezett hármast értünk, ahol U = {u 1,... u n } és V = {v 1,... v n } egy-egy csúcshalmaz, a fiúk illetve lányok halmaza, és E U V az élek halmaza. A páros gráf egy n elemű M E élhalmazát teljes párosításnak nevezzük, ha minden (u, v), (u, v ) M élpárra (u, v) (u, v ) esetén u u és v v, azaz M-ben nincs két különböző él, mely ugyanarra a fiúra vagy lányra illeszkedik. Legyen PÁROSÍTÁS a következő probléma: Adott egy páros gráf, van-e teljes párosítása? Mutassuk meg, hogy PÁROSÍTÁS polinom időben visszavezethető a MAXIMÁLIS FOLYAM problémára.
Bevezetés a bonyolultságelméletbe gyakorlatok II. 7. Sivatagi-show Eltévedtünk a sivatagban, mitöbb az ivóvizünk is elfogyott, de nagy nehezen kivergődtünk egy kelet-nyugati irányú egyenes útra. Biztos, hogy az úton valamelyik irányban x km távolságra találunk kutat (tegyük fel, hogy x pozitív egész szám). Csak az a probléma, hogy sem x-et, sem a megfelelő irányt nem ismerjük. Szorult helyzetünkben tervezzünk olyan algoritmust, mely segítségével legfeljebb C x km gyaloglással biztosan megtaláljuk a kutat, ahol C egy pozitív konstans. Mekkora lehet az algoritmusokra C minimális értéke? (Természetesen a legrosszabb esetet figyelembe véve.) 8. Papadimitriou 1.4.5. (a) Igazoljuk, hogy egy gráf akkor és csak is akkor páros (azaz olyan, hogy csúcsait két diszjunkt, de nem feltétlenül azonos elemszámú halmazba sorolhatjuk úgy, hogy összes éle az egyik halmazból a másikba mutat), ha nem tartalmaz páratlan hosszúságú,,irányítatlan kört. (b)adjunk polinom idejű algoritmust a gráfok párosságának eldöntésére. 9. Adjunk meg olyan Turing-gépet 1, mely csupa A és B betűt tartalmazó szavakon dolgozik, mégpedig úgy, hogy az A betűket B betűkre a B-ket pedig A-kra cseréli. 10. Adjunk meg olyan Turing-gépet 1, mely az M(x) = x függvényt számítja ki, de (ellentétben az órai példával) csak egyszer halad végig a szón. 11. Adjunk meg olyan Turing-gépet 1, mely a következő függvényeket valósítja meg: a) unáris növelést, azaz M(I k ) = I k+1. b) unáris összeadást, azaz M(I k I l ) = I k+l. c) 2-vel való szorzást, azaz M(I k ) = I 2k. d) 2-vel való maradékos osztást, azaz M(I k ) = I k mod 2. 12. Mutassuk meg, hogy minden M Turing-géphez létezik olyan, vele ekvivalens (azaz ugyanazt a függvényt megvalósító), M Turing-gép, mely működését mindig a szó elején, a karakteren fejezi be. Konstruáljuk meg M -t a 10. példa M Turing-gépjéhez. 13. Konstruáljunk, olyan Turing-gépet 1, mely a következő nyelveket ismeri fel: a) {a i b j i < j} b) {w {a, b} w-ben ugyanannyi a betű van mint b} 14. Konstruáljunk olyan egyszalagos Turing gépet, mely a szalagjára írt {0, 1} feletti szavakat megfordítja. Például M(0010111) = 1110100. Beadandó a Turing-gép programja a Binghamtoni Egyetem szimulátor programjával 2 futtatható fájlban lemezen és írott formában is, valamint a Turing-gép működésének rövid magyarázata (Pl. mi az egyes állapotok szerepe). 15. Polinom idejű-e az az algoritmus, ami a bemenetként bináris ábrázolással kapott n és m természetes számok szorzatát úgy számítja ki, hogy az n számhoz m 1-szer hozzáadja önmagát? s := n; for i:= 1 to m 1 do s := s + n; return s; 16. Bizonyítsuk be, hogy az egészek között végzett négy alapművelet elvégezhető polinomidőben, míg a hatványozás nem. 17. Mutassuk meg, hogy a modulo m tekintett hatványozás elvégezhető polinomidőben. 18. Konstruáljunk olyan Turing-gépet, amely a bináris növelést teljesen megvalósítja (azaz, akkor is, ha a számjegyek száma nő), felhasználva szubrutinként az órán mutatott bináris növelés és az előző példa átalakított Turing-gépét. 19. Bizonyítsuk be (precízen), hogy a Papadimitriou könyv 2.7. példájának RAM programja valóban a φ(i 1, i 2 ) = i 1 i 2 függvényt számítja ki. 20. Adjunk egy természetes definíciót mindkét irányban végtelen szalaggal rendelkező (determinisztikus) Turing-gépekre, azok konfigurációira és átmenet relációjára, általuk felismert nyelvekre és kiszámított függvényekre. Ekvivalens-e az így definiált modell a hagyományos Turing-gép modellel? Miért? 21. Adjunk meg 1 olyan kétszalagos a) determinisztikus; b) nemdeterminisztikus Turing gépet, mely a L = {ww w {a, b} } nyelvet ismeri fel. (lehetőleg minél kevesebb állapot felhasználásával.) 1 Adja meg a Turing gép programját, átmenet diagramját, és röviden magyarázza is el a működését, pl. mi az egyes állapotok szerepe 2 A http://www.inf.u-szeged.hu/ zlnemeth/bonyelm.html weblapról letölthető.
Bevezetés a bonyolultságelméletbe gyakorlatok III. 22. Egy 2 n-es sakktábla mezőin n piros és n 1 kék négyzetet helyezünk el. Ezeket oly módon akarjuk átrendezni, hogy a felső sorban piros, az alsó sorban kék négyzetek legyenek, s a bal alsó sarok maradjon üres. Ehhez egy-egy lépés során az üres mezőre tolhatjuk valamelyik szomszédját. Bizonyítsuk be, hogy ehhez O(n 2 ) lépés elégséges és Ω(n 2 ) lépés szükséges. 23. Milyen konfigurációkon megy keresztül az alábbi Turing-gép az (s,, abaa) valamint az (s,, abab) konfigurációból indítva? Rajzoljuk meg a gép átmenet diagramját és írjuk le az által felismert nyelvet. q Q σ Σ δ(q, σ) s (q 0,, ) q 0 a (q 1, A, ) q 0 b (q 1, B, ) q 0 A (q 4, A, ) q 0 B (q 4, B, ) q 0 (q 0,, igen) q 1 a (q 1, a, ) q 1 b (q 1, b, ) q 1 A (q 2, A, ) q 1 B (q 2, B, ) q 1 (q 2,, ) q 2 a (q 3, A, ) q 2 b (q 3, B, ) q 3 a (q 3, a, ) q 3 b (q 3, b, ) q 3 A (q 0, A, ) q 3 B (q 0, B, ) q 4 A (q 4, a, ) q 4 B (q 4, b, ) q 4 (q 5,, ) q 5 a (q 7, A, ) q 5 b (q 6, B, ) q 5 (q 5,, igen) q 6 a (q 6, a, ) q 6 b (q 6, b, ) q 6 B (q 8,, ) q 6 (q 6,, ) q 7 a (q 7, a, ) q 7 b (q 7, b, ) q 7 A (q 8,, ) q 7 (q 7,, ) q 8 a (q 8, a, ) q 8 b (q 8, b, ) q 8 A (q 5, A, ) q 8 B (q 5, B, ) q 8 (q 8,, ) 24. Adjunk meg esetleg több szalagos és nemdeterminisztikus Turing gépeket az alábbi nyelvek eldöntésére a) {xyx x, y {a, b} és x 1} b) {xy x, y {a, b} és x-ben ugyanannyi a betű van mint y-ban} c) {xy x, y {a, b} és x-ben nem ugyanannyi a betű van mint y-ban} d) {a i b i c j d j i j} e) {aba 2 b 2 a 3 b 3... a n b n n 0} 25.* Adjunk egy természetes definíciót kétdimenziós (pl. a kétdimenziós derékszögű koordinátarendszer egyik negyedén dolgozó) determinisztikus Turing-gépekre, azok konfigurációira és átmenet relációjára, általuk felismert nyelvekre és kiszámított függvényekre. Ekvivalens-e az így definiált modell a hagyományos Turing-gép modellel? Miért? Állításunkat bizonyítsuk!
26. Papadimitriou 3.4.1. alapján Bevezetés a bonyolultságelméletbe gyakorlatok IV. Állapítsuk meg, hogy eldönthetőek-e a következő problémák. (Rice tétel használata nélkül!) Melyek nem rekurzívan felsorolhatóak? (a) Adott egy M Turing-gép, igaz-e, hogy M megáll az üres szón. (b) Adott egy M Turing-gép, van-e olyan bemenet, amelyen M megáll. (c) Adott egy M Turing-gép, létezik-e olyan bemenet, hogy, amelyen M valamely lépésben a σ szimbólumot írja ki. (d) Adott egy M Turing-gép, döntsük el, hogy van-e olyan bemenet, amelyben M valamely lépésben az éppen olvasottól különböző szimbólumot ír ki. (e) Adott egy M Turing-gép, igaz-e, hogy L(M) = (Itt L(M) az M által felismert és nem az általa eldöntött nyelvet jelöli.) (f) Adott egy M Turing-gép, igaz-e, hogy L(M) véges. (g) Adottak az M és M Turing-gépek, döntsük el, hogy L(M) = L(M ) teljesül-e. (h) Adott egy M Turing-gép. megáll. Igaz-e, hogy van olyan x bemenet, hogy M az x-en öt lépésen belül (i) Adott egy M Turing-gép. Igaz-e, hogy nincs olyan x bemenet, hogy M az x-en öt lépésen belül megáll. 27. A 26. feladat mely pontjainak eldönthetetlenségét tudjuk közvetlenül megválaszolni a Rice-tétel segítségével? 28. Van-e Post megfelelkezési problémájának megoldása a) u 1 = 10, u 2 = 011, u 3 = 101, v 1 = 101, v 2 = 11, v 3 = 011 és b) u 1 = 1, u 2 = 10111, u 3 = 10, v 1 = 111, v 2 = 10, v 3 = 0 esetén? 29. Mutassuk meg, hogy ha a megállási probléma eldönthető lenne, akkor minden rekurzívan felsorolható nyelv rekurzív lenne. 30. Mutassuk meg, hogy a DOMINO probléma komplementere rekurzívan felsorolható, ezért (mivel tudjuk hogy a DOMINO probléma nem rekurzív), a DOMINO probléma még csak nem is rekurzívan felsorolható. (Ötlet: Tegyük fel, hogy ki van tüntetve egy,,kezdődominó, amelynek a kirakásban mindenképpen szerepelni kell. És mutassuk meg, hogy egy készlettel akkor és csak akkor rakható ki a sík, ha minden n-re a (2n + 1) (2n + 1)-es négyzet kirakható úgy, hogy középen a kezdődominó van.) 31.* Papadimitriou 3.4.6. Adjunk meg olyan algoritmust, melynek segítségével tetszőleges x szóhoz és tetszőleges, az {x; y : (x, y) R} nyelvet felismerő M Turing-géphez (ahol R egy reláció) megkonstruálhatunk egy olyan M x Turing-gépet, mely az {y : (x, y) R} nyelvet ismeri fel. 32. Tegyük fel, hogy L SP ACE(3 log n). Igaz-e ekkor, hogy L P? 33. Bizonyítsuk be, hogy a következő eldöntési probléma P -ben van: Adottak az a 1, a 2,..., a n és K egészek. Igaz-e, hogy az a 1,..., a n elemek mediánja kisebb mint K? 34. Bizonyítsuk be, hogy a következő eldöntési probléma NP -ben van: Adottak egy A n n-es mátrix. Igaz-e, hogy det A = 0? 35. Mely alábbi problémákról tudjuk egyszerűen belátni, hogy P -ben, illetve N P -ben vannak? (a) Adott egy G gráf. Páros-e G? (b) Adott egész számok egy halmaza, és egy másik K egész szám. számoknak olyan részhalmaza, amelyben a számok összege éppen K? Van-e a kapott egész (c) Adott n darab egész szám. Van-e olyan részhalmaz, melyben a számok összege páros? (d) Adott n darab egész szám. Van-e olyan részhalmaz, melyben a számok összege hárommal osztható? (e) Adott egy G gráf. Van-e G-ben Euler-kör? (f) Adott egy G gráf és egy K egész. Van-e G-ben legalább K hosszúságú út? (g) Adott egész számok egy halmaza. Igaz-e, hogy van közöttük prímszám? (h) Adott egész számok egy halmaza. Igaz-e, hogy mindegyikük prím? 36. Mutassuk meg, hogy P és NP zártak az unió- és metszetképzésre. 37.* Mutassuk meg, hogy P és NP zártak a csillag műveletre, azaz az iterációra.
Bevezetés a bonyolultságelméletbe gyakorlatok V. 38. Igaz-e, hogy ha egy C problémára a megállási probléma visszavezethető, akkor co-c nem rekurzívan felsorolható? 39. Legyen 3SATKÜL a következő probléma: Adott egy ϕ konjunktív normál formájú, tagonként pontosan három különböző változót tartalmazó formula, döntsük el, hogy kielégíthető-e. Mutassuk meg, hogy 3SATKÜL NP -teljes. 40. Legyen SAT LEGFELJEBB HÁROMSZOR a következő probléma: Adott egy ϕ konjunktív normál formájú formula, melyben minden változó legfeljebb háromszor fordul elő, döntsük el, hogy kielégíthető-e. Mutassuk meg, hogy SAT LEGFELJEBB HÁROMSZOR NP -teljes. 41. Papadimitriou 9.5.6. NP -teljes-e SAT azon speciális esete, melyben minden tag vagy Horn-tag, vagy csak két literált tartalmaz. 42. Igazoljuk, hogy a 2 színnel színezhető gráfok nyelve P -beli. 43. Legyen 3SZÍNEZÉS a következő probléma: Adott egy irányítatlan gráf, kiszínezhetők-e a csúcsai legfeljebb három színnel úgy, hogy szomszédos csúcsok nem legyenek azonos színűek. Mutassuk meg, hogy 3SZÍNEZÉS NP -teljes. (Felhasználhatjuk, hogy NEM MIND EGYENLŐ SAT N P -teljes. Papadimitriou 216. o.) 44. Tegyük fel, hogy van egy T eljárásunk, mely bármely input gráfra (egyetlen lépésben) megmondja a gráfban levő maximális klikk(ek) méretét. Tervezzünk olyan, a T eljárást használó algoritmust, mely polinom időben talál egy maximális klikket az input gráfban! 45. Tegyük fel, hogy van egy olyan K nevű eljárás, mely (egyetlen lépésben) megmondja, hogy az inputjaként megadott irányítatlan gráf színezhető-e három színnel. Csináljunk egy, a K eljárást használó algoritmust, mely polinom időben megadja az input G gráf egy 3-színezését, ha G 3SZÍNEZÉS. 46. Legyen LEGHOSSZABB ÚT a következő probléma: Adott egy G irányítatlan gráf, és egy K egész szám. Igaz-e, hogy van G-ben legalább K élet tartalmazó út. Mutassuk meg, hogy LEG- HOSSZABB ÚT NP -teljes. 47. Legyen RÉSZGRÁF IZOMORFIZMUS a következő probléma: Adott két irányítatlan gráf, G 1 és G 2. Igaz-e, hogy van G 1 -ben G 2 -vel izomorf részgráf. Mutassuk meg, hogy RÉSZGRÁF IZO- MORFIZMUS N P -teljes.