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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γράφοι: κατευθυνόμενοι και μη

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

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

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

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

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

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

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

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

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

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

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

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

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

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

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

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

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

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

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

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

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

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

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

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

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

Κρυπτογραφία Δημοσίου Κλειδιού

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

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

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

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

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

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

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

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

Chapter 7, 8 : Time, Space Complexity

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

Chapter 9: NP-Complete Problems

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

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

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

CSC 314: Switching Theory

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. ΚΕΦΑΛΑΙΟ 2 Βασικές Έννοιες Αλγορίθμων

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

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

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

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

Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι.

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

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

Chapter 7, 8 : Time, Space Complexity

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

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

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

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

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

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

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

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

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

viii 20 Δένδρα van Emde Boas 543

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

conp and Function Problems

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

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

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

Πρόλογος. Πρόλογος 13. Πώς χρησιμοποείται αυτό το βιβλίο 17

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

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

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

Κουτσιούμπας Αχιλλέας U. Adamy, C. Ambuehl, R. Anand, T. Erlebach

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

Αλγοριθμικές Τεχνικές

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Transcript:

Αλγόριθμοι και Πολυπλοκότητα 7ο εξάμηνο ΣHMΜY Εισαγωγή Διδάσκοντες: Άρης Παγουρτζής, Δώρα Σούλιου Στάθης Ζάχος, Δημήτρης Σακαβάλας Επιμέλεια διαφανειών: Άρης Παγουρτζής www.corelab.ntua.gr/courses/algorithms

Αλγόριθοι και Πολυπλοκότητα Αυτά τα ξέρω! (sorting, Dijkstra, bfs/dfs, δέντρα, Prim, Kruskal ) Τα ξέρω;; (P=?NP, καλύτερος αλγόριθμος πολλαπλασιασμού, επίλυση TSP, έλεγχος πρώτων, streaming algorithms ;;) Επιστημονική περιοχή διαρκώς αναπτυσσόμενη, με τεράστιο εύρος και βάθος. Πολλά αναπάντητα ερωτήματα! 2

Κεντρικό ερώτημα Τι μπορούμε να κάνουμε με υπολογιστή, πώς, και πόσο καλά; 3

Κεντρικό ερώτημα Υπολογισιμότητα Τι μπορούμε να κάνουμε με υπολογιστή, πώς, και πόσο καλά; 4

Κεντρικό ερώτημα Υπολογισιμότητα Τι μπορούμε να κάνουμε με υπολογιστή, πώς, και πόσο καλά; Αλγόριθμοι 5

Κεντρικό ερώτημα Υπολογισιμότητα Τι μπορούμε να κάνουμε με υπολογιστή, πώς, και πόσο καλά; Πολυπλοκότητα Αλγόριθμοι 6

Αλγόριθμος Αυστηρά καθορισμένη σειρά βημάτων που επενεργεί σε δεδομένα εισόδου και παράγει δεδομένα εξόδου, σε πεπερασμένο χρόνο. Λύνει πρόβλημα Π αν για κάθε στιγμιότυπο παράγει την σωστή έξοδο. Μπορεί να εκτελεστεί «με μολύβι και χαρτί» (μηχανιστικά αποτελεσματικός). Ανάλυση αλγορίθμου: ορθότητα (απόδειξη ή αντ/δειγμα), πολυπλοκότητα. Αμπού Αμπντουλάχ Μοχάμεντ ιμπν Μουσά αλ- Χουαρίζμι أبو عبد هللا دمحم بن موسى الخوارزمي (781 850 μχ) 7

