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

Σχετικά έγγραφα
Κοντινότεροι Κοινοί Πρόγονοι

Συνδετικότητα γραφήματος (graph connectivity)

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

Αριθμοθεωρητικοί Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

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

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

Αναδρομικοί Αλγόριθμοι

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

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

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

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

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

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

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

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

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

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

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

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

Περιεχόμενα. Περιεχόμενα

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Προγραμματιστικές Τεχνικές

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

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

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

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

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

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

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

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

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Αντισταθμιστική ανάλυση

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

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

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

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια)

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Προγραμματισμός Ι (ΗΥ120)

Transcript:

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

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

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

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

Παράδειγμα: Κρυπτογράφηση κρυπτογράφηση αποκρυπτογράφηση Bob Eavesdropper Alice

Παράδειγμα: Κρυπτογράφηση Κρυπτοσύστημα Δημόσιου Κλειδιού κρυπτογράφηση αποκρυπτογράφηση Bob Eavesdropper Alice Κάθε συμμετέχων έχει ένα δημόσιο κλειδί και ένα κρυφό κλειδί

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

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

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

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

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

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

Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης» Ας θεωρήσουμε την ακολουθία ένωση(1,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) ένωση(1,3), ένωση(5,7) ένωση(1,5) 1 2 3 4 5 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

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

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

Αντισταθμιστική ανάλυση αλγορίθμων Δομή «σταθμισμένης ένωσης με συμπίεση διαδρομής» 1 2 3 5 9 εύρεση(16) 2 3 1 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/11 10/19 0/2 8/10 0/5 0/7 4/8 2/3 6/6 6/10

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

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

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

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

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

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

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

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

Τυχαιοποιημένοι αλγόριθμοι (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 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 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 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 12 15 20 29

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

Τυχαιοποιημένοι αλγόριθμοι (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); } Παράδειγμα Euclid (128,40)= Euclid (40,8)= Euclid (8,0)= 8 Ευκλείδης (300 πχ)

Αριθμοθεωρητικοί αλγόριθμοι (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); } Ιδιότητα: Αν 0 x mod y 0 y τότε x/2 x/2 y x 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 5 3 6 4

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

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

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

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

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

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

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

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

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

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

Βιβλία