NP-πληρότητα Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων
Πολυωνυμικός μετασχηματισμός Ένας πολυωνυμικός μετασχηματισμός από την L 1 Σ 1 * στην L 2 Σ 2 * είναι μια συνάρτηση f: Σ 1 * Σ 2 * τέτοια ώστε 1. η f μπορεί να υπλογιστεί σε πολυωνυμικό χρόνο από αιτιοκρατική μηχανή Turing και 2. x Σ 1 *, x L 1 ανν f(x) L 2. Συμβολισμός: L 1 L 2
Πολυωνυμικός μετασχηματισμός Ιδιότητες Εάν L 1 L 2 τότε L 2 Ρ L 1 Ρ. Εάν L 1 L 2 και L 2 L 3 τότε L 1 L 3. Εάν L 1 L 2 και L 2 L 1 τότε λέμε ότι οι L 1, L 2 είναι πολυωνυμικά ισοδύναμες (polynomial equivalent).
ΝΡ-πλήρη προβλήματα Ορισμός Ένα πρόβλημα Π 1 είναι ΝΡ-πλήρες ανν 1. Π 1 ΝΡ 2. Π ΝΡ, Π Π 1.
Το θεώρημα του Cook Satisfiability (SAT) Δίδεται μια λογική έκφραση σε μορφή CNF (conjunctive normal form). Υπάρχει ανάθεση τιμών αλήθειας στις μεταβλητές της έκφρασης ώστε αυτή να ικανοποιείται (δηλ., να λαμβάνει τιμή αλήθειας true); clauses, μεταβλητές (x, x ), litteral
Το θεώρημα του Cook Θεώρημα Το πρόβλημα SAT είναι ΝΡ-πλήρες. Βασική Ιδέα της Απόδειξης Η ιδέα είναι να εκφραστεί η λειτουργία μιας οποιασδήποτε Μηχανής Turing M με μια λογική έκφραση Β σε μορφή CNF (με μέγεθος πολυωνυμικό στο μέγεθος της εισόδου της Μ). H M αποδέχεται ανν η Β ικανοποιείται.
Το θεώρημα του Cook Απόδειξη 1. SAT NP. 2. Έστω Π ΝΡ πολυωνυμικού χρόνου Μηχανή Turing M που επιλύει το Π και έστω: K = { q 0, q 1, q 2,, q r } όπου q 0 αρχική, q 1 αποδοχή, q 2 απόρριψη Γ = { s 0, s 1,, s v } όπου s 0 κενό τετράγωνο όπου r, v σταθερές και time M (n) p(n). Θα δείξουμε ότι Π SAT.
Το θεώρημα του Cook Απόδειξη (συνέχεια) Μεταβλητές: Q(i,k), 0 i p(n), 0 k r: τη χρον. στιγμή i, η Μ είναι στην κατάσταση q k H(i,j), 0 i p(n), -p(n) j p(n): τη χρον. στιγμή i, η κεφαλή της Μ είναι στο τετράγωνο j S(i,j,k), 0 i p(n), -p(n) j p(n), 0 k v: τη χρον. στιγμή i, το τετράγωνο j καταχωρεί το σύμβολο s k
Το θεώρημα του Cook Απόδειξη (συνέχεια) Clauses: 1. Σε οποιαδήποτε στιγμή i (0 i p(n)), η Μ βρίσκεται σε ακριβώς 1 κατάσταση: Q(i,0) Q(i,1) Q(i,r) {σε κάποια} not(q(i,j)) not(q(i,j )) {όχι σε 2: Q(i,j) not(q(i,j ))} 2. Όμοια για H(i,j) 3. Όμοια για S(i,j,k)
Το θεώρημα του Cook Απόδειξη (συνέχεια) Clauses (συνέχεια): 4. Χρονική στιγμή 0: Q(0,0) {αρχικά, στην κατάσταση q 0 } H(0,0) {αρχικά, η κεφαλή στο τετράγωνο 0} S(0,0,k 1 ) T(0,1,k 2 ) T(0,n-1,k n ) {είσοδος w} {όπου w = s k1 s k2 s kn } S(0,j,0) -p(n) j < 0 και n j p(n) {όλα τα υπόλοιπα τετράγωνα κενά}
Το θεώρημα του Cook Απόδειξη (συνέχεια) Clauses (συνέχεια): 5. Αποδοχή: Q(p(n),1) {τελικά, στην κατάσταση q 1 }
Το θεώρημα του Cook Απόδειξη (συνέχεια) Clauses (συνέχεια): 6. Μεταβάσεις: μετάβαση (q k,s t ) (q k,s t,δ): not(q(i,k)) not(h(i,j)) not(s(i,j,t)) Q(i+1,k ) not(q(i,k)) not(h(i,j)) not(s(i,j,t)) S(i+1,j,t ) not(q(i,k)) not(h(i,j)) not(s(i,j,t)) H(i+1,j+Δ) 0 i p(n) και -p(n) j p(n). Σημείωση: για q k {q Y, q N }, με k = k, t = t, Δ = 0.
Το θεώρημα του Cook Απόδειξη (συνέχεια) Αποδεικνύεται ότι η CNF λογική έκφραση που προκύπτει ικανοποιείται ανν η μηχανή Turing Μ αποδέχεται την είσοδο w. Πρέπει επίσης να δείξουμε ότι η λογική έκφραση που προκύπτει έχει μέγεθος πολυωνυμικό στο μέγεθος n της εισόδου w.
Το θεώρημα του Cook Απόδειξη (συνέχεια) Λογική έκφραση πολυωνυμικού μέγεθος στο n. 1. (p(n)+1) [1 (r+1) + r(r+1)/2 2] Θ(p(n)) 2. (p(n)+1) [1 (2 p(n)+1) + (2 p(n)+1) p(n) 2] Θ(p 3 (n)) 3. (p(n)+1) (2 p(n)+1) [1 (v+1) + v(v+1)/2 2] Θ(p 2 (n)) 4. 1 1 + 1 1 + (2 p(n)+1) 1 Θ(p(n)) 5. 1 1 Θ(1) 6. 3 (p(n)+1) (2 p(n)+1) (πλήθος μεταβάσεων) 4 (πλήθος μεταβάσεων (r+1) 2 (v+1) 2 2) Θ(p 2 (n))
ΝΡ-πλήρη προβλήματα Εναλλακτικός (και πιο χρήσιμος) Ορισμός Ένα πρόβλημα Π 1 είναι ΝΡ-πλήρες ανν 1. Π 1 ΝΡ 2. ΝΡ-πλήρες πρόβλημα Π: Π Π 1 (το Π ανάγεται στο Π 1). Απόδειξη Αφού Π ΝΡ-πλήρες, Π ΝΡ: Π Π. Επιπλέον καθώς Π Π 1 Π ΝΡ: Π Π 1.
ΝΡ-πλήρη προβλήματα 3-SAT Δίδεται μια λογική έκφραση σε μορφή CNF με clauses με ακριβώς 3 litterals. Υπάρχει ανάθεση τιμών αλήθειας στις μεταβλητές της έκφρασης ώστε αυτή να ικανοποιείται; 3-διάστατο ταίριασμα (3DM) Δίδονται 3 σύνολα Α, Β, C με ίδιο πληθάριθμο k και σύνολο τριάδων Τ Α Β C. Υπάρχει υποσύνολο του Τ με k τριάδες έτσι ώστε σε αυτές να εμφανίζεται κάθε στοιχείο του Α Β C;
ΝΡ-πλήρη προβλήματα Κορυφές-Κάλυμμα (Vertex Cover) Δίδεται γράφημα G και ακέραιος B. Υπάρχει σύνολο V από Β κορυφές: κάθε ακμή του G έχει (τουλάχιστον) το ένα άκρο της στο V ; { Β} Κλίκα (Clique) Δίδεται γράφημα G και ακέραιος B. Υπάρχει επαγόμενη κλίκα με μέγεθος = Β; { Β} Ανεξάρτητο Σύνολο (Independent Set) Δίδεται γράφημα G και ακέραιος B. Υπάρχει ανεξάρτητο σύνολο με μέγεθος = Β; { Β}
ΝΡ-πλήρη προβλήματα Κύκλος Hamilton (Rudrata) Δίδεται γράφημα G. Υπάρχει κύκλος Hamilton στο G (δηλ., κύκλος που περνάει από κάθε κορυφή ακριβώς μία φορά); Πρόβλημα περιοδεύοντος πωλητή (TSP) Δίδεται (πλήρες) γράφημα G με βάρη στις ακμές και φράγμα Β. Υπάρχει κύκλος στο G που περνάει από κάθε κορυφή ακριβώς μία φορά με συνολικό βάρος = Β; { Β}
Εύκολα-Δύσκολα προβλήματα Δύσκολα προβλήματα (ΝΡ-πλήρη) Εύκολα προβλήματα (στο Ρ) 3SAT TSP Μεγαλύτερη Διαδρομή 3DM Ανεξάρτητο Σύνολο Ακέραιος Γραμμικός Προγραμματισμός Διαδρομή Hamilton (Rudrata) Ισορροπημένη Τομή 2SAT Ελάχιστο Συνδετικό Δένδρο Συντομότερη Διαδομή 2D Ταίριασμα Ανεξάρτητο Σύνολο σε Δένδρα Γραμμικός Προγραμματισμός Διαδρομή Euler Ελάχιστη Τομή
ΝΡ-πλήρη προβλήματα Αναγωγές SAT 3SAT 3SAT Vertex Cover Vertex Cover Ανεξάρτητο Σύνολο Κλίκα Vertex Cover κύκλος Hamilton TSP 3SAT 3DM
Προσεγγιστικοί Αλγόριθμοι Κορυφές-κάλυμμα (vertex cover) 1. Επίλεξε κορυφή γειτονική στις περισσότερες ακάλυπτες ακμές, και επανάλαβε μέχρι να καλυφθούν όλες οι ακμές. Όχι σταθερός λόγος προσέγγισης 2. Υπολόγισε ένα μέγιστο ταίριασμα Μ. Κορυφές-κάλυμμα = κορυφές στο ταίριασμα Μ. Λόγος προσέγγισης = 2