t M (w) T ( w ) O( n) = O(n 2 )

Σχετικά έγγραφα
L A P. w L A f(w) L B (10.1) u := f(w)

Chapter 7, 8 : Time, Space Complexity

Θεωρία Υπολογισμού και Πολυπλοκότητα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Υπολογισμού και Πολυπλοκότητα

CSC 314: Switching Theory

Λύσεις 4ης Σειράς Ασκήσεων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5

Chapter 7, 8 : Time, Space Complexity

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Δομές Δεδομένων & Αλγόριθμοι

244 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Η f είναι μία μερική συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για μηδέν ή περισσότερα στοι

Σειρά Προβλημάτων 5 Λύσεις

Πεπερασμένος έλεγχος καταστάσεων

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Σειρά Προβλημάτων 4 Λύσεις

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

Δομές Δεδομένων και Αλγόριθμοι

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Σειρά Προβλημάτων 4 Λύσεις

214 ΚΕΦΑΛΑΙΟ 7. ΕΠΙΛΥΣΙΜΟΤΗΤΑ - ΜΗ ΕΠΙΛΥΣΙΜΟΤΗΤΑ 7.1 Το Πρόβλημα του Τερματισμού Θεώρημα 7.1 (Πρόβλημα του Τερματισμού - ημιαπόφαση) Η γλώσσα του Προβ

, για κάθε n N. και P είναι αριθμήσιμα.

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Φροντιστήριο 9 Λύσεις

ILP-Feasibility conp

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Σειρά Προβλημάτων 4 Λύσεις

Αλγόριθμοι και Πολυπλοκότητα

Σειρά Προβλημάτων 5 Λύσεις

Υπολογιστική Πολυπλοκότητα

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Φροντιστήριο 8 Λύσεις

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

Φροντιστήριο 10 Λύσεις

Υπολογίσιμες Συναρτήσεις

Φροντιστήριο 8 Λύσεις

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

Υπολογιστικά & Διακριτά Μαθηματικά

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Σειρά Προβλημάτων 4 Λύσεις

Πρόβλημα 29 / σελίδα 28

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Μη Ντετερμινισμός και NP-Πληρότητα

Ελληνικό Ανοικτό Πανεπιστήµιο Σπουδές στην Πληροφορική. Φαινόµενα πολυπλοκότητας στα Μαθηµατικά και στη Φυσική: ύο όψεις του ίδιου νοµίσµατος;

Σειρά Προβλημάτων 5 Λύσεις

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

q 0 q 0.2 q 0.1 q 0.05 q 0.05 q 0.25 q 0.15 q 0.1 q 0.2 q 0.25 q 0.25 q 0.25

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη

Ενδεικτικές Ερωτήσεις Θεωρίας

Υπολογιστική Πολυπλοκότητα

Σειρά Προβλημάτων 5 Λύσεις

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

Υπολογιστικά & Διακριτά Μαθηματικά

Chapter 7, 8 : Completeness

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Πληροφορική 2. Αλγόριθμοι

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Σειρά Προβλημάτων 4 Λύσεις

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Σειρά Προβλημάτων 5 Λύσεις

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

Φροντιστήριο 11 Λύσεις

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Αλγόριθμοι για αυτόματα

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing

Transcript:

Κεφάλαιο 9 Υπολογιστική Πολυπλοκότητα Σύνοψη Πέρα από το ερώτημα του αν για ένα πρόβλημα υπάρχει Μηχανή Turing, που το επιλύει, μας απασχολεί επίσης και το ερώτημα του αν ένα πρόβλημα είναι «πρακτικά» επιλύσιμο. Το τελευταίο αυτό ερώτημα σχετίζεται με το γεγονός ότι τα προγράμματα, που σχεδιάζουμε, έχουν συγκεκριμένες απαιτήσεις σε πόρους χρόνου και χώρου. Συχνά λοιπόν βρισκόμαστε αντιμέτωποι με προβλήματα, που είναι «πρακτικά» μη επιλύσιμα, καθώς για μεγάλες εισόδους οι απαιτήσεις τους σε πόρους αυξάνονται τόσο γρήγορα, που γίνονται μη ρεαλιστικές. Γενικά θεωρούμε ότι αν οι απαιτήσεις σε πόρους αυξάνονται με ρυθμό, που είναι πολυωνυμική συνάρτηση ως προς το μέγεθος του προβλήματος, τότε το πρόβλημα είναι «πρακτικά» επιλύσιμο. Αν οι απαιτήσεις αυξάνονται με μεγαλύτερο ρυθμό, τότε μπορεί να επιλυθούν μόνο περιπτώσεις του προβλήματος με πολύ περιορισμένο μέγεθος εισόδου, ενώ στη γενική περίπτωση το πρόβλημα είναι «πρακτικά» μη επιλύσιμο. Κάποια προβλήματα είναι εύκολα. Για παράδειγμα, κάθε κανονική γλώσσα αποφασίζεται σε χρόνο, που δίνεται ως γραμμική συνάρτηση, εκτελώντας το αντίστοιχο ΝΠΑ. Κάποια άλλα προβλήματα είναι πιο δύσκολα. Ετσι, ο καλύτερος από τους γνωστούς αλγορίθμους, που αποφασίζει τη γλώσσα με τις λύσεις στο Πρόβλημα του Πλανώδιου Πωλητή 1, χρειάζεται χρόνο, που αυξάνεται εκθετικά ως προς το μέγεθος της εισόδου. Στο κεφάλαιο αυτό θα ορίσουμε 1 Δοθέντων n πόλεων και των μεταξύ τους αποστάσεων ανά δύο, να βρεθεί η συντομότερη διαδρομή που επιστρέφει στο αρχικό σημείο, αφού έχει προηγηθεί επίσκεψη σε κάθε άλλη πόλη ακριβώς μία φορά. 261

