Σχεδίαση και Ανάλυση Αλγορίθμων

Κεφάλαιο 10Βασικά Στοιχεία Πολυπλοκότητας

10.1 Εισαγωγή

Σε αυτό το κεφάλαιο θα ασχοληθούμε με τα όρια της αποδοτικότητας των αλγορίθμων. Τι σημαίνει όμως αποδοτικός αλγόριθμος (πάντοτε ως προς τη χρονική διάρκεια εκτέλεσης); Διαισθητικά θα λέμε ότι ένας αλγόριθμος είναι αποδοτικός, αν ο χρόνος εκτέλεσής του είναι λογικός σε συνάρτηση με το μέγεθος του γράφου που χειριζόμαστε. Αυτός ο ορισμός είναι βεβαιώς ανεπαρκής μιας και δεν έχουμε ορίσει τι σημαίνει ”λογικός”. Θα λέμε ότι ένας αλγοριθμος είναι αποδοτικός, αν η χρονική του πολυπλοκότητα είναι πολυωνυμική22της μορφής O(n), όπου n είναι το μέγεθος της εισόδου και μία θετική σταθερά. Στην περίπτωση των γράφων το μέγεθος της εισόδου καθορίζεται από το πλήθος των κορυφών n και των ακμών m.

Από την άλλη πλευρά, υπάρχουν προβλήματα όπως αυτό της εύρεσης ενός Hamiltonian κυκλώματος33Ένα Hamiltonian κύκλωμα σε ένα γράφημα G είναι ένας κύκλος που διέρχεται μία και μόνο μία φορά από κάθε κορυφή του γραφήματος G. που δεν έχει βρεθεί αποδοτικός αλγόριθμος μέχρι σήμερα (εν έτει 2015) παρόλη την μεγάλη προσπάθεια που έχει γίνει. Όλοι οι αλγόριθμοι για αυτό το πρόβλημα που έχουμε μέχρι τώρα δεν είναι αποδοτικοί, με την έννοια ότι ο χρόνος εκτέλεσης τους είναι εκθετικός44της μορφής O(2Ω(nϵ)), όπου n είναι το μέγεθος της εισόδου και ϵ>0 μία σταθερά. σε σχέση με το μέγεθος του γράφου εισόδου. Υπάρχουν πάρα πολλά προβλήματα που φαίνεται να μην επιδέχονται αποδοτικής λύσης. Σε αυτό το κεφάλαιο θα αναφερθούμε συνοπτικά στη θεωρία που καταπιάνεται με την ταξινόμηση αλγοριθμικών προβλημάτων με βάση τη σχετική δυσκολία τους, την Πολυπλοκότητα.

Μία από τις βασικές επιδιώξεις της θεωρίας πολυπλοκότητας είναι η ταξινόμηση των προβλημάτων σε κλάσεις πολυπλοκότητας ανάλογα με την φαινομενική δυσκολία τους. Αυτό που μας ενδιαφέρει δεν είναι μόνο η ταξινόμηση των προβλημάτων σε κλάσεις αλλά και η σχέση που υπάρχει μεταξύ διαφορετικών κλάσεων πολυπλοκότητας. Οι σχέσεις αυτές μας φανερώνουν βαθύτερες σχέσεις μεταξύ διαφορετικών μέσων υπολογισμού (π.χ. τυχαίοι αλγόριθμοι σε σχέση με αιτιοκρατικούς αλγόριθμους), ενώ αντίστοιχα προσφέρουν ένα μέτρο δυσκολίας των προβλημάτων που ανήκουν σε αυτές τις κλάσεις. Εμείς θα εστιάσουμε μόνο σε δύο κλάσεις - ίσως τις πιο γνωστές - την κλάση αιτιοκρατικού πολυωνυμικού χρόνου 𝒫 (Polynomial) και την κλάση μη αιτιοκρατικού πολυωνυμικού χρόνου 𝒩𝒫 (Non-deterministic Polynomial). Η πρώτη κλάση περιέχει όλα τα προβλήματα που μπορούν να επιλυθούν από έναν αιτιοκρατικό (deterministic) υπολογιστή σε πολυωνυμικό χρόνο. Ένα τέτοιο παράδειγμα προβλήματος είναι η εύρεση Eulerian κυκλωμάτων55Ένα γράφημα G έχει Eulerian κύκλωμα αν υπάρχει κύκλος που να διέρχεται από όλες τις ακμές μία και μόνο μία φορά. σε γραφήματα. Η δεύτερη κλάση περιέχει όλα εκείνα τα προβλήματα τα οποία μπορούν να λυθούν σε έναν μη αιτιοκρατικό (non-deterministic) υπολογιστή σε πολυωνυμικό χρόνο. Ένα τέτοιο παράδειγμα αποτελεί η εύρεση Hamiltonian κυκλωμάτων σε γραφήματα. Θα δούμε παρακάτω έναν πιο διαισθητικό ορισμό της κλάσης 𝒩𝒫.

Ένα από τα μεγαλύτερα ανοικτά προβλήματα στην Επιστήμη των Υπολογιστών και στα Μαθηματικά είναι αν 𝒫𝒩𝒫. Η πιο σημαντική προσπάθεια που έχει γίνει προς την κατεύθυνση επίλυσης αυτού του προβλήματος είναι η θεωρία 𝒩𝒫-πληρότητας και πιο γενικά η θεωρία ύπαρξης χαρακτηριστικών προβλημάτων για αρκετές κλάσεις πολυπλοκότητας. Κατ’ αυτόν τον τρόπο, για μία κλάση πολυπλοκότητας 𝒳 θα λέμε ότι ένα πρόβλημα είναι 𝒳-πλήρες αν η πολυπλοκότητά τους καθορίζει και τη θέση της 𝒳 στην ιεραρχία των κλάσεων πολυπλοκότητας.

