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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αναδρομικοί Αλγόριθμοι
Advertisements

Δομές Δεδομένων και Αλγόριθμοι
Δένδρα van Emde Boas TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μελετάμε την περίπτωση όπου αποθηκεύουμε.
Επίπεδα Γραφήματα (planar graphs)
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Αντισταθμιστική ανάλυση Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή.
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Έχουμε αποθηκεύσει.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Δένδρα στα οποία κάθε.
Αλγόριθμοι και Πολυπλοκότητα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δυναμικός Προγραμματισμός
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
Προσεγγιστικοί Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Αριθμοθεωρητικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Αλγόριθμοι που επεξεργάζονται.
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν διάσπαση πρόβλημα.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση βάρους Κατευθυνόμενο γράφημα.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Αλγόριθμοι και Πολυπλοκότητα
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Δυναμικά Σύνολα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται.
Αλγόριθμοι: Σύγχρονες Τάσεις Ηλίας Κουτσουπιάς Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Δυναμικά Σύνολα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Ελάχιστο Συνδετικό Δέντρο
Γραμμικός Προγραμματισμός TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Μια εταιρεία παράγει κέικ δύο κατηγοριών,
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
Επίπεδα Γραφήματα: Έλεγχος Επιπεδότητας TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A αβ ζ η ε γ θ Το γράφημα.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Χρονική Πολυπλοκότητα και Μοντέλα
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
Ελαφρύτατες διαδρομές
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μεταγράφημα παρουσίασης:

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

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

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

Παράδειγμα: Υπολογιστική όραση Εικόνα από http://www.esiee.fr/~coupriec/

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

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

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

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

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

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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Παράδειγμα : Δομές ένωσης-εύρεσης (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

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

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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» 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];

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» ακολουθία ενώσεων (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

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

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

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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» Ομοίως, για ένωση(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

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

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

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

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

Επισκόπηση Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» 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

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

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

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

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

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

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

Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (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

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

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

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

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

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

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

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

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

Επισκόπηση Τυχαιοποιημένοι αλγόριθμοι (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

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

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

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

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

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

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

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

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

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

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

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

Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (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

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

Επισκόπηση Αριθμοθεωρητικοί αλγόριθμοι (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

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

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

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

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

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

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

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

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

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

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

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

Επισκόπηση NP-δυσχερή προβλήματα και προσεγγιστικοί αλγόριθμοι Μονοπάτι Hamilton Μας δίνεται γράφημα : υπάρχει μονοπάτι που επισκέπτεται κάθε κόμβο ακριβώς μία φορά; knight’s tour http://en.wikipedia.org/wiki/Knight's_tour

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

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

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

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

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

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

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

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

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

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

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

Βιβλία