262 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ιεραρχίες κλάσεων γλωσσών με βάση το χρόνο ή το χώρο, που απαιτεί ο καλύτερος γνωστός αλγόριθμος. Προαπαιτούμενη γνώση Για την κατανόηση του κεφαλαίου θα πρέπει ο αναγνώστης να έχει αφομοιώσει τις μαθηματικές έννοιες του Παραρτήματος I, καθώς και τους ορισμούς και τα αποτελέσματα των Κεφαλαίων 6 και 7. 9.1 Υπολογιστική πολυπλοκότητα προβλημάτων Κατά την ανάλυση της υπολογιστικής πολυπλοκότητας των διαφόρων προβλημάτων, αυτά θα περιγράφονται ως γλώσσες που αποφασίζονται (βλ. Ενότητα 1.2.3). Θα περιγράψουμε την πολυπλοκότητα με συναρτήσεις, που ορίζονται μόνο για ΜΤ που αποφασίζουν. Η συγκεκριμένη ανάλυση λοιπόν περιορίζεται μόνο στις αποφασίσιμες γλώσσες, που σημαίνει ότι δεν μας ενδιαφέρει να διατυπώσουμε ισχυρισμούς σχετικά με την πολυπλοκότητα γλωσσών, όπως η H (βλ. Ενότητα 7.1) και η P CP (βλ. Ενότητα 7.4.2). Αν δεν είχαμε κάνει αυτή τη διάκριση θα μπορούσαν κάποια προβλήματα να χαρακτηρίζονταν δύσκολα ε- ξαιτίας του μεγέθους της λύσης, που όμως δε χαρακτηρίζει τους απαιτούμενους πόρους για την εύρεση της λύσης. Στην Ενότητα 1.1 αναφερθήκαμε στην έννοια της κωδικοποίησης, αλλά για την αποφασισιμότητα γλωσσών αρκούσε ο ορισμός μιας οποιασδήποτε κωδικοποίησης, χωρίς να μας ενδιαφέρει αν μία συγκεκριμένη θα μπορούσε να είναι πιο «κατάλληλη» από τις άλλες. Οι χρονικές και οι χωρικές απαιτήσεις ενός προγράμματος απόφασης περιγράφονται ως μία συνάρτηση της εισόδου του προγράμματος και κατά συνέπεια έχει σημασία το ποια κωδικοποίηση επιλέγεται, καθώς αυτή επηρεάζει το μέγεθος της εισόδου. Στα περισσότερα προβλήματα η επιλογή της «κατάλληλης» κωδικοποίησης θα είναι προφανής. Για τους φυσικούς αριθμούς θα θεωρείται κατάλληλη οποιαδήποτε κωδικοποίηση σε σύστημα αρίθμησης με βάση μεγαλύτερη ή ίση του 2. Αποδεικνύεται ότι η επιλογή της βάσης μεταβάλει το μήκος της κωδικοποίησης οποιουδήποτε αριθμού μόνο κατά ένα σταθερό παράγοντα, αλλά όπως θα δούμε παρακάτω γενικά αγνοούμε τους σταθερούς παράγοντες στις περισσότερες από τις αναλύσεις μας. Για προβλήματα γράφων θεωρούμε ως κατάλληλες δύο πιθανές κωδικοποιήσεις. Για ένα γράφο G = (V, E), με V ένα σύνολο κορυφών και E ένα σύνολο ακμών, ας υποθέσουμε ότι ονομάζουμε τις κορυφές με τους ακέραιους από το 1 έως το n. Τότε οι δύο πιθανές κωδικοποιήσεις είναι:

9.1. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΠΡΟΒΛΗΜΑΤΩΝ 263 Η αναπαράσταση του γράφου G ως μία λίστα με τις ακμές από τις οποίες αυτός ορίζεται. Κάθε κορυφή θα αναπαριστάται από τη δυαδική συμβολοσειρά, που κωδικοποιεί το όνομά της. Κάθε ακμή θα ορίζεται από ένα ζεύγις δυαδικών συμβολοσειρών, που θα ορίζουν την αρχή και το τέλος τς ακμής. Η αναπαράσταση του γράφου G από έναν πίνακα γειτνίασης. Ο πίνακας θα έχει n γραμμές και n στήλες και η τιμή στο κελί (i, j) θα είναι 1 αν στο γράφο ορίζεται ακμή από την κορυφή i στην κορυφή j, ενώ σε διαφορετική περίπτωση θα είναι 0. Αφού λοιπόν η τιμή σε κάθε κελί μπορεί να κωδικοποιηθεί από ένα μόνο δυαδικό ψηφίο, ολόκληρος ο πίνακας τελικά κωδικοποιείται από μία συμβολοσειρά μήκους n 2. Σε κάθε μία από τις παραπάνω περιπτώσεις η αναπαράσταση του γράφου G θα είναι μία πολυωνυμική συνάρτηση του αριθμού των κορυφών του. Το βασικό ερώτημα που καλούμαστε να απαντήσουμε είναι αν υπάρχει ή δεν υπάρχει αλγόριθμος, που επιλύει ένα πρόβλημα σε χρόνο, που δεν αυξάνεται περισσότερο από μία πολυωνυμική συνάρτηση ως προς το μέγεθος της εισόδου. Η απάντηση όμως σ αυτό το ερώτημα δεν αλλάζει, είτε περιγράφεται το μέγεθος του γράφου G από τον αριθμό των κορυφών του, είτε από το μήκος κάποιας από τις δύο κωδικοποιήσεις που ορίσαμε προηγουμένως. Για να μπορούμε να λέμε ότι ένα πρόγραμμα με μία συγκεκριμένη είσοδο εκτελεί p βήματα και χρησιμοποιεί m θέσεις μνήμης, θα πρέπει πρώτα να ο- ρίσουμε το τι ακριβώς προσμετράται ως βήμα εκτέλεσης ή ως θέση μνήμης. Οι απαντήσεις και για τα δύο βρίσκονται στο μοντέλο υπολογισμού που χρησιμοποιούμε, τις ΜΤ. Η μέτρηση του χρόνου θα γίνεται μέσω της καταμέτρησης των βημάτων εκτέλεσης και η μέτρηση του χώρου μέσω της καταμέτρησης των τετραγώνων της ταινίας από τα οποία έχει περάσει η κεφαλή. Βέβαια αυτό το οποίο βασικά μας ενδιαφέρει δεν είναι η υπολογιστική αποδοτικότητα των ΜΤ, αλλά αυτή των πραγματικών ηλεκτρονικών υπολογιστών. Θυμίζουμε ότι στο Θεώρημα 6.4 δείξαμε ότι ο αριθμός των βημάτων, για την προσομοίωση μιας απλής αλλά ρεαλιστικής αρχιτεκτονικής υπολογιστή σε μία ΜΤ μιας ταινίας αυξάνεται το πολύ έως τον αριθμό των βημάτων της ρεαλιστικής μηχανής εις την έκτη. Σχεδόν σε όλες τις περιπτώσεις ανάλυσης υπολογιστικής πολυπλοκότητας, στις οποίες θα αναφερθούμε τείνουμε να αγνοούμε τους πολυωνυμικούς παράγοντες και αυτό μας δίνει την ευχέρεια να περιγράφουμε τα προγράμματα με ένα πιο συμβατικό προγραμματιστικό στυλ (όπως στην Ε- νότητα 6.4) και να καταμετρούμε τον αριθμό των βημάτων εκτέλεσης με τον προφανή τρόπο. Δοθείσης μιας συγκεκριμένης ΜΤ M και μιας εισόδου w, επιθυμούμε να καθορίσουμε ακριβώς τον αριθμό βημάτων που εκτελεί η M όταν αρχίζει τον