Στη συνέχεια, θα δούμε πιο αναλυτικά τις βασικές κλάσεις πολυπλοκότητας και θα προσπαθήσουμε να αιτιολογήσουμε διαισθητικά τη σημασία τους ενώ ταυτόχρονα θα αναφερθούμε στην έννοια της πληρότητας. Πριν όμως μιλήσουμε για κλάσεις πολυπλοκότητας θα αναφερθούμε συνοπτικά σε ένα εξαιρετικό εργαλείο επίλυσης προβλημάτων, την αναγωγή.

10.2 Μετασχηματισμοί και Αναγωγές

Η θεωρία πολυπλοκότητας ασχολείται ως επί το πλείστον με συγκεκριμένο τύπο προβλημάτων. Ένα πολύ γνωστό πρόβλημα είναι το πρόβλημα του περιοδεύοντος πωλητή (Travelling Salesman Problem - TSP), το οποίο ορίζεται ως εξής:

Ορισμός 10.1.

Δοθέντος ενός πλήρους μη-κατευθυνόμενου γραφήματος G=(V,E), και ενός βάρους wij για κάθε ακμή (i,j)E, να βρεθεί το Hamiltonian κύκλωμα W στο G που να ελαχιστοποιεί το άθροισμα των βαρών πάνω στο κύκλωμα (i,j)Wwij.

Αυτό είναι ένα πρόβλημα βελτιστοποίησης, δηλαδή ένα πρόβλημα όπου μας ζητείται να βρούμε μία δομή (το Hamiltonian κύκλωμα στη συγκεκριμένη περιπτωση) που να μεγιστοποιεί (ή ελαχιστοποιεί) μία συγκεκριμένη ποσότητα (το άθροισμα των βαρών). Από την άλλη πλευρά, το πρόβλημα του Hamiltonian κυκλώματος είναι ένα πρόβλημα αναζήτησης μιας και μας ζητείται μία δομή (ένα κύκλωμα) που έχει μία συγκεκριμένη ιδιότητα (να είναι Hamiltonian). Η θεωρία πολυπλοκότητας από την άλλη ασχολείται κυρίως με προβλήματα απόφασης. Σε ένα πρόβλημα απόφασης η έξοδος της λύσης είναι δυαδική (ΝΑΙ/ΟΧΙ). Ο κυριότερος λόγος για αυτή την επιλογή είναι η απλότητα, χωρίς να σημαίνει βέβαια ότι δεν έχουν οριστεί και ερευνηθεί κλάσεις πολυπλοκότητας που να επιστρέφουν τιμή. Η μετατροπή ενός προβλήματος βελτιστοποίησης σε πρόβλημα απόφασης γίνεται εισάγοντας μία καινούργια μεταβλητή στο πρόβλημα απόφασης, που να αποτελεί άνω ή κάτω φράγμα για την ποσότητα που ελαχιστοποιείται ή μεγιστοποιειται αντίστοιχα στο πρόβλημα βελτιστοποίησης. Το πρόβλημα απόφασης του TSP ορίζεται ως εξής:

Ορισμός 10.2.

Δοθέντος ενός πλήρους μη-κατευθυνόμενου γραφήματος G=(V,E), ενός βάρους wij για κάθε ακμή (i,j)E και ενός αριθμού k, να βρεθεί αν υπάρχει Hamiltonian κύκλωμα W στο G, έτσι ώστε (i,j)Wwijk.

Προσέξτε ότι για αυτόν τον ορισμό αρκεί να σχεδιάσουμε ένα αλγόριθμο που να επιστρέφει ΝΑΙ, αν υπάρχει τέτοιο κύκλωμα αλλιώς θα επιστρέφει ΟΧΙ. Στη δεύτερη περίπτωση μπορεί να υπάρχει Hamiltonian κύκλωμα αλλά το συνολικό του βάρος να είναι μεγαλύτερο από k. Το γεγονός οτι από εδώ και στο εξής θα ασχοληθούμε με προβλήματα απόφασης αντί για τα αντίστοιχα βελτιστοποίησης δεν είναι καθόλου περιοριστικό όσον αφορά την απόδοσή τους. Πράγματι, αν έχουμε έναν αλγόριθμο για το πρόβλημα βελτιστοποίησης του TSP τότε για να λύσουμε το αντίστοιχο πρόβλημα απόφασης αρκεί να βρούμε την βέλτιστη λύση OPT και να ελέγξουμε αν ισχύει OPTk. Η άλλη κατεύθυνση είναι λίγο πιο πολύπλοκη αλλά βασίζεται στην ιδέα της δυαδικής αναζήτησης πάνω στην τιμή k. Πιο συγκεκριμένα, έστω ότι έχουμε έναν αλγόριθμο 𝒜d για το πρόβλημα απόφασης TSP. Έστω ότι C είναι το μέγιστο βάρος στις ακμές του G. Τότε εφαρμόζουμε δυαδική αναζήτηση για την τιμή k στο διάστημα [0,nC] και για κάθε τέτοια τιμή εφαρμόζουμε τον 𝒜d. Αν επιστρέψει ο 𝒜d ΝΑΙ, τότε συνεχίζουμε στο πάνω μισό του διαστήματος αναδρομικά, αλλιώς στο κάτω μισό. Αυτός ο αλγόριθμος 𝒜o θα καλέσει συνολικά Ο(lognC) φορές τον 𝒜d. Άρα, αν ο 𝒜d ήταν πολυωνυμικός αλγόριθμος τότε και ο 𝒜o θα ήταν επίσης πολυωνυμικός. Αυτή η διαδικασία, δηλαδή, δείχνει ότι η απόδοση του προβλήματος βελτιστοποίησης θα είναι αρκετά κοντά στην απόδοση του αντίστοιχου προβλήματος απόφασης. Από αυτό το σημείο και στο εξής θα αναφερόμαστε μόνο σε προβλήματα απόφασης.

