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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού 12.1 Συναρτήσεις και ο υπολογισμός τους 12.2 Μηχανές Turing 12.3 Καθολικές γλώσσες προγραμματισμού 12.4 Μια μη υπολογίσιμη συνάρτηση 12.5 Πολυπλοκότητα προβλημάτων 12.6 Κρυπτογραφία δημόσιου κλειδιού Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα και τις διαλέξεις προηγούμενων ετών του κ. Κουκουμπέτη 1

2 Θεωρία Υπολογισμού Τι μπορούν ή τι δε μπορούν να κάνουν οι υπολογιστές Που βρίσκεται το σύνορο μεταξύ επιλύσιμων ή μη προβλημάτων από υπολογιστή Ορισμός του συνόρου με απλές μηχανές (Turing) Προβλήματα των οποίων η λύση βρίσκεται πέρα από τις δυνατότητες των αλγορίθμων και των σημερινών (και αυριανών) υπολογιστών Μεταξύ των προβλημάτων που είναι επιλύσιμα, υπάρχουν προβλήματα των οποίων η λύση είναι τόσο περίπλοκη που πρακτικά θεωρούνται άλυτα 2

3 Συναρτήσεις Μία συνάρτηση είναι μία αντιστοιχία μεταξύ ενός συνόλου πιθανών τιμών εισόδου και ενός συνόλου τιμών εξόδου, έτσι ώστε κάθε πιθανή είσοδος να αντιστοιχεί σε μία και μοναδική έξοδο. Π.χ. Ταξινόμηση λίστας, πρόσθεση 2 αριθμών,... Υπολογίσιμη συνάρτηση είναι αυτή της οποίας η τιμή εξόδου μπορεί να προσδιοριστεί αλγοριθμικά από την τιμή εισόδου. Μπορεί να γραφεί π.χ. και σε αναλυτική μορφή, δηλ. με μαθηματικό τύπο, ή με μορφή πίνακα Μη υπολογίσιμη είναι η συνάρτηση που δεν μπορεί να προσδιοριστεί από κανένα αλγόριθμο. Δηλ. Υπάρχουν συναρτήσεις που είναι τόσο περίπλοκες που δεν υπάρχει καλά ορισμένος τρόπος, βήμα-προς-βήμα για να καθοριστεί η έξοδος βάσει των εισόδων Υπολογιστικό πρόβλημα = συνάρτηση 3

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

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

6 Άλυτα προβλήματα (μέχρι σήμερα) Η εικασία του Goldbach (1742): κάθε άρτιος αριθμός > 2 μπορεί να γραφεί σαν άθροισμα δύο πρώτων αριθμών Τελευταίο θεώρημα του Fermat (1637): (λύθηκε πριν 20 χρόνια!) δεν υπάρχουν θετικοί ακέραιοι τέτοιοι ώστε a n b n c n, n 2 a, b, c P = NP Riemann hypothesis (1859) Riemann hypothesis: ζ(s) = Σ n=1 1/n s s μιγαδικός Εκτός από s=-2, -4,., όλες οι ρίζες της ζ(s) έχουν πραγματικό μέρος 1/2 6

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

8 Τα στοιχεία μιας μηχανής Turing 8

9 Λειτουργίες μίας μηχανής Turing Αλφάβητο = πεπερασμένο σύνολο από σύμβολα Παράδειγμα: Αλφάβητο = {0,1,*} Σε κάθε κυψελίδα γράφεται ένα σύμβολο Σύνολο καταστάσεων Μηχανής: {ΕΝΑΡΞΗ, ΠΡΟΣΘΕΣΗ, ΚΡΑΤΟΥΜΕΝΟ, ΥΠΕΡΧΕΙΛΙΣΗ, ΕΠΙΣΤΡΟΦΗ, ΤΕΛΟΣ} Είσοδοι σε κάθε βήμα της μηχανής: Τωρινή Κατάσταση (μια από ένα πεπερασμένο σύνολο από καταστάσεις) Τιμή στην τρέχουσα κυψελίδα της ταινίας (εκεί που βρίσκεται τώρα η κεφαλή) Οι ενέργειες σε κάθε βήμα: Γράφει μία τιμή στην τρέχουσα κυψελίδα της ταινίας. Κινεί την κεφαλή εγγραφή/ανάγνωσης μια θέση δεξιά ή μια θέση αριστερά Αλλάζει κατάσταση 9

10 Παράδειγμα: Μια μηχανή Turing για την αύξηση μιας τιμής κατά μία μονάδα αγνοείται Αρχική Κατάσταση: ΕΝΑΡΞΗ 10