264 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ υπολογισμό με τη συμβολοσειρά w στην ταινία. Η προσέγγιση που θα ακολουθήσουμε θα είναι αρκετά γενική, ώστε να δίνει απαντήσεις για μία οποιαδήποτε συμβολοσειρά εισόδου στην ταινία. Εστω M μία ΜΤ και έστω w μία συμβολοσειρά εισόδου της M. Ορίζουμε ως χρόνο εκτέλεσης t M (w) της M με είσοδο w ως: t M (w) := ο αριθμός των βημάτων που εκτελεί η M με είσοδο w Ως συνήθως, συμβολίζουμε με w τον αριθμό των συμβόλων της συμβολοσειράς w. Συμβολίζουμε επίσης με N 0 το σύνολο των μη αρνητικών ακεραίων. Ορισμός 9.1 (Συνάρτηση χρόνου εκτέλεσης T ) Εστω Σ ένα αλφάβητο, T : N 0 N 0 μία συνάρτηση, L Σ μία αποφασίσιμη γλώσσα και F : Σ Σ μία υπολογίσιμη συνάρτηση. Λέμε ότι μία ΜΤ M αποφασίζει τη γλώσσα L σε χρόνο T, αν t M (w) T ( w ) για όλες τις συμβολοσειρές w του Σ. Λέμε ότι μία ΜΤ M υπολογίζει τη συνάρτηση F σε χρόνο T, αν t M (w) T ( w ) για όλες τις συμβολοσειρές w του Σ. Με άλλα λόγια, η «συνάρτηση χρόνου εκτέλεσης» T είναι μία συνάρτηση ως προς το μήκος της εισόδου, που συνήθως το συμβολίζουμε με n. Για οποιοδήποτε n, η τιμή T (n) είναι ένα άνω όριο του χρόνου εκτέλεσης της ΜΤ M για οποιαδήποτε συμβολοσειρά εισόδου μήκους n. Ας αναφερθούμε στη ΜΤ του Παραδείγματος 6.1, που αποφασίζει τη γλώσσα των καρκινικών συμβολοσειρών άρτιου μήκους. Η κεφαλή αυτής της ΜΤ μετακινείται στην ταινία από τα αριστερά προς τα δεξιά, στη συνέχεια επιστρέφει πάλι στα αριστερά, μετά μετακινείται ξανά στα δεξιά κ.ο.κ. Κάθε φορά που η κεφαλή προσεγγίζει το αριστερότερο ή το δεξιότερο σύμβολο στη συνέχεια το αντικαθιστά με. Η συνάρτηση χρόνου εκτέλεσης αυτής της ΜΤ για οποιαδήποτε συμβολοσειρά μήκους n είναι O(1 + 2 + 3 +... n) = O(n 2 ) Στο ερώτημα του αν θα μπορούσαμε να υιοθετήσουμε ως μοντέλο υπολογισμού για τον ορισμό της συνάρτησης χρόνου εκτέλεσης μία ΜΤ πολλών ταινιών η απάντηση σχετίζεται με το αποτέλεσμα του Θεωρήματος 6.1: ο αριθμός των βημάτων που απαιτεί η εκτέλεση μιας ΜΤ μίας ταινίας αυξάνεται το πολύ έως το τετράγωνο του αριθμού των βημάτων, που απαιτούνται για την εκτέλεση μιας ΜΤ πολλών ταινιών.

9.2. Η ΚΛΆΣΗ ΠΟΛΥΠΛΟΚ ΟΤΗΤΑΣ P 265 9.2 Η κλάση πολυπλοκότητας P Ορισμός 9.2 (Πολυωνυμικός χρόνος εκτέλεσης) Λέμε ότι μία ΜΤ M αποφασίζει τη γλώσσα L (αντίστοιχα υπολογίζει τη συνάρτηση F ) σε πολυωνυμικό χρόνο, αν υπάρχει ένας ακέραιος k 1, τέτοιος ώστε ο χρόνος εκτέλεσης της M είναι O(n k ), για οποιαδήποτε συμβολοσειρά μήκους n. Από την Ενότητα 9.1 είναι σαφές ότι αυτή η έννοια του «πολυωνυμικού χρόνου εκτέλεσης» δεν επηρεάζεται από το αν το μοντέλο υπολογισμού στο οποίο αναφερόμαστε είναι μία ΜΤ (μιας ή πολλών ταινιών) ή μία ρεαλιστική αρχιτεκτονική ηλεκτρονικού υπολογιστή. Ετσι, αν μία γλώσσα (ή μία συνάρτηση) αποφασίζεται (αντίστοιχα υπολογίζεται) σε πολυωνυμικό χρόνο σε κάποιο α- πό τα προαναφερόμενα μοντέλα υπολογισμού, τότε αποφασίζεται (αντίστοιχα υπολογίζεται) επίσης σε πολυωνυμικό χρόνο και σε όλα τα άλλα. Είμαστε λοιπόν σε θέση να ορίσουμε τις εξής δύο κλάσεις πολυπλοκότητας: και P = {L : η γλώσσα L είναι αποφασίσιμη σε πολυωνυμικό χρόνο} F P = {F : η συνάρτηση F είναι υπολογίσιμη σε πολυωνυμικό χρόνο} Παράδειγμα 9.1 (Γλώσσες στην κλάση P ) Μία κανονική γλώσσα ανήκει στην P, επειδή μπορεί να αποφασιστεί σε χρόνο που είναι γραμμική συνάρτηση του μήκους της εισόδου. Δοθείσας μιας κανονικής γλώσσας L υπάρχει κάποιο ΝΠΑ M, που κάνει δεκτή την L. Από το M μπορούμε να κατασκευάσουμε μία ντεντερμινιστική ΜΤ M, που θα προσομοιώνει τα βήματα του M μετακινώντας την κεφαλή ανάγνωσης/εγγραφής σε κάθε βήμα ένα τετράγωνο προς τα δεξιά χωρίς να αλλάζει το περιεχόμενο της ταινίας. Οταν η M διαβάσει, τότε τερματίζει και αν εκείνη τη στιγμή βρίσκεται σε κατάσταση αποδοχής, τότε αποδέχεται τη συμβολοσειρά εισόδου, ενώ σε διαφορετική περίπτωση την απορρίπτει. Παραλείπουμε τις λεπτομέρειες της κατασκευής της M, που θα αποφασίζει την L σε χρόνο που είναι γραμμική συνάρτηση. Κάθε γλώσσα χωρίς συμφραζόμενα ανήκει στην κλάση P, αφού υπάρχουν αλγόριθμοι συντακτικής ανάλυσης, που εκτελούνται σε μία αρχιτεκτονική