Το κυριότερο εργαλείο για να αποδείξουμε ότι ένα πρόβλημα ανήκει σε μία κλάση πολυπλοκότητας είναι η αναγωγή. Η ιδέα της αναγωγής είναι εξαιρετικά απλή και αναφέρεται στην μετατροπή του στιγμιοτύπου π1 ενός προβλήματος Π1 σε ένα στιγμιότυπο π2 του προβλήματος Π2 με τέτοιο τρόπο, ώστε η λύση στο π2 να δίνει την λύση και στο π1. Εμείς θα ασχοληθούμε με αναγωγές που υλοποιούνται σε έναν αιτιοκρατικό υπολογιστή σε πολυωνυμικό χρόνο. Αν το π1 είναι ένα ΝΑΙ στιγμιότυπο του προβλήματος Π1,66Θα μπορούσαμε να γράψουμε π1Π1 αφού το Π1 είναι ένα σύνολο τέτοιων στιγμιοτύπων που έχουν τη συγκεκριμένη ιδιότητα. τότε η αναγωγή R θα δώσει ένα ΝΑΙ στιγμιότυπο π2=R(π1) του προβλήματος Π2. Αντίστοιχα, αν το π1 είναι ένα ΟΧΙ στιγμιότυπο του Π1, τότε και το π2 θα είναι ένα ΟΧΙ στιγμιότυπο του Π2. Δηλαδή, χρησιμοποιώντας σημειογραφία συνόλων θα πρέπει να δειξουμε ότι η αναγωγή R είναι πολυωνυμικού χρόνου και ότι π1Π1π2Π2.

Σε αυτή την περίπτωση θα λέμε ότι το πρόβλημα Π1 ανάγεται στο πρόβλημα Π2 και συμβολίζουμε ως Π1Π2, το οποίο σημαίνει ότι μπορεί να χρησιμοποιηθεί η λύση του Π2, ώστε να λύσουμε το Π1. Το παρακάτω λήμμα δίνει μία πρώτη γεύση για την χρησιμότητα της αναγωγής.

Λήμμα 10.1.

Αν το πρόβλημα Π2 λύνεται σε πολυωνυμικό χρόνο και το πρόβλημα Π1 ανάγεται στο Π2 σε πολυωνυμικό χρόνο, τότε και το Π1 λύνεται σε πολυωνυμικό χρόνο.

Proof.

Η απόδειξη αναφέρεται ουσιαστικά στο Σχήμα 10.1. Συγκεκριμένα, μετασχηματίζουμε την είσοδο π1 του προβλήματος Π1 σε είσοδο π2=R(π1) για το πρόβλημα Π2 σε πολυωνυμικό χρόνο μέσω της αναγωγής. Προσέξτε ότι, αφού η R εκτελείται σε πολυωνυμικό χρόνο, το μήκος του στιγμιοτύπου π2 δεν μπορεί παρά να είναι πολυωνυμικά μεγαλύτερο από το π1. Έπειτα, χρησιμοποιώντας τον πολυωνυμικό αλγόριθμο για το Π2 απαντάμε ΝΑΙ/ΟΧΙ σε πολυωνυμικό συνολικά χρόνο για το πρόβλημα Π1. ∎

Σχήμα 10.1: Ο αλγόριθμος για το πρόβλημα Π1 μέσω αναγωγής στο πρόβλημα Π2.

Με βάση αυτό το λήμμα μπορούμε να επιλύουμε προβλήματα σε πολυωνυμικό χρόνο ανάγοντάς τα σε πολυωνυμικό χρόνο σε άλλα γνωστά προβλήματα που επίσης επιλύονται σε πολυωνυμικό χρόνο. Για παράδειγμα, το πρόβλημα της μεγαλύτερης μέγιστης αντιστοίχησης σε διμερές γράφημα ανάγεται στο πρόβλημα μέγιστης ροής σε ένα απλό γράφημα.

Η έννοια της αναγωγής μπορεί να χρησιμοποιηθεί και με έναν αντίστροφο τρόπο. Προσέξτε ότι όταν ανάγουμε το πρόβλημα Π1 στο πρόβλημα Π2 χρησιμοποιούμε το Π2 σαν διαδικασία για να λύσουμε το Π1. Με αυτή την έννοια και λαμβάνοντας υπ’όψιν ότι αναφερόμαστε σε προβλήματα τουλάχιστον πολυωνυμικής πολυπλοκότητας, μπορούμε να βγάλουμε το συμπέρασμα ότι το Π2 είναι ίσης ή και μεγαλύτερης δυσκολίας από το Π1. Για παράδειγμα, το Π2 θα μπορούσε να είναι πρόβλημα που λύνεται σε εκθετικό χρόνο, ενώ το Π1 να λύνεται σε πολυωνυμκό χρόνο αλλά ποτέ το αντίστροφο, αν υπήρχε αναγωγή πολυωνυμικού χρόνου από το Π1 στο Π2.

Αναφερόμενοι στην αντιθετοαντίστροφη μορφή του Λήμματος 10.1, αν το Π1 ανάγεται σε πολυωνυμικό χρόνο στο Π2 και το Π1 είναι εκθετικού χρόνου, τότε και το Π2 θα πρέπει να είναι εκθετικού χρόνου. Ακριβώς αυτή τη μορφή της αναγωγής χρησιμοποιούμε για να δείξουμε ότι πολλά προβλήματα της Θεωρίας Γράφων είναι δύσκολα ως προς τη πολυπλοκότητά τους προβλήματα.

10.3 Kλάσεις Πολυπλοκότητας

Σε αυτό το κεφάλαιο θα αναφερθούμε σε κάποιες θεμελιώδεις κλάσεις πολυπλοκότητας που περιλαμβάνουν τις κλάσεις 𝒫, 𝒩𝒫 και την 𝒩𝒫𝒞. Αν ο αναγνώστης επιθυμεί περισσότερη πληροφορία σε σχέση με τις κλάσεις πολυπλοκότητας, μπορεί να χρησιμοποιήσει σαν αναφορές τα βιβλία [8, 143].

10.3.1 Η Κλάση 𝒫