11 Church-Turing thesis Είδαμε ένα παράδειγμα συνάρτησης που είναι υπολογίσιμη κατά Turing (Turing computable) Δίνουμε είσοδο στην μηχανή Turing, βγάζει έξοδο Αύξηση της τιμής της μηχανής κατά 1 Ερώτηση: το ότι δεν υπάρχει αλγόριθμος που να λύνει μία κλάση προβλημάτων οφείλεται στο ότι το μοντέλο του υπολογιστή είναι αδύναμο; Church-Turing: όλα τα μοντέλα υπολογιστών και αλγορίθμων που υπάρχουν ή μπορεί να προταθούν στο μέλλον είναι υπολογιστικά ισοδύναμα! Μηχανή Turing 11

12 Church-Turing thesis (2) Άρα η μη-υπολογισιμότητα είναι ιδιότητα του προβλήματος, και δεν εξαρτάται από το υπολογιστικό σύστημα Church-Turing: To σύνολο των υπολογίσιμων συναρτήσεων είναι ίδιο με το σύνολο συναρτήσεων των υπολογίσιμων κατά Turing Ισοδύναμα: Μια συνάρτηση είναι υπολογίσιμη αν και μόνο αν είναι υπολογίσιμη κατά Turing 12

13 Καθολική γλώσσα προγραμματισμού Μία μηχανή Turing μπορεί να υπολογίσει κάθε υπολογίσιμη συνάρτηση Επαναπροσδιορισμός: κάθε υπολογίσιμη συνάρτηση είναι υπολογίσιμη κατά Turing. Δεν αποδεικνύεται αλλά είναι γενικά αποδεκτό. Γι αυτό το λέμε και thesis Καθολική γλώσσα προγραμματισμού είναι μία γλώσσα που μπορεί να εκφράσει ένα πρόγραμμα υπολογισμού για κάθε υπολογίσιμη συνάρτηση. Aν ένας προγραμματιστής βρει ότι ένα πρόβλημα δεν μπορεί να λυθεί με αυτή τη γλώσσα, ο λόγος δε θα οφείλεται στην γλώσσα! Απλά, θα σημαίνει ότι δεν υπάρχει αλγόριθμος για να λύσει το πρόβλημα Παραδείγματα: Η στοιχειώδης γλώσσα (Bare Bones) και η πιο δημοφιλής γλώσσα προγραμματισμού. 13

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

15 Ένα πρόγραμμα σε Στοιχειώδη Γλώσσα για τον υπολογισμό του Χ επί Y (Ζ = ΧΥ) 15

16 Άλλα Παραδείγματα Στοιχειώδους Γλώσσας Incr X; Υπολογίζει την ίδια συνάρτηση που υπολόγιζε η μηχανή Turing Άλλο παράδειγμα: 16

17 Στοιχειώδης Γλώσσα Έχει αποδειχθεί ότι η Στοιχειώδης Γλώσσα επαρκεί και μπορεί να χρησιμοποιηθεί για να εκφράσει τους αλγορίθμους για να υπολογίσουμε όλες τις συναρτήσεις που είναι υπολογίσιμες κατά Turing Συνδυάζοντας με το Turing-Church thesis: κάθε υπολογίσιμη συνάρτηση μπορεί να υπολογιστεί με ένα πρόγραμμα γραμμένο στη Στοιχειώδη Γλώσσα Η Στοιχειώδης γλώσσα είναι καθολική με την έννοια ότι, αν υπάρχει ένας αλγόριθμος που λύνει ένα πρόβλημα, το πρόβλημα μπορεί να λυθεί με ένα πρόγραμμα σε Στοιχειώδη Γλώσσα 17

18 Μια μη υπολογίσιμη συνάρτηση Θα δούμε μια συνάρτηση που δεν είναι υπολογίσιμη κατά Turing και άρα και γενικά είναι μη υπολογίσιμη Αυτό λέγεται «Το πρόβλημα του Τερματισμού» (Halting Problem) Είναι το πρόβλημα του να προβλέπουμε αν ένα πρόγραμμα θα τερματίσει ή όχι για κάποιες αρχικές συνθήκες Π.χ. Αν ξεκινήσει με Χ=0, θα τερματίσει Γενικά για οποιοδήποτε πρόγραμμα, θα αποδείξουμε ότι είναι αδύνατο να υπολογίζουμε αν θα τερματίζει ή οχι 18

