Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων"— Μεταγράφημα παρουσίασης:

1 Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων
Λουκάς Γεωργιάδης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAAAA

2 Βασικές έννοιες και εφαρμογές
Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης δεδομένων Μερικές εφαρμογές… Βιολογία: χαρτογράφηση ανθρώπινου γονιδιώματος, δίπλωμα πρωτεϊνών,… Διαδίκτυο: αναζήτηση, δρομολόγηση πακέτων,… Υπολογιστές: σχεδιασμός VLSI, μεταγλωττιστές,… Ασφάλεια: ηλεκτρονικό εμπόριο, ασφαλής μετάδοση δεδομένων,… Βιομηχανία: κατανομή πόρων, βελτιστοποίηση παραγωγής,… Τηλεπικοινωνίες: κωδικοποίηση, επεξεργασία σημάτων,…

3 Παράδειγμα: Δρομολόγηση

4 Παράδειγμα: Υπολογιστική όραση
Εικόνα από

5 Παράδειγμα: Κρυπτογράφηση
κρυπτογράφηση αποκρυπτογράφηση Eavesdropper Bob Alice TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAA

6 Παράδειγμα: Κρυπτογράφηση
Κρυπτοσύστημα Δημόσιου Κλειδιού κρυπτογράφηση αποκρυπτογράφηση Eavesdropper Bob Alice Κάθε συμμετέχων έχει ένα δημόσιο κλειδί και ένα κρυφό κλειδί TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAA

7 Περιεχόμενα Αντισταθμιστική ανάλυση αλγορίθμων και δομών δεδομένων
Προβλήματα βελτιστοποίησης σε δίκτυα Τυχαιοποιημένοι αλγόριθμοι Δομές δεδομένων και μοντέλα μνήμης Αριθμοθεωρητικοί αλγόριθμοι Άμεσοι αλγόριθμοι NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι

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

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

10 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Παράδειγμα : Δομές ένωσης-εύρεσης (union-find) Υποστηρίζουν τις παρακάτω λειτουργίες επί ενός συνόλου αντικειμένων : ένωση(α,β) : Αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση(α) : Επιστρέφει το όνομα του συνόλου που περιέχει το αντικείμενο α ένωση(α,β)

11 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Παράδειγμα : Δομές ένωσης-εύρεσης (union-find) Υποστηρίζουν τις παρακάτω λειτουργίες επί ενός συνόλου αντικειμένων : ένωση(α,β) : Αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση(α) : Επιστρέφει το όνομα του συνόλου που περιέχει το αντικείμενο α Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» 1 4 4 2 3 6 5 7 ένωση(3,6) 1 6 5 7 8 2 3 8 4 4 1 6 5 7 εύρεση(2) 2 1 6 5 7 2 3 8 3 8

12 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» Υποθέτουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί Χρησιμοποιούμε πίνακες και μεγέθους Αρχικοποίηση : για Αρχικά κάθε αντικείμενο αποτελεί ένα ξεχωριστό σύνολο μεγέθους 1 1 2 3 4 5 6 7 8 Κάθε σύνολο έχει ένα αντιπρόσωπο. Αν το αντικείμενο k είναι αντιπρόσωπος τότε ισχύει ότι και το σύνολο έχει αντικείμενα

13 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» Υποθέτουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί Χρησιμοποιούμε πίνακες και μεγέθους δείκτης σε αντικείμενο του συνόλου που περιέχει το k αριθμός αντικειμένων του συνόλου με αντιπρόσωπο k εύρεση(i) : Ξεκινώντας από το i ακολουθούμε τους δείκτες μέχρι να βρούμε αντικείμενο j τέτοιο ώστε Επιστρέφουμε τo j. ένωση(i,j) : Εκτελούμε p=εύρεση(i) και q=εύρεση(j). Αν το σύνολο του q έχει περισσότερα αντικείμενα από το σύνολο του p θέτουμε Διαφορετικά θέτουμε

