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

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

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

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


Παρουσίαση με θέμα: "Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης TexPoint fonts used in EMF. Read the TexPoint manual."— Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

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

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

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

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

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

14 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων 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]; } void find(int i) { int j = i; while (j != parent[j]) j = parent[j]; return j; } Δομή «σταθμισμένης ένωσης»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30 Επισκόπηση ένωση(1,9) Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης»

31 Επισκόπηση ο μέγιστος αριθμός των δεικτών μέχρι τη ρίζα είναι Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης»

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

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

34 Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» εύρεση(16)

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

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

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 ri Η ίδια διαδικασία χρησιμοποιείται για την αριστερή και τη δεξιά υποακολουθία. χρόνος χειρότερης περίπτωσης αναμενόμενος χρόνος

42 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

43 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

44 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

45 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

46 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

47 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

48 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

49 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

50 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

51 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

52 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

53 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

54 Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (randomized algorithms) Ταξινόμηση quicksort

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

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

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

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

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

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

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); } Ιδιότητα: Αν τότε x mod y x x/2y x mod y xx/2y 0 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

88 Βιβλία


Κατέβασμα ppt "Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης TexPoint fonts used in EMF. Read the TexPoint manual."

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


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