19 Πρόγραμμα που γίνεται είσοδος σε άλλα προγράμματα Αυτο-αναφορά (self-reference): η ιδέα ένα αντικείμενο να αναφέρεται στον εαυτό του. Το σύνολο από bit που προκύπτει όπως παραπάνω από την αναπαράσταση του Προγράμματος σε δυαδική μορφή, αποτελεί έναν (πολύ μεγάλο) αριθμό Χ 19

20 Αυτο-αναφορά Έστω το πρόγραμμα Χ η μεταβλητή που παριστάνει την αριθμητική τιμή που προκύπτει από το πρόγραμμα (όπως πριν) Το πρόγραμμα δεν τερματίζει! Τώρα, έστω το πρόγραμμα: Χ η μεταβλητή που παριστάνει την αριθμητική τιμή που προκύπτει από το πρόγραμμα Το πρόγραμμα τερματίζει! Aυτο-τερματιζόμενο (self-terminating) πρόγραμμα: Αν εκτελεστεί με όλες τις μεταβλητές αρχικοποιημένες στην αριθμητική τιμή που προκύπτει από το πρόγραμμα, τερματίζει Δηλαδή τερματίζει αν λάβει ως είσοδό τον εαυτό του 20

21 Το πρόβλημα τερματισμού Πρόβλημα τερματισμού: είναι το πρόβλημα του καθορισμού αν ένα οποιοδήποτε Στοιχειώδες πρόγραμμα είναι αυτο-τερματιζόμενο Θα αποδείξουμε ότι δεν υπάρχει αλγόριθμος για να απαντήσουμε στο παραπάνω ερώτημα Προσοχή: Το ότι σε κάποιες ειδικές περιπτώσεις μπορούμε να καθορίζουμε αν ένα Στοιχειώδες πρόγραμμα είναι αυτο-τερματιζόμενο, δεν σημαίνει ότι λύσαμε το πρόβλημα τερματισμού 21

22 Απόδειξη μη επιλυσιμότητας του προβλήματος τερματισμού Συνάρτηση τερματισμού (halting function): Είσοδος: αριθμητική τιμή που προκύπτει από ένα πρόγραμμα Έξοδος: 1, αν το πρόγραμμα είναι αυτο-τερματιζόμενο 0, αν το πρόγραμμα δεν είναι αυτο-τερματιζόμενο Απόδειξη μέσω της μεθόδου της αντίφασης: Θα δείξουμε ότι μια υπόθεση είναι λάθος με το να δείξουμε ότι δεν μπορεί να είναι αληθής Θα αποδείξουμε ότι η συνάρτηση τερματισμού δεν είναι υπολογίσιμη Έστω ότι η συνάρτηση τερματισμού είναι υπολογίσιμη Υπάρχει Στοιχειώδες πρόγραμμα που την υπολογίζει 22

23 Απόδειξη Απόδειξη Της μη επιλυσιμότητας του πρόβληματος τερματισμού 23

24 Σύμβολα Landau f( n) O( g( n)) : f έχει την g ασυμπτωτικό άνω φράγμα όταν n, f( n) g( n) k n O( n ), f ( n) ( g( n)) : f έχει την g ασυμπτωτικό άνω και κάτωφράγμα όταν n, 2n 10n g( n) k 5 O( n ), 2 2n 1 f( n) g( n) k O(2 2, n 2 n 2 ) 2n 2 10n 5 ( n 2 ), 2nlog n 10n 5 ( nlog n) 24

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

26 Πολυπλοκότητα Πολυπλοκότητα αλγορίθμου: ποσότητα πόρων (χρόνος, μνήμη) που χρησιμοποιεί ο αλγόριθμος ασυμπτωτική πολυπλοκότητα : ο όρος που υπερισχύει 3n 2 +10n+ 3 3n 2 Q(n 2 ) n 3 n 2 n 5 (2 ) εκθετικοί και πολυωνυμικοί αλγόριθμοι πολυπλοκότητα χειρότερης, μέσης περίπτωσης Πολυπλοκότητα προβλήματος: άνω φράγμα O(g(n)), ακριβώς Θ(g(n)) Q 26

27 Παραδείγματα για την πολυπλοκότητα Παράδειγμα 1: Δυαδική αναζήτηση σε λίστα n ονομάτων με αλφαβητική ταξινόμηση: Ο(logn) Έχει αποδειχθεί ότι το πρόβλημα αναζήτησης είναι τάξης Θ(logn) Άρα, η δυαδική αναζήτηση είναι το καλύτερο που μπορεί να κάνει κανείς (βέλτιστο) Παράδειγμα 2: Ταξινόμηση λίστας n ονομάτων με τη μέθοδο ταξινόμησης με εισαγωγή: O(n 2 ) Έχει αποδειχθεί ότι το πρόβλημα της ταξινόμησης είναι της τάξης Θ(n logn) Άρα, η μέθοδος ταξινόμησης με εισαγωγή δεν είναι η βέλτιστη λύση 27