266 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ υπολογιστή σε χρόνο O(n 3 ) και επομένως ΜΤ μιας ταινίας στις οποίες εκτελούνται σε χρόνο O(n 18 ). Ενας τέτοιος αλγόριθμος συντακτικής ανάλυσης με χρόνο εκτέλεσης O(n 3 ) σε συμβατικό υπολογιστή είναι ο αλγόριθμος των Cocke, Kasami και Younger. Μερικές γλώσσες που δεν είναι χωρίς συμφραζόμενα ανήκουν επίσης στην κλάση P. Ενα τέτοιο παράδειγμα είναι η γλώσσα {a n b n c n : n 0} για την οποία προτείναμε μία ΜΤ στην Ενότητα 6.1. Είναι εύκολο να δειχθεί ότι η συγκεκριμένη γλώσσα αποφασίζεται σε χρόνο O(n 2 ). Ενας γράφος είναι συνδεδεμένος αν και μόνο αν υπάρχει ένα μονοπάτι από κάθε κορυφή προς κάθε άλλη κορυφή. Ας περιοριστούμε στην περίπτωση των μη κατευθυνόμενων γράφων. Η γλώσσα L con = {< G >: G ένας μη κατευθυνόμενος γράφος και G είναι συνδεδεμένος} ανήκει στην κλάση P. Ας εξετάσουμε τον παρακάτω αλγόριθμο, που θα μπορούσαμε ασφαλώς να το γράψουμε σε μία γλώσσα προγραμματισμού υψηλού επιπέδου, ώστε να είναι εκτελέσιμος σε μία ρεαλιστική αρχιτεκτονική ηλεκτρονικού υπολογιστή σαν αυτή που περιγράψαμε στην Ενότητα 6.4. connected(< G : γράφος με κορυφές V και ακμές E >) = 1. Αρχικά ορίζουμε όλες οι κορυφές να μην έχουν σημάδι. 2. Θέσε ένα σημάδι στην κορυφή 1. 3. Η λίστα L περιέχει τις σημαδεμένες κορυφές για τις οποίες δεν έχουν εξεταστεί ακόμη οι κορυφές με τις οποίες συνδέονται. Αρχικοποιήσε την L ώστε να περιέχει μόνο την κορυφή 1. 4. Αρχικοποιήσε τον μετρητή mvc των σημαδεμένων κορυφών με την τιμή 1. 5. Μέχρι να αδειάσει η λίστα L εκτέλεσε: 5.1 Αφαίρεσε το πρώτο στοιχείο της L, που ας το ονομάσουμε cv. 5.2 Για κάθε ακμή e που συνδέει την κορυφή cv εκτέλεσε: Εστω nv η κορυφή του άλλου άκρου της e. Αν η nv δεν έχει ήδη σημαδευτεί εκτέλεσε: Σημάδεψε την nv. Πρόσθεσε την nv στην L. Αύξησε τον μετρητή mvc κατά 1.

9.2. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ P 267 6. Αν mvc = V ο γράφος G γίνεται δεκτός, αλλιώς απορρίπτεται. Ο αλγόριθμος connected σημαδεύει και καταμετρά τις κορυφές, που είναι προσεγγίσιμες από την κορυφή 1. Αφού ο γράφος G είναι μη κατευθυνόμενος, αν υπάρχει ένα μονοπάτι από την κορυφή 1 σε κάποια κορυφή n, τότε θα υπάρχει και ένα μονοπάτι από την n στην 1. Κατά συνέπεια, αν υπάρχει ένα μονοπάτι από την κορυφή 1 προς κάθε άλλη κορυφή, τότε θα υπάρχει ένα μονοπάτι από κάθε άλλη κορυφή πίσω στην κορυφή 1 και από κει προς κάθε άλλη κορυφή. Άρα ο γράφος G θα είναι συνδεδεμένος. Αν από την άλλη μεριά υπάρχει κάποια κορυφή, που δεν είναι προσεγγίσιμη από την κορυφή 1, τότε ο G δεν είναι συνδεδεμένος. Απομένει να δείξουμε ότι ο χρόνος εκτέλεσης του connected είναι μία πολυωνυμική συνάρτηση ως προς το < G > : Για το βήμα 1 ο χρόνος εκτέλεσης είναι O( V ). Για τα βήματα 2, 3 και 4 χρειάζεται σε όλες τις περιπτώσεις μία σταθερή ποσότητα χρόνου. Ο εξωτερικός βρόγχος του βήματος 5 μπορεί να εκτελεστεί το πολύ V φορές, αφού καμία κορυφή δε μπορεί να μπει στη λίστα L περισσότερες από μία φορές. Το βήμα 6 εκτελείται σε σταθερή ποσότητα χρόνου. Το βήμα 5.1 εκτελείται σε σταθερή ποσότητα χρόνου. Ο βρόγχος στο βήμα 5.2 μπορεί να εκτελεστεί το πολύ E φορές και για κάθε φορά απαιτείται το πολύ O( V ) χρόνος (εξαρτάται από το πώς γίνεται η αναπαράσταση και το σημάδεμα των κορυφών). Ο συνολικός χρόνος που απαιτείται για την εκτέλεση του αλγορίθμου connected είναι V O( E ) O( V ) = O( V 2 E ). Παρατηρούμε όμως ότι E V 2 και έτσι ο συνολικός χρόνος που απαιτείται για την εκτέλεση του αλγορίθμου είναι O( V 4 ). Παράδειγμα 9.2 (Συναρτήσεις στην κλάση F P ) Οι παρακάτω συναρτήσεις ανήκουν στην κλάση F P : F 1 : N 0 N 0, F 1 (x) := x + 1,

