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



Σχετικά έγγραφα
11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

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

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

Θεωρία Υπολογισµού Theory of Computation

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

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

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

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

Ασυμπτωτικός Συμβολισμός

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

Ασυμπτωτικός Συμβολισμός

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

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

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

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

Ασυμπτωτικός Συμβολισμός

CSC 314: Switching Theory

Ασυμπτωτικός Συμβολισμός

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

Κλάση NP, NP-Complete Προβλήματα

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

Υπολογιστικό Πρόβληµα

Chapter 7, 8 : Time, Space Complexity

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

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνο ΣHMΜY

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

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

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

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

Chapter 7, 8 : Completeness

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

Μαθηµατικά για Πληροφορική

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

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

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ

Εισαγωγή στην Ανάλυση Αλγορίθμων

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

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

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

ΔΥΣΚΟΛΙΑ ΣΤΗΝ ΠΡΟΣΕΓΓΙΣΙΜΟΤΗΤΑ

Ασκήσεις (2) Άσκηση 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

Κατανεμημένα Συστήματα Ι

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

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

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

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

Δυναμικός Προγραμματισμός

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

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

Δυναμικός Προγραμματισμός

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

Ενότητα 2 Πρόβλημα σελ 13-18

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

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

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία.

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Δυναμικός Προγραμματισμός

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

Δομές Δεδομένων (Data Structures)

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

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

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Transcript:

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1

Συναρτήσεις Μία συνάρτηση είναι µία αντιστοιχία µεταξύ ενός συνόλου πιθανών τιµών εισόδου και ενός συνόλου τιµών εξόδου, έτσι ώστε κάθε πιθανή είσοδος να αντιστοιχεί σε µία και µοναδική έξοδο. Υπολογίσιµη συνάρτηση είναι αυτή της οποίας η τιµή εξόδου µπορεί να προσδιοριστεί αλγοριθµικά από την τιµή εισόδου. Μη υπολογίσιµη είναι η συνάρτηση που δεν µπορεί να προσδιοριστεί από κανένα αλγόριθµο. Υπολογιστικό πρόβληµα = συνάρτηση 2

Παραδείγµατα συναρτήσεων Program input halts P1 x1 0 P2 x2 0 P2 x3 1 3

Υπολογισιµότητα Υπάρχουν προβλήµατα που δεν µπορούν να λυθούν από ένα υπολογιστή; ΝΑΙ! Αρχική υπόθεση (Hilbert): κάθε καλώς ορισµένο πρόβληµα έχει µια απάντηση που µπορούµε να βρούµε! δηµιουργία τυπικού µαθηµατικού συστήµατος που να µπορεί να περιγράφει κάθε πρόβληµα κατασκευή αλγορίθµου που να αποφασίζει (σωστό ή.. λάθος) Godel: Incompleteness theorem Με βάση τα αξιώµατα της αριθµητικής για τους ακεραίους, υπάρχουν θεωρήµατα που δεν µπορούν να αποδειχθούν! 4

Άλυτα προβλήµατα (µέχρι σήµερα) Η εικασία του Goldbach: κάθε άρτιος αριθµός µπορεί να γραφεί σαν το άθροισµα δύο πρώτων αριθµών Τελευταίο θεώρηµα του Fermat: (λύθηκε πριν 10 χρόνια!) δεν υπάρχουν θετικοί ακέραιοι a, b, c τέτοιοι ώστε n n a + b = c n για n > 2 P = NP, Rieman hypothesis,... 5