28 Παράδειγμα καλύτερης λύσης για την ταξινόμηση λίστας: MergeSort Κοινός τρόπος επίλυσης προβλημάτων: ανάγουμε το πρόβλημα στην λύση μικρότερων προβλημάτων! Διαίρει και βασίλευε (divide and conquer) Παράδειγμα: ταξινόμηση λίστας n αριθμών: module sort(list) if n>1 then {L1 = firsthalf(list); L2 = secondhalf(list); L1:= sort(l1); L2:= sort(l2); return L := merge(l1,l2)} 28

29 Μέθοδος MergeSort 29

30 Aλγόριθμος ταξινόμησης συγχώνευσης (MergeSort) και πολυπλοκότητα logn O( nlog n) n n Σε κάθε επίπεδο του δυαδικού δέντρου, χρειάζεται η συγχώνευση (merge) λιστών Η συγχώνευση μιας λίστας μήκους m με μια λίστα μήκους n είναι Ο(m+n) 30

31 Aλγόριθμος ταξινόμησης συγχώνευσης (MergeSort) και πολυπλοκότητα Σε κάθε επίπεδο του δέντρου, χρειάζεται συγχώνευση (merge) λιστών Η συγχώνευση μιας λίστας μήκους m με μια λίστα μήκους n είναι Ο(m+n) γιατί χρειάζονται το πολύ m+n συγκρίσεις Σε κάθε επίπεδο του δέντρου πάντα υπάρχουν συνολικά n στοιχεία Στο 2 ο επίπεδο χρειάζεται να γίνουν (n/2) + (n/2) = n συγκρίσεις για να γίνει η συγχώνευση Στο 3 ο επίπεδο χρειάζεται να γίνουν 2[(n/4) + (n/4)] = n συγκρίσεις Κ.ο.κ Στο τελευταίο επίπεδο του δέντρου, γίνεται σύγκριση λίστας με μήκος < 2 και άρα δε χρειάζονται καν συγκρίσεις Συμπέρασμα: σε κάθε επίπεδο του δέντρου χρειάζονται n το πολύ συγκρίσεις Ο αριθμός των επιπέδων του δυαδικού δέντρου είναι lοgn (στρογγυλεμένο στον επόμενο ακέραιο αν το n δεν είναι δύναμη του 2) Τελικά: η MergeSort είναι τάξης Ο(n logn) Έχει αποδειχθεί ότι είναι και Θ(n logn) είναι η καλύτερη λύση από άποψη πολυπλοκότητας 31

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

33 Χρόνος εκτέλεσης αλγορίθμων μέγεθος εισόδου n log n n 2 n x n 2 πολυπλοκότητα αλγορίθμου sec 100 7x x10 11 αιώνες * x * 1 βήμα = 1 nsec x * x ώρες 33

34 Πολυωνυμικά προβλήματα Ένα πρόβλημα λέγεται πολυωνυμικό (polynomial) αν είναι της τάξης Ο(f(n)) όπου f(n) είναι είτε πολυώνυμο είτε είναι άνω φραγμένο από πολυώνυμο Το σύνολο των πολυωνυμικών προβλημάτων είναι γνωστό ως κλάση προβλημάτων P To να ανήκει ένα πρόβλημα στην κλάση προβλημάτων P είναι σημαντικό, γιατί σημαίνει ότι έχει πρακτική λύση Δυσεπίλυτα (intractable) (ή μη-εφικτά, infeasible) είναι όλα τα προβλήματα που είναι πολύ πολύπλοκα για να επιλυθούν πρακτικά Οι επιστήμονες υπολογιστών θεωρούν την τάξη Ρ ως το όριο μεταξύ δισεπίλυτων και αυτών που έχουν πρακτική λύση. Δείτε τι συμβαίνει π.χ. για το πρόβλημα που είναι Θ(2 n ) Το 2 n δεν μπορεί να είναι φραγμένο από ένα πολυώνυμο Παράδειγμα: Η εύρεση όλων των δυνατών υποσυνόλων ενός συνόλου με n στοιχεία είναι πολυπλοκότητας Θ(2 n ) 34