268 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ F 2 : N 2 0 N 0, F 2 (x, y) := x + y, F 2 : N 2 0 N 0, F 3 (x, y) := xy. 9.3 Η κλάση πολυπλοκότητας N P Πριν δώσουμε τον ορισμό της κλάσης πολυπλοκότητας N P, ας εξετάσουμε κάποιες χαρακτηριστικές περιπτώσεις προβλημάτων. Παράδειγμα 9.3 (Κύκλος Hamilton σε γράφο) Εστω ότι G είναι ένας γράφος με σύνολο κορυφών το V = {1, 2,..., m} και σύνολο ακμών E. Ενας κύκλος Hamilton είναι ένας κύκλος στο γράφο G, που διέρχεται από κάθε κορυφή ακριβώς μία φορά. Τυπικά ορίζεται ως μία ακολουθία κορυφών v 1, v 2,..., v m τέτοια ώστε: 1. {v 1, v 2,..., v m } = V και 2. {(v 1, v 2 ), (v 2, v 3 ),..., (v m 1, v m ), (v m, v 1 )} E Ορίζουμε λοιπόν τη γλώσσα: L HC = {< G >: ο γράφος G περιέχει ένα κύκλο Hamilton } Δεν είναι γνωστό αν η γλώσσα L HC ανήκει στην κλάση P ή όχι. Παράδειγμα 9.4 ( Άθροισμα υποσυνόλου) Η γλώσσα του αθροίσματος υποσυνόλου ορίζεται ως εξής: L SOS = {< a 1, a 2,..., a m, b >: m, a 1, a 2,..., a m, b N 0 και I {1, 2,..., m}, i I a i = b} Γι αυτή την περίπτωση γλώσσας επίσης, δεν υπάρχει γνωστός αλγόριθμος πολυωνυμικού χρόνου, δηλαδή δεν είναι γνωστό αν η γλώσσα L SOS ανήκει στην κλάση P.

9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 269 Παράδειγμα 9.5 (Μη πρώτοι αριθμοί) Ενας ακέραιος x 2 είναι πρώτος, αν δεν υπάρχουν a, b N τέτοια ώστε a x, b x και x = ab. Επομένως, η γλώσσα όλων των μη πρώτων, που είναι μεγαλύτεροι ή ίσοι του δύο είναι: L NP rim = {< x >: x 2 και ο x δεν είναι ένας πρώτος αριθμός} Δεν είναι καθόλου προφανές αν η γλώσσα L NP rim ανήκει στην κλάση P. Στην πραγματικότητα, μόλις το 2002 κατορθώθηκε να δειχθεί ότι η L NP rim ανήκει στην P. Το κοινό χαρακτηριστικό των τριών γλωσσών, που περιγράψαμε στα παραδείγματα 9.3, 9.4 και 9.6 είναι ότι αν έχουμε μία «λύση» για οποιαδήποτε δοθείσα είσοδο, τότε μπορούμε σε πολυωνυμικό χρόνο να επαληθεύσουμε αν αυτή η «λύση» είναι ή δεν είναι μία ορθή λύση. Επιπλέον, για οποιαδήποτε είσοδο σε καθένα από τα τρία προβλήματα, υπάρχει μία «λύση», που το μήκος της δίνεται ως πολυωνυμική συνάρτηση του μήκους της εισόδου. Για το πρόβλημα του κύκλου Hamilton, οποιαδήποτε λύση δίνεται ως μία ακολουθία κορυφών v 1, v 2,..., v m. Αυτή η ακολουθία είναι ορθή αν και μόνο αν: 1. {v 1, v 2,..., v m } = {1, 2,..., m} και 2. {(v 1, v 2 ), (v 2, v 3 ),..., (v m 1, v m ), (v m, v 1 )} E Αυτές οι δύο συνθήκες μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο. Ε- πιπλέον, το μήκος της λύσης δίνεται ως πολυωνυμική συνάρτηση του μήκους του γράφου της εισόδου. Ας δούμε τώρα το πρόβλημα του αθροίσματος υποσυνόλου. Μία οποιαδήποτε λύση δίνεται ως μία ακολουθία c 1, c 2,..., c m. Μία τέτοια λύση θα είναι ορθή αν και μόνο αν: 1. c i {0, 1} για όλα τα i με 1 i m και 2. m i=1 c ia i = b. Επομένως, το σύνολο I {1, 2,..., m} στον ορισμό της L SOS είναι το σύνολο των δεικτών i για τους οποίους c i = 1. Σ αυτή την περίπτωση επίσης οι δύο προαναφερόμενες συνθήκες μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο και το μήκος της λύσης είναι πολυωνυμική συνάρτηση του μήκους της εισόδου. Τέλος, ας εξετάσουμε τη γλώσσα L NP rim. Εστω x 2 ένας ακέραιος. Οι ακέραιοι a και b σχηματίζουν μία «λύση» για το x αν και μόνο αν:

270 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. 2 a < x, 2. 2 b < x και 3. x = ab Είναι ξεκάθαρο ότι οι τρεις αυτές συνθήκες μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο. Επιπλέον, το μήκος αυτής της λύσης, δηλαδή ο συνολικός αριθμός των bits στη δυαδική αναπαράσταση των a και b είναι πολυωνυμική συνάρτηση του αριθμού των bits στη δυαδική αναπαράσταση του x. Οι γλώσσες, που έχουν την ιδιότητα ότι η ορθότητα μιας προτεινόμενης «λύσης» μπορεί να επαληθευτεί σε πολυωνυμικό χρόνο, ανήκουν στην κλάση πολυπλοκότητας N P : Ορισμός 9.3 (Κλάση πολυπλοκότητας N P ) Μία γλώσσα L ανήκει στην κλάση NP, αν υπάρχει ένα πολυώνυμο p και μία γλώσσα N P τέτοια ώστε για κάθε συμβολοσειρά w, w L s : s p( w ) και < w, s > N Δηλαδή, μία γλώσσα L ανήκει στην κλάση NP, αν για κάθε συμβολοσειρά w, w N αν και μόνο αν ικανοποιούνται οι εξής δύο συνθήκες: 1. Υπάρχει μία «λύση» s, που το μήκος της s είναι πολυωνυμική συνάρτηση του μήκους της w (αυτό γράφεται ως s p( w ), όπου p είναι ένα πολυώνυμο). 2. Μπορούμε να επαληθεύσουμε σε πολυωνυμικό χρόνο αν η s είναι μία ορθή «λύση» για την w (αυτό γράφεται ως < w, s > N και N P ). Επομένως, η γλώσσα N μπορεί να θεωρηθεί ότι είναι η «γλώσσα επαλήθευσης»: N = {< w, s >: η s είναι μία ορθή «λύση» για την w} Εχουμε ήδη δώσει άτυπες αποδείξεις για το γεγονός ότι οι γλώσσες L HC, L SOS, L NP rim ανήκουν όλες στην κλάση NP. Στη συνέχεια θα δώσουμε μία τυπική απόδειξη για το ότι L NP rim NP. Για να αποδειχθεί αυτός ο ισχυρισμός θα πρέπει να ορίσουμε ένα πολυώνυμο p και τη γλώσσα N P. Αρχικά παρατηρούμε ότι: L NP rim = {< x >: υπάρχουν a και b στο N τέτοια ώστε

9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 271 2 a < x, 2 b < x και x = ab} (9.1) Ορίζουμε το πολυώνυμο p ως p(n) := n + 2 και τη γλώσσα N ως N = {< x, a, b >: x 2, 2 a < x, 2 b < x και x = ab} Είναι προφανές ότι N P : για κάθε τρεις θετικούς ακέραιους μπορούμε να επαληθεύσουμε σε πολυωνυμικό χρόνο αν < x, a, b > N ή όχι. Για να γίνει αυτό, πρέπει μόνο να ελεγχθεί αν ισχύουν οι σχέσεις x 2, 2 a < x, 2 b < x και x = ab ή όχι. Αν ισχύουν ταυτόχρονα οι τέσσερις αυτές συνθήκες, τότε < x, a, b > N. Αν τουλάχιστο μία απ αυτές δεν ικανοποιείται, τότε < x, a, b >/ N. Απομένει τώρα να δείξουμε ότι για όλα τα x N: < x > L NP rim a, b : < a, b > < x > + 2 και < x, a, b > N (9.2) όπου < x > συμβολίζει τον αριθμό των bits στη δυαδική αναπαράσταση του x και < a, b > = < a > + < b >. Εστω ότι x L NP rim. Από την (9.1) προκύπτει ότι υπάρχουν a και b στο N, τέτοια ώστε 2 a < x, 2 b < x και x = ab. Αφού x = ab 2 2 = 4 2, προκύπτει ότι < x, a, b > N. Απομένει να δείξουμε ότι: < a, b > < x > + 2 Η δυαδική αναπαράσταση του x περιέχει log x + 1 bits, δηλαδή < x > = log x + 1. Κατά συνέπεια έχουμε: < a, b > = < a > + < b > = ( log a + 1) + ( log b + 1) log a + log b + 2 = log ab + 2 = log x + 2 log x + 3 = < x > + 2 Ετσι, έχει αποδειχθεί η μία κατεύθυνση της (9.2). Για να αποδείξουμε την άλλη κατεύθυνση, υποθέτουμε ότι υπάρχουν θετικοί ακέραιοι a και b τέτοιοι ώστε < a, b > < x > + 2 και < x, a, b > N. Τότε, προκύπτει άμεσα από την (9.1) και από τον ορισμό της γλώσσας N ότι