Α. Turing: τι είναι υπολογίσιµο; Ιστορία Ένα πρόβληµα είναι υπολογίσιµο εάν κάποιος µπορεί να περιγράψει ένα σύνολο εντολών που εάν τις ακολουθήσουµε θα λύσουµε το πρόβληµα (effective procedure, or algorithm) Για να γίνουµε όµως συγκεκριµένοι πρέπει να ορίσουµε τις ικανότητες της µηχανής που θα εκτελέσει τις εντολές. Μηχανές µε διαφορετικές δυνατότητες θα µπορούσαν να εκτελούν διαφορετικά σύνολα εντολών, και άρα να µπορούν να επιλύσουν διαφορετικές κατηγορίες προβληµάτων Ο Turing πρότεινε ένα τύπο µηχανών γνωστών σαν µηχανές Turing. Αυτές οι µηχανές βοήθησαν στον τυπικό ορισµό της υπολογιστικής διαδικασίας που ονοµάζουµε «Turing-υπολογισιµότητα» (Turingcomputability) Η διαισθητική πρόταση πως η Turing-υπολογισιµότητα περιλαµβάνει κάθε πιθανή αποτελεσµατική διαδικασία υπολογισµών αποτελεί την Church-Turing thesis 6

Τα στοιχεία µιας µηχανής Turing 7

Λειτουργίες µίας µηχανής Turing Είσοδοι σε κάθε βήµα. Κατάσταση. Τιµή στην τρέχουσα κυψελίδα της ταινίας. Οι ενέργειες σε κάθε βήµα Γράφει µία τιµή στην τρέχουσα κυψελίδα της ταινίας. Κινεί την κεφαλή εγγραφή/ανάγνωσης. Αλλάζει κατάσταση. 8

Μια µηχανή Turing για την αύξηση µιας τιµής κατά µία µονάδα αγνοείται 9

Μια µηχανή Turing για την αύξηση µιας τιµής κατά µία µονάδα 0 1,δ * *,α 0 1,δ 1 0,α * 1,α. *,δ εν π κ Υ επ 0 0,δ 1 1,δ x y,z αγνοείται x: τι διαβάζω y: τι γράφω z: προς τα που κουνάω την κεφαλή * *,δ τ * *,no move * 10

Church-Turing thesis Πρόβληµα: το ότι δεν υπάρχει αλγόριθµος που να λύνει µία κλάση προβληµάτων οφείλεται στο ότι το µοντέλο του υπολογιστή είναι αδύναµο; Church-Turing: όλα τα µοντέλα υπολογιστών και αλγορίθµων που υπάρχουν ή µπορεί να προταθούν στο µέλλον είναι υπολογιστικά ισοδύναµα! Μηχανή Turing λ-calculus Άρα η µη-υπολογισιµότητα είναι ιδιότητα του προβλήµατος, και δεν εξαρτάται από το υπολογιστικό σύστηµα 11

Καθολική γλώσσα προγραµµατισµού Μία µηχανή Turing µπορεί να υπολογίσει κάθε υπολογίσιµη συνάρτηση. Επαναπροσδιορισµός: κάθε υπολογίσιµη συνάρτηση είναι υπολογίσιµη κατά Turing. Δεν αποδεικνύεται αλλά είναι γενικά αποδεκτό. Καθολική γλώσσα προγραµµατισµού είναι µία γλώσσα που µπορεί να εκφράσει ένα πρόγραµµα υπολογισµού για κάθε υπολογίσιµη συνάρτηση. Παραδείγµατα:Η στοιχειώδης γλώσσα (Bare Bones) και οι πιο δηµοφιλείς γλώσσες προγραµµατισµού. 12

Η Στοιχειώδης Γλώσσα Η Στοιχειώδης Γλώσσα είναι µία απλή καθώς και καθολική γλώσσα. Προσδιορισµοί καταστάσεων: clear όνοµα; incr όνοµα; decr όνοµα; while όνοµα not 0 do; end; 13

Ένα πρόγραµµα της Στοιχειώδους Γλώσσας για τον υπολογισµό του Χ x Y 14

Πρόγραµµα που γίνεται είσοδος σε άλλα προγράµµατα 15

Το πρόβληµα του τερµατισµού Πρόβληµα απόφασης: Ισχύει η ιδιότητα A για δεδοµένα x ; y x A? n Παράδειγµα: Πρόβληµα υπολογίσιµο ó υπάρχει αλγόριθµος που απαντάει σωστά (και τερµατίζει) για όλες τις πιθανές εισόδους x (= στιγµιότυπο προβλήµατος) A x < 1 Το πρόβληµα του τερµατισµού ενός προγράµµατος: το πρόγραµµα (αλγόριθµος) P µε είσοδο x σταµατάει κάποτε; αλγόριθµος απόφασης Το πρόβληµα του αυτο-τερµατισµού; P( P)? y P, x P( x)? 16 n

