31.5.2011. Sveučilište u Osijeku, Rijeci, Splitu i Zagrebu Zajednički sveučilišni poslijediplomski doktorski studij matematike Standardni kolegij Matematička logika i računarstvo Drugi semestar Dio V: Teorija složenosti Robert Manger, travanj 2011 Sadržaj dijela V 17. Vremenska složenost 18. Prostorna složenost 19. NP-potpunost TR-V Teorija složenosti 2 1 31.5.2011. 17.0 Opdenito o vremenskoj složenosti • Od sada pa nadalje bavimo se problemima koji se u principu mogu riješiti algoritmima. • Najviše demo se baviti problemima odlučivanja koji su odlučivi, odnosno jezicima koji su rekurzivni. • Zanimaju nas resursi (vrijeme, prostor, … ) koji su potrebni da bi se problem riješio. • Vidjet demo da postoje “teški” problemi, za čije rješavanje su potrebni izuzetno veliki resursi, tako da njihova rješivost postaje upitna. • U ovom poglavlju bavimo se vremenskom složenošdu, dakle zanima nas koliko vremena je potrebno da bi se određeni problem riješio. TR-V Teorija složenosti 3 17.1 Način mjerenja vremena (1) • Vrijeme rješavanja problema procjenjujemo u ovisnosti o veličini ulaza. Tu veličinu označavamo s n. Kod prepoznavanja jezika, n je obično duljina riječi koju treba prihvatiti ili odbiti. • Primjer 17.1. Promatramo TS koji odlučuje riječi s jednakim brojem 0 i 1. TS prekriži prvi znak ulaza, npr 1, zatim pronalazi prvu 0 i prekriži je. Dalje se vrati na prvi neprekriženi znak, itd. Stroj prihvada riječ ako i samo ako se nule potroše istovremeno s jedinicama. Ako ulaz ima duljinu n, tada naš TS zatijeva n2/4 koraka (n/2 iteracija s prosječnom duljinom n/2). Vrijeme rješavanja je dakle proporcionalno s n2. TR-V Teorija složenosti 4 2 31.5.2011. 17.1 Način mjerenja vremena (2) • Kod procjene vremena uvijek analiziramo najgori slučaj. Kažemo da TS radi u vremenu T(n) ako za sve ulaze duljine n stroj staje nakon najviše T(n) koraka. • Kod procjene vremena zanemarujemo konstante. Svejedno je da li stroj radi 2n2, 7n2, ili 1000n2 koraka, važno je samo da se vrijeme ponaša kao kvadrat od n. Kažemo da naš stroj zahtijeva vrijeme O(n2). • Opdenito, f(n) = O(g(n)) ako postoji konstanta C i broj n0 takvi da za n ≥ n0 vrijedi: |f(n)| ≤ C.|g(n)|. • Primjer 17.1 (nastavak). Možemo li poboljšati naš TS za prepoznavanje riječi s jednakim brojem 0 i 1? TR-V Teorija složenosti 5 17.1 Način mjerenja vremena (3) Da, ako stroj opremimo s dvije trake! Kopiramo ulaz na drugu traku. Pustimo da dvije glave prolaze kroz kopije ulaza i uparuju nule i jedinice. Takav stroj prihvada ili odbacuje riječ duljine n u linearnom vremenu O(n). • Iz prethodnog primjera vidimo da vrijeme računanja ovisi o varijanti Turingovog stroja koju koristimo. U nastavku pretpostavljamo da koristimo TS s više traka. • Može se pokazati da TS s dvije trake može simulirati bilo koji TS s više traka tako da se vrijeme pritom poveda najviše za logaritamski faktor. TR-V Teorija složenosti 6 3 31.5.2011. 17.2 Polinomijalno vrijeme (1) • Kažemo da se problem može riješiti u polinomijalnom vremenu ako postoji TS koji ga rješava u vremenu O(p(n)) gdje je p neki polinom, a n veličina ulaza. • Klasa svih problema odlučivanja koji se mogu riješiti u polinomijalnom vremenu označava se s P. • Drugim riječima, jezik L je u P ako postoji konstanta k i TS M takvi da M u vremenu O(nk) odlučuje da li riječ duljine n pripada ili ne pripada L. • Klasa P otprilike opisuje skup problema koji su rješivi u prihvatljivom vremenu. • Klasa je robusna u smislu da ne ovisi o detaljima modela računanja, dok god se radi o determinističkom modelu. TR-V Teorija složenosti 7 17.2 Polinomijalno vrijeme (2) • Dva modela računanja su u polinomijalnom odnosu ako postoji polinom q takav da ako je neki jezik odlučiv u vremenu T(n) na jednom modelu, tada je isti jezik odlučiv u vremenu q(T(n)) na drugom modelu. • Slijedi teorem koji kaže da su višetračni i jednotračni TS-evi u polinomijalnom odnosu. Dakle, definicija klase P ne ovisi o tome da li koristimo stroj s jednom ili više traka (polinom od polinoma je opet polinom). • Teorem 17.1. Pretpostavimo da TS s više traka rješava neki problem veličine n u vremenu T(n). Tada postoji ekvivalentni TS s jednom trakom koji isti problem rješava u vremenu O((T(n))2). TR-V Teorija složenosti 8 4 31.5.2011. 17.2 Polinomijalno vrijeme (3) • Dokaz teorema. Simuliramo rad TS-a s k traka na TS-u s jednom trakom, tako da sadržaje svih k traka prvog stroja napišemo jedan do drugog na traku drugog stroja. Svaki korak k-tračnog TS-a jednotračni TS simulira tako da prijeđe čitavom duljinom svoje trake. Bududi da k-tračni TS radi u vremenu T(n), on ni na jednu svoju traku ne stigne napisati više od T(n) novih znakova. Znači da je duljina trake jednotračnog stroja najviše k.T(n), pa njegova simulacija svih T(n) koraka traje najviše T(n).k.T(n) = O((T(n))2. • Lako se uvjeriti da je TS u polinomijalnom odnosu sa “standardnim” računalom. Znači, klasa P je ista bez obzira da li zamišljamoTeorija TSsloženosti ili stvarno računalo. TR-V 9 17.3 Primjeri problema iz klase P (1) • Booleovska formula sastoji se od logičkih varijabli (literala), te operacija (logičko ili), (logičko i) i (negacija). Uz zadano pridruživanje, dakle postavljanje vrijednosti istina/laž varijablama, mogude je odrediti da li je cijela formula istinita ili lažna. • Primjer 17.2. Zadana je Booleovska formula: x (x y z) (x y) Uz pridruživanje x=y=istina, z=laž, formula je lažna. • Primjer 17.3. Promatramo jezik TRUEBF = { <, > | je Booleovska formula koja postaje istinita uz pridruživanje }. Tada taj jezik (odnosno problem utvrđivanja istinitosti) pripada klasi P. TR-V Teorija složenosti 10 5 31.5.2011. 17.3 Primjeri problema iz klase P (2) • Zaista, uvrštavanje vrijednosti varijabli i izvrednjavanje formule može se obaviti u linearnom vremenu pomodu stoga, na sasvim isti način kao za aritmetičke izraze. • Graf se sastoji od skupa vrhova i skupa bridova (spojnica između brodova). Put u grafu je niz bridova koji vodi od jednog vrha do drugog. Hamiltonov put od vrha a do vrha b je put od a do b koji posjeduje svaki vrh u grafu točno jednom. • Primjer 17.4. U sljededem grafu postoji put između svaka dva vrha. Postoji i Hamiltonov put od A do I koji posjeduje vrhove u abecednom poretku. No ne postoji Hamiltonov put od A do C. TR-V Teorija složenosti 11 17.3 Primjeri problema iz klase P (3) • Primjer 17.5. Promatramo jezik PATH = { <G, a, b> | G je graf u kojem postoji put od vrha a do vrha b } . Tada taj jezik (odnosno problem postojanja puta) pripada klasi P. TR-V Teorija složenosti 12 6 31.5.2011. 17.3 Primjeri problema iz klase P (4) Zaista, da bismo odredili da li postoji put od vrha a do vrha b, možemo postupkom breadth-first search nadi sve vrhove koji su dostupni iz a. Vrijeme računanja ovisi o prikazu grafa, no uvijek je polinomijalno. • Primjer 17.6. Neka je L bilo koji kontekstno-slobodni jezik. Bavimo se problemom odlučivanja da li zadana riječ w pripada L ili ne pripada. U poglavlju 10 vidjeli smo da se problem može riješiti algoritmom CYK. Lako se vidi da se algoritam CYK na običnom računalu izvršava u vremenu O(n3) gdje je n duljina riječi w. • Važna posljedica: bilo koji kontekstno-slobodni jezik (odnosno pripadni problem odlučivanja) je u P. TR-V Teorija složenosti 13 17.4 Nedeterminističko vrijeme (1) • Vrijeme rješavanja problema donekle ovisi o odabranoj varijanti TS-a, no ne bitno ukoliko se ograničimo na determinističke varijante. • Vrijeme de se ipak bitno promijeniti ako umjesto determinističkog koristimo nedeterministički TS – krade NTS. • Kod NTS-a računanje zamišljamo kao stablo računanja. – NTS M odlučuje jezik L ako se za svaki ulaz w sve grane od M zaustavljaju. – Riječ w pripada L onda i samo onda ako postoji bar jedna prihvadajuda grana. – Vrijeme rada od M je duljina najdulje grane. TR-V Teorija složenosti 14 7 31.5.2011. 17.4 Nedeterminističko vrijeme (2) • Klasa svih problema odlučivanja riješivih u polinomijalnom vremenu pomodu NTS-a označava se s NP. • Drugim riječima, jezik L je u NP ako postoji konstanta k i NTS M takvi da M u vremenu O(nk) odlučuje da li riječ duljine n pripada ili ne pripada L. • Očito je P NP, naime deterministički TS može se shvatiti kao specijalni slučaj nedeterminističkog. • Primjer 17.7. Promatramo jezik HAMPATH = { <G,a,b> | G je graf u kojem postoji Hamiltonov put od vrha a do vrha b }. Tada taj jezik (odnosno problem postojanja Hamiltonovog puta) pripada klasi NP. TR-V Teorija složenosti 15 17.4 Nedeterminističko vrijeme (3) Ne pada nam na pamet deterministički algoritam koji bi odlučivao HAMPATH u polinomijalnom vremenu. Ispitivanje svih mogudih putova trajalo bi predugo. No postoji brzi nedeterministički algoritam. Pogađamo jedan po jedan vrh na putu tako da u svakom koraku biramo vrh koji još nije bio posjeden. Jedna od grana računanja pogodit de vrhove u pravom redoslijedu. Potrebno vrijeme je u najgorem slučaju kvadratično u odnosu na broj vrhova. • Veza između vremena potrebnog za rješavanje istog problema na nedeterministički odnosno deterministički način izražena je sljededim teoremom. TR-V Teorija složenosti 16 8 31.5.2011. 17.4 Nedeterminističko vrijeme (4) • Teorem 17.2. Neka je L rekurzivan jezik. Pretpostavimo da postoji nedeterministički TS koji u vremenu T(n) odlučuje da li zadana riječ w duljine n pripada L. Tada postoji deterministički TS koji obavlja isti posao u vremenu O(CT(n)), gdje je C konstanta. • Dokaz teorema. Neka je N NTS koji odlučuje L u vremenu T(n). Zamišljamo da N ima read-only ulaznu traku i posebnu radnu traku. N može potrošiti najviše T(n) klijetki na radnoj traci. Dakle broj mogudih konfiguracija je najviše X = qngT(n), gdje je g veličina alfabeta, a q broj stanja od N. Da bismo simulirali rad od N na deterministički način: TR-V Teorija složenosti 17 17.4 Nedeterminističko vrijeme (5) – Generiramo sve mogude konfiguracije. – Odredimo koja konfiguracija slijedu koju – to je takozvani graf konfiguracija. – Gledamo da li postoji put u tom grafu od početne do neke prihvadajude konfiguracije. Postupak zahtijeva determinističko vrijeme koje je polinom od X. Time dobivamo traženu ogradu. Preciznije, dobivamo ogradu O(X2) = O(q2n2g2T(n)) = O(CT(n)) za bilo koji C > g2. • Prethodni teorem sugerira da problem koji je rješiv u polinomijalnom vremenu pomodu NTS ne mora biti rješiv u polinomijalnom vremenu pomodu determinističkog TS. TR-V Teorija složenosti 18 9 31.5.2011. 17.5 Certifikati (1) • Primijetimo da bilo koji NTS možemo prepraviti tako da sva svoja pogađanja bilježi na posebnu traku. Štoviše, mogude je da NTS ta pogađanja zapiše na početku. • To nam daje još jedan način kako možemo predočiti nedeterminizam. Možemo zamišljati da NTS radi ovako. – On najprije nedeterministički ispisuje niz znakova na posebnu traku koja se zove certifikat. – Dalje on radi sasvim deterministički služedi se certifikatom na read-only način. – Kad god treba napraviti neki nedeterministički izbor, on pročita taj izbor iz certifikata. TR-V Teorija složenosti 19 17.5 Certifikati (2) • Da bismo pokazali da neki problem pripada klasi NP, dovoljno je pokazati da za taj problem postoji certifikat koji omoguduje determinističko rješavanje problema u polinomijalnom vremenu. • Primjer 17.8. Certifikat za HAMPATH je sam Hamiltonov put. Da bi obradili taj certifikat, trebamo provjeriti da je riječ o putu koji počinje u vrhu a i završava u vrhu b te svaki čvor posjeduje točno jednom. Sve se to može obaviti deterministički u polinomijalnom vremenu. • Makar je HAMPATH u NP, nije jasno da li je njegov komplement u istoj klasi. Naime nitko još nije konstruirao odgovarajudi certifikat za nepostojanje Hamiltonovog puta. Teorija složenosti TR-V 20 10 31.5.2011. 17.5 Certifikati (3) • Kod Booeovskih formula, niz literala povezanih s zovemo klauzula. Kažemo da je formula u konjuktivnoj normalnoj formi ako se ona sastoji od više klauzula povezanih s . Formula je zadovoljiva ako postoji pridruživanje vrijednosti istina/laž varijablama koje formulu čini istinitom. • Primjer 17.9. Booleovska formula x (x y z) (x y) je u konjuktivnoj normalnoj formi. Ako postavimo da je x=istina, y=z=laž, tada je ta formula postaje istinita. Dakle ona je zadovoljiva. TR-V Teorija složenosti 21 17.5 Certifikati (4) • Primjer 17.10. Promatramo jezik SAT = { <> | je Booleovska formula u konjuktivnoj normalnoj formi koja je zadovoljiva }. Tada taj jezik (problem zadovoljivosti) pripada klasi NP. Zaista, certifikat se sastoji od pridruživanja vrijednosti istina/laž varijablama. Obrada certifikata sastoji se od izvrednjavanja formule i može se obaviti deterministički u polinomijalnom vremenu. • Primijetimo da nije poznat deterministički polinomijalni algoritam za prepoznavanje SAT. Naime, svih mogudih pridruživanja ima eksponencijalno mnogo, pa isprobavanje svih mogudnosti ne dolazi u obzir. TR-V Teorija složenosti 22 11 31.5.2011. 17.5 Certifikati (5) • Primjer 17.11. Promatramo binarne jezike PRIME = skup svih prostih brojeva zapisanih u binarnom brojevnom sustavu. COMPOSITE = skup svih složenih brojeva zapisanih u binarnom brojevnom sustavu. Pitamo se spadaju li ovi jezici u klasu P ili NP? Jasno je da je COMPOSITE u NP – kao certifikat može poslužiti rastav zadanog broja u dva faktora. Obrada certifikata sastoji se od množenja faktora i provjere. • Nije jasno da li PRIME pripada NP - ne pada nam na pamet certifikat prostosti broja. Ipak, zbog rezultata iz teorije brojeva, dugo se znalo da je PRIME u NP. TR-V Teorija složenosti 23 17.5 Certifikati (6) • Primijetimo da binarni zapis broja m ima duljinu n = log2m. Polinomijalni algoritam za prepoznavanje da li je m prost ili složen treba trošiti vrijeme koje je polinom od log2m, a ne od m. Kad bismo tražili polinom od m, bilo bi prelagano. • U 2002. godini, indijski autori Agrawal, Kayal i Saxena pokazali su je da je PRIME ipak u P. Posljedica je da je i COMPOSITE u P, naime klasa P je zbog determinizma zatvorena na komplementiranje jezika. • Ipak, još uvijek nije poznat deterministički polinomijalni algoritam koji bi odredio faktorizaciju složenog broja. TR-V Teorija složenosti 24 12 31.5.2011. 17.5 Certifikati (7) • Primjer 17.12. Promatramo problem odlučivanja SUBSET_SUM. Ulaz čini konačni skup brojeva: a1, a2, ... ak, zapisanih u binarnom sustavu, te dodatni ciljni broj c također zapisan u binarnom sustavu. Pitanje glasi: da li postoji podskup skupa brojeva a1, a2, ... ak čiji zbroj je jednak ciljnom broju c? Problem SUBSET_SUM je u NP. Certifikat je lista indeksa brojeva čiji zbroj daje cilj. TR-V Teorija složenosti 25 17.6 Odnos P i NP • Vidjeli smo da je P NP. No postavlja se pitanje: da li je P NP ? • Ovo je jedno od najvažnijih otvorenih pitanja današnje matematike i računarstva. The Clay Institute je ponudio nagradu od 1 milijun dolara za odgovor. • Vedina ljudi misli sa je P NP , no nitko to ne zna dokazati. • Kad bi se pokazalo da je ipak P = NP , to bi imalo i dobre i loše posljedice. – Dobra posljedica: mnogi važni problemi iz klase NP ipak bi se mogli efikasno rješavati. – Loša posljedica: današnji kriptografski algoritmi ipak ne bi bili sigurni, njihove šifre bi se relativno lako mogle razbiti. TR-V Teorija složenosti 26 13 31.5.2011. Sadržaj dijela V 17. Vremenska složenost 18. Prostorna složenost 19. NP-potpunost TR-V Teorija složenosti 27 18.0 Opdenito o prostornoj složenosti • Nakon vremena računanja, drugi važan resurs koji je potreban kod rješavanja problema je prostor. • Kod stvarnih računalnih programa, prostor je ustvari količina radne memorije koju program troši. • Mi demo programe i algoritme opet modelirati Turingovim strojevima. To znači da demo prostor poistovjetiti s brojem zauzetih klijetki na radnim trakama stroja. • Postoji bitna razlika između vremenske i prostorne složenosti: za razliku od vremena, isti prostor obično se može ponovo upotrijebiti za različite svrhe unutar istog računanja. TR-V Teorija složenosti 28 14 31.5.2011. 18.1 Deterministički prostor (1) • Kad računamo prostor koji koristi TS, gledamo veličinu upotrjebljenog dijela trake, no ne računamo ulaz. • Dakle zamišljamo da je ulaz posebnoj read-only traci, te da TS za pisanje koristi jednu ili više radnih traka. • Kažemo da (deterministički) TS M radi u prostoru S(n) ako M za bilo koji ulaz duljine n ukupno na svim radnim trakama koristi najviše S(n) klijetki. • Primjer 18.1. Jezik SAT može se odlučiti u linearnom prostoru. To se ostvaruje isprobavanjem svih mogudih pridruživanja istine i laži varijablama. Treba pamtiti trenutno pridruživanje. Potreban je i prostor za izvrednjavanje formule. Za obje stvari dovoljan je linearni prostor. TR-V Teorija složenosti 29 18.1 Deterministički prostor (2) • Prostorna i vremenska složenost međusobno su povezane. Najprije navodimo ovisnost prostora o vremenu. • Teorem 18.1. Ako TS rješava problem veličine n u vremenu T(n), tada on ne zahtijeva prostor vedi od T(n). • Dokaz teorema: očigledan. Bududi da TS za posjet jednoj klijetki troši barem jedan korak, broj posjedenih klijetki ne može premašiti ukupan broj koraka. • Da bismo dobili obratnu ovisnost vremena o prostoru, sjetimo se ponovo sljedede činjenice. Iz nje dalje slijede dva teorema. TR-V Teorija složenosti 30 15 31.5.2011. 18.1 Deterministički prostor (3) • Činjenica. Pretpostavimo da deterministički TS pri obradi ulaza duljine n koristi prostor S(n). Neka je g broj znakova alfabeta trake, a q broj stanja stroja. Ako se stroj nije zaustavio nakon qngS(n) koraka, tada se on zaglavio u beskonačnoj petlji. • Gornja tvrdnja je očigledno istinita, jer broj koraka premašuje broj mogudih konfiguracija, pa je moralo dodi do ponavljanja iste konfiguracije. • Teorem 18.2. Ako postoji TS M koji prihvada jezik L i za ulaz duljine n radi u prostoru S(n) (gdje je S(n) ≥ log n), tada postoji drugi TS M’ koji prihvada isti jezik, radi u prostoru O(S(n)) i uvijek se zaustavlja. TR-V Teorija složenosti 31 18.1 Deterministički prostor (4) • Dokaz teorema. Sagradimo novi TS M’ koji je skoro jednak M-u no ima ugrađen binarni brojač koraka koje je M’ izvršio. Kad brojač premaši prije navedenu granicu qngS(n), M’ se zaustavlja i odbacuje ulaz. Opdenito, brojač koji treba brojati do T zauzima prostor O(log T). Za naš brojač to je O(log(qngS(n))) = O(S(n) + log n) = … (zbog S(n) ≥ log n) … = O(S(n)). Ukupni prostor za M’ je S(n) + O(S(n)) = O(S(n)). • Teorem 18.3. Pretpostavimo da se jezik L može odlučiti u prostoru S(n) (gdje je S(n) ≥ log n). Tada postoji konstanta C takva da se L može odlučiti u vremenu O(CS(n)). TR-V Teorija složenosti 32 16 31.5.2011. 18.1 Deterministički prostor (5) • Dokaz teorema. Uzmimo TS M’ iz dokaza prethodnog teorema. Njegovo vrijeme računanja iznosi: qngS(n) ≤ q2log ngS(n) ≤ … (zbog S(n) ≥ log n) … ≤ q.2S(n)gS(n) = q.(2g)S(n) = O(CS(n)), za C ≥ 2g. • Teorem 18.3 ne može se proširiti na slučaj S(n) < log n. To pokazuje primjer determinističkog KA. Naime: – DKA koristi konstantni prostor k, dakle S(n) = k < log n. – Kad bi teorem vrijedio za DKA, ispalo bi da DKA prepoznaje riječ duljine n u konstantnom vremenu, naime O(Ck) = O(1). – No mi znamo da DKA zahtijeva linearno vrijeme. Može se pokazati da vrijedi. • Teorem 18.4. Jezik je odlučiv u konstantnom prostoru ako i samo ako je on regularan. TR-V Teorija složenosti 33 18.2 Nedeterministički prostor (1) • Kažemo da nedeterministički TS M radi u prostoru S(n) ako M za bilo koji ulaz duljine n i za bilo koju granu računanja ukupno na svim radnim trakama koristi najviše S(n) klijetki. • Prijašnji rezultati koje smo dokazali za determinističke strojeva zapravo vrijede i za nedeterminističke. Na primjer: • Teorem 18.5. Ako nedeterministički TS rješava problem veličine n u vremenu T(n), tada on ne zahtijeva prostor vedi od T(n). TR-V Teorija složenosti 34 17 31.5.2011. 18.2 Nedeterministički prostor (2) • Teorem 18.6. Ako postoji nedeterministički TS M koji prihvada jezik L i za ulaz duljine n radi u prostoru S(n) (gdje je S(n) ≥ log n), tada postoji drugi nedeterministički TS M’ koji prihvada isti jezik, radi u prostoru O(S(n)) i uvijek se zaustavlja. • Teorem 18.7. Pretpostavimo da se jezik L može odlučiti pomodu nedeterminističkog TS-a u prostoru S(n) (gdje je S(n) ≥ log n). Tada postoji konstanta C takva da se L može odlučiti pomodu determinističkog TS-a u vremenu O(CS(n)). • Dokaze ovih teorema ostavljamo za vježbu. Zasnivaju se na sličnim idejama kao prije. TR-V Teorija složenosti 35 18.3 Polinomijalni prostor (1) • Klasa svih jezika odnosno problema odlučivanja koji se mogu odlučiti u polinomijalnom prostoru označava se s PSPACE. • Drugim riječima, jezik L je u PSPACE ako postoji konstanta k i deterministički TS M takvi da M u prostoru O(nk) odlučuje da li riječ duljine n pripada ili ne pripada L. • Slično, klasa svih jezika odnosno problema odlučivanja koji se mogu odlučiti u polinomijalnom prostoru pomodu nedeterminističkog TS-a označava se s NPSPACE. TR-V Teorija složenosti 36 18 31.5.2011. 18.3 Polinomijalni prostor (2) • Za razliku od vremenskih klasa P i NP gdje nije jasno da li su one različite ili nisu, za prostorne klase se zna da su one zapravo jednake. Naime vrijedi: • Teorem 18.8 (Savitch). PSPACE = NPSPACE. Preciznije, ako postoji nedeterministički TS koji odlučuje jezik L u prostoru S(n) (gdje je S(n) ≥ log n), tada postoji deterministički TS koji odlučuje L u prostoru O((S(n))2). • Tvrdnja o jednakosti klasa slijedi zato što je kvadrat polinoma opet polinom. U nastavku slijedi skica dokaza. Opširnija varijanta dokaza nalazi se u knjizi Sipser. Poglavlje 8.1. Obavezno proučiti! TR-V Teorija složenosti 37 18.3 Polinomijalni prostor (3) • Dokaz teorema zasniva se na rekurziji. Neka je M nedeterministički TS koji se uvijek zaustavlja i radi u prostoru S(n). Tada M zahtijeva najviše T = qngS(n) koraka. Ovdje je opet q broj stanja i g broj znakova iz alfabeta trake. Preinačimo M tako da u slučaju prihvadanja briše radnu traku i završava u jednom određenom stanju. Kao i prije, konfiguracija stroja bilježi sadržaj radne trake, stanje stroja i položaj glava na trakama. Zbog jednostavnosti, nadopunimo svaku konfiguraciju praznim znakovima tako da ima duljinu S(n). TR-V Teorija složenosti 38 19 31.5.2011. 18.3 Polinomijalni prostor (4) Tada za zadani ulaz postoji jedinstvena početna konfiguracija Cs i jedinstvena prihvadajuda konfiguracija Ca. Pitanje je da li postoji legalni niz koraka od Cs do Ca ? Definiramo Booleovsku funkciju f koja uzima kao argumente dvije konfiguracije C1 i C2 te cijeli broj i. f(C1,C2,i) je istina ako M može iz C1 dodi u C2 u najviše i koraka, inače je f(C1,C2,i) laž. Ova funkcija može se izračunati rekurzijom u skladu sa sljededim pseudokodom. Pomodna funkcija oneStep određuje da li se konfiguracija C2 može odbiti jednim korakom iz C1 prema pravilima rada M. TR-V Teorija složenosti 39 18.3 Polinomijalni prostor (5) Funkcija f(C1,C2,i) { ako (i == 1) vrati oneStep(M,C1,C2) inače { za sve nizove znakova C3 duljine S(n) { ako ( f(C1,C3,i/2) == istina ) i ( f(C3,C2,i/2) == istina ) vrati istinu } vrati laž } } TR-V Teorija složenosti 40 20 31.5.2011. 18.3 Polinomijalni prostor (6) Funkcija f može se implementirati kao deterministički stroj N kojeg možemo pitati da li je istina f(Cs,Ca,T). Odgovor odlučuje jezik L. Tvrdimo da N koristi prostor O((S(n))2). Da bismo se u to uvjerili, sjetimo se da rekurzivni program radi uz pomod stoga, tako da stavlja na stog “snimku stanja” svih pomodnih varijabli svaki put kad sam sebe pozove. Svaka konfiguracija, pa zato i svaka snimka stanja, zahtijeva prostor O(S(n)). Maksimalni broj snimaka stanja na stogu u bilo kojem trenutku je log T, naime svaki korak rekurzije raspolavlja zadani cijeli broj, tako da rekurzija koristi najviše log T razina. TR-V Teorija složenosti 41 18.3 Polinomijalni prostor (7) Sa obzirom da je log T reda veličine O(S(n)), slijedi da čitav stog u jednom trenutku zauzima O(S(n)). S(n) = O((S(n))2) klijetki. Time je Savitch-ev teorem dokazan. • Prostor PSPACE ima mnoga zanimljiva svojstva. Na primjer: – Problem odlučivanja da li neki RI generira sve mogude nizove znakova je u PSPACE. – Lako se pokaže da je PSPACE zatvoren s obzirom na operaciju *. – Također, može se pokazati da PSPACE sadrži bilo koji jezik koji je generiran nekom kontekstno-osjetljivom gramatikom. TR-V Teorija složenosti 42 21 31.5.2011. 18.4 Logaritamski prostor (1) • Klasa svih jezika ili problema odlučivanja koji su mogu odlučiti u logaritamskom prostoru označava se s L. • Drugim riječima, jezik L je u L ako postoji deterministički TS M takav da M u prostoru O(log n). odlučuje da li riječ duljine n pripada ili ne pripada L. • Slično, klasa svih jezika ili problema odlučivanja koji se mogu odlučiti u logaritamskom prostoru pomodu nedeterminističkog TS-a označava se s NL. • Primjer 18.2. Jezik { 0n1n | n≥0 } je u L. Odlučivanje tog jezika može se implementirati pomodu brojača koji broje nule odnosno jedinice. Brojač do n može se u binarnom sustavu zapisati pomodu log2n bitova. TR-V Teorija složenosti 43 18.4 Logaritamski prostor (2) • Do sada smo uveli nekoliko klasa vremenske ili prostorne složenosti za jezike odnosno probleme odlučivanja. Zanima nas odnos tih klasa. – Očito je L NL. Također P NP. – Iz Teorema 18.7 slijedi da je NL P (naime Clog n je polinom od n). – Teorem 18.3 nam kaže da je PSPACE EXPTIME. Ovdje smo s EXPTIME označili klasu jezika odlučivih u eksponencijalnom vremenu pomodu determinističkog TS-a, dakle klasu jezika odlučivih u vremenu O(Cp(n)) gdje je p polinom. – Dalje zbog Teorema 18.5 slijedi da je NP NPSPACE. – Savitchev Teorem 18.8 je rekao NPSPACE = PSPACE. TR-V Teorija složenosti 44 22 31.5.2011. 18.4 Logaritamski prostor (3) • Kad sve ovo kombiniramo dobivamo sljededi niz inkluzija. L NL P NP NPSPACE = PSPACE EXPTIME. • Ni za jednu od inkluzija u nizu ne zna se da li je stroga ili nije. Ipak, bar jedna mora biti stroga jer je dokazano da je L ≠ NPSPACE. • Vedina istraživača vjeruje da su sve inkluzije u gornjem nizu stroge. TR-V Teorija složenosti 45 Sadržaj dijela V 17. Vremenska složenost 18. Prostorna složenost 19. NP-potpunost TR-V Teorija složenosti 46 23 31.5.2011. 19.0 Opdenito o NP-potpunosti • Makar pitanje da li je P=NP za sada nema odgovora, ipak možemo identificirati probleme u NP koju su u određenom smislu “najteži”. • Takvi problemi zovu se NP-potpuni. Oni imaju sljedede svojstvo: ako postoji polinomijalni algoritam za jednog od njih, tada postoji polinomijalni algoritam za bilo koji problem iz klase NP. • Traženje odgovora na pitanje da li je P=NP može se usmjeriti na traženje polinomijalnog algoritma za bilo koji od NP-potpunih problema. TR-V Teorija složenosti 47 19.1 Detaljnije o NP-potpunosti (1) • Pojam NP-potpunosti gradi se na pojmu redukcije o čemu smo ved govorili u Poglavlju 15. • Funkcija f (koja preslikava riječ u riječ) je izračunljiva u polinomijalnom vremenu ako postoji konstanta k i TS koji za argument duljine n računa vrijednost od f u vremenu O(nk). • Jezik A je reducibilan u polinomijalnom vremenu na jezik B ako se A reducira na B preko funkcije f izračunljive u polinomijalnom vremenu. Oznaka: A ≤p B. • Teorem 19.1. (a) Ako je A ≤p B i B je u P, tada je također i A u P. (b) Ako je A ≤p B i A nije u P, tada ni B nije u P. TR-V Teorija složenosti 48 24 31.5.2011. 19.1 Detaljnije o NP-potpunosti (2) • Dokaz teorema. Dokazujemo samo (a), (b) je obrat od (a) po kontrapoziciji. Neka je redukcija A na B dana funkcijom f izračunljivom u vremenu O(nk). Uzmimo da pripadnost riječi duljine n jeziku B možemo odlučiti u vremenu O(nl). Sagradimo odlučitelj za A na sljededi način: za ulaz w računamo f(w) i zatim gledamo da li je f(w) u B. Taj odlučitelj radi u polinomijalnom vremenu. Zaista, ako w ima duljinu n, tada je duljina od f(w) najviše O(nk) bududi da program za f može napisati najviše jedan znak u svakom koraku. Znači da provjera pripadnosti f(w) jeziku B može trajati najviše O((nk)l) = O(nkl), što je još uvijek polinomijalno vrijeme. TR-V Teorija složenosti 49 19.1 Detaljnije o NP-potpunosti (3) • Jezik S je NP-potpun ako: – S pripada NP, – Za sve A koji su u NP vrijedi da je A ≤p S. • Ova definicija zbog prethodnog teorema zapravo znači sljedede. (a) Ako je S NP-potpun i S je u P, tada je P=NP. (b) Ako je S NP-potpun, T je u NP i S ≤pT, tada je i T NP-potpun. TR-V Teorija složenosti 50 25 31.5.2011. 19.2 Dokazivanje NP-potpunosti (1) • Standardna metoda dokazivanja NP-potpunosti je da se uzme problem za koji se zna da je NP-potpun te da ga se reducira u polinomijalnom vremenu na problem iz NP za kojeg želimo dokazati da je NPpotpun. Dakle, primjenjuje se prethodna tvrdnja (b). • Ipak, da bi ovakva metoda funkcionirala, moramo imati barem jedan početni problem za koji je neposredno dokazano da je NP-potpun. Takav početni problem daje nam sljededi teorem. • Teorem 19.2 (Cook-Levin). Jezik SAT, dakle problem zadovoljivosti Booleovske formule u konjuktivnoj normalnoj formi, je NP-potpun. TR-V Teorija složenosti 51 19.2 Dokazivanje NP-potpunosti (2) • Cjelovit dokaz Cook-Levinog teorema nalazi se u knjizi Sipser, Poglavlje 7.4 – obavezno proučiti za pristupni ispit! • Ideja dokaza teorema. Pokazali smo da je SAT u NP – vidi Primjer 17.5. Ostaje pokazati da se bilo koji jezik A iz NP može reducirati na SAT u polinomijalnom vremenu. Bududi da je A iz NP, postoji nedeterministički TS M koji odlučuje A u polinomijalnom vremenu. Redukcija A na SAT uzima zadanu riječ w i stvara Booleovsku formulu u KNF koja simulira rad od M na ulazu w. TR-V Teorija složenosti 52 26 31.5.2011. 19.2 Dokazivanje NP-potpunosti (3) Pritom vrijedi: – Ako M prihvada w, tada je zadovoljiva, a odgovarajude pridruživanje istine/laži varijablama od opisuje granu računanja od M koja vodi u prihvadajude stanje. – Ako M ne prihvada w, tada ne postoji pridruživanje za koje je istinita. Znači, w je u A ako i samo ako je zadovoljiva. Pretvorba M i w u odvija se u polinomijalnom vremenu. Točnije, ako je n duljina od w, a M odlučuje w u polinomijalnom vremenu p(n), tada vrijeme za konstrukciju iznosi O(p3(n).log n). TR-V Teorija složenosti 53 19.2 Dokazivanje NP-potpunosti (4) Sam postupak kako se iz M i w konstruira prilično je kompliciran i sadrži velik broj tehničkih detalja. • Nakon što smo ustanovili da je SAT NP-potpun, dalje možemo: – SAT reducirati na razne druge probleme iz NP i time dokazati da su i ti drugi problemi NP-potpuni, – te druge probleme reducirati na trede probleme iz NP i dokazati da su ti tredi problemi NP-potpuni, – … i tako dalje. Skup NP-potpunih problema se širi. TR-V Teorija složenosti 54 27 31.5.2011. 19.3 Primjeri NP-potpunih problema (1) • Trenutno postoji više od 3000 problema za koje se zna da su NP-potpuni. Popis se stalno povedava. • U nastavku slijedi nekoliko primjera problema za koje je: – jasno da su iz NP jer postoji očigledni certifikat, – redukcijom dokazano da su NP-potpuni. • 3SAT – Ulaz: Booleovska formula u KNF s točno tri literala po klauzuli. – Pitanje: da li je zadovoljiva? TR-V Teorija složenosti 55 19.3 Primjeri NP-potpunih problema (2) • CLIQUE – Ulaz: graf G i prirodni broj k. – Pitanje: da li u G postoji klika veličine barem k? (Klika je skup vrhova od kojih je svaki sa svakim povezan bridom). • DOMINATION – Ulaz: graf G i prirodni broj k. – Pitanje: da li u G postoji dominirajudi skup od najviše k vrhova? (Skup vrhova D je dominirajudi ako je svaki od preostalih vrhova povezan bridom s barem jednim iz D). • VERTEX_COVER – Ulaz: graf G i prirodni broj k. – Pitanje: da li u G postoji vršni pokrivač veličine najviše k? (Skup vrhova V je vršni pokrivač ako svaki brid u grafu ima barem jedan kraj u V). TR-V Teorija složenosti 56 28 31.5.2011. 19.3 Primjeri NP-potpunih problema (3) • HAMCYCLE – Ulaz: graf G. – Pitanje: da li u G postoji Hamiltonov ciklus? (Hamiltonov ciklus je kružni put koji svakim vrhom prolazi točno jednom). • HAMPATH – Ulaz: graf G, vrhovi a i b iz G. – Pitanje: da li u G postoji Hamiltonov put od a do b? (Hamiltonov put od a do b je takav put od a do b koji svakim od preostalih vrhova prolazi točno jednom). • COLOR – Ulaz: graf G i prirodni broj k. – Pitanje: da li se vrhovi od G mogu obojiti s najviše k boja? (Vrhovi povezani bridom moraju imati različite boje). TR-V Teorija složenosti 57 19.3 Primjeri NP-potpunih problema (4) • EXACT_COVER – Ulaz: porodica skupova F = {S1, S2, …, Sk}. – Pitanje: da li postoji podskup T F disjunktnih skupova Si takav da je unija svih Si iz T jednaka uniji svih Si iz F? • SUBSET_SUM – Ulaz: skup prirodnih brojeva {a1, a2, …, ak} i dodatni broj c. – Pitanje: da li postoji podskup od {a1, a2, …, ak} takav da zbroj elemenata u njemu iznosi točno c? • PARTITION – Ulaz: multiskup prirodnih brojeva {a1, a2, …, ak} . – Pitanje: da li se zadani multiskup može podijeliti u dva disjunktna dijela tako da je zbroj elemenata u prvom dijelu točno jednak zbroju elemenata u drugom dijelu? TR-V Teorija složenosti 58 29 31.5.2011. 19.3 Primjeri NP-potpunih problema (5) • Promotrimo opet graf iz primjera 17.4. – Rekli smo da u njemu postoji Hamiltonov put od A do I, no ne postoji Hamiltonov put od A do C. – Skup vrhova {C, H, I} čini kliku. – {A, C, F} je dominirajudi skup. – {A, C, E, G, I} je vršni pokrivač. TR-V Teorija složenosti 59 19.4 Primjeri redukcija (1) • Slijed međusobnih redukcija kojima se dokazuje NPpotpunost prethodnih problema mogao bi izgledati ovako: TR-V Teorija složenosti 60 30 31.5.2011. 19.4 Primjeri redukcija (2) • U nastavku demo konstruirati neke od redukcija s prethodnog dijagrama. Nemamo vremena za sve redukcije, dajemo samo najzanimljivije primjere: – SAT ≤p 3SAT – 3SAT ≤p DOMINATION – SUBSET_SUM ≤p PARTITION • U knjizi Sipser, poglavlje 7.5 mogu se nadi redukcije: – – – – 3SAT ≤p CLIQUE 3SAT ≤p VERTEX_COVER 3SAT ≤p HAMPATH 3SAT ≤p SUBSET_SUM • Ostale redukcije s prethodnog dijagrama mogu se nadi na primjer u knjizi Horowitz, Sahni, Rahasekaran. TR-V Teorija složenosti 61 19.5 Redukcija SAT ≤p 3SAT (1) • Treba opisati postupak kojim se u polinomijalnom vremenu Booleovska formula koja je u KNF pretvara u Booleovsku formulu koja je u 3KNF. Pritom mora vrijediti da je zadovoljiva ako i samo ako je zadovoljiva. • Postupak se sastoji u tome da bilo koju klauzulu C iz koja nije ispravne duljine zamijenimo s ekvivalentnim nizom DC od nekoliko klauzula koje su duljine 3. TR-V Teorija složenosti 62 31 31.5.2011. 19.5 Redukcija SAT ≤p 3SAT (2) • Na primjer, klauzulu C od 5 literala C=abcde zamijenimo s nizom DC od tri klauzule DC = (a b x) (x c y) (y d e) Ovdje su x i y sasvim nove varijable. Tvrdimo da vrijedi: (a) Ako je C laž, onda je i DC laž. (b) Ako je C istina, onda možemo postidi da je i DC istina. • Da pokažemo (a), pretpostavimo da je C laž. Tada su sve varijable a, b, …, e laž. Da učinimo prvu klauzulu u DC istinom, moramo postaviti da je x istina. Tada u drugoj klauzuli od DC y mora biti istina. No onda treda klauzula od DC postaje laž, pa je i cijela DC laž. TR-V Teorija složenosti 63 19.5 Redukcija SAT ≤p 3SAT (3) • Da pokažemo (b), pretpostavimo da je C istina. Tada neka od varijabli a, b, …, e mora biti istina. Ako je a ili b istina, tada možemo postaviti x i y na laž; ako je c istina, možemo postaviti x na istinu a y na laž; ako je d ili e istina, možemo postaviti x i y na istinu. U svakom slučaju, cijela DC de biti istina. • Pretvorbu C u DC objasnili smo na primjeru kad C ima duljinu 5. No slično bismo postupili i za bilo koju drugu duljinu različitu od 3. • Dakle, naša konstrukcija stvara Booleovsku formulu koja ima ispravni oblik. TR-V Teorija složenosti 64 32 31.5.2011. 19.5 Redukcija SAT ≤p 3SAT (4) • Ako je zadovoljiva, tada postoji takvo pridruživanje da je svaka klauzula C istinita, pa se to pridruživanje može proširiti tako da svaki odgovarajudi niz klauzula DC u bude istinit. • S druge strane, ako pridruživanje čini lažnom, tada jedna od klauzula od , na primjer C’, mora biti lažna, pa odgovarajudi niz DC’ u isto mora biti laž. • Zadnja stvar koju moramo provjeriti je da se postupak konverzije u može ostvariti u polinomijalnom vremenu. Očito se može jer je posao pretvorbe svake klauzule proporcionalan s duljinom te klauzule. TR-V Teorija složenosti 65 19.6 Redukcija 3SAT ≤p DOMINATION (1) • Treba opisati postupak koji u polinomijalnom vremenu za zadanu Booleovsku formulu u 3KNF konstruira graf G i prirodni broj k takve da je zadovoljiva ako i samo ako u G postoji dominirajudi skup od k vrhova. • Pretpostavimo da formula ima c klauzula i ukupno m varijabli. Konstrukcija G i k ide ovako. – Za svaku klauzulu stvorimo vrh. – Za svaku varijablu v stvaramo trokut gdje jedan vrh ima oznaku v, a drugi vrh oznaku v. – Za svaku klauzulu vrh klauzule spojimo s tri vrha koji odgovaraju trima literalima iz te klauzule. – Broj k biramo kao k = m. TR-V Teorija složenosti 66 33 31.5.2011. 19.6 Redukcija 3SAT ≤p DOMINATION (2) • Na primjer za formulu zadanu s (x y z) (x y z) Graf G izgleda kao na slici, a k =3. TR-V Teorija složenosti 67 19.6 Redukcija 3SAT ≤p DOMINATION (3) • Očigledno je da se graf može konstruirati u polinomijalnom vremenu. • Jedino što još treba pokazati je da preslikavanje čuva odgovor na pitanje da li je zadovoljiva. • Zaista, uzmimo da postoji pridruživanje koje zadovoljava . Neka je D skup od m vrhova koji odgovaraju istinitim literalima u tom pridruživanju. Tada je svaki trokut dominiran (jer postoji jedan vrh iz D u svakom trokutu). Također, svaki vrh-klauzula je dominiran jer jedan od literala u toj klauzuli mora biti istina. Znači D je dominirajudi skup veličine m. TR-V Teorija složenosti 68 34 31.5.2011. 19.6 Redukcija 3SAT ≤p DOMINATION (4) • Obratno, pretpostavimo da G ima dominirajudi skup D veličine m. Tada se D mora sastojati od po jednog vrha iz svakog trokuta jer svi neoznačeni vrhovi u trokutima moraju biti dominirani a trokuta ima m. Dalje, da bi bio dominiran, svaki vrh-klauzula mora biti povezan s jednim vrhomliteralom koji je u D. Dakle ako stavimo za sve literale koji odgovaraju vrhovima iz D da su istina, dobivamo pridruživanje koje zadovoljava sve klauzule, dakle i . TR-V Teorija složenosti 69 19.7 Red SUBSET_SUM ≤p PARTITION (1) • Neka skup prirodnih brojeva A = {a1, a2, …, ak} i dodatni prirodni broj c definiraju primjerak problema zbroja podskupa. • Konstruiramo u polinomijalnom vremenu skup B = {b1, b2, …, bk, bk+1, bk+2}, tako da je bi = ai, za i = 1, 2, …, k, bk+1 = c+1, bk+2 = (a1+a2+…+ak)+1–c . Skup B shvatimo kao primjerak problema particije. • Tvrdimo da B ima particiju ako i samo ako A ima podskup sa zbrojem c. Da bi to dokazali primijetimo da – poluzbroj svih elemenata iz B iznosi (a1+a2+…+ak)+1, – bk+1 i bk+2 zajedno daju (a1+a2+…+ak)+2 . TR-V Teorija složenosti 70 35 31.5.2011. 19.7 Red SUBSET_SUM ≤p PARTITION (2) • Dakle bk+1 i bk+2 ne mogu biti u istom dijelu particije od B bududi da je njihov zbroj prevelik, to jest vedi je od poluzbroja svih elemenata iz B. • Pretpostavimo da B ima particiju. Gledamo one elemente od B (to su ustvari ai-ovi) koji su u toj particiji stavljeni zajedno s bk+2 . Bududi da oni zajedno s bk+2 daju poluzbroj za B, slijedi da njihov zbroj mora biti jednak c. • Obratno, pretpostavimo da A ima podskup sa zbrojem c. Tada zbroj elemenata iz tog podskupa zajedno s bk+2 daje poluzbroj za B, pa je time određena particija za B. TR-V Teorija složenosti 71 36
© Copyright 2024 Paperzz