(Υπολογιστική) πολυπλοκότητα Αλγορίθμου: το κόστος του αλγορίθμου σε χρόνο, χώρο (μνήμη), επεξεργαστές (παραλληλία), επικοινωνία (bandwidth), ενέργεια (sensors, robots),... Προβλήματος: το κόστος επίλυσης του προβλήματος σε χρόνο, χώρο, κ.λπ. αν ο αλγόριθμος Α λύνει το πρόβλημα Π, τότε η πολυπλοκότητα του Π είναι το πολύ όση η πολυπλοκότητα του Α (άνω φράγμα). για κάτω φράγμα πολυπλοκότητας προβλήματος χρειαζόμαστε απόδειξη. 8

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

Θεωρητικές θεμελιώσεις Υπολογιστικό πρόβλημα: ορίζεται βάσει μιας επιθυμητής σχέσης εισόδου-εξόδου τυπικά: διμελής σχέση μεταξύ λέξεων (συμβολοσειρών) από ένα αλφάβητο η είσοδος λέγεται και στιγμιότυπο (instance), η έξοδος απάντηση ή λύση Αλγόριθμος για πρόβλημα: αυστηρά καθορισμένη διαδικασία που «υλοποιεί» την αντιστοίχιση: για κάθε έγκυρο στιγμιότυπο υπολογίζει τη σωστή απάντηση (ή μία από τις σωστές) μοντέλα: μηχανή Turing, RAM, WHILE-programs, 10

Υπολογιστικά προβλήματα Παραδείγματα Έλεγχος πρώτων αριθμών 2 43112609 1 «ΝΑΙ» 129 «ΟΧΙ» Συντομότερα μονοπάτια (({a,b},3), ({a,c},2), ({b,d},1), ({c,d},5), a 2 c 3 5 1 b e 1 1 d ({c,e},1), ({d,e},1), a, d) (a,c,e,d) ή (a,b,d) 11

Υπολογιστικά προβλήματα Άλλα παραδείγματα Πρόβλημα τερματισμού Πρόβλημα Collatz Κύκλος Euler Kύκλος Hamilton Αριθμοί Fibonacci 12

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

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

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

Επίλυση Κύκλου Euler Το πρόβλημα ΚΥΚΛΟΣ EULER είναι ευεπίλυτο. Η απάντηση είναι ΝΑΙ ανν κάθε κόμβος έχει άρτιο # γειτόνων Για κάθε γράφο με n κόμβους αρκούν n 2 έλεγχοι: χρόνος πολυωνυμικός ως προς το μέγεθος της εισόδου. Τέτοια προβλήματα που η επίλυσή τους χρειάζεται χρόνο O(n), O(n 2 ), O(n 3 ) ανήκουν στην κλάση P (Polynomial time). f a c g d e 16

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

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

Επίλυση Κύκλου Hamilton Το πρόβλημα ΚΥΚΛΟΣ HAMILTON είναι «δύσκολο» (δυσεπίλυτο). Δεν γνωρίζουμε γρήγορο αλγόριθμο. Καλύτερος γνωστός αλγόριθμος: περίπου εξαντλητική αναζήτηση (n! μεταθέσεις). Αν μας προτείνουν λύση την επαληθεύουμε πολύ γρήγορα. Προβλήματα που η επαλήθευση μιας λύσης (αν υπάρχει και μας δοθεί) γίνεται σε χρόνο O(n), O(n 2 ), O(n 3 ),, ανήκουν στην κλάση NP (Non-deterministic Polynomial time). 19

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

Αριθμοί Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,... F 0 = 0, F 1 = 1 F n = F n-1 + F n-2, n >=2 Πρόβλημα Fibonacci: Δίνεται n, να υπολογιστεί το F n Προσοχή: δεν ανήκει στo P ούτε στο NP! (γιατί;) 21

Το πρόβλημα του 2 29 Ποιο ψηφίο λείπει από τον αριθμό 2 29 ; (γνωρίζοντας ότι αποτελείται από 9 διαφορετικά ψηφία) 22

Το πρόβλημα του 2 29 Μπορείτε να βρείτε έναν αλγόριθμο; Είναι «καλός»; Πόσες πράξεις θα κάνει; Γίνεται καλύτερα; 23