14 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» void find(int i) { int j = i; while (j != parent[j]) j = parent[j]; return j; } void union(int i, int j) { int p = find(i); int q = find(j); if (p == q) return; if (size[q] > size[p]) { parent[p] = q; size[q] += size[p]; } else { parent[q] = p; size[p] += size[q];

15 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 2 3 4 5 6 7 8

16 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 3 4 5 6 7 8 2

17 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 4 5 6 7 8 2 3

18 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 4 5 6 7 8 2 3

19 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 4 5 6 7 2 3 8

20 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 4 5 7 2 3 6 8

21 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 4 7 2 3 6 5 8

22 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 1 4 2 3 6 5 7 8

23 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 4 1 6 5 7 2 3 8

24 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 4 1 6 5 7 2 3 8

25 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (1,2) (2,3) (1,3) (7,8) (4,6) (4,5) (6,7) (3,6) (5,7) (4,7) δάσος ένωσης-εύρεσης 4 1 6 5 7 2 3 8

26 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) 1 3 5 7 2 4 6 8

27 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) ένωση(1,3), ένωση(5,7) 1 5 2 3 6 7 4 8

28 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) ένωση(1,3), ένωση(5,7) ένωση(1,5) 1 2 3 5 4 6 7 8

29 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» Ομοίως, για ένωση(9,10), ένωση(11,12), ένωση(13,14), ένωση(15,16) ένωση(9,11), ένωση(13,15) ένωση(9,13) 1 9 2 3 5 10 11 13 4 6 7 12 14 15 8 16

30 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ένωση(1,9) 1 2 3 5 9 4 6 7 10 11 13 8 12 14 15 16

31 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης» ο μέγιστος αριθμός των δεικτών μέχρι τη ρίζα είναι 1 2 3 5 9 4 6 7 10 11 13 8 12 14 15 16

32 δημιουργεί δέντρα με ύψος το πολύ
Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» Ιδιότητα: Για αντικείμενα, ο αλγόριθμος σταθμισμένης ένωσης δημιουργεί δέντρα με ύψος το πολύ

33 δημιουργεί δέντρα με ύψος το πολύ
Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» Ιδιότητα: Για αντικείμενα, ο αλγόριθμος σταθμισμένης ένωσης δημιουργεί δέντρα με ύψος το πολύ Απόδειξη: Με επαγωγή. Για ισχύει αφού Έστω ότι μια πράξη ένωσης συνδυάζει σύνολα Α και Β με μέγεθος B Ο αριθμός των δεικτών έως τη ρίζα του δέντρου για τα στοιχεία του A A είναι

34 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» 1 1 εύρεση(16) 2 3 5 9 2 3 5 9 13 15 16 4 6 7 10 11 13 4 6 7 10 11 14 8 12 14 15 8 12 16

35 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Υποθέτουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί Χρησιμοποιούμε πίνακες και μεγέθους δείκτης σε αντικείμενο του συνόλου που περιέχει το k αριθμός αντικειμένων του συνόλου με αντιπρόσωπο k εύρεση(i) : Ξεκινώντας από το i ακολουθούμε τους δείκτες μέχρι να βρούμε αντικείμενο j τέτοιο ώστε Θέτουμε για κάθε αντικείμενο k που συναντήσαμε στη διαδρομή μέχρι το j. Επιστρέφουμε τo j. ένωση(i,j) : Εκτελούμε p=εύρεση(i) και q=εύρεση(j). Αν το σύνολο του q έχει περισσότερα αντικείμενα από το σύνολο του p θέτουμε Διαφορετικά θέτουμε

36 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Χρόνος χειρότερης περίπτωσης για μία πράξη εύρεσης ή ένωσης = 1 2 3 5 9 ύψος 4 6 7 10 11 13 8 12 14 15 16

37 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Χρόνος χειρότερης περίπτωσης για μία πράξη εύρεσης ή ένωσης = Αλλά : Συνολικός χρόνος εκτέλεσης m πράξεων εύρεσης-ένωσης = Μέσος χρόνος εκτέλεσης για μία πράξη εύρεσης ή ένωσης = σχεδόν σταθερός χρόνος ανά πράξη

38 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων
Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» Η συνάρτηση Ackerman ορίζεται ως εξής Η συνάρτηση είναι αντίστροφη της αυξάνει με πάρα πολύ αργό ρυθμό! Π.χ για

