130 likes | 326 Views
Analiza algoritama i primjer: problem izrade rasporeda časova. Darko Drakulić. Analiza algoritama. Cilj: odrediti ponašanje algoritma ne implementirajući ga na konkretnom računaru Dva aspekta: analiza potrebnog vremena i potrebne memorije Za vremensku složenost se uzima najgori slučaj ulaza
E N D
Analiza algoritama i primjer: problem izrade rasporeda časova Darko Drakulić
Analiza algoritama • Cilj: odrediti ponašanje algoritma ne implementirajući ga na konkretnom računaru • Dva aspekta: analiza potrebnog vremena i potrebne memorije • Za vremensku složenost se uzima najgori slučaj ulaza • Rezultat ulaza treba da bude izraz u zavisnosti od veličine ulaza n
Asimptotska oznaka O • g(n) = O(f(n)) ako postoje c, N∈N takve da za svako n > N važi g(n) ≤ cf(n) • npr. 5n2+15 ≤ 6n2, n ≥ 6, tj. 5n2+12n = O(6n2) • Za veliko n, konstante ne utiču mnogo na vrijeme izračunavanja, pa se izostavljaju • Za prethodni algortam se kaže da ima kompleksnost n2
2 3 9 5 2 9 5 3 3 9 5 2 3 9 5 2 2 5 9 3 3 9 5 2 2 9 5 3 2 3 5 9 2 3 9 5 Algoritam sortiranja Bubble sort Za niz dužine n, u najgorem slučaju, imamo n + n-1 +... + 1 = ½ n(n+1), tj. Bubble sort ima kompleksnost n2
Problem sume podskupa • Neka je dat skup cijelih brojeva. Da li postoji podskup datog skupa takav da je suma njegovih elemenata jednaka nuli? • “Sirovo” riješenje bi bilo pronaći sve podskupove i provjeravati da li neki od njih zadovoljava dati uslov. • Kompleksnost ovog algoritma bi bila 2n. • AMD Athlon 64 3800+ X2 (Dual Core) ima brzinu od 14 MIPS-a, tj. 14 miliona operacija u sekundi • 230 = 1.073.741.824 • Za izvršavanje ovog algoritma, procesoru bi trebalo oko 77 sekundi.
Klase P i NP • Ukoliko se neki problem može riješiti algoritmom koji ima kompleksnost O(nk) kažemo da je problem riješiv, a da je njegov algoritam efikasan • Klasa svih problema za koje postoji efikasan algoritam P (Polinomijalno vrijeme) • Klasa NP se sastoji od problema koji se mogu riješiti u dvije faze – faze pogađanja i faze polinomijalne provjere (otuda i naziv Nedeterminističko pogađanje rješenja sa Polinomijalnom provjerom) • Da li je P=NP?
NP-kompletnost • Problemi za koje se ne zna polinomijalni algoritam koji ih riješava nazivaja se NP-kompletni problemi • Formalno: • Def. NP-kompletan problemi je problem iz klase NP takav da je svaki problem klase NP polinomijalno svodljiv na njega. • Lema. Problem X je NP-kompletan ako • Pripada klasi NP • Postoji NP kompletan problem Y koji je polinomijalno svodljiv na X
Problem SAT • Kuk je 1971. dokazao da je problem SAT NP-kompletan (Kukova teorema) • Problem SAT (zadovoljivosti – satisfiability): • Neka je S Bulov izraz u KNF (Konjuktivnoj normalnoj formi), tj. S je konjukcija više disjunkcija grupa promjenljivih ili njihovih negacija), npr. S = (x+y+z’)*(x’+y+z’)*(x’+y’+z’), gdje svaka promjenljiva ima vrijednost 0 ili 1 • Problem: Da li je zadati izraz zadovoljiv, tj. da li postoji dodjeljivanje vrijednosti 0 i 1 promjenljivima takvo da je izraz tačan?
Problem izrade rasporeda časova Da li postoji efikasan algoritam za rješavanje problema izrade rasporeda časova?
Potproblem ON • ON – odjeljenje-nastavnik • Dato je m odjeljenja, n nastavnika, p vremenskih intervala, matrica Amxn gdje je aij broj časova koje nastavnik i ima u odjeljenju j • De Werra [1971], Even, Itai & Shamir [1976] su dokazali da je ovaj problem polinomijalno svodljiv na problem bipartitnog uparivanja grafa • Problem bipartitnog uparivanja grafa: Neka je G=(V, U, E) bipartitni graf u kome su U i V disjuktni skupovi čvorova a E skup grana koje povezuju čvorove iz U sa nekim čvorovima iz E. Pronaći uparivanje s maksimalnim brojem grana u datom grafu. • Problem bipartitnog uparivanja je Polinomijalno rješiv, sa vremenom O((V+U)E) • ON je polinomijalno rješiv
Potproblem ONMN • ONMN – Odjeljenje nastavnik sa dodatkom mogućnosti nastavnika • m, n, p, A iz prethodnog problema i Smxn matrica gdje je sij= 1 ako je i-ti nastavnik slobodan u j-om vremenskom intervalu • Iven, Itai & Shamir [1976] su dokazali da je problem 3SAT polinomijalno svodljiv na ovaj problem • Poznato je da je SAT polinomijalno svodljiv na 3SAT • ONMN je NP-kompletan!
Kako riješiti NP kompletne probleme? • Približni algoritmi • Isključivanje trivijalnih slučajeva • Pretraga i grananje sa odsjecanjem • Ostale heuristike pogađanja rješenja • ...