1 / 12

Analiza algoritama i primjer: problem izrade rasporeda časova

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

cherie
Télécharger la présentation

Analiza algoritama i primjer: problem izrade rasporeda časova

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analiza algoritama i primjer: problem izrade rasporeda časova Darko Drakulić

  2. 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

  3. 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

  4. 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

  5. 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.

  6. 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?

  7. 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

  8. 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?

  9. Problem izrade rasporeda časova Da li postoji efikasan algoritam za rješavanje problema izrade rasporeda časova?

  10. 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

  11. 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!

  12. 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 • ...

More Related