39 Επισκόπηση Προβλήματα βελτιστοποίησης σε δίκτυα
Πολλά σημαντικά προβλήματα μπορούν να μοντελοποιηθούν ως προβλήματα σε δίκτυα (γραφήματα). Παράδειγμα: Ροή δικτύου 10/19 4/8 6/6 0/7 2/3 8/10 6/10 0/5 0/2 10/11

40 Επισκόπηση Προβλήματα βελτιστοποίησης σε δίκτυα
Πολλά σημαντικά προβλήματα μπορούν να μοντελοποιηθούν ως προβλήματα σε δίκτυα (γραφήματα). Επιλογή κοντινότερων ή συντομότερων διαδρομών Μεταφορά υλικών σε οδικό δίκτυο ή δεδομένων σε τηλεπικοινωνιακό δίκτυο Χρονοπρογραμματισμός – Κατανομή πόρων Έλεγχος ροής προγραμμάτων και βελτιστοποιήσεις

41 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Χρησιμοποιούν τυχαίες επιλογές με σκοπό να πετύχουν καλή απόδοση στη μέση περίπτωση. Παράδειγμα : Ταξινόμηση quicksort χρόνος χειρότερης περίπτωσης αναμενόμενος χρόνος Χρησιμοποιεί την τεχνική του «διαίρει και βασίλευε». Τα στοιχεία του πίνακα αναδιατάσσονται ώστε για κάποιο i να ισχύουν το a[i] είναι στην τελική του θέση a[j] ≤ a[i] για j=l,l+1,…,i-1 a[j] ≥ a[i] για j=i+1,i+1,…,r Η ίδια διαδικασία χρησιμοποιείται για την αριστερή και τη δεξιά υποακολουθία. l r l i r

42 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

43 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

44 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

45 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

46 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

47 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

48 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

49 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

50 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 15 6 91 32 29 4 11 4 2 6 7 11 20 88 75 15 15 43 91 32 29 12 50 4 2 6 7 20 12 29 15 15 43 32 50 75 88 91 4 2 6 20 12 29 15 15 32 43 75 88 91 2 4 15 12 15 20 29 75 88

51 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

52 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

53 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

54 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort 12 2 43 15 50 20 88 75 7 6 91 32 29 4 11

55 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort Χειρότερη περίπτωση: Κάθε κλήση αφαιρεί μόνο ένα στοιχείο. Χρόνος εκτέλεσης:

56 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort Καλύτερη περίπτωση: Η ακολουθία χωρίζεται στη μέση. Χρόνος εκτέλεσης:

57 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms)
Ταξινόμηση quicksort χρόνος επιτυγχάνεται κατά μέσο όρο όταν επιλέγουμε ένα τυχαίο στοιχείο του πίνακα ως στοιχείο διαμέρισης.

58 Επισκόπηση Άμεσοι αλγόριθμοι (online algorithms)
Είναι αλγόριθμοι που πραγματοποιούν υπολογισμούς χωρίς να ξέρουν ολόκληρη την ακολουθία εισόδου εκ των πρότερων.

59 Επισκόπηση Άμεσοι αλγόριθμοι (online algorithms)
Είναι αλγόριθμοι που πραγματοποιούν υπολογισμούς χωρίς να ξέρουν ολόκληρη την ακολουθία εισόδου εκ των πρότερων. Π.χ., αλγόριθμοι διαχείρισης κύριας μνήμης Έχουμε Μ σελίδες αποθηκευμένες στο δίσκο και η κύρια μνήμη μας έχει χωρητικότητα Ν σελίδων, όπου Μ>Ν. Πως αποφασίζουμε ποίες σελίδες αποθηκεύονται στην κύρια μνήμη; Πως ορίζουμε την απόδοση ενός αλγόριθμου;