Η κλάση 𝒫 περιλαμβάνει όλα τα προβλήματα που μπορούν να λυθούν σε πολυωνυμικό χρόνο. Στην ουσία έχουμε συνδέσει την έννοια της αποδοτικότητας με την κλάση 𝒫. Η σύνδεση αυτή βασίζεται στην παρατήρηση ότι ένας πολυωνυμικός αλγόριθμος για ένα πρόβλημα βασίζεται σε κάποια βαθύτερη ιδιότητα του προβλήματος που επιτρέπει τη γρήγορη επίλυσή του αποφεύγοντας την λύση της εξαντλητικής αναζήτησης (brute force) που για τυπικά προβλήματα είναι εκθετικής πολυπλοκότητας. Για παράδειγμα, η εύρεση ενός ελάχιστου ζευγνύοντος δένδρου γίνεται σε πολυωνυμικό χρόνο, αφού μπορεί να εφαρμοσθεί η μέθοδος της απληστίας.

Βέβαια, κάποιος μπορεί να ισχυρισθεί ότι ένας αλγόριθμος με πολυπλοκότητα O(n100) μόνο αποδοτικός δεν είναι. Αυτές οι περιπτώσεις όμως είναι σπάνιες, αν όχι ανύπαρκτες, και συνήθως όταν σχεδιάζεται ένας πολυωνυμικός αλγόριθμος για ένα πρόβλημα, τότε σχεδιάζονται διαδοχικά ολοένα και καλύτεροι αλγόριθμοι. Τέλος, η κλάση 𝒫 είναι πολύ σημαντική γιατι φαίνεται ότι αντιστοιχεί στα όρια που θέτει η φύση ως προς την απόδοση επίλυσης προβλημάτων77Αυτή η παρατήρηση αντιστοιχεί στην Θέση των Church-Turing για την πολυπλοκότητα αν και δεν είναι εντελώς σωστή με την έννοια ότι θα πρέπει να αναφερθούμε σε έναν υπολογιστή που χρησιμοποιεί τυχαιότητα ή ακόμα και σε έναν κβαντικό υπολογιστή..

10.3.2 Η Κλάση 𝒩𝒫

Η κλάση πολυπλοκότητας 𝒩𝒫 αντιστοιχεί σε όλα τα προβλήματα για τα οποία υπάρχει πολυωνυμικός ανταιτιοκρατικός (non-deterministic) αλγόριθμος. Υπάρχει όμως ένας ισοδύναμος ορισμός που είναι εξαιρετικά πιο διαισθητικός και δείχνει ακριβώς τη σημασία αυτής της κλάσης πολυπλοκότητας. Ένα πρόβλημα P ανήκει στην κλάση 𝒩𝒫 αν έχει την ιδιότητα της πολυωνυμικής επαληθευσιμότητας. Για παράδειγμα, το πρόβλημα της ύπαρξης Hamiltonian κυκλώματος (HAMiltonian Circle - HAMC) ορίζεται ως εξής:

Ορισμός 10.3.

Δοθέντος ενός μη-κατευθυνόμενου γραφήματος G=(V,E), να βρεθεί αν υπάρχει Hamiltonian κύκλωμα W στο G.

Το HAMC έχει αυτή την ιδιότητα αφού, αν μας δοθεί μία υποψήφια λύση h (ένα υποψήφιο Hamiltonian κύκλωμα), μπορούμε να ελέγξουμε σε πολυωνυμικό χρόνο ότι όντως το h είναι Hamiltonian κύκλωμα του G ελέγχοντας τους κόμβους και τις ακμές του h. Επομένως, με βάση αυτό τον ορισμό το πρόβλημα HAMC ανήκει στη κλάση 𝒩𝒫.

Πιο τυπικά, θα λέμε ότι ένα πρόβλημα Π ανήκει στη κλάση 𝒩𝒫 όταν υπάρχει αιτιοκρατικός πολυωνυμικός επαληθευτής για το Π. Ένας πολυωνυμικός επαληθευτής έχει ώς είσοδο ένα στιγμιότυπο π του Π (μπορεί να είναι ΝΑΙ/ΟΧΙ στιγμιότυπο) καθώς και ένα πιστοποιητικό c πολυωνυμικού μεγέθους που αποδεικνύει ότι το π είναι ΝΑΙ στιγμιότυπο του Π (πΠ). Συνήθως το πιστοποιητικό είναι η λύση στο πρόβλημα χωρίς όμως να σημαίνει ότι δεν υπάρχουν πολλές εξαιρέσεις. Στο παρακάτω λήμμα κατασκευάζεται ένας τέτοιος πολυωνυμικός επαληθευτής.

Λήμμα 10.2.

Το πρόβλημα TSP ανήκει στην κλάση 𝒩𝒫.

Proof.

Θα κατασκευάσουμε έναν πολυωνυμικό επαληθευτή. Αυτός ο αλγόριθμος (ο επαληθευτής δηλαδή) έχει ως είσοδο ένα γράφημα G με βάρη και έναν αριθμό k ενώ το πιστοποιητικό είναι ένα κύκλωμα h. Αρχικά, ελέγχουμε ότι το h όντως είναι ένα Hamiltonian κύκλωμα του G. Αν δεν είναι, επιστρέφουμε ΟΧΙ και τερματίζουμε αλλιώς συνεχίζουμε ελέγχοντας αν το άθροισμα των βαρών στο h είναι k. Αν δεν ισχύει, επιστρέφουμε ΟΧΙ και τερματίζουμε αλλιώς έχουμε δείξει ότι το h είναι πράγματι μία έγκυρη λύση σε σχέση με το πρόβλημα TSP στο γράφημα G και, επομένως, επιστρέφουμε ΝΑΙ. Όλα τα παραπάνω βήματα μπορούν να υλοποιηθούν σε πολυωνυμικό χρόνο σε έναν αιτιοκρατικό υπολογιστή και, άρα, το λήμμα αποδείχθηκε. ∎