272 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ x L NP rim και έτσι έχει αποδειχθεί και η άλλη κατεύθυνση της (9.2). Μ αυτό το αποτέλεσμα ολοκληρώνεται η απόδειξη του ισχυρισμού ότι L NP rim NP Παράδειγμα 9.6 (Ικανοποιησιμότητα λογικού τύπου με 3 το πολύ ατομικές προτάσεις - 3SAT ) Στο παράδειγμα αυτό αναφερόμαστε σε Boolean λογικούς τύπους φ με μεταβλητές x 1, x 2,..., x m, που είναι της μορφής: όπου κάθε C i, 1 i k είναι της μορφής φ = C 1 C 2... C k (9.3) C i = l i 1 li 2 li 3 Κάθε la i μπορεί να είναι μία μεταβλητή ή η άρνηση μιας μεταβλητής. Ενα παράδειγμα τέτοιου τύπου είναι το εξής: φ = (x 1 x 1 x 2 ) (x 3 x 2 x 4 ) ( x 1 x 3 x 4 ) Ενας τύπος φ της μορφής (9.3) λέμε ότι είναι ικανοποιήσιμος, αν υπάρχει μία τιμή αληθείας στο {0, 1} για κάθε μία από τις μεταβλητές x 1, x 2,..., x m, τέτοια ώστε ο τύπος φ να είναι αληθής. Σε ότι αφορά τον τύπο του παραδείγματος, αυτός είναι ικανοποιήσιμος: αν θεωρήσουμε x 1 = 0 και x 2 = 1 και δώσουμε στις x 3 και x 4 μία οποιαδήποτε τιμή, τότε φ = (0 1 0) (x 3 1 x 4 ) (1 x 3 x 4 ) = 1 Ορίζουμε την παρακάτω γλώσσα: L 3SAT = {< φ >: ο φ είναι της μορφής (9.3) και είναι ικανοποιήσιμος} Μπορεί να αποδειχθεί ότι L 3SAT NP Διαισθητικά, είναι ξεκάθαρο ότι P NP, επειδή μία γλώσσα: ανήκει στην P, αν για κάθε συμβολοσειρά w είναι δυνατό να υπολογιστεί μία «λύση» s σε πολυωνυμικό χρόνο,

9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 273 ανήκει στην NP, αν για κάθε συμβολοσειρά w και για οποιαδήποτε δοθείσα «λύση» s, μπορεί να επαληθευτεί σε πολυωνυμικό χρόνο αν η s είναι μία ορθή λύση ή όχι για τη w. Στη δεύτερη περίπτωση δε χρειάζεται να υπολογιστεί η λύση s, αλλά μόνο να επαληθευτεί. Θεώρημα 9.1 (Κλάσεις πολυπλοκότητας P και N P ) Ισχύει ότι P NP Απόδειξη: Εστω μία γλώσσα L P. Θα αποδείξουμε ότι L NP. Ο- ρίζουμε το πολυώνυμο p ως p(n) := 0 για όλα τα n N 0 και τη γλώσσα N = {< w, ɛ >: w L} Αφού L P, η γλώσσα N ανήκει επίσης στην κλάση P. Εύκολα διαπιστώνουμε ότι w L s : s p( w ) = 0 και < w, s > N Ετσι ολοκληρώνεται η απόδειξη. Ας επιστρέψουμε τώρα στο πρόβλημα του αθροίσματος υποσυνόλου (Παράδειγμα 9.4), που είναι εύκολο να επαληθευτεί, αλλά δύσκολο να υπολογιστεί μια λύση. Δοθέντος ενός συνόλου ακεραίων, υπάρχει ένα μη κενό υποσύνολο αυτών που άθροισμα σε 0; Για παράδειγμα, υπάρχει ένα υποσύνολο του συνόλου { 2, 3, 15, 14, 7, 10} που το άθροισμα των στοιχείων του είναι 0; Η απάντηση είναι καταφατική, επειδή εύκολα επαληθεύεται με τρεις προσθέσεις ότι τα στοιχεία του υποσυνόλου { 2, 3, 10, 15} αθροίζουν σε 0. Δε γνωρίζουμε αν υπάρχει αλγόριθμος, που να βρίσκει ένα τέτοιο υποσύνολο σε πολυωνυμικό χρόνο, αλλά αν ισχύει ότι P = NP, τότε θα ξέραμε ότι υπάρχει ένας τέτοιος αλγόριθμος. Επομένως, αυτό το πρόβλημα ανήκει στην κλάση N P (εύκολα επαληθεύσιμο), αλλά όχι απαραίτητα στην κλάση P (εύκολα επιλύσιμο). Μία απάντηση στο ερώτημα αν ισχύει ότι P = NP θα μας διαφώτιζε στο αν τα προβλήματα που μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο, όπως το πρόβλημα του αθροίσματος υποσυνόλου, μπορούν επίσης και να επιλυθούν σε πολυωνυμικό χρόνο. Αν τελικά προέκυπτε ότι P NP, αυτό θα σήμαινε ότι υπάρχουν προβλήματα στην κλάση NP που είναι πιο δύσκολο να υπολογιστεί η λύση τους, από το να επαληθευτεί: δε θα μπορούσαν να επιλυθούν σε