35 Μη εφικτά προβλήματα Προβλήματα μη υπολογίσιμα σε πολυωνυμικό χρόνο Το πρόβλημα της συσκευασίας (bin packing problem) w, w2,, Ν κιβώτια βάρους μπορούν να μεταφερθούν από Κ φορτηγά που το καθένα μπορεί να σηκώσει το πολύ W; 1 w N W 14 W 14 35

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

37 Το πρόβλημα του πλανόδιου πωλητή Πολύ δύσκολο, χρειάζεται να εξετάσω όλα τα πιθανά μονοπάτια και να εξετάσω αν το μήκος κάποιου από αυτά είναι < Κ Μη πολυωνυμικός χρόνος (διότι ο αριθμός των πιθανών μονοπατιών αυξάνει εκθετικά με το χρόνο) Παρατήρηση: αν υπάρχει κάποιο τέτοιο μονοπάτι και το επιλέξουμε πρώτο, θα βρω τη λύση γρήγορα! Θεωρείστε αλγορίθμους του τύπου: Είναι μη ντετερμινιστικός (μη αιτιοκρατικός) αλγόριθμος (λόγω της 1 ης εντολής) Είναι αρκετά γρήγορος αλγόριθμος (πολυωνυμικού χρόνου), γιατί ο χρόνος εκτέλεσης είναι ανάλογος του αριθμού των πόλεων Αλλά χρειάζεται τύχη! 37

38 Το πρόβλημα του πλανόδιου πωλητή (2) Ανήκει στην κατηγορία προβλημάτων για τα οποία υπάρχει μη αιτιοκρατικός αλγόριθμος που εκτελείται σε πολυωνυμικό χρόνο Αλλά δεν έχει βρεθεί κάποιος ντετερμιστικός αλγόριθμος πολυωνυμικού χρόνου Ένα πρόβλημα που μπορεί να λυθεί σε πολυωνυμικό χρόνο με ένα μη ντετερμινιστικό αλγόριθμο λέγεται μη ντετερμιστικό πολυωνυμικό πρόβλημα (Nondeterministic Polynomial, NP) Η κλάση αυτών των προβλημάτων λέγεται NP 38

39 Το πρόβλημα Knapsack Μεγιστοποίηση της συνολικής αξίας των αντικειμένων που μπορεί να χωρέσουν μέσα στο σάκο του κλέφτη 39

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

41 Προβλήματα NP-Complete Tο παραπάνω ερώτημα οδήγησε στην ανακάλυψη μιας ειδικής κατηγορίας προβλημάτων ανάμεσα σε αυτά της τάξης NP ΝΡ-Complete: Μια λύση σε πολυωνυμικό χρόνο για οποιοδήποτε από αυτά θα έδινε μια λύση σε πολυωνυμικό χρόνο για όλα τα άλλα προβλήματα της τάξης ΝΡ Δηλ. Αν υπάρχει ένας ντετερμινιστικός αλγόριθμος που να λύνει κάποιο από τα προβλήματα της τάξης NP-Complete, τότε αυτός ο αλγόριθμος μπορεί να επεκταθεί για να λύσει οποιοδήποτε άλλο πρόβλημα στην τάξη NP, δηλ. αυτό θα σημάνει ότι P = NP!! Πρόβλημα πλανόδιου πωλητή: NP-Complete 41

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

43 Προβλήματα NP-complete NP-complete: υποσύνολο των πιο δύσκολων προβλημάτων στο NP Κάθε πρόβλημα στο NP μετασχηματίζεται με πολυωνυμικό κόστος σε κάποιο πρόβλημα στο NPcomplete Εάν λυθεί σε πολυωνυμικό χρόνο ένα πρόβλημα στο NPcomplete τότε λύνονται πολυωνυμικά όλα τα προβλήματα στο NP ΠΑ P2 P1 P3 NP-complete P4 P7 NP P9 Πολυωνυμική αναγωγή (ΠΑ): Το πρόβλημα P2 το κωδικοποιώ σαν μια μερική περίπτωση του P1. Λύνω το P1, και από την λύση του κατασκευάζω με πολυωνυμικό κόστος την λύση του P2 43

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

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

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

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

48 Αναγωγή του 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 48 Κατασκευή γράφου ενώνοντας αυτές τις μεταβλητές που δεν μπορεί να είναι 1 ταυτόχρονα

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

