L A P. w L A f(w) L B (10.1) u := f(w)

Σχετικά έγγραφα
t M (w) T ( w ) O( n) = O(n 2 )

ILP-Feasibility conp

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

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

Recursive and Recursively Enumerable sets I

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

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

CSC 314: Switching Theory

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

Chapter 7, 8 : Time, Space Complexity

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

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

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

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

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

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

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

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

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

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

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

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

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

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

f(t) = (1 t)a + tb. f(n) =

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

Chapter 7, 8 : Completeness

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

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

2 n N: 0, 1,..., n A n + 1 A

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

Φ(s(n)) = s (Φ(n)). (i) Φ(1) = a.

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

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

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

Chapter 7, 8 : Time, Space Complexity

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

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

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

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

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

Επαναληπτικά θέματα στα Μαθηματικά προσανατολισμού-ψηφιακό σχολείο ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ

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

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

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

Μη επιλυσιμότητα I. Απόδειξη. Ορίζουμε # # =

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

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

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

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

Υποθέσεις - Θεωρήματα. Μαθηματικά Πληροφορικής 1ο Μάθημα. Η χρυσή τομή. Υποθέσεις - Εικασίες

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

R ισούται με το μήκος του. ( πρβλ. την ιστορική σημείωση 3.27 στο τέλος

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

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

f x 0 για κάθε x και f 1

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

Τα όρια του Υπολογισµού και η Πολυπλοκότητα: Οι θεµελιώσεις της Επιστήµης των Υπολογιστών

0x2 = 2. = = δηλαδή η f δεν. = 2. Άρα η συνάρτηση f δεν είναι συνεχής στο [0,3]. Συνεπώς δεν. x 2. lim f (x) = lim (2x 1) = 3 και x 2 x 2

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

να είναι παραγωγίσιμη Να ισχύει ότι f Αν μια από τις τρεις παραπάνω συνθήκες δεν ισχύουν τότε δεν ισχύει και το θεώρημα Rolle.

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α.

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού

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

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

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

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

Chapter 9: NP-Complete Problems

Διαλογικά Συσ τήματα Αποδείξεων Διαλογικά Συστήματα Αποδείξεων Αντώνης Αντωνόπουλος Κρυπτογραφία & Πολυπλοκότητα 17/2/2012

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

ΣΤΑΘΕΡΗ ΣΥΝΑΡΤΗΣΗ. Το Θεώρημα και το Πόρισμα ισχύουν σε διαστήματα και όχι σε ένωση διαστημάτων.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

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

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

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

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

Pr(10 X 15) = Pr(15 X 20) = 1/2, (10.2)

Προσεγγιστικοί Αλγόριθμοι

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

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

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

Mh apofasisimèc gl ssec. A. K. Kapìrhc

αβ (, ) τέτοιος ώστε f(x

ΑΝΑΛΥΣΗ 1 ΠΕΜΠΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

P(n, r) = n! P(n, r) = n r. (n r)! n r. n+r 1 r n!

Εισαγωγή στην Επιστήμη των Υπολογιστών

Transcript:

Κεφάλαιο 10 NP -πληρότητα Σύνοψη Οι γλώσσες στην κλάση πολυπλοκότητας P μπορούν να αποφασίζονται σε πολωνυμικό χρόνο. Οι επιστήμονες πιστεύουν, αν και δε μπορούν να το αποδείξουν ότι η P είναι ένα γνήσιο υποσύνολο της NP. Αν αυτό αληθεύει, τότε υπάρχουν γλώσσες στην κλάση NP, που δεν μπορούν να αποφασιστούν σε πολυωνυμικό χρόνο. Η διαίσθησή μας λέει ότι αν P NP, τότε οι πιο «δύσκολες» γλώσσες στην κλάση N P δεν περιέχονται στην P. Αυτές οι γλώσσες ονομάζονται N P-πλήρεις. Επικεντρωνόμαστε αρχικά σε μία τεχνική ανάλυσης αντίστοιχη με τις α- ναγωγές, που χρησιμοποιήσαμε στη μελέτη της επιλυσιμότητας προβλημάτων. Στο Κεφάλαιο 7 είδαμε ότι όλες οι ημιποφασίσιμες γλώσσες ανάγονται τελικά στο Πρόβλημα του Τερματισμού (Ενότητα 7.1). Αντίστοιχα, στο κεφάλαιο αυτό δείχνουμε ότι όλα τα προβλήματα στην κλάση πολυπλοκότητας N P (αποφασίσιμα από μη ντετερμινιστική Μηχανή Turing σε πολυωνυμικό χρόνο) μετασχηματίζονται μέσω μιας τεχνικής, που ονομάζουμε αναγωγές πολυωνυμικού χρόνου, σε κάποια θεμελιώδη προβλήματα πολυπλοκότητας. Θα ορίσουμε τυπικά την N P-πληρότητα ως την ιδιότητα που έχουν κάποια προβλήματα να μετασχηματίζονται μέσω διαδοχικών αναγωγών πολυωνυμικού χρόνου σε κάποια θεμελιώδη προβλήματα πολυπλοκότητας. Προαπαιτούμενη γνώση Για την κατανόηση του κεφαλαίου θα πρέπει ο αναγνώστης να έχει αφομοιώσει τις μαθηματικές έννοιες του Παραρτήματος I, καθώς και τους ορισμούς και τα αποτελέσματα των Κεφαλαίων 6, 7 και 9. 279

280 ΚΕΦΑΛΑΙΟ 10. NP -ΠΛΗΡΟΤΗΤΑ 10.1 Αναγωγές πολυωνυμικού χρόνου Αν θέλουμε να επικεντρωθούμε και να μελετήσουμε τις «πιο δύσκολες» από τις γλώσσες της κλάσης NP, τότε θα πρέπει να είμαστε σε θέση να συγκρίνουμε δύο γλώσσες ως προς το πόσο «δύσκολες» είναι. Θα λέμε ότι η γλώσσα L B είναι «τουλάχιστο τόσο δύσκολη» όσο μία γλώσσα L A αν ισχύει το εξής: αν η L B μπορεί να αποφασιστεί σε πολυωνυμικό χρόνο, τότε η L A μπορεί επίσης να αποφασιστεί σε πολυωνυμικό χρόνο. Ορισμός 10.1 (Αναγωγή πολυωνυμικού χρόνου) Εστω δύο γλώσσες L A {0, 1} και L B {0, 1}. Λέμε ότι L A P L B, αν υπάρχει μία συνάρτηση τέτοια ώστε: 1. f F P και f : {0, 1} {0, 1} 2. για όλες τις συμβολοσειρές w στο {0, 1}, w L A f(w) L B Αν L A P L B, τότε λέμε ότι «η L B είναι τουλάχιστο τόσο δύσκολη όσο είναι η L A» ή ότι «η L A μπορεί να αναχθεί σε πολυωνυμικό χρόνο στη γλώσσα L B». Με το θεώρημα που ακολουθεί αποδεικνύουμε ότι ο τυπικός Ορισμός 10.1 ταιριάζει με τη διαισθητική ερμηνεία που μόλις αναφέρθηκε. Θεώρημα 10.1 Εστω L A και L B δύο γλώσσες τέτοιες ώστε L B P και L A P L B. Τότε L A P. Απόδειξη: την οποία Εστω f : {0, 1} {0, 1} μία συνάρτηση στην κλάση F P για w L A f(w) L B (10.1) Ο παρακάτω αλγόριθμος αποφασίζει αν οποιαδήποτε δοθείσα δυαδική συμβολοσειρά w ανήκει στην L A : u := f(w)

10.1. ΑΝΑΓΩΓΕΣ ΠΟΛΥΩΝΥΜΙΚΟΥ ΧΡΟΝΟΥ 281 Αν u L B, τότε η w αποδεκτή διαφορετικά η w απορρίπτεται. Η ορθότητα του παραπάνω αλγορίθμου είναι άμεση συνέπεια της (10.1). Ετσι απομένει να δειχθεί ότι ο χρόνος εκτέλεσης είναι πολυωνυμικός ως προς το μήκος της συμβολοσειράς εισόδου w. Αφού f F P, υπάρχει ένα πολυώνυμο p τέτοιο ώστε η συνάρτηση f να μπορεί να υπολογιστεί σε χρόνο p. Ομοίως, επειδή L B P, υπάρχει ένα πολυώνυμο q τέτοιο ώστε η γλώσσα L B να μπορεί να αποφασιστεί σε χρόνο q. Εστω ότι το μήκος της συμβολοσειράς εισόδου w είναι n, δηλαδή n = w. Τότε, το μήκος της συμβολοσειράς u είναι μικρότερο ή ίσο από p( w ) = p(n). Γι αυτό, ο χρόνος εκτέλεσης του αλγορίθμου μας φράσσεται άνω από την έκφραση: p( w ) + q( u ) p(n) + q(p(n)) Αφού λοιπόν η συνάρτηση p που ορίζεται από την p (n) = p(n) + q(p(n)) είναι ένα πολυώνυμο, μ αυτό αποδεικνύεται ότι L A P. Το παρακάτω θεώρημα λέει ότι η σχέση P είναι ανακλαστική και μεταβατική. Η απόδειξη του θεωρήματος αφήνεται ως άσκηση. Θεώρημα 10.2 (Ανακλαστικότητα και μεταβατικότητα της P ) Εστω τρεις γλώσσες L A, L B και L C. Τότε: 1. L A P L A 2. αν L A P L B και L B P L C, τότε L A P L C. Στη συνέχεια δείχνουμε ότι οι γλώσσες της κλάσης P είναι οι πιο «εύκολες» γλώσσες της NP. Θεώρημα 10.3 Εστω ότι η L A είναι μία γλώσσα της κλάσης P και έστω ότι η L B είναι μια οποιαδήποτε γλώσσα τέτοια ώστε L B και L B {0, 1}. Τότε L A P L B. Απόδειξη: Είναι δυνατό να επιλέξουμε δύο συμβολοσειρές u και v του {0, 1}, τέτοιες ώστε u L B και v / L B. Ορίζουμε τη συνάρτηση f : {0, 1} {0, 1} ως εξής: { u αν w LA f(w) = v αν w / L A

282 ΚΕΦΑΛΑΙΟ 10. NP -ΠΛΗΡΟΤΗΤΑ Τότε, είναι ξεκάθαρο ότι για οποιαδήποτε δυαδική συμβολοσειρά w, w L A f(w) L B Αφού L A P, η συνάρτηση f μπορεί να υπολογιστεί σε πολυωνυμικό χρόνο, δηλαδή f F P. Παράδειγμα 10.1 (Προβλήματα αθροίσματος υποσυνόλων και σακιδίου) Ας συγκρίνουμε τη γλώσσα, L SOS = { < a 1, a 2,..., a m, b >: m, a 1, a 2,..., a m, b N 0 και υπάρχουν c 1, c 2,..., c m {0, 1}, τέτοια ώστε c i a i = b} με τη γλώσσα, L KS = { < w 1,..., w m, k 1,..., k m, W, K >: m, w 1,..., w m, k 1,..., k m, W, K N 0 και υπάρχουν c 1, c 2,..., c m {0, 1}, τέτοια ώστε c i w i W και c i k i K} Το πρόβλημα του σακιδίου (γλώσσα L KS ) περιγράφεται ως εξής: Εχουμε m τρόφιμα. Το i-οστό τρόφιμο έχει βάρος w i και περιέχει k i θερμίδες. Θέλουμε να αποφασίσουμε αν μπορούμε να γεμίσουμε το σακίδιο μας ή όχι με ένα υποσύνολο τροφίμων, τέτοιο ώστε το συνολικό βάρος να είναι το πολύ W και η συνολική ποσότητα θερμίδων να είναι τουλάχιστο K. Θα αποδείξουμε ότι L SOS P L KS. Σύμφωνα με τον Ορισμό 10.1 χρειαζόμαστε μία συνάρτηση f F P, που αντιστοιχίζει συμβολοσειρές εισόδου για την L SOS σε συμβολοσειρές εισόδου για την L KS, με τέτοιο τρόπο που: < a 1,..., a m, b > L SOS f(< a 1,..., a m, b >) L KS Για να είναι η f(< a 1,..., a m, b >) μία συμβολοσειρά εισόδου για την L KS θα πρέπει αυτή η τιμή της συνάρτησης να έχει τη μορφή: f(< a 1,..., a m, b >) =< w 1,..., w m, k 1,..., k m, W, K >

10.2. N P -ΠΛΗΡ ΟΤΗΤΑ 283 Ορίζουμε f(< a 1,..., a m, b >) :=< a 1,..., a m, a 1,..., a m, b, b > Είναι ξεκάθαρο ότι f F P. Εχουμε: < a 1,..., a m, b > L SOS υπάρχουν c 1, c 2,..., c m {0, 1} : υπάρχουν c 1, c 2,..., c m {0, 1} : < a 1,..., a m, b, b > L KS c i a i = b c i a i b και c i a i b f(< a 1,..., a m, b >) L KS 10.2 N P -πληρότητα Οι αναγωγές πολυωνυμικού χρόνου, όπως ορίστηκαν στον Ορισμό 10.1, επιτρέπουν τη σύγκριση δύο γλωσσών ως προς τη δυσκολία τους. Μία γλώσσα L B στο NP ονομάζεται NP -πλήρης, αν η L B ανήκει στις πιο δύσκολες γλώσσες του NP, δηλαδή η L B θα πρέπει να είναι τουλάχιστο τόσο δύσκολη, όσο οποιαδήποτε άλλη γλώσσα στην κλάση NP. Ορισμός 10.2 (N P -πληρότητα) Εστω μία γλώσσα L B {0, 1}. Λέμε ότι η L B είναι NP -πλήρης, αν 1. L B NP και 2. L A P L B για κάθε άλλη γλώσσα L A στην κλάση NP. Θεώρημα 10.4 Εστω L B μία NP -πλήρης γλώσσα. Τότε: L B P P = NP

284 ΚΕΦΑΛΑΙΟ 10. NP -ΠΛΗΡΟΤΗΤΑ Απόδειξη: Διαισθητικά, το θεώρημα πρέπει να αληθεύει επειδή αν η γλώσσα L B είναι στην κλάση P, τότε θα έπρεπε να είναι μία εύκολη γλώσσα. Από την άλλη μεριά, εφόσον η L B είναι NP -πλήρης, ανήκει στις πιο δύσκολες γλώσσες της κλάσης NP. Επομένως, οι πιο δύσκολες γλώσσες της κλάσης NP είναι εύκολες! Ομως τότε θα έπρεπε όλες οι γλώσσες της κλάσης N P να είναι εύκολες, δηλαδή να ισχύει P = NP. Επιχειρούμε τώρα μία τυπική απόδειξη του θεωρήματος. Ας υποθέσουμε ότι L B P. Γνωρίζουμε ήδη από το Θεώρημα 9.1 ότι P NP. Επομένως, απομένει να δείξουμε ότι NP P. Εστω L A μία οποιαδήποτε γλώσσα της κλάσης NP. Αφού η L B είναι NP -πλήρης, θα έχουμε L A P L B. Τότε, από το Θεώρημα 10.1 θα έχουμε L A P. Για να αποδειχθεί το αντίστροφο, υποθέτουμε ότι P = NP. Αφού L B NP, προκύπτει άμεσα ότι L B P. Θεώρημα 10.5 Εστω δύο γλώσσες L B και L C, τέτοιες ώστε L C NP και L B P L C. Αν η L B είναι NP -πλήρης, τότε η L C είναι επίσης NP -πλήρης. Απόδειξη: Πρώτα δίνουμε μία διαισθητική ερμηνεία του ισχυρισμού. Από την υπόθεση, η L B ανήκει στις πιο δύσκολες γλώσσες της κλάσης NP και η L C είναι τουλάχιστο τόσο δύσκολη όσο η L B. Αφού L C NP προκύπτει ότι η L C ανήκει στις πιο δύσκολες γλώσσες της κλάσης NP. Επομένως, η L C είναι NP -πλήρης. Για να δώσουμε μία τυπική απόδειξη, θα πρέπει να δείξουμε ότι L A P L C για όλες τις γλώσσες L A της κλάσης NP. Εστω ότι η L A είναι μία οποιαδήποτε γλώσσα της NP. Αφού η L B είναι NP -πλήρης, θα έχουμε L A P L B. Επειδή όμως L B P L C, προκύπτει από το Θεώρημα 10.2 ότι L A P L C. Επομένως η γλώσσα L C είναι NP -πλήρης. Το Θεώρημα 10.5 μπορεί να χρησιμοποιηθεί στην απόδειξη της NP -πληρότητας των γλωσσών. Εστω μία γλώσσα L C για την οποία θέλουμε να αποδείξουμε ότι είναι NP -πλήρης. Αυτό επιτυγχάνεται με τον εξής τρόπο: 1. Αρχικά αποδεικνύουμε ότι L C NP. 2. Στη συνέχεια βρίσκουμε μία γλώσσα L B που φαίνεται «παρόμοια» με την L C και για την οποία ήδη γνωρίζουμε ότι είναι NP -πλήρης.

ΒΙΒΛΙΟΓΡΑΦ ΙΑ - ΑΝΑΦΟΡ ΕΣ 285 3. Τέλος, αποδεικνύουμε ότι L B P L C. 4. Αν γίνουν τα παραπάνω βήματα, τότε το Θεώρημα 10.5 μας λέει ότι η γλώσσα L C είναι NP -πλήρης. Φυσικά γεννάται το ερώτημα του πώς ξέρουμε ότι η γλώσσα L B είναι NP - πλήρης. Για να μπορούμε να εφαρμόσουμε το Θεώρημα 10.5 χρειαζόμαστε μία «αρχική» γλώσσα, που είναι NP -πλήρης και αυτό θα πρέπει να έχει αποδειχθεί με βάση τον Ορισμό 10.2. Παρατηρήστε ότι δεν είναι ξεκάθαρο αν τελικά υπάρχουν N P -πλήρεις γλώσσες. Ας εξετάσουμε την περίπτωση της γλώσσας L 3SAT, που ορίσαμε στο Παράδειγμα 9.6. Αν θέλουμε να χρησιμοποιήσουμε τον Ορισμό 10.2 για να δείξουμε ότι αυτή η γλώσσα είναι NP -πλήρης, θα πρέπει να αποδείξουμε ότι: L 3SAT NP, που ισχύει όπως ήδη αναφέραμε στο Παράδειγμα 9.6. L A P L 3SAT, για κάθε γλώσσα L A NP. Επομένως, πρέπει να δειχθεί αυτό για γλώσσες L A, όπως οι L HC, L SOS, L NP rim, L KS και για άπειρα πολλές άλλες γλώσσες. Με τον τρόπο που περιγράψαμε αποδείχθηκε στις εργασίες των Steven Cook [1] και Leonid Levin (μετάφραση στα Αγγλικά [3]) η N P -πληρότητα της γλώσσας SAT, που ορίσαμε στην Ενότητα 7.6.2. Αυτή ήταν και η πρώτη γλώσσα για την οποία αποδείχθηκε κάτι τέτοιο. Στην εργασία [2] του Richard Karp παρουσιάστηκε μία λίστα με 21 N P -πλήρη προβλήματα. Γι αυτές τις συνεισφορές απονεμήθηκε στους Cook και Karp η υψηλότερη διάκριση στην Επιστήμη των Υπολογιστών, το ACM Turing Award. Η γλώσσα L 3SAT στην οποία αναφερθήκαμε είναι μία από τις γνωστές NP - πλήρεις γλώσσες, αφού αυτό μπορεί να αποδειχθεί με μία παραλλαγή της απόδειξης του Cook για τη γλώσσα SAT (θα μπορούσε επίσης το ίδιο αποτέλεσμα να προκύψει και με μία αναγωγή πολυωνυμικού χρόνου από τη γλώσσα SAT στη γλώσσα L 3SAT ). Βιβλιογραφία - Αναφορές [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.

286 ΚΕΦΑΛΑΙΟ 10. NP -ΠΛΗΡΟΤΗΤΑ [2] RichardM. Karp. Reducibility among combinatorial problems. In RaymondE. Miller, JamesW. Thatcher, and JeanD. Bohlinger, editors, Complexity of Computer Computations, The IBM Research Symposia Series, pages 85 103. Springer US, 1972. ISBN 978-1-4684-2003-6. doi: 10.1007/978-1-4684-2001-2 9. URL http://dx.doi.org/10.1007/ 978-1-4684-2001-2_9. [3] B.A. Trakhtenbrot. A survey of russian approaches to perebor (bruteforce searches) algorithms. Annals of the History of Computing, 6(4): 384 400, Oct 1984. ISSN 0164-1239. doi: 10.1109/MAHC.1984.10036.