ΑΥΤΟΡΓΑΝΟΥΜΕΝΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Σχετικά έγγραφα
Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Red-black δέντρα (Κεφ. 5)

Επιμερισμένη Ανάλυση. Περιεχόμενα Κεφαλαίου

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

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εκτενείς Δομές Δεδομένων

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

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

Αλγόριθμοι Αναζήτησης

Δυναμική Διατήρηση Γραμμικής Διάταξης

Ταξινόμηση. Σαλτογιάννη Αθανασία

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING

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

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Ουρές προτεραιότητας

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

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

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

Διαχρονικές δομές δεδομένων

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

Πληροφορική 2. Αλγόριθμοι

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

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

Διδάσκων: Παναγιώτης Ανδρέου

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

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Advanced Data Indexing

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

Ουρά Προτεραιότητας (priority queue)

Δομές Δεδομένων (Data Structures)

Κεφ.11: Ευρετήρια και Κατακερματισμός

υαδικά έντρα Αναζήτησης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

Ουρά Προτεραιότητας: Heap

Εκτενείς Δομές Δεδομένων

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

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

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

Ουρά Προτεραιότητας: Heap

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Αναζήτηση και ταξινόμηση

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

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

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

9. Κόκκινα-Μαύρα Δέντρα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Φροντιστήριο 2 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Επιµέλεια Θοδωρής Πιερράτος

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Ουρά Προτεραιότητας (priority queue)

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

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

JDSL Java Data Structures Library

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Κεφάλαιο 6 Ουρές Προτεραιότητας

Ουρά Προτεραιότητας: Heap

Ισοζυγισµένο έντρο (AVL Tree)

Διδάσκων: Παναγιώτης Ανδρέου

4 Αρμονικές Ταλαντώσεις 1 γενικά 17/9/2014

Transcript:

ΑΥΤΟΡΓΑΝΟΥΜΕΝΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Splay Δέντρα ΕΚΤΕΝΕΙΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ

Γενικά στοιχεία Μία τέτοιου είδους δομή βρίσκεται σε τυχαία αρχική κατάσταση, αλλά κατά τη διάρκεια κάθε πράξης εφαρμόζεται ένας απλός ανακατασκευαστικός κανόνας με σκοπό την βελτίωση της αποδοτικότητας των μελλοντικών πράξεων ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 2

Πλεονεκτήματα - Μεινοεκτήματα Επίτευξη αποδοτικότητας με την επιμερισμένη έννοια Εφόσον προσαρμόζονται ανάλογα με τη χρήση, μπορούν να είναι πολύ πιο αποδοτικές αν το μοτίβο χρήσης είναι παράξενο Δεν αποθηκεύουν καμία πληροφορία ισορροπίας Απαίτηση για μικρότερο χώρο Έχουν απλούς και εύκολα υλοποιήσιμους αλγόριθμους προσπέλασης και ανανέωσης Απαιτούν περισσότερες τοπικές αναπροσαρμογές μεγαλύτερα έξοδα αναδιοργάνωσης ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 3

Αυτοργανούμενες γραμμικές λίστες Πολύ απλές λίστες που αποθηκεύουν στοιχεία Πράξεις: Access(x) Insert(x) Delete(x) Για την υλοποίησή τους μπορούμε να χρησιμοποιήσουμε συνδεδεμένες λίστες ή πίνακες ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 4

Αυτοργανούμενες γραμμικές λίστες pos(i) η θέση του στοιχείου x i στη λίστα Κάθε πράξη προσπελάζει γραμμικά τα στοιχεία από το αριστερότερο άκρο έως και την εύρεση του κατάλληλου στοιχείου ή το τέλος της λίστας Άρα, Οι Access(x i ) και Delete(x i ) κοστίζουν pos(x i ) Η Insert(x i ) κοστίζει S +1. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 5

Αυτοργανούμενες γραμμικές λίστες pos(i) η θέση του στοιχείου x i στη λίστα Κάθε πράξη προσπελάζει γραμμικά τα στοιχεία από το αριστερότερο άκρο έως και την εύρεση του κατάλληλου στοιχείου ή το τέλος της λίστας Άρα, Οι Access(x i ) και Delete(x i ) κοστίζουν pos(x i ) Η Insert(x i ) κοστίζει S +1. Γιατί? ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 6