274 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ πολυωνυμικό χρόνο, αλλά η λύση θα μπορούσε να επαληθευτεί σε πολυωνυμικό χρόνο. Ο ακριβής ορισμός του προβλήματος της σχέσης μεταξύ των κλάσεων P και NP δόθηκε το 1971 από τον Stephen Cook [1] και το πρόβλημα θεωρείται σήμερα από πολλούς ως το πιο σημαντικό ανοικτό πρόβλημα στο χώρο [2]. Είναι ένα από τα επτά προβλήματα για το Millennium Prize, που επιλέχθηκαν από το Clay Mathematics Institute για το οποίο η πρώτη ορθή λύση αποφέρει βραβείο αξίας 1.000.000 δολαρίων. Οι περισσότεροι επιστήμονες πιστεύουν ότι πράγματι η κλάση P είναι ένα γνήσιο υποσύνολο της NP. Μία απόδειξη όμως, πέρα από τη σημαντικότητα της για τη Θεωρία Υπολογισμού, θα είχε προφανείς επιπτώσεις στα μαθηματικά, στην κρυπτογραφία, στην αλγοριθμκή, στην τεχνητή νοημοσύνη, στη θεωρία παιγνίων, στην επεξεργασία πολυμέσων, στη φιλοσοφία, στην οικονομική επιστήμη και σε πολλούς άλλους χώρους. Εστω τώρα L μία γλώσσα στην NP. Θα υπάρχει τότε ένα πολυώνυμο p και μία γλώσσα N P, τέτοια ώστε για όλες τις συμβολοσειρές w, w L s : s p( w ) και < w, s > N (9.4) Πώς αποφασίζεται αν μία οποιαδήποτε δοθείσα συμβολοσειρά w ανήκει στη γλώσσα L; Αν μπορούμε να βρούμε μία συμβολοσειρά s, που ικανοποιεί το δεξί μέρος της (9.4), τότε γνωρίζουμε ότι w L. Αν από την άλλη μεριά, δεν υπάρχει μία τέτοια συμβολοσειρά s, τότε w / L. Πόσος χρόνος χρειάζεται για να αποφασιστεί αν υπάρχει μία τέτοια συμβολοσειρά s ή όχι; Για παράδειγμα, έστω ότι όπου L αναφερόμαστε στη γλώσσα L NP rim και έστω x N. Ο παρακάτω αλγόριθμος αποφασίζει αν < x > L NP rim ή όχι. NonP rime(< x >: x N) = 1. Αν x = 0 ή x = 1 ή x = 2 τότε ο x απορρίπτεται 2. διαφορετικά: 2.1 a := 2 2.2 Οσο a < x εκτέλεσε 2.2.1 Αν x mod a = 0 τότε ο x γίνεται δεκτός 2.2.2 διαφορετικά a := a + 1 3. Ο x απορρίπτεται. Είναι σαφές ότι ο αλγόριθμος NonP rime είναι σωστός. Εστω n το μήκος της δυαδικής αναπαράστασης του x, δηλαδή n = log x + 1. Αν x > 2 και ο x είναι ένας πρώτος αριθμός, τότε στον επαναληπτικό βρόγχο του βήματος 2.2 θα

9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 275 έχουμε συνολικά x 2 επαναλήψεις. Γι αυτό, αφού n 1 = log x log x, ο χρόνος εκτέλεσης αυτού του αλγορίθμου είναι τουλάχιστο x 2 2 n 1 2 δηλαδή είναι τουλάχιστο μία εκθετική συνάρτηση του μήκους της εισόδου. Θεώρημα 9.2 (Κλάσεις πολυπλοκότητας N P και EXP ) Ορίζουμε την κλάση πολυπλοκότητας EXP ως EXP = {L :υπάρχει ένα πολυώνυμο p, τέτοιο ώστε η L να μπορεί να Αποδεικνύεται ότι αποφασιστεί σε χρόνο 2 p(n) } NP EXP Απόδειξη: Εστω L μία οποιαδήποτε γλώσσα στην NP. Εστω p ένα πολυώνυμο και N P μία γλώσσα, τέτοια ώστε για όλες τις συμβολοσειρές w, w L s : s p( w ) και < w, s > N (9.5) Ο παρακάτω αλγόριθμος αποφασίζει, για οποιαδήποτε δοθείσα είσοδο w αν w L ή όχι. Αυτό γίνεται εξετάζοντας όλες τις πιθανές συμβολοσειρές s για τις οποίες s p( w ): Για όλα τα s με s p( w ): αν < w, s > N, τότε η w αποδεκτή Η w απορρίπτεται. Η ορθότητα του αλγορίθμου είναι συνέπεια της (9.5). Για να βρούμε το χρόνο εκτέλεσής του υποθέτουμε ότι οι w και s αναπαριστώνται από δυαδικές συμβολοσειρές. Εστω ότι το μήκος της εισόδου είναι n, δηλαδή n = w. Μας ενδιαφέρει να βρούμε πόσες δυαδικές συμβολοσειρές s υπάρχουν με μήκος το πολύ p( w ). Κάθε τέτοια s μπορεί να περιγραφεί από μία ακολουθία μήκους p( w ) = p(n) αποτελούμενη από 0, 1 και το σύμβολο του κενού. Επομένως, υπάρχουν το πολύ 3 p(n) δυαδικές συμβολοσειρές s με s p(n) και γι αυτό ο επαναληπτικός βρόγχος του αλγορίθμου εκτελείται το πολύ 3 p(n) φορές.