Διαισθητικά λοιπόν η κλάση 𝒫 περιέχει όλα τα προβλήματα που λύνονται αποδοτικά, ενώ η κλάση 𝒩𝒫 περιέχει όλα τα προβλήματα των οποίων η λύση μπορεί να επαληθευτεί αποδοτικά. Το μεγαλύτερο πρόβλημα στην Επιστήμη των Υπολογιστών αφορά το ερώτημα αν 𝒫𝒩𝒫, αν δηλαδή η κλάση των προβλημάτων που λύνονται αποδοτικά συμπίπτει ή όχι με την κλάση των προβλημάτων των οποίων η λύση επαληθεύεται αποδοτικά. Προφανώς, 𝒫𝒩𝒫 αφού αν η λύση υπολογίζεται αποδοτικά, τότε επαληθεύεται και αποδοτικά από τον ίδιο τον αλγόριθμο που βρίσκει τη λύση.

Υπάρχουν προβλήματα που δεν ανήκουν στην κλάση 𝒩𝒫 και, άρα, δεν επαληθεύονται αποδοτικά υποψήφιες λύσεις τους. Ένα τέτοιο πρόβλημα είναι το εξής:

Ορισμός 10.4.

Δοθέντος ενός μη-κατευθυνόμενου γραφήματος G=(V,E) να βρεθεί αν δεν υπάρχει Hamiltonian κύκλωμα στο G.

Δεν έχουμε ακόμα ανακαλύψει ένα πολυωνυμικού μεγέθους πιστοποιητικό για αυτό το πρόβλημα και, άρα, υποπτευόμαστε ότι δεν ανήκει στην κλάση 𝒩𝒫. Διαισθητικά φαίνεται ότι είναι πιο εύκολο να επαληθεύσει κάποιος ύπαρξη μίας ιδιότητας σε ένα γράφο παρά ανυπαρξία της ιδιότητας από το γράφο. Όλα αυτά τα προβλήματα που κατά κάποιο τρόπο αποτελούν συμπληρωματικά της κλάσης 𝒩𝒫 σχηματίζουν την κλάση co-𝒩𝒫 για την οποία υποπτευόμαστε (αλλά δεν έχουμε αποδείξει) ότι διαφέρει από την κλάση 𝒩𝒫.

10.3.3 𝒩𝒫-πληρότητα

Σε αυτό το σημείο θα ορίσουμε την κλάση 𝒩𝒫𝒞 (𝒩𝒫-Complete) που είναι υποσύνολο της κλάσης 𝒩𝒫. Αυτή περιλαμβάνει όλα τα 𝒩𝒫-πλήρη προβλήματα που υπό μία έννοια είναι τα πιο δύσκολα της κλάσης 𝒩𝒫. Ένα πρόβλημα Π λέγεται 𝒩𝒫-πλήρες, όταν ισχύουν τα εξής:

  1. 1.

    Π𝒩𝒫

  2. 2.

    Ξ𝒩𝒫ΞΠ

Για να δείξουμε, λοιπόν, ότι ένα πρόβλημα Π είναι 𝒩𝒫-πλήρες θα πρέπει να δείξουμε ότι ανήκει στην κλάση 𝒩𝒫 κατασκευάζοντας έναν πολυωνυμικό επαληθευτή και έπειτα να δείξουμε ότι κάθε πρόβλημα στην κλάση 𝒩𝒫 ανάγεται στο Π. Το δεύτερο μέρος, όμως, είναι αρκετά πολύπλοκο και για αυτό το λόγο αν αποδείξουμε ότι ισχύει για ένα πρόβλημα, έπειτα κάνοντας αναγωγές από αυτό θα αποδεικνύουμε ότι και άλλα προβλήματα είναι 𝒩𝒫-πλήρη. Το γνωστό θεώρημα των Cook-Levin δίνει το πρώτο τέτοιο πρόβλημα που είναι 𝒩𝒫-πλήρες.

Θεώρημα 10.1.

Το πρόβλημα SAT είναι 𝒩𝒫-πλήρες.

Το πρόβλημα SAT είναι το πρόβλημα της ικανοποιησιμότητας τύπων. Ένας λογικός τύπος σε κανονική συζευκτική μορφή (CNF) αποτελείται από σύζευξη () φράσεων, όπου κάθε φράση είναι μία διάζευξη () λεξιγραμμάτων και κάθε λεξίγραμμα είναι μία μεταβλητή ή η αντίθετή της (¬). Ένα παράδειγμα είναι ο λογικός τύπος (x¬yz)(¬xw)(¬z).

Με βάση το Θεώρημα 10.1 μπορούμε εφεξής να αποδεικνύουμε ότι ένα πρόβλημα είναι 𝒩𝒫-πλήρες δείχνοντας πρώτα ότι ανήκει στην κλάση 𝒩𝒫 και έπειτα κάνοντας αναγωγή από ένα ήδη γνωστό 𝒩𝒫-πλήρες πρόβλημα. Σε αυτό το σημείο θα δείξουμε ότι το TSP είναι 𝒩𝒫-πλήρες θεωρώντας ως γνωστό ότι το πρόβλημα ύπαρξης Hamiltonian κυκλώματος HAMC είναι 𝒩𝒫-πλήρες.

Θεώρημα 10.2.

Το TSP είναι 𝒩𝒫-πλήρες.

Proof.

Από το Λήμμα 10.2 προκύπτει ότι το TSP ανήκει στην κλάση 𝒩𝒫. Με δεδομένο ότι το πρόβλημα ύπαρξης Hamiltonian κυκλώματος είναι 𝒩𝒫-πλήρες θα το ανάγουμε στο πρόβλημα του TSP. Έστω ένα στιγμιότυπο του προβλήματος HAMC που αποτελείται από το γράφημα G=(V,E). Κατασκευάζουμε νέο γράφο G=(V,E) , όπου V=V και το E περιλαμβάνει όλες τις δυνατές ακμές στο G (δηλαδή το G είναι πλήρες). Επίσης, ορίζουμε μία συνάρτηση βάρους w:E{1,2}, έτσι ώστε:

