Uvodno predavanje Robert Manger, ožujak 2011

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=abcde
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