276 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αφού N P, υπάρχει ένας αλγόριθμος και ένα πολυώνυμο q, τέτοιο ώστε αυτός ο αλγόριθμος, όταν εκτελείται για τη συμβολοσειρά εισόδου z να αποφασίζει σε χρόνο q( z ) αν z N ή όχι. Αυτή η είσοδος z έχει τη μορφή < w, s > και έτσι έχουμε: z = w + s w + p( w ) = n + p(n) Προκύπτει λοιπόν ότι ο συνολικός χρόνος εκτέλεσης του αλγόριθμου που α- ποφασίζει αν w L φράσσεται άνω από την έκφραση: 3 p(n) q(n + p(n)) 2 2p(n) q(n + p(n)) 2 2p(n) 2 q(n+p(n)) = 2 p (n) όπου p είναι το πολυώνυμο, που ορίζεται ως p = 2p(n) + q(n + p(n)). Ετσι ολοκληρώνεται η απόδειξη του θεωρήματος. Σήμερα δεν είναι ακόμη γνωστό αν η κλάση NP είναι γνήσιο υποσύνολο της EXP. Από τις P NP και NP EXP προκύπτει ότι P EXP. Εχει αποδειχθεί ότι η κλάση P είναι ένα γνήσιο υποσύνολο της EXP, δηλαδή υ- πάρχουν γλώσσες που μπορούν να αποφασιστούν σε εκθετικό χρόνο, αλλά δεν είναι δυνατό να αποφασιστούν σε πολυωνυμικό χρόνο. Η συντόμευση N P αναφέρεται σε χρόνο εκτέλεσης που είναι μη ντεντερμινιστικά πολυωνυμικός (Non-deterministic Polynomial). Μέχρι στιγμής αναφερθήκαμε μόνο σε ντεντερμινιστικούς αλγορίθμους, που σημαίνει ότι οποιαδήποτε στιγμή κατά τον υπολογισμό το επόμενο βήμα καθορίζεται με μοναδικό τρόπο. Στην Ενότητα 1.6 είδαμε ότι σε ένα μη ντεντερμινιστικό αλγόριθμο υπάρχουν περισσότερες από μία δυνατότητες για το επόμενο βήμα στον υπολογισμό και ο αλγόριθμος επιλέγει κάθε φορά μία απ αυτές. Για να δώσουμε ένα παράδειγμα, ας εξετάσουμε τη γλώσσα L SOS του Παραδείγματος 9.4. Εστω ότι τα m, a 1, a 2,..., a m και b είναι στοιχεία του N 0. Τότε, < a 1, a 2,..., a m, b > L SOS υπάρχουν c 1, c 2,..., c m {0, 1} m τέτοια ώστε c i a i = b Ο παρακάτω μη ντεντερμινιστικός αλγόριθμος αποφασίζει τη γλώσσα L SOS : SOS(m, a 1, a 2,..., a m, b) = i=1

9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 277 1. s := 0 2. Για i := 1 έως m εκτέλεσε: 2.1 s := s s := s + a i 3. Αν s = b τότε η είσοδος είναι αποδεκτή 4. διαφορετικά απορρίπτεται. Η γραμμή s := s s := s + a i σημαίνει ότι είτε εκτελείται η εντολή s := s είτε η s := s + a i. Ας υποθέσουμε ότι < a 1, a 2,..., a m, b > L SOS. Τότε υπάρχουν c 1, c 2,..., c m {0, 1} τέτοια ώστε m i=1 c ia i = b. Ας υποθέσουμε ότι ο αλγόριθμός μας κάνει το παρακάτω για κάθε i με 1 i m: Στην i επανάληψη, αν c i = 0, τότε εκτελείται η εντολή s := s, αν c i = 1, τότε εκτελείται η εντολή s := s + a i. Τότε, μετά από τον επαναλητπικό βρόγχο έχουμε s = b και ο αλγόριθμος αποδέχεται την είσοδο, επομένως ο αλγόριθμος ορθά βρίσκει ότι < a 1, a 2,..., a m, b > L SOS. Με άλλα λόγια, σ αυτή την περίπτωση, υπάρχει τουλάχιστο ένας υπολογισμός αποδοχής. Από την άλλη μεριά, αν < a 1, a 2,..., a m, b >/ L SOS, τότε ο αλγόριθμος πάντα απορρίπτει την είσοδο ανεξάρτητα από το ποια από τις δύο εντολές εκτελείται σε κάθε επανάληψη του βρόγχου. Σ αυτή την περίπτωση, δεν υπάρχει υπολογισμός αποδοχής. Ορισμός 9.4 (Μη ντεντερμινιστική απόφαση σε χρόνο T ) Λέμε ότι ένας μη ντεντερμινιστικός αλγόριθμος M αποφασίζει μία γλώσσα L σε χρόνο T, αν για κάθε συμβολοσειρά w ισχύει το εξής: w L αν και μόνο αν υπάρχει τουλάχιστον ένας υπολογισμός, που με είσοδο w αποδέχεται την είσοδο μέσα σε το πολύ T ( w ) χρόνο. Ο μη ντεντερμινιστικός αλγόριθμος, που είδαμε, αποφασίζει τη γλώσσα L SOS σε χρόνο που είναι γραμμική συνάρτηση του μήκους της εισόδου. Εστω < a 1, a 2,..., a m, b > L SOS και έστω ότι το μήκος της εισόδου είναι n. Τότε, n = < a 1 > + < a 2 > +... + < a m > + < b > m

278 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Γι αυτή την είσοδο, υπάρχει ένας υπολογισμός που κάνει δεκτή την είσοδο και παίρνει O(m) = O(n) χρόνο. Η έννοια του πολυωνυμικού χρόνου εκτέλεσης ορίζεται και στην περίπτωση των μη ντεντερμινιστικών αλγορίθμων με ανάλογο τρόπο ως προς τον Ορισμό 9.2. Το παρακάτω θεώρημα, η απόδειξη του οποίου παραλείπεται, συσχετίζει την έννοια του πολυωνυμικού χρόνου εκτέλεσης με την κλάση NP, που ορίστηκε στον Ορισμό 9.3. Θεώρημα 9.3 (Απόφαση γλώσσας N P σε πολυωνυμικό χρόνο) Μία γλώσσα L ανήκει στην κλάση πολυπλοκότητας NP αν και μόνο αν υπάρχει μία μη ντεντερμινιστική ΜΤ, που αποφασίζει την L σε πολυωνυμινό χρόνο. 9.4 Κλάσεις Χωρικής Πολυπλοκότητας Βιβλιογραφία - Αναφορές [1] Stephen A. Cook. The complexity of theorem-proving procedures. In Proceedings of the Third Annual ACM Symposium on Theory of Computing, STOC 71, pages 151 158, New York, NY, USA, 1971. ACM. doi: 10.1145/800157.805047. URL http://doi.acm.org/10.1145/800157. 805047. [2] Lance Fortnow. The status of the p versus np problem. Commun. ACM, 52(9):78 86, September 2009. ISSN 0001-0782. doi: 10.1145/1562164. 1562186. URL http://doi.acm.org/10.1145/1562164.1562186.