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

Σχετικά έγγραφα
Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chapter 7, 8 : Time, Space Complexity

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

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

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

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

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

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

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

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

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

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

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

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

Μη-Αριθμήσιμα Σύνολα, ιαγωνιοποίηση

CSC 314: Switching Theory

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

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

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

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

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

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

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

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

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

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

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

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

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

για NP-Δύσκολα Προβλήματα

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

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

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

Chapter 7, 8 : Time, Space Complexity

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι είδαμε την προηγούμενη φορά. Συνεκτικότητα. 25 -Γράφοι

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

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

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

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

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

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

HY118-Διακριτά Μαθηματικά. Τι είδαμε την προηγούμενη φορά. Θεωρία γράφων / γραφήματα. 25 -Γράφοι. ΗΥ118, Διακριτά Μαθηματικά Άνοιξη 2017

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

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

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

conp and Function Problems

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

Chapter 7, 8 : Completeness

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

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

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

HY118-Διακριτά Μαθηματικά

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

HY118-Διακριτά Μαθηματικά

* * * ( ) mod p = (a p 1. 2 ) mod p.

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

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

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

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

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

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

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

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

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

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

HY118-Διακριτά Μαθηματικά

Εθνικό Μετσόβιο Πολυτεχνείο

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

Transcript:

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ 2η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ntua.gr/courses/focs

Κεντρικό ζήτημα της επιστήμης υπολογιστών Τι μπορεί να μηχανοποιηθεί και μάλιστα αποδοτικά; Ποια προβλήματα μπορούμε να λύσουμε με υπολογιστή και πόσο καλά; 2

Ποια ερωτήματα μπορούν να απαντηθούν με υπολογιστή; Θα γλιτώσουμε ποτέ από το Μνημόνιο; Υπάρχει Θεός; Η πρόταση «αυτή η πρόταση είναι ψευδής» είναι αληθής; Ο αριθμός 2 43112609 1 είναι πρώτος; 3

Ποια ερωτήματα μπορούν να απαντηθούν με υπολογιστή; Προϋποθέσεις: Τα δεδομένα εισόδου και εξόδου μπορούν να κωδικοποιηθούν με σύμβολα Υπάρχει αυστηρά καθορισμένη σχέση μεταξύ τους Παράδειγμα: εύρεση ΜΚΔ (gcd) Είσοδος: (65, 26) Έξοδος: 13 Είσοδος: (91, 33) Έξοδος: 1 4

Υπολογιστικά προβλήματα Τυπικά περιγράφονται με διμελείς σχέσεις (απεικονίσεις) μεταξύ συμβολοσειρών Άλλα παραδείγματα: Αναγνώριση πρώτων αριθμών 2 43112609 1 «ναι» 129 «όχι» Συντομότερα μονοπάτια (({a,b},3), ({a,c},2), ({b,d},1), ({c,d},5), ({c,e},1), ({d,e},1), a, d) (a,c,e,d) ή (a,b,d) a 2 c 3 5 1 b e 1 1 d 5

Υπολογιστικά προβλήματα Τυπικά περιγράφονται με διμελείς σχέσεις (απεικονίσεις) μεταξύ συμβολοσειρών. Άλλα παραδείγματα: Αναγνώριση πρώτων αριθμών 2 43112609 1 «ναι» 129 «όχι» Συντομότερα μονοπάτια (({a,b},3), ({a,c},2), ({b,d},1), ({c,d},5), ({c,e},1), ({d,e},1), a, d) (a,c,e,d) ή (a,b,d) a 2 c 3 5 1 b e 1 1 d 6

Υπολογιστικά προβλήματα (συν.) Εμφανίζονται σε: Internet (δρομολόγηση, συμφόρηση, θεωρία παιγνίων, ανάθεση πόρων, αναζήτηση) Βιολογία (αναδίπλωση πρωτεϊνών, γονιδίωμα, εξέλιξη) Κρυπτογραφία (ασφάλεια, μυστικότητα, ηλεκτρονικές υπογραφές, ψηφοφορίες) 7

Αποτελέσματα - σταθμοί Gödel (1931), Church(1936), Turing (1936): δεν μπορούν να επιλυθούν όλα τα υπολογιστικά προβλήματα με υπολογιστή Πρόβλημα Τερματισμού (Halting Problem) Cook (1971), Karp (1972): από αυτά που επιλύονται, πολλά δεν μπορούν να επιλυθούν καλά Πρόβλημα Περιοδεύοντος Πωλητή (Traveling Salesperson Problem, TSP) 8

