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

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

Θεωρία Βασικών Δομών Δεδομένων Διδάσκοντες:Μακρής Χρήστος, Τσακαλίδης Αθανάσιος

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


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

1 Θεωρία Βασικών Δομών Δεδομένων Διδάσκοντες:Μακρής Χρήστος, Τσακαλίδης Αθανάσιος e-mail: makri@ceid.upatras.gr, tsak@ceid.upatras.grmakri@ceid.upatras.grtsak@ceid.upatras.gr Διδασκαλία:Τρίτη 19:00-21:00Αίθουσα Συνεδριάσεων (ΑΣ)

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

3 Αντικείμενα που καλύπτονται 1. Μοντέλα Υπολογισμού και μετρικές χρονικής και χωρικής πολυπλοκότητας 2. Διαχρονικές Δομές Δεδομένων 3. Αλγόριθμοι και Δομές Δεδομένων σε προβλήματα διαχείρισης δενδρικών γραφημάτων. 4. Ουρές Προτεραιότητας και Αυτοργανώμενα Δέντρα 5. Αλγόριθμοι Διάταξης και Δομές Ψαξίματος στο RAM Μοντέλα Υπολογισμού.

4 Διαδικαστικά  Εξέταση (π ροφορική )  Εργασία : – Παρουσίαση – Γρα π τή Αναφορά  Τελικός Βαθμός : Ημιάθροισμα

5 Εισαγωγικά Δομή Δεδομένων= η συγκεκριμένη υλοποίηση ενός συχνά εμφανιζόμενου Αφηρημένου Τύπου Δεδομένων. Αφηρημένος Τύπος Δεδομένων είναι ένα σύνολο μαζί με μία συλλογή πράξεων στα στοιχεία του συνόλου. Παραδείγματα Δομών -- Λεξικό (βασικές πράξεις η εισαγωγή/διαγραφή στοιχείων και ο έλεγχος ανήκει/δεν ανήκει) -- Ουρές Προτεραιότητας (βασικές πράξεις η ένθεση στοιχείων, η εύρεση και διαγραφή του ελαχίστου)

6 Μοντέλα Μηχανής Μοντέλο Μηχανής Δεικτών (Pointer Machine)= η μνήμη αποτελείται από συλλογή εγγραφών, με κάθε εγγραφή να αποτελείται από μία συλλογή από κελιά. Κάθε κελί έχει ένα τύπο (pointer, integer, real) και η προσπέλαση κελιών γίνεται με χρήση δεικτών. RAM Μοντέλο Υπολογισμού= η μνήμη αποτελείται από ένα πίνακα από κελιά, όπου κάθε κελί προσπελαύνεται με τη διεύθυνσή του. Υποθέτουμε ότι κάθε κελί μπορεί να περιέχει αριθμούς αυθαίρετου μεγέθους και ότι οι βασικές αριθμητικές πράξεις και πράξεις δεικτών παίρνουν σταθερό χρόνο (uniform cost assumption). Μετρικές Εκτίμησης Απόδοσης Χωρική, χρονική πολυπλοκότητα.

7 Χρονική Πολυπλοκότητα Ανάλυση μέσης περίπτωσης (average case analysis)= μία πιθανοτική κατανομή τίθεται στις πράξεις ενός αφηρημένου τύπου δεδομένων και το μέσο κόστος των πράξεων υπολογίζεται. Ανάλυση Χειρότερης Περίπτωσης (worst case analysis)= υπολογίζονται πολυπλοκότητες χειρότερης περίπτωσης για κάθε πράξη. Ανάλυση Επιμερισμένης Πολυπλοκότητας= υπολογίζεται το συνολικό κόστος μίας ακολουθίας πράξεων και επιμερίζεται το κόστος σε καθεμία πράξη.