Στρατηγικές αυτοργάνωσης Κανόνας μετακίνησης στην αρχή (Move to Front Rule - MFR) Οι πράξεις Access(x i ) και Insert(x i ) μετακινούν το x στην αρχή της λίστας Δεν μεταβάλλεται η σειρά των υπόλοιπων στοιχείων Η Delete(x i ) διαγράφει το στοιχείο x από τη λίστα ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 7

Στρατηγικές αυτοργάνωσης Κανόνας μετακίνησης στην αρχή (Move to Front Rule - MFR) Οι πράξεις Access(x i ) και Insert(x i ) μετακινούν το x στην αρχή της λίστας Δεν μεταβάλλεται η σειρά των υπόλοιπων στοιχείων Η Delete(x i ) διαγράφει το στοιχείο x από τη λίστα Κανόνας Αντιμετάθεσης Transposition Rule Η Access(x i ) εναλλάσσει το x με το προηγούμενο στοιχείο Η Insert(x i ) κάνει το x προτελευταίο στοιχείο της λίστας ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 8

Splay Δέντρα Επιτυγχάνουν πολύ καλή επιμερισμένη πολυπλοκότητα για κάθε πράξη χωρίς να αποθηκεύουν τα βάρη κάθε στοιχείου. Στρατηγική επανοργάνωσης: splaying Κατά τη διάρκεια κάθε πράξης το εμπλεκόμενο στοιχείο μεταφέρεται στη ρίζα με διαδοχικές περιστροφές ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 9

Splay Δέντρα Επιτυγχάνουν πολύ καλή επιμερισμένη πολυπλοκότητα για κάθε πράξη χωρίς να αποθηκεύουν τα βάρη κάθε στοιχείου. Στρατηγική επανοργάνωσης: splaying Κατά τη διάρκεια κάθε πράξης το εμπλεκόμενο στοιχείο μεταφέρεται στη ρίζα με διαδοχικές περιστροφές οι επόμενες πράξεις που θα χρειαστούν αυτό το στοιχείο θα είναι πιο φθηνές ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 10

Splay Δέντρα Έστω ένα στοιχείο x ϵ S και p(x) ο πατέρας του x. Για να μεταφέρω το x στη ρίζα επαναλαμβάνουμε το splaying ως εξής: ΠΕΡΙΠΤΩΣΗ 1: O p(x) είναι ρίζα ΠΕΡΙΠΤΩΣΗ 2: O p(x) δεν είναι ρίζα & οι x, p(x) είναι και οι 2 αριστερά ή δεξιά παιδιά του γονέα τους ΠΕΡΙΠΤΩΣΗ 3: O p(x) είναι ρίζα & οι x, p(x) δεν είναι του ίδιου είδους παιδιά ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 11

ΠΕΡΙΠΤΩΣΗ 1 O p(x) είναι ρίζα Κάνουμε απλή περιστροφή και φέρνουμε το x στη ρίζα ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 12

ΠΕΡΙΠΤΩΣΗ 2 O p(x) είναι ρίζα Κάνουμε απλή περιστροφή και φέρνουμε το x στη ρίζα O p(x) δεν είναι ρίζα & οι x, p(x) είναι και οι 2 αριστερά ή δεξιά παιδιά του γονέα τους Κάνουμε απλή περιστροφή στο p(x) με τον πατέρα του p(p(x)) και μετά κάνουμε άλλη μία περιστροφή της ίδιας μορφής με την πρώτη στο x και το p(x) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 13

ΠΕΡΙΠΤΩΣΗ 3 O p(x) είναι ρίζα Κάνουμε απλή περιστροφή και φέρνουμε το x στη ρίζα O p(x) δεν είναι ρίζα & οι x, p(x) είναι και οι 2 αριστερά ή δεξιά παιδιά του γονέα τους Κάνουμε απλή περιστροφή στο p(x) με τον πατέρα του p(p(x)) και μετά κάνουμε άλλη μία περιστροφή της ίδιας μορφής με την πρώτη στο x και το p(x) O p(x) είναι ρίζα & οι x, p(x) δεν είναι του ίδιου είδους παιδιά Εκτελούμε διπλή περιστροφή στον x ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ 14