60 Επισκόπηση Άμεσοι αλγόριθμοι (online algorithms)
Είναι αλγόριθμοι που πραγματοποιούν υπολογισμούς χωρίς να ξέρουν ολόκληρη την ακολουθία εισόδου εκ των πρότερων. Λόγος Ανταγωνιστικότητας Συγκρίνουμε την απόδοση του online αλγόριθμου με την απόδοση του βέλτιστου offline αλγόριθμου. Ο βέλτιστος offline αλγόριθμος γνωρίζει ολόκληρη την ακολουθία εισόδου και επιτυγχάνει την καλύτερη δυνατή απόδοση.

61 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αλγόριθμος του Ευκλείδη για υπολογισμό του μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι int Euclid(int x, int y) { if y==0 return x; return Euclid(y, x%y); } Ευκλείδης (300 πΧ)

62 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αλγόριθμος του Ευκλείδη για υπολογισμό του μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι int Euclid(int x, int y) { if y==0 return x; return Euclid(y, x%y); } Παράδειγμα Ευκλείδης (300 πΧ) Euclid (128,40)= Euclid (40,8)= Euclid (8,0)= 8

63 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αλγόριθμος του Ευκλείδη για υπολογισμό του μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι int Euclid(int x, int y) { if y==0 return x; return Euclid(y, x%y); } Ιδιότητα: Αν τότε

64 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αλγόριθμος του Ευκλείδη για υπολογισμό του μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι int Euclid(int x, int y) { if y==0 return x; return Euclid(y, x%y); } Ιδιότητα: Αν τότε y x/2 x x mod y x/2 y x x mod y

65 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αλγόριθμος του Ευκλείδη για υπολογισμό του μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι int Euclid(int x, int y) { if y==0 return x; return Euclid(y, x%y); } Ιδιότητα: Αν τότε Απόδειξη:

66 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αλγόριθμος του Ευκλείδη για υπολογισμό του μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι int Euclid(int x, int y) { if y==0 return x; return Euclid(y, x%y); } Ιδιότητα: Αν τότε χρειάζονται αναδρομικές κλήσεις για αριθμούς των bits

67 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Αριθμητική modulo

68 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Έλεγχος Πρώτευσης Πως μπορούμε να ελέγξουμε αποδοτικά εάν ένας ακέραιος είναι πρώτος; Συνάρτηση κατανομής πρώτων αριθμών πλήθος πρώτων αριθμών Θεώρημα των πρώτων αριθμών Ένας τυχαία επιλεγμένος αριθμός έχει πιθανότητα να είναι πρώτος Απλοϊκός έλεγχος πρώτευσης : Επιχειρούμε να διαιρέσουμε το με κάθε ακέραιο

69 Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (number theoretic algorithms)
Έλεγχος Ψευδοπρώτευσης Εάν ο είναι σύνθετος αλλά ικανοποιεί την σχέση τότε ονομάζεται ψευδοπρώτος ως προς βάση Εάν για κάθε είναι πρώτος Γρήγορος έλεγχος : Επιλέγουμε και ελέγχουμε αν Αν δεν ισχύει δηλώνουμε ότι σύνθετος υπάρχει (μικρή) πιθανότητα σφάλματος Διαφορετικά δηλώνουμε ότι πρώτος

70 Επισκόπηση Δομές δεδομένων και μοντέλα μνήμης
Πολλές εφαρμογές καλούνται να διαχειριστούν ένα μεγάλο όγκο δεδομένων που δε χωρά στην κύρια μνήμη ενός υπολογιστή. Σε εφαρμογές αυτού του τύπου χρειαζόμαστε δομές δεδομένων που να διαχειρίζονται αποτελεσματικά την επικοινωνία μεταξύ της (γρήγορης) εσωτερικής μνήμης και της (αργής) εξωτερικής μνήμης.

71 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Πολυωνυμικός χρόνος όπου σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό χρόνο

72 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Υπάρχουν προβλήματα που δεν επιδέχονται λύση σε πολυωνυμικό χρόνο και επομένως δεν ανήκουν στην κλάση Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που είναι άλυτα (δεν επιλύονται με κανένα αλγόριθμο – π.χ. το HALTING πρόβλημα)

