ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf6/ Άνοιξη 06 - I. ΜΗΛΗΣ P NP και NP-complete προβλήματα (Κλάσεις Πολυπλοκότητας) ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I
Γιατί για πολλά προβλήματα δεν έχουμε πολυωνυμικούς αλγορίθμους? ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I
Γιατί για πολλά προβλήματα δεν έχουμε πολυωνυμικούς αλγορίθμους? ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 3
Γιατί για πολλά προβλήματα δεν έχουμε πολυωνυμικούς αλγορίθμους? ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 4
Κλάση πολυπλοκότητας P Όλα τα προβλήματα για τα οποία υπάρχει αλγόριθμος με O(poly Ι ) πολυπλοκότητα χειρότερης περίπτωσης όπου Ι το μέγεθος της κωδικοποιημένης εισόδου του προβλήματος Προβλήματα P: EXP GCD FIBONACCI SORTING SHORTEST PATHS MST PRIMES: O (log n) [00] και πάρα πολλά άλλα Προβλήματα χωρίς O(poly Ι ) αλγόριθμο 0- KNAPSACK SUBSET SUM: O(nW) SAT: O( n ) CLIQUE LONGEST PATH TSP και πάρα πολλά άλλα επίσης ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 5
Decision s. Optimiation problems Προβλήματα ΑΠΟΦΑΣΗΣ (decision) : Προβλήματα με απάντηση ΝΑΙ/ΟΧΙ Π.χ. PRIMES SUBSET SUM SAT SEARCH Προβλήματα βελτιστοποίησης (optimiation) : Μεγιστοποίηση/Ελαχιστοποίηση μιας συνάρτησης κόστους Π.χ. TSP (Traeling Salesman Problem) I: Complete weighted digraph G = (V E) Q: Find a minimum length tour of G CLIQUE (tour: a cycle isiting each node once) I: A graph G=(VE) Q: Find the maximum subset C V s. t. u C: (u) E (the maximum complete subgraph of G) ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 6
Optimiation problems Έχουμε δει ότι υπάρχουν δύο ερωτήσεις /εκδοχές για ένα πρόβλημα βελτιστοποίησης: Ερώτηση κόστους: Να βρεθεί το κόστος μιας βέλτιστης λύσης Ερώτηση λύσης: Να βρεθεί μια βέλτιστη λύση (η ίδια η λύση) Μια τρίτη ερώτηση εκδοχή για ένα πρόβλημα βελτιστοποίησης: Ερώτηση/εκδοχή απόφασης (decision ersion) : Δεδομένου ενός φράγματος B υπάρχει λύση με - κόστος B (για προβλήματα ελαχιστοποίησης) ή - κόστος B (για προβλήματα μεγιστοποίησης)? TSP CLIQUE Q: Find the cost of a minimum tour Q: Find the sie of max C Q: Find a tour of minimum cost Q: Find the ertices of max C Q3: Is there a tour of cost B? Q3: Is there C V s.t. C B? Για κάθε πρόβλημα βελτιστοποίησης μπορούμε τελείως εύκολα να ορίσουμε το αντίστοιχο πρόβλημα απόφασης (χρήση φράγματος Β) ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 7
Why decision problems? Για κάθε πρόβλημα βελτιστοποίησης μπορούμε τελείως εύκολα να ορίσουμε το αντίστοιχο πρόβλημα απόφασης ΓΙΑΤΙ προβλήματα απόφασης? ) Μπορούν να κωδικοποιηθούν ως γλώσσες (ιστορικοί λόγοι) ) Χρησιμοποιούνται για τον ορισμό των κλάσεων πολυπλοκότητας 3) Είναι ισοδύναμα με τα αντίστοιχα προβλήματα βελτιστοποίησης Έστω ότι υπάρχει Ο(poly) αλγόριθμος για την ερώτηση απόφασης: τότε υπάρχουν Ο(poly) αλγόριθμοι και για τις ερωτήσεις κόστους και λύσης! Για τον ορισμό των κλάσεων πολυπλοκότητας μελετάμε ΜΟΝΟ προβλήματα απόφασης!!! ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 8
Decision s. Optimiation problems () Ο(poly) αλγόριθμος για την ερώτηση απόφασης Ο(poly) αλγόριθμος για την ερώτησης κόστους! Example: TSP Έστω OPT το κόστος ενός βέλτιστου tour w min = min {w(e) e E} w max = max {w(e) e E} Ισχύει ότι nw min OPT nw max Χρήση της ερώτησης «υπάρχει tour κόστους B" για κατάλληλες τιμές του B Για ποιες τιμές του B? Για όλες: O(n max ) τιμές NOT O(poly( I ) Βinary search: O(logn+log max ) τιμές O(poly( I )!! ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 9
Decision s. Optimiation problems () O(poly) αλγόριθμος για την ερώτηση απόφασης Ο(poly) αλγόριθμος για την ερώτηση λύσης! Example: TSP (cont.) Find OPT as in () T= { } // an optimal tour for each edge e E: x =w(e) w(e) = w(e) + M // increase the weight of e "is there a tour of cost OPT? " if NO: T=T U {e} // e is in an optimal tour w(e)=x // restore the weight of e // if YES then e is not in any optimal tour // keep its weight to w(e) + M O( E ) iterations - O(poly I ) ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 0
Complexity Class NP Όλα τα προβλήματα για τα οποία υπάρχει ένας Non-deterministic Polynomial (NP) αλγόριθμος Ένα πρόβλημα Π NP iff για κάθε στιγμιότυπο του Π με απάντηση ΝΑΙ υπάρχει ένας Ο(poly) αλγόριθμος επαλήθευσης (πιστοποιητικό - certificate) δηλ. μπορείτε να πείσετε κάποιον για ένα ΝΑΙ στιγμιότυπο σε Ο(poly) χρόνο. Example: TSP ΝΑΙ στιγμιότυπο: δείξτε (μαντέψτε) μία λύση! έλεγχος ότι είναι διαδρομή; υπολογισμός κόστους ; είναι το κόστος B ; O(n) time in total OXI στιγμιότυπο : έλεγχος όλων των διαδρομών! ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I
P and NP Π NP: Για κάθε στιγμιότυπο Ι του Π υπάρχει ένας O(poly) αλγόριθμος Ο αλγόριθμος αυτός: - Αν το Ι έχει λύση βρίσκει (και επαληθεύει ) μία τέτοια λύση - Αν το Ι δεν έχει λύση το αναφέρει Άρα P NP P NP ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I
Polynomial Reductions A B: προβλήματα απόφασης Το A ανάγεται πολυωνυμικά στο B (A p B) εάν υπάρχει ένας πολυωνυμικός μετασχηματισμός R ο οποίος για κάθε είσοδο x για το A παράγει μια είσοδο R(x) για το Β τέτοια ώστε: το Β με είσοδο R(x) έχει απάντηση ΝΑΙ εάν και μόνο εάν το Α με είσοδο x έχει απάντηση ΝΑΙ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 3
Polynomial Reductions Για να λύσουμε το Α με είσοδο x αρκεί να : μετασχηματίσουμε την x στην R(x) λύσουμε το Β με είσοδο R(x) O(poly) for R(x) + O(poly) algorithm for B O(poly) algorithm for A το Α δεν είναι πιο δύσκολο από το Β. ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 4
Complexity Class NP-complete Ένα πρόβλημα Π NP-complete iff ) Π NP ) Για κάθε άλλο Π' NP : Π' p Π (Όλα τα άλλα προβλήματα στο ΝΡ ανάγονται στο Π) ΝP-complete problems: capture the essence and the difficulty of NP the most difficult problems in NP Αποδείξτε ότι το Π είναι NP-complete:. Αποδείξτε ότι Π NP. Αποδείξτε ότι Π' NP : Π' p Π???!!! ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 5
Complexity Class NP-complete Ευτυχώς: ) έχουμε το Cook's Theorem [Cook 97 Lein 97]: SAT is NP complete ( Π' NP : Π' p SAT) ) η σύνθεση πολυωνυμικών αναγωγών είναι πολυωνυμική Αποδείξτε ότι το Π είναι NP -complete:. Αποδείξτε ότι Π NP. Αποδείξτε ότι Π'NP-complete: Π' p Π (Διαλέξτε ένα πρόβλημα Π'NP-complete: και αποδείξτε ότι Π' p Π) S. Cook R. Karp τα πρώτα NP-complete προβλήματα (97) ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 6
Complexity Class NP-complete Θυμηθείτε ότι P NP Ποιος είναι ο χάρτης της NP? Kurt Gödel Αυτό πιστεύουμε Αδύνατο Απίθανο Ladner s theorem H ΕΡΩΤΗΣΗ στη Θεωρητική Πληροφορική Για κανένα NP-complete πρόβλημα δεν είναι γνωστός O(poly) αλγόριθμος Εάν υπάρχει για ένα υπάρχει για όλα! Τότε P=NP! ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 7
Tree of reductions (partial) Cook s Th. Π in NP SAT 3-SAT MAX -SAT CLIQUE / IS / VC 3-DM 3- GC ZOE SUBSET SUM HP / HC 0- KNAPSACK TSP / Δ -TSP Polynomial Γενίκευση του Π Πρόβλημα Π Ειδική περίπτωση του Π NP -complete ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 8
3-SAT (CNF) 3-SAT Instance: a 3-CNF boolean formula (all φ s clauses hae 3 literals) Question: Is satisfiable? e.g. ( x y ) ( x y ) ( y x) ( y x) n = # ariables of m = # clauses of ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 9
3-SAT is NP-complete. 3-SAT is in NP Gien an assignment we just check that each clause is TRUE Complexity: # ORs =m that is O(m). 3-SAT is NP-complete By a reduction from SAT to 3-SAT We will transform each clause to a set of 3-literals clauses Independently for each clause based on its length k k = k= k=3 k >3 ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 0
3-SAT is NP-complete k= that is C = { } We use new ariables We replace C with new clauses C ' C' C' { } { } If C is TRUE then C is TRUE If C is TRUE => =T or =T => C =T since both clauses of C include both and If C is TRUE then C is TRUE If C is TRUE => C i is TRUE i= Consider both assignments for =F: C = T => =T or =T =T: C = T => =T or =T that is C = T in both cases ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I
3-SAT is NP-complete k= that is C = {} We use new ariables and We replace C with 4 new clauses C ' C' C' C' 3C' 4 { } { } { } { } If C is TRUE then C is TRUE C = T => =T => C = T since is in all four clauses of C If C is TRUE then C is TRUE C = T => C i = T i=34 Consider all possible assignments for and =F =F: C = T => = T =F =T: C = T => = T =T =F: C 3 = T => = T =T =T: C 4 = T => = T that is C = T in each case ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I
k > 3 that is C = { 3 k } We use k-3 new ariables 3 k-3 We replace C with k- new clauses 3-SAT is NP-complete } { } { '... ' ' ' k C C C C } {... } {... } { 3 3 k k k p p p ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 3
k > 3 that is C = { 3 k } If C is TRUE then C is TRUE C=T => there is at least one i =T i k Let p=min index such that p =T Then there is a truth assignment for C : 3-SAT is NP-complete if p i T } { '... ' ' ' k C C C C C i =T i k- otherwise if F p i T i ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 4 } {... } {... } { } { 3 3 k k k p p p
3-SAT is NP-complete k > 3 that is C = { 3 k } If C is TRUE then C is TRUE C =T => C i =T i k- Assume that C=F => i = F i k C = T => =T C = T => =T C 3 = T => 3 =T. C k-3 = T => k-3 =T C k- = F C' C' C'... C' k { } { {... contradiction since C = T! k- { } ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 5 k 3 3 4 3 } k } k
3-SAT is NP-complete Complexity of the reduction SAT: n ariables m clauses In the worst case all the clauses contain n literals 3-SAT: there will be m(n-) clauses (why?) That is O(nm) clauses ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 6
(CNF) SAT ariants POLYNOMIAL -SAT: Each clause has at most literals Horn SAT: Each clause has at most one positie literal NP-COMPLETE 3-SAT: Each clause has at most 3 literals k-sat: Each clause has at most k literals - generaliation of 3-SAT MAX -SAT: I: A -CNF formula of m clauses and integer B m Q: is there an assignment satisfying Β clauses MAX k-sat: I: A k-cnf formula of m clauses and integer B m Q: is there an assignment satisfying Β clauses? - generaliation of 3-SAT; set B=m - generaliation of MAX -SAT ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 06 - Ι. ΜΗΛΗΣ 5 NP-COMPLETENESS I 7