50 Κρυπτογραφία Δημόσιου Κλειδιού Κρυπτογραφία Δημοσίου Κλειδιού (Public Key Cryptography) Βασίζεται στην δυσκολία του να βρεθούν οι παράγοντες ενός ακεραίου αριθμού Δηλ. οι αριθμοί που τον διαιρούν Κλειδί (key): Μια τιμή που χρησιμοποιείται για την κρυπτογράφηση ή αποκρυπτογράφηση ενός μηνύματος Δημόσιο κλειδί (public key): Χρησιμοποιείται για την κρυπτογράφηση μηνυμάτων Ιδιωτικό κλειδί (private key): Χρησιμοποιείται για την αποκρυπτογράφηση μηνυμάτων RSA: Ένας δημοφιλής κρυπτογραφικός αλγόριθμος δημόσιου κλειδιού Βασίζεται στη (θεωρούμενη) δυσεπιλυσιμότητα του προβλήματος παραγοντοποίησης μεγάλων αριθμών 50

51 Κρυπτογραφία δημόσιου κλειδιού (2) 51

52 Βασικά Στοιχεία Αν οι p, q είναι πρώτοι αριθμοί, και m ακέραιος μεταξύ 0 και pq, τότε: Επιλέγω p,q και έστω n = pq Επιλέγω e, d θετικούς ακεραίους ώστε e d = k(p-1)(q-1) + 1 για κάποιο θετικό ακέραιο k Οι τιμές e, n είναι τα κλειδιά κρυπτογράφησης (δημόσια κλειδιά) Οι τιμές d, n είναι τα κλειδιά αποκρυπτογράφησης (ιδιωτικά κλειδιά) n=91, e = 5 n = 91, d=29 Δίνω τα δημόσια κλειδιά σε όποιον θέλει να στείλει μηνύματα (σε μένα) Κρατάω τα ιδιωτικά κλειδιά για μένα (και τις τιμές p,q) 52

53 Δημιουργία ενός συστήματος κρυπτογράφησης δημοσίου κλειδιού RSA 53

54 Παράδειγμα Κρυπτογράφησης: Κρυπτογράφηση του Μηνύματος Κλειδιά κρυπτογράφησης: n = 91 and e = = e = 23 5 = έχει υπόλοιπο = Επομένως, η κρυπτογραφημένη εκδοχή του είναι το

55 Παράδειγμα Αποκρυπτογράφησης Κλειδιά αποκρυπτογράφησης: d = 29, n = 91 Έστω ότι θέλω να αποκρυπτογραφήσω την κρυπρογραφημένη πληροφορία: = d = 4 29 = έχει υπόλοιπο = Επομένως, η αποκρυπτογραφημένη εκδοχή του 100 είναι το

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

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

Διαβάστε περισσότερα

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

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ : Θεωρία υπολογισµών. Συναρτήσεις και ο υπολογισµός τους. Μηχανές Turig.3 Καθολικές γλώσσες προγραµµατισµού.4 Μια µη υπολογίσιµη συνάρτηση.5 Πολυπλοκότητα προβληµάτων.6 Κρυπτογραφία δηµόσιου κλειδιού.

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού Συναρτήσεις και υπολογισιμότητά τους Μηχανές Turig Στοιχειώδης γλώσσα προγραμματισμού Μη υπολογίσιμη συνάρτηση Πολυπλοκότητα προβλημάτων Προβλήματα κλάσης P, NP, NP- Complete

Διαβάστε περισσότερα

CSC 314: Switching Theory

CSC 314: Switching Theory CSC 314: Switching Theory Course Summary 9 th January 2009 1 1 Θέματα Μαθήματος Ερωτήσεις Τι είναι αλγόριθμος? Τι μπορεί να υπολογιστεί? Απαντήσεις Μοντέλα Υπολογισμού Δυνατότητες και μη-δυνατότητες 2

Διαβάστε περισσότερα

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

Κλάσεις Πολυπλοκότητας Κλάσεις Πολυπλοκότητας Παύλος Εφραιμίδης pefraimi ee.duth.gr Κλάσεις Πολυπλοκότητας 1 Οι κλάσεις πολυπλοκότητας P και NP P: Polynomial ΗκλάσηP περιλαμβάνει όλα τα υπολογιστικά προβλήματα που μπορούν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα αναζήτησης είναι ένα πρόβλημα στο

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κλάσεις P, NP NP-πληρότητα 15 Απριλίου 2008 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να περιγράψουμε με

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα Τι θα κάνουμε σήμερα Εισαγωγικά Χρονική Πολυπλοκότητα (7) Κλάση P (7.2) Κλάση ΝΡ (7.3) ΝΡ-πληρότητα (7.4) Χωρική

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με

Διαβάστε περισσότερα

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

