ΘΕΩΡΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΚΕΦΑΛΑΙΑ 7.4 – 7.6 NP ΠΛΗΡΟΤΗΤΑ
NP ΠΛΗΡΟΤΗΤΑ Στις αρχές της δεκαετίας του 1970 δύο ερευνητές ανακάλυψαν ορισμένα προβλήματα στην κλάση ΝΡ τα οποία έχουν την εξής ιδιαιτερότητα: H πολυπλοκότητα του καθενός απο αυτά συνδέεται με την πολυπλοκότητα ολόκληρης της κλάσης. Τέτοιου είδους προβλήματα ονομάζονται ΝΡ – πλήρη και η ύπαρξη τους είναι εξαιρετικής σημασίας, τόσο για θεωρητικούς όσο και για πρακτικούς λόγους. Για να αποδεικνύουμε ότι ένα πρόβλημα είναι NP-πλήρες, χρησιμοποιούμε την έννοια της αναγωγής πολυωνυμικού χρόνου.
ΑΝΑΓΩΓΙΜΟΤΗΤΑ ΠΟΛΥΩΝΥΜΙΚΟΥ ΧΡΟΝΟΥ Διαισθητικά, μια αναγωγή τ είναι μια συνάρτηση που μετασχηματίζει σε πολυωνυμικό χρόνο στιγμιότυπα ενός προβλήματος A σε στιγμιότυπα ενός προβλήματος B με τέτοιο τρόπο ώστε το x είναι ένα 'ναι' στιγμιότυπο του A αν και μόνο αν το τ(x) είναι ένα 'ναι' στιγμιότυπο του B.
ΑΝΑΓΩΓΙΜΟΤΗΤΑ ΠΟΛΥΩΝΥΜΙΚΟΥ ΧΡΟΝΟΥ 'Εστω ότι μας δίνεται μία πολυωνυμική αναγωγή τ από το πρόβλημα A στο πρόβλημα B. 'Εστω επίσης ότι υπάρχει πολυωνυμικός αλγόριθμος για το πρόβλημα B. Για να αποφασίσουμε αν ένα στιγμιότυπο x του A είναι ένα 'ναι' στιγμιότυπο του A, αρκεί να υπολογίσουμε το τ(x) και μετά να ελέγξουμε αν αυτό είναι ένα 'ναι' στιγμιότυπο του B. Επομένως, αν το πρόβλημα B μπορεί να επιλυθεί αποτελεσματικά, τότε το ίδιο ισχύει και για το A. Επίσης, αν το A απαιτεί εκθετικό χρόνο, τότε το ίδιο ισχύει και για το B. Συμπέρασμα: Αν έχουμε πολυωνυμική αναγωγή από το A στο B, τότε το B είναι τουλάχιστον τόσο δύσκολο όσο και το A
NP-ΠΛΗΡΗ ΠΡΟΒΛΗΜΑΤΑ Πρόβλημα της αληθευσιμότητας Συνίσταται στο να ελεγχθεί εαν ένας λογικός τύπος είναι αληθεύσιμος δηλαδή να υπάρχει ένας συνδυασμός μεταβλητών ώστε ο τύπος να παίρνει την τιμή 1. Το πρόβλημα SAT (SATisfiability = αληθευσιμότητα) είναι NP-πλήρες Το θεώρημα αυτό αποδείχθηκε απο τον S.Cook και L.Levin. Η απόδειξη του θεωρήματος ήταν η αρχή στο να δειχθεί οτι πολλά προβλήματα που απασχολούσαν την επιστήμη των υπολογιστών είναι NP-πλήρη αν αναγάγουμε σε αυτά το πρόβλημα SAT.
NP-ΠΛΗΡΗ ΠΡΟΒΛΗΜΑΤΑ Πρόβλημα 3-SAT Δίδεται μια λογική έκφραση σε μορφή CNF με clauses με ακριβώς 3 literals. Υπάρχει ανάθεση τιμών αλήθειας στις μεταβλητές της έκφρασης ώστε αυτή να ικανοποιείται; 3-διάστατο ταίριασμα (3DM) Δίδονται 3 σύνολα Α, Β, C με ίδιο πληθάριθμο k και σύνολο τριάδων Τ ⊆ Α x Β x C. Υπάρχει υποσύνολο του Τ με k τριάδες έτσι ώστε σε αυτές να εμφανίζεται κάθε στοιχείο του Α ∪ Β ∪ C;
NP-ΠΛΗΡΗ ΠΡΟΒΛΗΜΑΤΑ Κορυφές-Κάλυμμα (Vertex Cover) Δίδεται γράφημα G και ακέραιος B. Υπάρχει σύνολο V’ από Β κορυφές: κάθε ακμή του G έχει (τουλάχιστον) το ένα άκρο της στο V’; { ≤ Β} Κλίκα (Clique) Δίδεται γράφημα G και ακέραιος B. Υπάρχει επαγόμενη κλίκα με μέγεθος = Β; { ≥ Β}
NP-ΠΛΗΡΗ ΠΡΟΒΛΗΜΑΤΑ Ανεξάρτητο Σύνολο (Independent Set) Δίδεται γράφημα G και ακέραιος B. Υπάρχει ανεξάρτητο σύνολο με μέγεθος = Β; { ≥ Β} Κύκλος Hamilton (Rudrata) Δίδεται γράφημα G. Υπάρχει κύκλος Hamilton στο G (δηλ., κύκλος που περνάει από κάθε κορυφή ακριβώς μία φορά);
NP-ΠΛΗΡΗ ΠΡΟΒΛΗΜΑΤΑ Πρόβλημα περιοδεύοντος πωλητή (TSP) Δίδεται (πλήρες) γράφημα G με βάρη στις ακμές και φράγμα Β. Υπάρχει κύκλος στο G που περνάει από κάθε κορυφή ακριβώς μία φορά με συνολικό βάρος = Β; { ≥ Β}