73 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Υπάρχουν προβλήματα που δεν επιδέχονται λύση σε πολυωνυμικό χρόνο και επομένως δεν ανήκουν στην κλάση Υπάρχει μία κατηγορία σημαντικών προβλημάτων για τα οποία δεν γνωρίζουμε αν επιδέχονται λύση σε πολυωνυμικό χρόνο Υπάρχουν προβλήματα που είναι άλυτα (δεν επιλύονται με κανένα αλγόριθμο – π.χ. το HALTING πρόβλημα)

74 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Μονοπάτι Hamilton Μας δίνεται γράφημα : υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά;

75 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Μονοπάτι Hamilton Μας δίνεται γράφημα : υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά;

76 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Μονοπάτι Hamilton Μας δίνεται γράφημα : υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά; knight’s tour

77 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Βαρύτατο μονοπάτι Μας δίνεται γράφημα με συνάρτηση βάρους , αφετηριακός κόμβος , τερματικός κόμβος και παράμετρος : υπάρχει άκυκλο μονοπάτι από το στο με βάρος ; 6 3 4 1 1 2 7 2 3 5 4 6

78 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Βαρύτατο μονοπάτι Μας δίνεται γράφημα με συνάρτηση βάρους , αφετηριακός κόμβος , τερματικός κόμβος και παράμετρος : υπάρχει άκυκλο μονοπάτι από το στο με βάρος ; 6 3 4 1 1 2 7 2 3 5 4 6

79 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Το πρόβλημα του σακιδίου (knapsack) Μας δίνονται αντικείμενα , όπου το αντικείμενο έχει βάρος και αξία , καθώς και δύο παράμετροι και : μπορούμε να επιλέξουμε αντικείμενα με συνολικό βάρος και συνολική αξία ;

80 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Υπάρχει δραστικός τρόπος να επαληθεύσουμε μία λύση τους

81 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Υπάρχει δραστικός τρόπος να επαληθεύσουμε μία λύση τους Αλγόριθμος επαλήθευσης για ένα πρόβλημα : δέχεται στην είσοδο στιγμιότυπο και υποψήφια λύση και αποφασίζει εάν η λύνει σωστά το

82 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Τα προβλήματα αυτά έχουν μία χαρακτηριστική ιδιότητα: Υπάρχει δραστικός τρόπος να επαληθεύσουμε μία λύση τους Αλγόριθμος επαλήθευσης για ένα πρόβλημα : δέχεται στην είσοδο στιγμιότυπο και υποψήφια λύση και αποφασίζει εάν η λύνει σωστά το Ο αλγόριθμος επαλήθευσης είναι δραστικός όταν τρέχει σε πολυωνυμικό χρόνο ως προς το μέγεθος του

83 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που έχουν πολυωνυμικό αλγόριθμο επίλυσης Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που έχουν πολυωνυμικό αλγόριθμο επαλήθευσης

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

85 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Σε πολλές περιπτώσεις μας ικανοποιεί μια προσεγγιστική λύση Ένας προσεγγιστικός αλγόριθμος υπολογίζει σε πολυωνυμικό χρόνο μία λύση η οποία είναι εγγυημένα «κοντά» στη βέλτιστη λύση

86 Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι
Σε πολλές περιπτώσεις μας ικανοποιεί μια προσεγγιστική λύση Ένας προσεγγιστικός αλγόριθμος υπολογίζει σε πολυωνυμικό χρόνο μία λύση η οποία είναι εγγυημένα «κοντά» στη βέλτιστη λύση Ένα από τα βασικά εργαλεία… Γραμμικός προγραμματισμός Μοντελοποίηση προβλημάτων βελτιστοποίησης με γραμμικές ανισότητες και μεγιστοποίηση γραμμικής συνάρτησης

87 Αξιολόγηση Σετ ασκήσεων - εργασίες. Δίνουν το 40% του τελικού βαθμού.
Σετ ασκήσεων - εργασίες. Δίνουν το 40% του τελικού βαθμού. Τελική γραπτή εξέταση. Δίνει το υπόλοιπο 60% του τελικού βαθμού. Πρέπει να έχετε ≥5 και στα δύο. Πληροφορίες και ανακοινώσεις μέσω της ιστοσελίδας του μαθήματος

88 Βιβλία


Κατέβασμα ppt "Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google