Υπολογισιμότητα - Πολυπλοκότητα Υπολογισιμότητα (Computability): ποιά υπολογιστικά προβλήματα μπορούμε να λύσουμε; Υπολογιστική πολυπλοκότητα (Computational Complexity): πόσο καλά μπορούμε να τα λύσουμε; ως προς το χρόνο ως προς το χώρο/μνήμη ως προς την κατανάλωση ενέργειας ως προς bandwidth... 9

Υπολογισιμότητα: το Πρόβλημα Τερματισμού Πρόβλημα Τερματισμού (Halting Problem): Δίνεται πρόγραμμα και είσοδος. Σταματάει το πρόγραμμα για αυτή την είσοδο (ή "τρέχει" επ' άπειρον); Μια ισοδύναμη παραλλαγή είναι: Δίνεται πρόγραμμα χωρίς είσοδο. Σταματάει; 10

Πρόβλημα Τερματισμού: μια ειδική περίπτωση Έστω το πρόγραμμα while x!=1 do if (x is even) then x=x/2 else x=3*x+1 Πρόβλημα του Collatz (Ulam): Δίνεται φυσικός αριθμός x. Σταματάει το παραπάνω πρόγραμμα για είσοδο x; Παράδειγμα: 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 11

Πρόβλημα Τερματισμού: μια ειδική περίπτωση (συν.) while x!=1 do if (x is even) then x=x/2 else x=3*x+1 Εικασία Collatz: το πρόγραμμα σταματάει για κάθε φυσικό αριθμό x. Δεν γνωρίζουμε αν ισχύει η εικασία (ανοικτό ερώτημα) ούτε γνωρίζουμε αν το πρόβλημα Collatz είναι επιλύσιμο από υπολογιστή (αν δηλαδή μπορεί να υπάρχει πρόγραμμα που για είσοδο x να αποφαίνεται αν το πρόγραμμα Collatz σταματάει ή όχι). 12

Πρόβλημα Τερματισμού: μη επιλυσιμότητα Πρόβλημα Τερματισμού (Halting Problem): Δίνεται πρόγραμμα και είσοδος. Σταματάει το πρόγραμμα για αυτή την είσοδο (ή "τρέχει" επ' άπειρον); Θεώρημα. Το πρόβλημα τερματισμού είναι μη επιλύσιμο. Δηλαδή, δεν υπάρχει πρόγραμμα που να απαντάει σε αυτή την ερώτηση. 13

Πρόβλημα Τερματισμού: μη επιλυσιμότητα Απόδειξη (α' τρόπος, με διαγωνιοποίηση): Έστω μια απαρίθμηση των προγραμμάτων Π 0, Π 1,... Έστω ότι υπάρχει πρόγραμμα T, ώστε για κάθε Π j,k, T(Π j,k) = "yes" αν Π j (k) σταματάει, "no" αλλιώς. Τότε υπάρχει και πρόγραμμα D που με είσοδο οποιοδήποτε k κάνει το αντίθετο από το Π k (k), δηλ. αν το Π k (k) σταματάει το D(k) "τρέχει" επ' άπειρον, και αν το Π k (k) "τρέχει" επ' άπειρον το D(k) σταματάει: D(k): if T(Π k,k)="yes" then loop for ever else stop 14

Πρόβλημα Τερματισμού: μη επιλυσιμότητα Απόδειξη (α' τρόπος, συν.): έστω ότι το D είναι το Π n Π n (k): if T(Π k,k)="yes" then loop for ever else stop Τι κάνει το Π n (n); Αν T(Π n,n)="yes" (δηλ. Π n (n) σταματάει) τότε Π n (n) τρέχει επ' άπειρον! Αν T(Π n,n) )="no" (δηλ. Π n (n) τρέχει επ' άπειρον) τότε Π n (n) σταματάει!! ΑΤΟΠΟ: η μόνη υπόθεση που κάναμε είναι η ύπαρξη του προγράμματος Τ, άρα τέτοιο πρόγραμμα δεν μπορεί να υπάρχει! 15

Πρόβλημα Τερματισμού: μη επιλυσιμότητα Απόδειξη (β' τρόπος, έμμεση διαγωνιοποίηση): Έστω ότι υπάρχει πρόγραμμα T, ώστε για κάθε Π,x, T(Π,x) = "yes" αν Π(x) σταματάει, "no" αλλιώς. Τότε υπάρχει και πρόγραμμα D που με είσοδο οποιοδήποτε Π κάνει το αντίθετο από το Π(Π), δηλ. αν το Π(Π) σταματάει το D(Π) "τρέχει" επ' άπειρον, και αν το Π(Π) "τρέχει" επ' άπειρον το D(Π) σταματάει: D(Π): if T(Π,Π)="yes" then loop for ever else stop 16

Πρόβλημα Τερματισμού: μη επιλυσιμότητα Απόδειξη (β' τρόπος, συν.): D(D): if T(D,D)="yes" then loop for ever else stop Τι κάνει το D(D); Αν Τ(D,D) = "yes" (δηλ. D(D) σταματάει) τότε D(D) τρέχει επ' άπειρον! Αν Τ(D,D) = "no" (δηλ. D(D) τρέχει επ' άπειρον) τότε D(D) σταματάει!! ΑΤΟΠΟ: η μόνη υπόθεση που κάναμε είναι η ύπαρξη του προγράμματος Τ, άρα τέτοιο πρόγραμμα δεν μπορεί να υπάρχει! 17

Πολυπλοκότητα υπολογιστικών προβλημάτων Για τα προβλήματα που επιλύονται (solvable, computable, decidable) μας ενδιαφέρει το πόσο καλά μπορεί να γίνει αυτό, δηλαδή πόσο γρήγορα, ή με πόση μνήμη, ή με πόσους επεξεργαστές (παραλληλία), ή με πόση κατανάλωση ενέργειας (sensor networks), κ.λπ. Αυτό λέγεται (υπολογιστική) πολυπλοκότητα. 18

Τι είναι πολυπλοκότητα; Το 101101011101 είναι πιο πολύπλοκο από το 010101010101 Τα θηλαστικά είναι πιο πολύπλοκα από τους ιούς. Το σκάκι είναι πιο πολύπλοκο από την τρίλιζα. Οι επικαλύψεις του Escher είναι πιο πολύπλοκες από τα πλακάκια του μπάνιου. Οι πρώτοι αριθμοί είναι πιο πολύπλοκοι από τους περιττούς. 19

20

Τι είναι υπολογιστική πολυπλοκότητα; Η δυσκολία του να υπολογίσουμε τη λύση σε ένα πρόβλημα. Επιπλέον, ένας τρόπος για να εκφράσουμε μαθηματικά τη διαίσθησή μας ότι οι πρώτοι αριθμοί είναι πιο πολύπλοκοι από τους περιττούς. Το πρόβλημα «Δίνεται x. Είναι πρώτος;» είναι υπολογιστικά πιο δύσκολο από το πρόβλημα «Δίνεται x. Είναι περιττός;» 21

Η πρόκληση: σύγχρονα δίκτυα και συστήματα Πολύπλοκα, πολλές (ετερογενείς) συνιστώσες που αλληλεπιδρούν. Διακίνηση τεράστιου όγκου πληροφορίας. Ανάγκη για άμεση επεξεργασία δεδομένων και λήψη αποφάσεων. Ανάγκη για ταχύτατη επίλυση υπολογιστικών προβλημάτων μεγάλης κλίμακας.

Καθορισμός πολυπλοκότητας υπολογιστικών προβλημάτων Αλγόριθμοι: παρέχουν άνω φράγματα ταξινόμηση (με bubblesort): O(n 2 ) Αποδείξεις δυσκολίας: παρέχουν κάτω φράγματα ταξινόμηση με συγκρίσεις: Ω(n logn) NP-πληρότητα: ισχυρή ένδειξη απουσίας αποδοτικού αλγορίθμου million dollar question! (Clay Institute millennium problems) 23

Πολυπλοκότητα αλγορίθμου Μέτρηση του κόστους του σαν συνάρτηση των υπολογιστικών πόρων που απαιτούνται σε σχέση με το μέγεθος της (αναπαράστασης της) εισόδου: cost A (n) = max {κόστος αλγορ. Α για είσοδο x} για όλες τις εισόδους x μήκους n Παράδειγμα: time-cost MS (n) <= c n logn (MS = MergeSort, c κάποια σταθερά) 24

Πολυπλοκότητα αλγορίθμου: απλοποιήσεις Συχνά θεωρούμε ως μέγεθος της εισόδου το πλήθος των δεδομένων μόνο (αγνοώντας το μέγεθός τους σε bits). Αυτό δεν δημιουργεί πρόβλημα εφ όσον ο αλγόριθμος δεν περιέχει πράξεις ή διαδικασίες που να κοστίζουν εκθετικά ως προς το μέγεθος των δεδομένων σε bits. Επίσης θεωρούμε ότι κάθε στοιχειώδης αριθμητική πράξη (πρόσθεση, πολ/σμός, σύγκριση) έχει κόστος 1 βήματος. Αυτό λέγεται αριθμητική πολυπλοκότητα (arithmetic complexity) και είναι συνήθως αρκετά ακριβής μέτρηση. Η ανάλυση πολυπλοκότητας σε πλήθος πράξεων ψηφίων λέγεται bit complexity. 25

Πολυπλοκότητα προβλήματος Είναι η πολυπλοκότητα του βέλτιστου αλγορίθμου που λύνει το πρόβλημα. cost Π (n) = min {cost A (n)} για όλους τους αλγορίθμους Α που επιλύουν το Π Παράδειγμα: time-cost SORT (n) <= c n logn [= O(n log n)] (SORT = πρόβλημα ταξινόμησης) Για να δείξουμε βελτιστότητα αλγορίθμου χρειάζεται και απόδειξη αντίστοιχου κάτω φράγματος. 26

Πολυπλοκότητα ταξινόμησης: κάτω φράγμα Οποιοσδήποτε αλγόριθμος ταξινόμησης n αριθμών χρειάζεται Ω(n logn) συγκρίσεις: Είσοδος (x 1, x 2,..., x n ) Αρχικά n! περιπτώσεις: x 1 < x 2 < x 3 <... < x n x 2 < x 1 < x 3 <... < x n x 3 < x 1 < x 2 <... < x n... Σε κάθε σύγκριση το πλήθος περιπτώσεων υποδιπλ/ται (στην καλύτερη περίπτωση) Πλήθος συγκρίσεων: log(n!) (n logn)/4 27

Πολυπλοκότητα ταξινόμησης: κάτω φράγμα x k <? x j...., (...,x m,...,x k,, x j,..., x t,.. ), (...,x r,...,x k,, x j,..., x m,.. ),.... x k < x j x k > x j...., (...,x m,...,x j,, x k,..., x t,.. ), (...,x r,...,x j,, x k,..., x m,.. ),.... 28

Πολυπλοκότητα ταξινόμησης: κάτω φράγμα x k <? x j...., (...,x m,...,x k,, x j,..., x t,.. ), (...,x r,...,x k,, x j,..., x m,.. ),.... x k < x j x k > x j...., (...,x m,...,x j,, x k,..., x t,.. ), (...,x r,...,x j,, x k,..., x m,.. ),.... x k <? x m x k <? x m x k < x m x k > x m 29

Πολυπλοκότητα ταξινόμησης: κάτω φράγμα x k <? x j...., (...,x m,...,x k,, x j,..., x t,.. ), (...,x r,...,x k,, x j,..., x m,.. ),.... x k < x j x k > x j...., (...,x m,...,x j,, x k,..., x t,.. ), (...,x r,...,x j,, x k,..., x m,.. ),.... x k <? x m x k <? x m x k < x m...., (...,x m,...,x k,, x j,..., x t,.. ), (...,x r,...,x k,, x j,..., x m,.. ),.... x k > x m...., (...,x m,...,x k,, x j,..., x t,.. ), (...,x r,...,x k,, x j,..., x m,.. ),.... 30

P =? NP Τι είναι πιο εύκολο; Να βρείτε τις λύσεις των ασκήσεων ή να τις αντιγράψετε; Πόσο πιο δύσκολο είναι να βρούμε κάποια λύση από το να την επαληθεύσουμε; Αυτό είναι ουσιαστικά το P =? NP πρόβλημα, που αποτελεί το πιο σημαντικό ανοικτό πρόβλημα της Θεωρητικής Πληροφορικής σήμερα. Στο http://www.claymath.org προσφέρονται 1εκ. δολάρια για τη λύση του! 31

Το πρόβλημα του Euler Δίνεται γράφος. Υπάρχει τρόπος να περάσουμε από κάθε ακμή μια ακριβώς φορά; Seven Bridges of Königsberg Source: http://physics.weber.edu/carroll/honors_images/barbasibridges.jpg 32

Επίλυση του προβλήματος Euler Το πρόβλημα του Euler είναι ευεπίλυτο. Η απάντηση είναι ναι αν και μόνο αν κάθε κόμβος v έχει άρτιο # γειτόνων a b d c f g e 33

Επίλυση του προβλήματος Euler Το πρόβλημα του Euler είναι ευεπίλυτο. Η απάντηση είναι ναι αν και μόνο αν κάθε κόμβος v έχει άρτιο # γειτόνων a b d c f g e 34

Επίλυση του προβλήματος Euler Το πρόβλημα του Euler είναι ευεπίλυτο. Η απάντηση είναι ναι ανν κάθε κόμβος v έχει άρτιο # γειτόνων Για κάθε γράφο με n κόμβους αρκούν n 2 έλεγχοι: χρόνος πολυωνυμικός ως προς το μέγεθος της εισόδου. Τέτοια προβλήματα που η επίλυσή τους χρειάζεται χρόνο O(n), O(n 2 ), O(n 3 ) λέμε ότι ανήκουν στην κλάση P (polynomial time). f a c g d e 35

Το πρόβλημα του Hamilton Δίνεται γράφος. Υπάρχει τρόπος να περάσουμε από κάθε κορυφή μια ακριβώς φορά; Source: http://jwilson.coe.uga.edu/emat6680/yamaguchi/ emat6690/essay1/gt.html 36

Το πρόβλημα του Hamilton Δίνεται γράφος. Υπάρχει τρόπος να περάσουμε από κάθε κορυφή μια ακριβώς φορά; Source: http://jwilson.coe.uga.edu/emat6680/yamaguchi/ emat6690/essay1/gt.html 37

Πολυπλοκότητα προβλήματος Hamilton Το πρόβλημα του Hamilton είναι πιο δύσκολο (δυσεπίλυτο). Δεν γνωρίζουμε κανέναν γρήγορο αλγόριθμο γι αυτό. Ο καλύτερος γνωστός αλγόριθμος δεν διαφέρει ουσιαστικά από το να δοκιμάσουμε όλους τους συνδυασμούς, που είναι πολλοί (n!). Αν όμως μας προτείνουν μια λύση, μπορούμε να την επαληθεύσουμε πολύ γρήγορα. Τέτοια προβλήματα που η επαλήθευση μιας λύσης τους (αν υπάρχει και μας δοθεί) χρειάζεται χρόνο O(n), O(n 2 ), O(n 3 ),, λέμε ότι ανήκουν στην κλάση NP (non-deterministic polynomial time). 38

NP-πλήρη προβλήματα Το πρόβλημα του Hamilton μπορεί να έχει γρήγορο αλγόριθμο. Δεν πιστεύουμε όμως ότι έχει (κανείς δεν έχει βρει ως τώρα). Ούτε όμως καταφέραμε να αποδείξουμε κάτι τέτοιο. Το μόνο που μπορούμε να δείξουμε είναι ότι μια πλειάδα από προβλήματα που μας ενδιαφέρουν είναι της ίδιας δυσκολίας με αυτό. Τα προβλήματα που είναι το ίδιο δύσκολα με το πρόβλημα του Hamilton τα λέμε NP-πλήρη (NPcomplete). 39

Κλάσεις πολυπλοκότητας P (πολυωνυμικός χρόνος): Το σύνολο των προβλημάτων που λύνονται σε πολυωνυμικό χρόνο. Θεωρούνται τα προβλήματα που μπορούμε να λύσουμε στην πράξη. Το πρόβλημα του Euler ανήκει στο P ΝP (μη ντετερμινιστικός πολυωνυμικός χρόνος): Το σύνολο των προβλημάτων που μπορούμε να επαληθεύσουμε τη λύση τους (αν μας δοθεί) σε πολυωνυμικό χρόνο. NP-πλήρη: Το υποσύνολο των πιο δύσκολων προβλημάτων του NP για κανένα δεν έχει βρεθεί πολυωνυμικός αλγόριθμος. Αν οποιοδήποτε από αυτά τα προβλήματα ανήκει στο P, τότε P=NP. Το πρόβλημα του Hamilton είναι NP-πλήρες. 40

Ο χάρτης των κλάσεων (μέχρι τώρα) Πρόβλημα Hamilton NP-πλήρη NP Πρόβλημα Euler P 41

Ο χάρτης των κλάσεων (μέχρι τώρα) Πρόβλημα Hamilton NP-πλήρη Ισομορφισμός Γράφων? NP Πρόβλημα Euler P 42

Γιατί θέλουμε πολυωνυμικό χρόνο; logn n n 2 2 n 3.322 10 100 1024 6.644 100 10000 1267650600228229401496703205376 9.966 1000 1000000 (1267650600228229401496703205376) 10 Ο ρυθμός αύξησης των εκθετικών συναρτήσεων είναι απαγορευτικός για μεγάλα στιγμιότυπα! 43

Γιατί θέλουμε πολυωνυμικό χρόνο; logn n n 2 2 n 3.322 10 100 1024 6.644 100 10000 1267650600228229401496703205376 9.966 1000 1000000 (1267650600228229401496703205376) 10 Ο ρυθμός αύξησης των εκθετικών συναρτήσεων είναι απαγορευτικός για μεγάλα στιγμιότυπα! 44

Αποδείξεις NP-πληρότητας Πρόβλημα Πλανόδιου Πωλητή (Traveling Salesperson Problem, TSP) Δίνεται πλήρης γράφος με n κόμβους, οι αποστάσεις μεταξύ τους d(v i,v k ) και ένας φυσικός αριθμός D. Υπάρχει διαδρομή που να περνάει μία φορά από κάθε κόμβο με συνολικό κόστος <= D; http://myprojectsdiary.blogspot.com/2005_03_01_archive.html 45

Αποδείξεις NP-πληρότητας: αναγωγές Δοθέντος ενός στιγμιοτύπου (εισόδου) του προβλήματος Hamilton μπορούμε να το αναγάγουμε σε στιγμιότυπο του προβλήματος TSP: Μετατρέπουμε τον γράφο σε πλήρη. Στις υπάρχουσες ακμές θέτουμε απόσταση 1, ενώ στις νέες θέτουμε απόσταση 2. Θέτουμε D=n. 46

Αποδείξεις NP-πληρότητας: αναγωγές Είναι εύκολο να δούμε ότι η απάντηση για το αρχικό στιγμιότυπο (του προβλήματος Hamilton) είναι «ναι», δηλαδή υπάρχει κύκλος Hamilton στον αρχικό γράφο, αν και μόνο αν η απάντηση για το νέο στιγμιότυπο (του προβλήματος TSP) είναι «ναι», δηλαδή υπάρχει κύκλος κόστους n στον νέο γράφο. Επομένως είναι μάλλον απίθανο το TSP να λύνεται σε πολυωνυμικό χρόνο. 47

Άλλα NP-πλήρη προβλήματα Ικανοποιησιμότητα (Satisfiability) Δίνεται προτασιακός τύπος Boole φ(x 1,,x n ). Υπάρχει ανάθεση αληθοτιμών για τα x 1,,x n που να ικανοποιεί την φ; Διαμέριση (Partition) Δίνονται ακέραιοι a 1,,a n. Μπορούν να χωριστούν σε δύο σύνολα με ίσα αθροίσματα; Πάρα πολλά άλλα προβλήματα. 48

Άλλα NP-πλήρη προβλήματα Partition Δίνονται ακέραιοι a 1,,a n μπορούμε να τους διαμερίσουμε σε δύο σύνολα ίσου αθροίσματος; Παράδειγμα [Lance Fortnow, The Golden Ticket: P, NP, and the Search for the Impossible, 2013] 14175, 15055, 16616, 17495, 18072, 19390, 19731, 22161, 23320, 23717, 26343, 28725, 29127, 32257, 40020, 41867, 43155, 46298, 56734, 57176, 58306, 61848, 65825, 66042, 68634, 69189, 72936, 74287, 74537, 81942, 82027, 82623, 82802, 82988, 90467, 97042, 97507, 99564. Μπορείτε να βρείτε τη λύση; Κάθε σύνολο θα πρέπει να έχει άθροισμα 1000000 49

Ενδιάμεση πολυπλοκότητα; Factoring Δίνεται σύνθετος αριθμός N, βρείτε την παραγοντοποίησή του: 123018668453011775513049495838496272077285356959533479219732245215172640050726 365751874520219978646938995647494277406384592519255732630345373154826850791702 6122142913461670429214311602221240479274737794080665351419597459856902143413 = 3347807169895689878604416984821269081770479498371376856891 2431388982883793878002287614711652531743087737814467999489 x 3674604366679959042824463379962795263227915816434308764267 6032283815739666511279233373417143396810270092798736308917 50

Ενδιάμεση πολυπλοκότητα; Factoring Δίνεται σύνθετος αριθμός N, βρείτε την παραγοντοποίησή του. Ενώ το Primality ανήκει στην κλάση P, το Factoring μάλλον όχι. Είναι στην NP (γιατί;), αλλά μάλλον όχι NPcomplete. Το κρυπτοσύστημα RSA, και πολλά άλλα βασίζονται στη δυσκολία του Factoring. 51

Γιατί ασχολούμαστε με την NP-πληρότητα; Γλιτώνουμε την απόλυση (...λέμε τώρα ) Στροφή σε πιο ρεαλιστικές λύσεις: ειδικές περιπτώσεις, προσεγγιστική επίλυση real-college-life.com Χρήση προς όφελός μας (κρυπτογραφία, εκλογές) 52

Κατηγοριοποίηση προβλημάτων Όλα τα προβλήματα Halting Problem Υπολογίσιμα (επιλύσιμα) Κλάση NP Factoring, Graph Isomorphism Hamilton, TSP, Κλάση P (ευεπίλυτα) Euler, Linear Programming Παραλληλοποιήσιμα Matrix Multiplication Generalized Chess 53

Πώς ξέρουμε ότι δεν κάνουμε λάθος; Μήπως υπάρχει πιο «έξυπνος» τρόπος υπολογισμού; Αυστηρός ορισμός αλγορίθμων με χρήση υπολογιστικών μοντέλων: Alan Turing, Alonso Church, Stephen Kleene, Emil Post, Andrey άπειρη ταινία Markov, κ.ά. Το πλέον «φυσικό» μοντέλο: Μηχανή Turing.... 0 1 1 0 κεφαλή... σύστημα ελέγχου (εσωτερική κατάσταση) 54

Θέση των Church-Turing Κάθε αλγόριθμος μπορεί να περιγραφεί με τη βοήθεια μιας μηχανής Turing. Ισοδύναμη διατύπωση: Όλα τα γνωστά και άγνωστα υπολογιστικά μοντέλα είναι μηχανιστικά ισοδύναμα. Δηλαδή, για κάθε ζευγάρι υπολογιστικών μοντέλων, μπορούμε με πρόγραμμα (compiler) να μεταφράζουμε αλγορίθμους από το ένα στο άλλο. 55

Είδη πολυπλοκότητας Χειρότερης περίπτωσης (worst case): με αυτήν ασχολούμαστε συνήθως. Μέσης περίπτωσης (average case): με βάση κατανομή πιθανότητας στιγμιοτύπων (instances) του προβλήματος. Συνήθως δύσκολο να οριστεί σωστά. Αποσβετική (amortized): εκφράζει την μέση αποδοτικότητα σε μια σειρά επαναλήψεων του αλγορίθμου. 56

Πολυπλοκότητα: ανοικτά ερωτήματα Εκτός από κάποιες ειδικές περιπτώσεις, για κανένα πρόβλημα δεν γνωρίζουμε πόσο γρήγορα μπορεί να λυθεί. Ακόμα και για τον πολλαπλασιασμό αριθμών δεν γνωρίζουμε τον ταχύτερο αλγόριθμο. Ο σχολικός τρόπος πολλαπλασιασμού αριθμών με n ψηφία χρειάζεται O(n 2 ) βήματα. Με μέθοδο «διαίρει και κυρίευε» O(n log3 ) O(n 1.58 ) βήματα αρκούν [Karatsuba 1960, από ιδέα Gauss]. Υπάρχουν ακόμα καλύτεροι αλγόριθμοι που χρειάζονται περίπου O(n logn) βήματα [Schönhage- Strassen 1971, Fürer 2007]. Υπάρχει αλγόριθμος που χρειάζεται μόνο O(n) βήματα; Αυτό είναι ανοικτό ερώτημα. 57