eE,w(e)={1,eE2,eE

Τέλος, θέτουμε k=|V|. Για να ολοκληρώσουμε την αναγωγή θα πρέπει να δείξουμε ότι ο G έχει Hamiltonian κύκλωμα αν και μόνο αν ο G έχει Hamiltonian κύκλωμα βάρους το πολύ k=|V|.

Έστω ότι ο G έχει Hamiltonian κύκλωμα W. Τότε και ο G έχει ως Hamiltonian κύκλωμα το W αφού έχει το ίδιο σύνολο κορυφών με τον G, ενώ ταυτόχρονα EE. Μάλιστα, αφού όλες οι ακμές του W στον G έχουν βάρος 1 σημαίνει ότι ο W έχει συνολικό βάρος στον G ίσο με k=|V| και, επομένως, αποδείχτηκε η μία κατεύθυνση.

Έστω ότι ο G έχει Hamiltonian κύκλωμα W με βάρος το πολύ k=|V|. Σε αυτή την περίπτωση, το κύκλωμα W δεν μπορεί να περιλαμβάνει καμία από τις ακμές του E που δεν ανήκουν στο E, μιας και αυτές εχουν βάρος 2 και επομένως οι |V| ακμές του W δεν μπορούν να έχουν συνολικό βάρος |V|. Επομένως, ο αρχικός γράφος G έχει ένα Hamiltonian κύκλωμα W.

Αποδείξαμε την ορθότητα της αναγωγής και το μόνο που απομένει είναι να δειξουμε ότι η πολυπλοκότητά της είναι πολυωνυμική. Πράγματι, η κατασκευή του G μπορεί να γίνει σαρώνοντας το γράφημα G και έπειτα προσθέτοντας τις ακμές που λείπουν, ενώ ταυτόχρονα ενημερώνουμε και τα βάρη τους με βάση την παραπάνω συνάρτηση. Επομένως, αφού το TSP ανήκει στην κλάση 𝒩𝒫 και το 𝒩𝒫-πλήρες πρόβλημα HAMC ανάγεται σε αυτό προκύπτει ότι και το TSP είναι 𝒩𝒫-πλήρες. ∎

Ένα πρόβλημα Π θα λέγεται 𝒩𝒫-δυσχερές (𝒩𝒫-hard), αν όλα τα προβλήματα που ανήκουν στην κλάση 𝒩𝒫 ανάγονται σε αυτό σε πολυωνυμικό χρόνο. Με αυτή την έννοια το πρόβλημα Π θα είναι είτε 𝒩𝒫-πλήρες, αν δείχναμε ότι ανήκει στην κλάση 𝒩𝒫 ή θα ήταν πιο δύσκολο πρόβλημα και θα άνηκε σε μία άλλη μεγαλύτερη κλάση.

10.3.4 Το Πρόβλημα TSP

Το γεγονός ότι ένα πρόβλημα, όπως το TSP, είναι 𝒩𝒫-δυσχερές σημαίνει ότι είναι πολύ πιθανό να μην υπάρχει πολυωνυμικός αλγόριθμος που να λύνει το συγκεκριμένο πρόβλημα για κάθε είσοδο. Σε αυτό το σημείο θα αναφερθούμε συνοπτικά σε κάποιες μεθόδους αντιμετώπισης αυτών των δύσκολων προβλημάτων βελτιστοποίησης (και όχι απλά απόφασης) - που εμφανίζονται συχνά στην πράξη: α) με προσεγγιστικές τεχνικές (approximation), όπου ο στόχος είναι να βρεθεί μία λύση που εγγυημένα είναι κοντά στην βέλτιστη λύση, β) κάνοντας χρήση τυχαιότητας (randomization), όπου πετυχαίνουμε σε μερικές περιπτώσεις καλή αναμενόμενη απόδοση, γ) με ευρετικές μεθόδους (heuristics), όπου προσπαθούμε με μεθόδους που δεν δίνουν κάποια εγγύηση να βρούμε μία σχετικά καλή λύση, δ) με μεθόδους χαλάρωσης (relaxations) που χαλαρώνουν τους περιορισμούς του προβλήματος, έτσι ώστε το νέο πρόβλημα να είναι πιο εύκολο να λυθεί αλλά ταυτόχρονα η λύση αυτή να είναι αρκετά κοντά στη λύση που ψάχνουμε, ε) με τοπική αναζήτηση (local search), όπου μέσα από μία διαδικασίας μετα-βελτιστοποίησης προσπαθούμε να βελτιώσουμε μία λύση που έχουμε ήδη επιλέξει (τυχαία ή με κάποια ευρετική μέθοδο) και στ) με πλήρης απαρίθμηση (complete enumeration), όπου προσπαθούμε να απαριθμήσουμε όλες τις λύσεις και να επιλέξουμε τη βέλτιστη χρησιμοποιώντας διάφορες τεχνικές που επιταχύνουν την όλη διαδικασία. Παρακάτω θα αναφερθούμε ονομαστικά μόνο σε κάποια γνωστά αποτελέσματα σχετικά με το TSP που αφορούν προσεγγιστικές λύσεις.

Αν στην απόδειξη του Θεωρήματος 10.2 αντί για 2 στην συνάρτηση βάρους βάλουμε την τιμή r|V|, για αυθαίρετη σταθερά r, τότε προκύπτει το εξής αποτέλεσμα:

Λήμμα 10.3.

Αν 𝒫𝒩𝒫, τότε για οποιαδήποτε σταθερά r δεν υπάρχει πολυωνυμικός αλγόριθμος που να παράγει ένα Hamiltonian κύκλωμα συνολικού βάρους μικρότερου από r φορές το βάρος του βέλτιστου Hamiltonian κυκλώματος.

Proof.

Έστω ότι 𝒫𝒩𝒫 και ότι υπάρχει πολυωνυμικός αλγόριθμος 𝒜a που προσεγγίζει το TSP κατά έναν παράγοντα r. Τότε, αν αλλάξουμε τη συνάρτηση βάρους στην απόδειξη του Θεωρήματος 10.2 σε