Το πρόβλημα του 2 29 Γίνεται χωρίς να υπολογίσουμε τον αριθμό; [ερώτηση από βιβλίο προετοιμασίας για συνεντεύξεις για quant jobs ] 24

Κατηγορίες υπολογ. προβλημάτων Προβλήματα απόφασης: σε κάθε στιγμιότυπο αντιστοιχεί μία απάντηση ΝΑΙ ή ΟΧΙ. Έλεγχος πρώτων, Προσβασιμότητα (Reachability), Κύκλος Hamilton Η απλούστερη μορφή, όμως αρκετά ισχυρή. Σημαντικές κλάσεις: P, NP, PSPACE 25

Κατηγορίες υπολογ. προβλημάτων Προβλήματα αναζήτησης (ή εύρεσης): σε κάθε στιγμιότυπο αντιστοιχεί ένα σύνολο έγκυρων λύσεων και ζητείται μία (οποιαδήποτε) από αυτές. Τέλειο Ταίριασμα (Perfect Matching), Satisfiability, Κύκλος Hamilton (εύρεση). Ειδική περίπτωση: function problems (για κάθε στιγμιότυπο μοναδική λύση) : Ταξινόμηση, Ύψωση σε Δύναμη, Παραγοντοποίηση. Σημαντικές κλάσεις: FP, FNP, TFNP, FPSPACE 26

Κατηγορίες υπολογ. προβλημάτων Προβλήματα βελτιστοποίησης: ορίζονται με βάση μία αντικειμενική συνάρτηση. Σε κάθε στιγμιότυπο αντιστοιχεί ένα μη κενό σύνολο αποδεκτών λύσεων (feasible solutions) και ζητείται μία που να βελτιστοποιεί την αντικειμενική συνάρτηση. Συντομότερα μονοπάτια, Μέγιστο Ταίριασμα (Maximum Matching), Travelling Salesman Problem (TSP). Σημαντικές κλάσεις: PO, NPO, APX 27

Τυπική περιγραφή προβλημάτων Προβλήματα απόφασης: λογική συνάρτηση (Boolean function) ισοδύναμα, τυπική γλώσσα (σύνολο λέξεων από αλφάβητο) Προβλήματα αναζήτησης / εύρεσης: διμελής σχέση που ορίζει τις έγκυρες λύσεις. Προβλήματα βελτιστοποίησης: διμελής σχέση που ορίζει τις αποδεκτές λύσεις και αντικειμενική συνάρτηση. 28

Απλοποιήσεις προβλημάτων Πρόβλημα αναζήτησης πρόβλημα απόφασης: για το δοσμένο στιγμιότυπο, υπάρχει λύση; Πρόβλημα βελτιστοποίησης πρόβλημα απόφασης: στιγμιότυπο επαυξάνεται με τιμή k, ζητείται αν υπάρχει λύση με αντικειμενική τιμή το πολύ k (για πρόβλημα ελαχιστοποίησης) ή τουλάχιστον k (για πρόβλημα μεγιστοποίησης). Σημαντικό: συνήθως η απλοποίηση διατηρεί τη δυσκολία του προβλήματος. 29

Πολυπλοκότητα υπολογιστικών προβλημάτων Συνάρτηση κόστους επίλυσης σε χρόνο, χώρο (μνήμη), επεξεργαστές, επικοινωνία, ενέργεια,... Αλγόριθμοι: παρέχουν άνω φράγματα ταξινόμηση (με bubblesort): O(n 2 ) Αποδείξεις δυσκολίας: παρέχουν κάτω φράγματα ταξινόμηση με συγκρίσεις: Ω(n logn) NP-πληρότητα: ισχυρή ένδειξη απουσίας αποδοτικού αλγορίθμου 30