17 Το πρόβληµα του αυτο-τερµατισµού Απόδειξη πώς δεν µπορεί να υπάρχει αλγόριθµος απόφασης:? ) ( P P P y n Έστω πώς υπάρχει!? ) ( P P y n stop P ) ( ) ( ) ( P P if P P if P H H ) ( ) ( ) ( H H if H H if H H αντίφαση!!!! Μ Μ

Η απόδειξη της αδυναµίας επίλυσης του προβλήµατος τερµατισµού 18

Συµβολισµός ασυµπτοτικής σχέσης f ( n) O( g( n)): f έχει την g ασυµπτωτικό άνω φράγµα όταν n, f ( n) g( n) k n 2,5 O(n 3 ), 2n 2 +10n 5 O(n 2 ),2 n + 2n 2 O(2 n ) f ( n) Θ( g( n)): f έχει την g κάτω φράγµα ασυµπτωτικό άνω και όταν n, 2n 2 + 10n 5 Θ( n g( n) k 2 1 f( n) g( n) ),2nlogn + 10n k 2 5 Θ( nlogn) 19

Πολυπλοκότητα Πολυπλοκότητα αλγορίθµου: ποσότητα πόρων (χρόνος, µνήµη) που χρησιµοποιεί ο αλγόριθµος ασυµπτωτική πολυπλοκότητα Θ: ο όρος που υπερισχύει 3n 2 +10n + 3 3n 2 Θ(n 2 ) 2 n + n 3 + 5 Θ(2 n ) εκθετικοί και πολυωνυµικοί αλγόριθµοι πολυπλοκότητα χειρότερης, µέσης περίπτωσης Πολυπλοκότητα προβλήµατος: άνω φράγµα O(g(n)), κάτω φράγµα Ω(f(n)), ακριβώς Θ(.) εάν Ω(.) = Ο(.) Παράδειγµα: πολλαπλασιασµός Ω(n) n nlogn log logn κάτω φράγµα? log3 n 2 n O(n 2 ) µικρότερο γνωστό άνω φράγµα 20

Χρονική πολυπλοκότητα προβληµάτων H χρονική πολυπλοκότητα αναφέρεται στο πλήθος των εκτελέσεων εντολών που απαιτούνται να εκτελεστούν. Ένα πρόβληµα είναι της τάξης O(f(n)) εάν µπορεί να λυθεί µε έναν αλγόριθµο της τάξης Θ(f(n)). Ένα πρόβληµα είναι της τάξης Θ(f(n)) εάν µπορεί να λυθεί µε έναν αλγόριθµο της τάξης Θ(f(n)) και δεν υπάρχει αλγόριθµος µικρότερης πολυπλοκότητας που να το λύνει 21

Παράδειγµα: πολλαπλασιασµός Αλγόριθµος 1 Αλγόριθµος 2 n 1984 * 6713 5952 1984 13888 + 11904 13318592 Χρόνος: Θ( n 2 ) Α Β Γ Δ 19 84 67 13 n / 2 Τεχνική «διαίρει και βασίλευε» Α*Γ = 1273 (Α+Β)(Γ+Δ)-Α*Γ-ΒΔ = 5875 Β*Δ = 1092 ------------ 13318592 log3 1.59 Χρόνος: Θ( n ) = Θ( n ) 22

Διαίρει και βασίλευε Κοινός τρόπος επίλυσης προβληµάτων: ανάγουµε το πρόβληµα στην λύση µικρότερων προβληµάτων! Παράδειγµα: ταξινόµηση λίστας n αριθµών: module sort(list) ( n) 2 if n>1 then {L1 = firsthalf(list); L2 = secondhalf(list); ( n) L1:= sort(l1); L2:= sort(l2); return L := merge(l1,l2)} T = T( n / 2) + cn T = cn logn + kn 23

Η ιεραρχία των προβληµάτων που δηµιουργείται από τον αλγόριθµο της ταξινόµησης συγχώνευσης, πολυπλοκότητα logn Θ(nlogn) n n 24

Γραφήµατα των µαθηµατικών παραστάσεων ν, lg v, v lg v και v 2 25

µέγεθος εισόδου n Χρόνος εκτέλεσης αλγορίθµων log 2 n n 2 n 10 3x10-9 10-8 10-7 10-6 n 2 πολυπλοκότητα αλγορίθµου sec 100 7x10-9 10-7 0.00001 4x10 11 αιώνες 1000 10-8 10-6 0.001 * 10000 1.3x10-8 10-5 0.1 * 1 βήµα = 1ns 100000 1.7x10-8 0.0001 10 * 1000000 2x10-8 0.001 0.27ω 26

Τάξη P Τάξης P είναι όλα τα προβλήµατα σε κάθε τάξη Θ(g(n)), όπου το g(n) είναι πολυώνυµο. Δισεπίλυτα (ή µη-εφικτά) είναι όλα τα προβλήµατα που είναι πολύ πολύπλοκα για να επιλυθούν πρακτικά. Οι περισσότεροι επιστήµονες υπολογιστών θεωρούν την τάξη Ρ όριο µεταξύ δισεπίλυτων και αυτών που έχουν πρακτική λύση. 27

Μη εφικτά προβλήµατα Προβλήµατα µη υπολογίσιµα σε πολυωνυµικό χρόνο Το πρόβληµα της συσκευασίας w, w, 2, w N Ν κιβώτια βάρους µπορούν να µεταφερθούν από Κ φορτηγά που το καθένα µπορεί να σηκώσει το πολύ W; 1 5 8 5 4 3 3 W = 14 W = 14 28

Μη εφικτά προβλήµατα (2) Το πρόβληµα του πλανόδιου πωλητή Με δεδοµένο ένα χάρτη δρόµων µε Ν πόλεις και τις αντίστοιχες χιλιοµετρικές αποστάσεις, είναι δυνατόν ένας πωλητής να ολοκληρώσει κάποιο ταξίδι όπου περνάει από κάθε πόλη ακριβώς µία φορά η συνολική διαδροµή έχει µήκος < Κ κύκλος Hamilton 29

The knapsack problem 30

Τάξη ΝΡ (Nondeterministic Polynomial) Τάξης ΝΡ είναι όλα τα προβλήµατα που µπορούν να επιλυθούν από έναν µη αιτιοκρατικό αλγόριθµο σε πολυωνυµικό χρόνο. Πολλά από τα δύσκολα προβλήµατα που µας ενδιαφέρουν είναι στο ΝΡ (αποκρυπτογράφηση, συσκευασία, πλανώδιος πωλητής,...) Μη αιτιοκρατικός είναι ο αλγόριθµος του οποίου τα βήµατα µπορεί να µην είναι µοναδικά (άρα και αιτιοκρατικά) σε κάθε κατάσταση: ρίχνει ζάρια για να αποφασίσει πως να προχωρήσει. Χαρακτηριστικό των προβληµήτων NP είναι ότι η λύση είναι υπολογιστικά εφικτό! (όχι να βρεθεί!) µια µη-ντετερµινιστική µηχανή µπορεί να διαλέξει στην τύχη µια λύση και να την επαληθεύσει σε πολυωνυµικό χρόνο Είναι ακόµα άγνωστο αν η τάξη ΝΡ είναι µεγαλύτερη της τάξης Ρ (P=?NP). P NP 31

Μια γραφική σύνοψη της κατηγοριοποίησης προβληµάτων 32

a b = ((a + b)2 a 2 b 2 ) 2 Πολυωνυµική αναγωγή Πολυωνυµική αναγωγή (ΠΑ) Ρ2->Ρ1: Το πρόβληµα P2 το κωδικοποιώ σε πολ. χρόνο σαν µια µερική περίπτωση του P1. Λύνω το P1, και από την λύση του κατασκευάζω µε πολυωνυµικό κόστος την λύση του P2 Ρ2->Ρ1 => Ρ1 πιο δύσκολο από το Ρ2 P1 P 2 P1 P 2 ΠΑ εάν λύνεται σε πολυωνυµικό χρόνο το Ρ1, τότε λύνεται σε πολ. χρόνο και το Ρ2 P2 P1 P3 33

Προβλήµατα NP-complete NP-hard: σύνολο των προβληµάτων που είναι τουλάχιστον τόσο «δύσκολα» όσο οποιοδήποτε πρόβληµα στην κλάση NP Ένα πρόβληµα είναι στο NP-hard όταν κάθε πρόβληµα στο NP ανάγεται µε πολυωνυµικό κόστος σε αυτό NP-complete = NP-hard NP Εάν λυθεί σε πολυωνυµικό χρόνο ένα πρόβληµα στο NP-complete τότε λύνονται πολυωνυµικά όλα τα προβλήµατα στο NP NP P NP hard P Q, Q NP NP-hard NP NP-complete 34

Προβλήµατα NP-complete (2) = NP πρόβληµα Πολυωνυµική αναγωγή P2 P1 P3 Βήµα 1: βρίσκω το πρώτο πρόβληµα στο ΝΡ-complete. P1: Πιο δύσκολο πρόβληµα στο NP. Όλα τα προβλήµατα στο ΝΡ ανάγωνται πολυωνυµικά στο Ρ1 (`έξυπνη απόδειξη, 1971 by Stephen Cook) Βήµα 2: προσθέτω περισσότερα προβλήµατα στο ΝΡ-complete. P2 στο ΝΡ-complete εάν Ρ1 ανάγεται πολ. στο Ρ2. Ρ3 στο ΝΡ-complete εάν Ρ1 ή Ρ2 ανάγονται στο Ρ3, κλπ... 35

Παράδειγµα (3-SAT) SAT (Satisfiability): δεδοµένης µίας boolean φόρµουλας, υπάρχουν τιµές για τις µεταβλητές που να την κάνουν TRUE; x ( x x )) (( x x ) ) x =, x = 0, x 0 ( 1 2 3 2 3 x1 1 1 2 3 = 3-SAT: η φόρµουλα είναι το λογικό ΚΑΙ (AND) σχέσεων (clauses) οι οποίες είναι το λογικό Η (OR) το πολύ 3 µεταβλητών. Π.χ. (µε 4 clauses) ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) Θεώρηµα του Cook: To 3-SAT είναι NP-complete 36

Κ-Graph Independent Set (K-IGS) Σε ένα γράφο G, υπάρχει σύνολο Κ κόµβων οι οποίοι να µην είναι γειτονικοί (να µην υπάρχει ακµή που να τους συνδέει) ; K=4 Είναι NP-complete; 37

Αναγωγή του 3-SAT στο Κ-independent set ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) K = 4 x 1 x x 1 2 x3 x 1 x 2 x 2 x 3 x x 1 2 x3 x 3 38

Βήµατα στην αναγωγή 1. Αρχίζω µε µία οποιαδήποτε φόρµουλα (η είσοδος στο 3- SAT πρόβληµα) 2. Κατασκευάζω µε έξυπνο γενικό τρόπο ένα γράφο που κωδικοποιεί τα δεδοµένα της φόρµουλας, και η ερώτηση για την φόρµουλα ανάγεται σε ερώτηση εάν ο γράφος έχει Κ ανεξάρτητες κορυφές (Κ = αριθµός από παρενθέσεις στην φόρµουλα) 3. Προσέχω ώστε η κατασκευή του γράφου να είναι πολυωνυµική στο µέγεθος της φόρµουλας 4. Αποτέλεσµα: Δεδοµένου πως το 3-SAT είναι ΝΡ-complete, τότε και το K- GIS είναι ΝΡ-complete Άρα εάν λύνεται το «Κ-ανεξάρτητες κορυφές» πρόβληµα σε πολυωνυµικό χρόνο, τότε λύνεται και το 3-SAT σε πολυωνυµικό χρόνο 39