eE,w(e)={1,eErk,eE

μπορούμε να χρησιμοποιήσουμε τον 𝒜a, για να λύσουμε σε πολυωνυμικό χρόνο το πρόβλημα της ύπαρξης Hamiltonian κυκλώματος που με δεδομένο, όμως, ότι είναι 𝒩𝒫-πλήρες και 𝒫𝒩𝒫 αυτό είναι αδύνατο. Πράγματι, ο G είτε θα έχει Hamiltonian κύκλωμα με συνολικό βάρος k που θα αντιστοιχεί σε πραγματικό Hamiltonian κύκλωμα στο αρχικό γράφημα G ή θα έχει Hamiltonian κύκλωμα με συνολικό βάρος >rk που σημαίνει ότι χρησιμοποιείται μία τουλάχιστον ακμή που δεν υπάρχει στον G και άρα ο G δεν έχει Hamiltonian κύκλωμα. Εφαρμόζοντας τον 𝒜a στον γράφο G με τα νέα βάρη που ορίσαμε παραπάνω, αν επιστρέψει ένα μονοπάτι μήκους rk λόγω της προσέγγισης, τότε σίγουρα υπάρχει κύκλωμα με βάρος το πολύ k αφού θα υπάρχει Hamiltonian κύκλωμα και καμία από τις ακμές του δεν θα είναι μία ακμή με βάρος rk, που σημαίνει ότι αυτή η ακμή δεν υπάρχει στον αρχικό γράφο G. Αν το κύκλωμα που επιστρέφει ο 𝒜a έχει συνολικό βάρος >rk τότε αποκλείεται το εν λόγω μονοπάτι να περιέχει ακμές μόνο του G αφού αυτό θα σήμαινε ότι η προσέγγιση του 𝒜a θα ήταν χειρότερη του r που είναι άτοπο λόγω υπόθεσης. Άρα, αν 𝒫𝒩𝒫 τότε αποκλείεται να υπάρχει ο αλγόριθμος 𝒜a. ∎

Αυτό σημαίνει ότι μάλλον (θα πρέπει να ισχύει 𝒫𝒩𝒫) για το πρόβλημα TSP είναι αδύνατο να έχουμε μία καλή προσέγγιση σε αποδοτικό χρόνο. Μπορούμε όμως να έχουμε μία πολύ καλή προσέγγιση για μία παραλλαγη του TSP:

Ορισμός 10.5.

Το Ευκλείδειο TSP, ΔTSP, είναι το πρόβλημα TSP με τον περιορισμό ότι οι κόμβοι ειναι σημεία του Ευκλείδειου χώρου και τα βάρη στις ακμές είναι οι Ευκλείδειες αποστάσεις μεταξύ των σημείων.

Για το πρόβλημα ΔTSP υπάρχει αλγόριθμος που επιστρέφει ένα Hamiltonian κύκλωμα του οποίου το βάρος να είναι το πολύ 1+ϵ μεγαλύτερο από το βάρος της βέλτιστης λύσης σε χρόνο O(nlogn+npoly(ϵ))88Το poly(ϵ) είναι μία πολυωνυμική συνάρτηση του ϵ..

10.4 𝒩𝒫-πλήρη Προβλήματα

Οι Garey και Johnson στο βιβλίο τους ”Computers and Intractability: a Guide to the Theory of 𝒩𝒫-completeness” [52] (σελίδες 187-288), συγκέντρωσαν όλα τα μέχρι το 1979 γνωστά 𝒩𝒫-πλήρη προβλήματα. Τα προβλήματα αυτά ομαδοποιήθηκαν στις εξής 12 κατηγορίες:

  • Θεωρία γράφων (65)

  • Σχεδιασμός δικτύων (51)

  • Σύνολα και διαμερισμοί (21)

  • Αποθήκευση και ανάκτηση (36)

  • Σειριοποίηση και δρομολόγηση (22)

  • Μαθηματικός προγραμματισμός (13)

  • Άλγεβρα και Θεωρία αριθμών (18)

  • Παίγνια και σπαζοκεφαλιές (15)

  • Λογική (19)

  • Αυτόματα και γλώσσες (21)

  • Βελτιστοποίηση προγραμμάτων (20)

  • Διάφορα (19)

Ο αριθμός στην παρένθεση δηλώνει τον αντίστοιχο αριθμό προβλημάτων. Έτσι, το σύνολο των καταγραμμένων 𝒩𝒫-πλήρων προβλημάτων το 1979 ανέρχονταν στα 320 από πολλές περιοχές της Πληροφορικής. Ταυτόχρονα, υπήρχε και μία λίστα 12 ανοικτών προβλημάτων για τα οποία δεν είχε αποδειχθεί αν ανήκουν ή όχι στην κατηγορία των 𝒩𝒫-πλήρων προβλημάτων. Στην επανεκτύπωση του βιβλίου το 1991 υπάρχει ένα νέο σχόλιο των συγγραφέων, όπου καταγράφεται ότι έχουν επιλυθεί τα 8 από τα 12 ανοικτά προβλήματα της έκδοσης του 1979. Από αυτά τα 8 προβλήματα, για 4 αποδείχθηκε ότι ανήκουν στην κλάση 𝒫, ενώ για άλλα 4 αποδείχθηκε ότι ανήκουν στην κλάση 𝒩𝒫.

Από τότε, όμως, η θεωρία της 𝒩𝒫-πληρότητας έχει εφαρμοσθεί και σε άλλες περιοχές με αποτέλεσμα πολλά προβλήματα που δεν προκύπτουν μέσα από την Επιστήμη της Πληροφορικής να έχουν χαρακτηρισθεί ως 𝒩𝒫-πλήρη. Αναφέρουμε στη συνέχεια ενδεικτικά μερικές περιπτώσεις:

  • Βιολογία: πως διπλώνεται μία πρωτεΐνη στον 3-διάστατο χώρο

  • Θεωρία Παιγνίων: εύρεση ισορροπιών Nash που μεγιστοποιούν την ωφέλεια του συνόλου

  • Μηχανική Περιβάλλοντος: βέλτιστη τοποθέτηση αισθητήρων μόλυνσης

  • Στατιστική Φυσική: εύρεση συνάρτησης διαμέρισης για το 3-διάστατο Ising μοντέλο

  • Πολιτική Επιστήμη: Υπολογισμός του δείκτη Shapley-Shubik ισχύος σε ψηφοφορία

  • Pop κουλτούρα: υπολογισμός λύσης από μία συγκεκριμένη θέση για το παιχνίδι Ναρκαλιευτής

10.5 Βιβλιογραφική Συζήτηση

Σε αυτό το κεφάλαιο συζητήσαμε αρκετά συνοπτικά βασικά στοιχεία της πολυπλοκότητας. Γενικά, η θεωρία γράφων είναι μία πλούσια πηγή 𝒩𝒫-πλήρων προβλημάτων λόγω και της εκτεταμένης χρήσης των γράφων ως εργαλείο μοντελοποίησης προβλημάτων. Το βιβλίο των Garey και Johnson [52] παραμένει ακόμα η βασική αναφορά για την θεωρία της 𝒩𝒫-πληρότητας και τα περισσότερα προβλήματα που αναφέρονται στην Ενότητα 10.4 είναι από αυτό το βιβλίο. Από το 1979, όμως, η περιοχή έχει προχωρήσει πολύ. Στο βιβλίο του Παπαδημητρίου [143] υπάρχει μία πιο σύγχρονη αντιμετώπιση του θέματος, ενώ αναλύονται και άλλες υποπεριοχές της Πολυπλοκότητας. Για μία όμως σύγχρονη αντιμετώπιση του θέματος όπου πολλά θέματα στην Πολυπλοκότητα που έχουν αναπτυχθεί την δεκαετία (2000-2009) αναφέρονται αναλυτικά θα πρέπει κάποιος να διαβάσει το βιβλίο των Arora και Barak [8].

Για ένα από τα πιο γνωστά 𝒩𝒫-πλήρη προβλήματα, αυτό του TSP, ο ενδιαφερόμενος αναγνώστης μπορεί να βρει μία αναλυτική παρουσίαση αλγορίθμων και αποτελεσμάτων που αφορούν τη δυσκολία του προβλήματος στα βιβλία [70, 84].

10.6 Ασκήσεις

  1. 1.

    Από τη λίστα των 𝒩𝒫-πλήρων προβλημάτων της Ενότητας 10.4 να επιλεγεί ένα πρόβλημα και να αποδειχθεί ότι κάποιο άλλο από τη λίστα είναι επίσης 𝒩𝒫-πλήρες. Προσοχή, η επιλογή του ζεύγους πρέπει να γίνει με τρόπο, ώστε τα προβλήματα να έχουν κάποια συγγένεια και η αναγωγή να είναι εύκολη.

  2. 2.

    Να αποδειχθεί ότι αν ένα 𝒩𝒫-πλήρες πρόβλημα μπορεί να λυθεί σε πολυωνυμικό χρόνο, τότε 𝒫=𝒩𝒫.

  3. 3.

    Έστω ο τύπος γραφήματος όπου οι κορυφές είναι σημεία ενός πλέγματος σε ένα n-διάστατο κύβο, όπου κάθε ακμή έχει m κορυφές. Αυτό σημαίνει ότι οι κορυφές μπορούν να αναπαρασταθούν από διανύσματα (i1,i2,,in) όπου ij[1m],ij. Υπάρχει μία ακμή μεταξύ δύο κόμβων μόνο αν διαφέρουν τα διανύσματά τους σε μία διάσταση ακριβώς. Για παράδειγμα, η περίπτωση n=2 και m=2 αντιστοιχεί σε ένα τετράγωνο, ενώ η περίπτωση n=m=3 αντιστοιχεί σε κύβο. Μερικά από αυτά τα γραφήματα έχουν Hamiltonian κύκλωμα, ενώ κάποια άλλα δεν έχουν. Για παράδειγμα, το τετράγωνο και ο κύβος έχουν Hamiltonian κύκλωμα, αλλά το γράφημα για n=2 και m=3 δεν έχει.

    1. (a)

      Να αποδείχθεί ότι το γράφημα για n=2 και m=3 δεν έχει Hamiltonian κύκλωμα. Υπόδειξη: Σκεφτείτε τι γίνεται αν ένα υποθετικό Hamiltonian κύκλωμα περάσει από τον κεντρικό κόμβο. Από πού έρχεται και που μπορεί να μεταβεί χωρίς να αποκόψει κάποιο κομμάτι από το Hamiltonian κύκλωμα;

    2. (b)

      Για ποιες τιμές του n και m υπάρχει Hamiltonian κύκλωμα; Το πρόβλημα ύπαρξης Hamiltonian κυκλώματος σε αυτά τα γραφήματα παραμένει 𝒩𝒫-πλήρες;

  4. 4.

    Ένας γράφος δεν χρειάζεται να είναι εξαιρετικά μεγάλος πριν οι ερωτήσεις σχετικά με 𝒩𝒫-πλήρη προβλήματα γίνουν αρκετά δυσκολες για να λυθούν με το χέρι. Έστω το γράφημα του Σχήματος 10.2.

    1. (a)

      Έχει ο γράφος Hamiltonian κύκλωμα;

    2. (b)

      Ποιό είναι το μέγιστο ανεξάρτητο σύνολο;

    3. (c)

      Ποιό είναι το ελάχιστο σύνολο κάλυψης;

    4. (d)

      Ποιο είναι το ελάχιστο συνολο κάλυψης ακμών;

    5. (e)

      Είναι ο γράφος 2-χρωματίσιμος;

    Σχήμα 10.2: Γράφος για την Άσκηση 4.
  5. 5.

    Να αποδειχθεί ότι το πρόβλημα της διαπίστωσης, αν ένας γράφος είναι Hamiltonian, ανήκει στην κλάση 𝒩𝒫.

  6. 6.

    Να αποδειχθεί ότι το πρόβλημα της διαπίστωσης, αν ένας γράφος μπορεί να χρωματισθεί με 3 μόνο χρώματα, είναι 𝒩𝒫-πλήρες.