Θεωρία Υπολογισµού Theory of Computation 1 ο µέρος Θεωρία Υπολογισµού Theory of Computation 1 Υπολογισιµότητα - Computability o Υπολογισιµότητα (Computability) n Τι µπορεί να υπολογιστεί και τι όχι; o Υπολογιστική πολυπλοκότητα (Computational

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

Διαβάστε περισσότερα

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity CSC 314: Switching Theory Chapter 7, 8 : Time, Space Complexity 12 December 2008 1 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτεμπορούμεναπεριγράψουμεμεένααλγόριθμο μπορεί να

Διαβάστε περισσότερα

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1, Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιµότητα Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβληµα αναζήτησης (search problem) Ένα πρόβληµα αναζήτησης είναι ένα πρόβληµα στο

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 14. Χρονική Πολυπλοκότητα 17, 20, 24 Απριλίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να

Διαβάστε περισσότερα

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανεπίλυτα Προβλήματα από τη Θεωρία Γλωσσών (5.1) To Πρόβλημα της Περάτωσης Το Πρόβλημα της Κενότητα

Διαβάστε περισσότερα

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 3η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

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

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 1η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης

Διαβάστε περισσότερα

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί Αριθμήσιμα σύνολα Μαθηματικά Πληροφορικής 5ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Ορισμός Πόσα στοιχεία έχει το σύνολο {a, b, r, q, x}; Οσα και το σύνολο {,,, 4, 5} που είναι

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μέτρηση της Πολυπλοκότητας (7.1) Η κλάση Ρ (7.2) Η κλάση ΝΡ (7.3) ΝΡ-πληρότητα (7.4)

Διαβάστε περισσότερα

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

Κλάση NP, NP-Complete Προβλήματα Κλάση NP, NP-Complete Προβλήματα Βαγγέλης ούρος douros@aueb.gr 1 11/6/2012 Αλγόριθμοι, Εαρινό Εξάμηνο 2012, Φροντιστήριο #14 Προβλήματα Απόφασης & Βελτιστοποίησης 2 Πρόβλημα Απόφασης: Κάθε πρόβλημα που

Διαβάστε περισσότερα

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

t M (w) T ( w ) O( n) = O(n 2 ) Κεφάλαιο 9 Υπολογιστική Πολυπλοκότητα Σύνοψη Πέρα από το ερώτημα του αν για ένα πρόβλημα υπάρχει Μηχανή Turing, που το επιλύει, μας απασχολεί επίσης και το ερώτημα του αν ένα πρόβλημα είναι «πρακτικά»

Διαβάστε περισσότερα

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

Λύσεις 4ης Σειράς Ασκήσεων Λύσεις 4ης Σειράς Ασκήσεων Άσκηση 1 Αναγάγουμε τν Κ 0 που γνωρίζουμε ότι είναι μη-αναδρομική (μη-επιλύσιμη) στην γλώσσα: L = {p() η μηχανή Turing Μ τερματίζει με είσοδο κενή ταινία;} Δοσμένης της περιγραφής

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνο ΣHMΜY Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνο ΣHMΜY 2η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Ενότητα 4 Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Υπολογίσιμες Συναρτήσεις Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις

Διαβάστε περισσότερα

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

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

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων. HY118-Διακριτά Μαθηματικά Θεωρία γράφων/ γραφήματα Τρίτη, 15/05/2018 Αντώνης Α. Αργυρός e-mail: argyros@csd.uoc.gr 16-May-18 1 1 16-May-18 2 2 Τι έχουμε δει μέχρι τώρα Κατευθυνόμενοι μη κατευθυνόμενοι

Διαβάστε περισσότερα

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity CSC 314: Switching Theory Chapter 7, 8 : Time, Space Complexity 19 December 2008 1 1 Κλάση NP 2 Μη-Ντετερμινιστικές Μηχανές Turing: Eίναι δυνατόν σε μια συνολική κατάσταση να υπάρχουν πολλές δυνατές επόμενες

Διαβάστε περισσότερα

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Πιο κάτω υπάρχει ένα σχεδιάγραμμα που τοποθετεί τις κλάσεις των κανονικών, ασυμφραστικών, διαγνώσιμων και αναγνωρίσιμων γλωσσών μέσα στο σύνολο όλων των γλωσσών. Ακολουθούν

Διαβάστε περισσότερα

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ 2η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης

Διαβάστε περισσότερα

Chapter 7, 8 : Completeness

Chapter 7, 8 : Completeness CSC 314: Switching Theory Chapter 7, 8 : Completeness 19 December 2008 1 1 Αναγωγές Πολυωνυμικού Χρόνου Ορισμός. f: Σ * Σ * ονομάζεται υπολογίσιμη σε πολυνωνυμικό χρόνο αν υπάρχει μια πολυωνυμικά φραγμένη

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

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

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες () Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Πεπερασμένα Αυτόματα (Κεφάλαιο., Sipser) Ορισμός πεπερασμένων αυτομάτων και ορισμός του

Διαβάστε περισσότερα

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

Φροντιστήριο 11 Λύσεις Άσκηση 1 Φροντιστήριο 11 Λύσεις Να αποδείξετε ότι η κλάση Ρ είναι κλειστή ως προς τις πράξεις της ένωσης, της συναρμογής και του συμπληρώματος. Θα πρέπει να δείξουμε ότι: (α) Ένωση: Αν οι Λ 1 και Λ 2 είναι

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

Διαβάστε περισσότερα

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

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G,k η G είναι μια ασυμφραστική γραμματική η οποία παράγει κάποια λέξη 1 n όπου n k } (β) { Μ,k η Μ είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 12: Μη ντετερμινιστικές μηχανές Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 4: Αναδρομικές σχέσεις και ανάλυση αλγορίθμων Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { R η R είναι μια κανονική έκφραση η οποία παράγει μια μη πεπερασμένη γλώσσα} (β) { G η G είναι μια CFG η οποία

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή

Διαβάστε περισσότερα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { D το D είναι ένα DFA το οποίο αποδέχεται όλες τις λέξεις στο Σ * } (α) Για να διαγνώσουμε το πρόβλημα μπορούμε

Διαβάστε περισσότερα

Συνδυαστική Βελτιστοποίηση

Συνδυαστική Βελτιστοποίηση Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 1 Άγγελος Σιφαλέρας sifalera@uom.gr 4 η Διάλεξη Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 2 Knapsack Problem, (1/9) Ένας επενδυτής διαθέτει ένα χρηματικό

Διαβάστε περισσότερα

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΔΥΣΚΟΛΙΑ ΣΤΗΝ ΠΡΟΣΕΓΓΙΣΙΜΟΤΗΤΑ ΔΥΣΚΟΛΙΑ ΣΤΗΝ ΠΡΟΣΕΓΓΙΣΙΜΟΤΗΤΑ Επιμέλεια : Γεωργίου Κωστής Παρουσίαση στα πλαίσια του μαθήματος: Δίκτυα και πολυπλοκότητα Φεβρουάριος 004 μπλ Κίνητρα για τη μελέτη της μη προσεγγισιμότητας Ο πληρέστερος

Διαβάστε περισσότερα

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. α. Να βάλετε σε αύξουσα σειρά μεγέθους τις παρακάτω συναρτήσεις χρονικής πολυπλοκότητας αλγορίθμων: nlogn, n logn,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το

Διαβάστε περισσότερα

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνοσεμφε 1η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού Διδάσκοντες Θεωρία: Στάθης Ζάχος, Άρης Παγουρτζής Εργαστήριο: Δώρα Σούλιου Βοηθός διδασκαλίας: Θανάσης

Διαβάστε περισσότερα

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

Ασκήσεις (2) Άσκηση 1 Άσκηση 1 Ασκήσεις () Εισαγωγή στην Ανάλυση Αλγορίθμων Υποθέστε ότι συγκρίνουμε την υλοποίηση της ταξινόμησης με εισαγωγή και της ταξινόμησης με συγχώνευση στον ίδιο υπολογιστή. Για εισόδους μεγέθους n,

Διαβάστε περισσότερα

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο ΓΕΝΙΚΑ ΠΕΡΙ ΑΝΙΣΩΣΕΩΝ Έστω f σύνολο Α, g Α ΒΑΘΜΟΥ είναι δύο παραστάσεις μιας μεταβλητής πού παίρνει τιμές στο Ανίσωση με έναν άγνωστο λέγεται κάθε σχέση της μορφής f f g g ή, η οποία αληθεύει για ορισμένες

Διαβάστε περισσότερα

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

HY118-Διακριτά Μαθηματικά. Τι είδαμε την προηγούμενη φορά. Θεωρία γράφων / γραφήματα. 25 -Γράφοι. ΗΥ118, Διακριτά Μαθηματικά Άνοιξη 2017 HY118-Διακριτά Μαθηματικά Τι είδαμε την προηγούμενη φορά Παρασκευή, 12/05/2017 Αντώνης Α. Αργυρός e-mail: argyros@csd.uoc.gr Υπογράφημα Συμπληρωματικά γραφήματα Ισομορφισμός γράφων Υπολογιστική πολυπλοκότητα

Διαβάστε περισσότερα