Αποδοτική επίλυση προβλήματος Έχει ταυτιστεί με πολυωνυμικό χρόνο (κλάση P) Σημασία πολυωνυμικού χρόνου (πρακτικά και «χοντρικά»): αν μπορούμε να γράψουμε την είσοδο μπορούμε να πάρουμε και την απάντηση!! Παράδοξο: αλγόριθμος O(n 100 ) θεωρείται αποδοτικός ενώ O(2 n/1000 ) όχι! οι περιπτώσεις αυτές είναι σπάνιες 31

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

Αποδείξεις NP-πληρότητας: αναγωγές Κάθε πρόβλημα στο NP μετατρέπεται (σε πολυωνυμικό χρόνο) στο πρόβλημα Satisfiability: NP-πλήρες To Satisfiability μετατρέπεται σε πολλά άλλα, π.χ. Κυκλος Hamilton Κυκλος Hamilton μετατρέπεται σε TSP Οι αναγωγές συντίθεται σε πολυωνυμικό χρόνο Αποτέλεσμα: όλα τα NP-πλήρη προβλήματα εξίσου δύσκολο να λυθούν σε πολυωνυμικό χρόνο, ή είναι όλα στο P ή κανένα! 33

Σημασία NP-πληρότητας Αν δεν βρίσκουμε αποδοτικό αλγόριθο για πρόβλημα Π, αλλά δείξουμε ότι είναι NP-πλήρες τότε έχουμε δείξει ότι κανείς άλλος στον κόσμο δεν μπορεί! 34

Κλάσεις πολυπλοκότητας P ΝP-πλήρη ΝP-δύσκολα ΜΗ-ΕΠΙΛΥΣΙΜΑ Πολυωνυμικός Εκθετικός κυρίως αντικείμενο του μαθήματος Χρόνος 35

Ευεπίλυτα και δυσεπίλυτα προβλήματα Κλάση P: EULER TOUR, REACHABILITY, SHORTEST PATHS, MINIMUM SPANNING TREE, MAX FLOW, PERFECT MATCHING, LINEAR PROGRAMMING, NP-πλήρη: SATISFIABILITY, VERTEX COVER, CLIQUE, INDEPENDENT SET, HAMILTON CYCLE, TRAVELING SALESMAN PROBLEM, 3-COLORABILITY, INTEGER PROGRAMMING, 36

Ενδιάμεση πολυπλοκότητα; ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΟΣ ΛΟΓΑΡΙΘΜΟΣ: λογάριθμος σε αριθμητική modulo Είναι στο NP, αλλά μάλλον όχι NP-πλήρη. Κομβική σημασία για σύγχρονη κρυπτογραφία: το κρυπτοσύστημα RSA, η ανταλλαγή κλειδιού Diffie- Hellman και πάρα πολλά πρωτόκολλα βασίζονται στη δυσκολία της Παραγοντοποίησης ή/και του Διακριτού Λογάριθμου. 37

Σημασία Α&Π Πολλές επαναστατικές ιδέες και εφαρμογές του καιρού μας στηρίζονται σε αλγόριθμους και πολυπλοκότητα: στο πόσο εύκολα (γρήγορα) μπορούμε να υπολογίσουμε κάποια πράγματα και στο πόσο δύσκολο είναι να υπολογίσουμε κάποια άλλα Εφαρμογές: κρυπτογραφία, εκλογές, θεωρία παιγνίων, βιολογία, big data, 38

Συμπεράσματα Είναι σημαντικό να γνωρίζουμε τι μπορούμε να κάνουμε με υπολογιστή, πώς, και πόσο καλά Αυτό θα μελετήσουμε στο μάθημα Η εξοικείωση με τις μεθοδολογίες σχεδιασμού αλγορίθμων, και ανάλυσης υπολογιστικής πολυπλοκότητας είναι απαραίτητη για να κατανοούμε τη σύγχρονη τεχνολογία και για να συμμετέχουμε στην ανάπτυξή της Τα μαθηματικά είναι πάντα επίκαιρα! 39