8 Τεχνικές Εκτίμησης Πολυπλοκότητας Μέθοδος Άθροισης - Άμεσος υπολογισμός του κόστους μίας ακολουθίας πράξεων μέσω ενός συνδυαστικού τύπου Μέθοδος Τραπεζίτη – Θεωρούμε ότι υπάρχει ένας τραπεζικός λογαριασμός συνδεδεμένος με κάθε δομή δεδομένων που αναλύουμε. Σε κάθε πράξη συσχετίζουμε μία ενέργεια ανάληψης και κατάθεσης χρημάτων. Μέθοδος Φυσικού – Αναθέτουμε σε κάθε στγμιότυπο της δομής μία συνάρτηση που λαμβάνει θετικές πραγματικές τιμές και ονομάζεται συνάρτηση δυναμικού.

9 Το πρόβλημα του Λεξικού Ορισμός Είδη Δομών Comparison Based Δομές Δεδομένων Representation Based Δομές Δεδομένων

10 Είδη Δομών Δεδομένων Implicit Δομές Δεδομένων (πίνακας στοιχείων) Χρήση Περιστρεφόμενων Λιστών, έμμεση κωδικοποίηση δεικτών -> Ο((logn) 2 ) χρόνο ανά ψάξιμο και πράξη ενημέρωσης (Munro) O(logn) χρόνο ανά ψάξιμο και πράξη ενημέρωσης (Francescinni) Είδη Δομών Comparison Based Δομές Δεδομένων - Static - Dynamic (weight balanced, height balanced) Representation Based Δομές Δεδομένων - Interpolation Search - Tries - Hashing

11 Το Weighted Dictionary Πρόβλημα Πράξεις: - Access(x,S), O(log(W/w)) - Insert(x,S)O(log(W+w/min(w,w -,w + )) - Delete(x,S)O(log(W/min(w,w - )) - Join(S 1,S 2 )O(log((w 1 +w 2 )/w)) - Split(x,S)O(log(W/w)) - ChangeWeight(x,S,δ)Ο(log(W+δ)/w)) Amortized complexity αν χρησιμοποιηθούν splay trees. Worst Case Complexity αν χρησιμοποιηθούν biased trees.

12 Union-Split-Find Πρόβλημα Διαχειριζόμαστε μία διαμέριση του σύμπαντος U={1,..,n}με την υποστήριξη των ακόλουθων πράξεων: (1) Find(x): επέστρεψε το όνομα του συνόλου που περιέχει το x (2) Union(A,B): συγχώνευσε τα δύο σύνολα Α,Β σε ένα νέο σύνολο\ (3) Split(A,x): διέσπασε το Α σε δύο υποσύνολα Union-Find πρόβλημα, Split-Find πρόβλημα Ο(α(m,n))=min{z  1: A(z,4  m/n  )>logn} όπου A(i,0)=1, για κάθε i Α(0,x)=2x, για κάθε x Α(i+1,x+1)=A(i,A(i+1,x)) για κάθε i,x. Interval Union Split Find Πρόβλημα Upper and Lower Bounded by θ(loglogn) vEB Data Structure

13 Ουρές Προτεραιότητας Βασικές πράξεις: (1) Makequeue (2) Insert(i,h) (3) Findmin(h) (4) Deleremin(h) (5) Meld(h 1,h 2 ) (6) Decreasekey(d,i,h) (7) Delete(i,h) Heap-ordered(2-3) δέντρα, leftist δέντρα, binomial queues, self adjusting heaps, pairing heaps, Fibonacci Heaps, Relaxed Heaps.

14

15 Nearest Common Ancestor static off-line version static on-line version linking roots version linking and cutting version dynamic trees version

16 Τεχνικές Δυναμοποίησης Θεωρείστε μία δομή με χρόνο προεπεξεργασίας P s (n), χρόνο ερώτησης Q s (n), και χώρου S s (n) έτσι ώστε οι συναρτήσεις Q s (n), P s (n)/n, S s (n)/n να είναι αύξουσες. Είναι εφικτή η δυναμοποίηση και παραγωγή μίας δομής με χρονικές lognQ s (n) χρονική πολυπλοκότητα, lognP s (n)/n χρόνο ενθέσεως και χώρο S s (n).


Κατέβασμα ppt "Θεωρία Βασικών Δομών Δεδομένων Διδάσκοντες:Μακρής Χρήστος, Τσακαλίδης Αθανάσιος"

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


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