Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Διοικητική Λογιστική

Red-Black Δέντρα. Red-Black Δέντρα

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Βάσεις Περιβαλλοντικών Δεδομένων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Δομές Δεδομένων Ενότητα 1

Διοικητική Λογιστική

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Μηχανολογικό Σχέδιο Ι

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Κβαντική Επεξεργασία Πληροφορίας

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Κοινωνία & Υγεία Υγεία Πρόληψη Προαγωγή υγείας: Βαθμίδες πρόληψης

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

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

Τεχνικό Σχέδιο - CAD

Ψηφιακή Επεξεργασία Εικόνων

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Κβαντική Επεξεργασία Πληροφορίας

Ιστορία της μετάφρασης

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Βέλτιστος Έλεγχος Συστημάτων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Διδακτική Πληροφορικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

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

Διδακτική των εικαστικών τεχνών Ενότητα 3

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Διδακτική Πληροφορικής

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Διαχείριση Πολιτισμικών Δεδομένων

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Βάσεις Περιβαλλοντικών Δεδομένων

Ασφάλεια Πληροφοριακών Συστημάτων

Έλεγχος Ποιότητας Φαρμάκων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μάρκετινγκ Αγροτικών Προϊόντων

Διδακτική της Πληροφορικής

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Εισαγωγή στην Πληροφορική

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

Εισαγωγή στην Πληροφορική

Κβαντική Επεξεργασία Πληροφορίας

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 3

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική Πληροφορικής

Πολιτική (και) επικοινωνία

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών

Μελανέρυθρα δεντρα v 3 8 z Red-Black Trees 1

Περιγραφή και Διαβασμα Από τα δεντρα (,)στα μελανέρυθρα δέντρα Μελανέρυθρα δέντρα Ορισμός Ύψος Εισαγωγή Αναδόμηση Αναχρωματισμός Διαγραφή Αναδόμηση Αναχρωματισμός Προσαρμογή Red-Black Trees

Από τα δέντρα(,) στα μελανέρυθρα δέντρα Ένα μελανέρυθρο δέντρο είναι μια αναπαράσταση ενός (,) δέντρου ως ένα δυαδικό δέντρο του οποίου οι κόμβοι είναι κόκκινοι ή μαύροι Συγκριτικά με το αντίστοιχο δέντρο (,) ένα μελανέρυθρο δέντρο έχει Την ίδια απόδοση λογαριθμικού χρόνου Απλούστερη υλοποίηση με κόμβους ενός τύπου 3 5 7 5 3 3 OR 5 7 Red-Black Trees 3

Μελανέρυθρο δέντρο Ένα μελανέρυθρο δέντρο μπορεί να οριστεί επίσης σαν ένα δυαδικό δέντρο αναζήτησης που ικανοποιεί τις ακόλουθες ιδιότητες Ιδιότητα Ρίζας: Η ρίζα είναι μαύρη Εξωτερική Ιδιότητα: Κάθε φύλλο είναι μαύρο Εσωτερική Ιδιότητα: Τα παιδιά ενός κόοκκινου κόμβου είναι μάυρα Ιδιότητα Βάθους: Όλαταφύλλαέχουντοίδιομαύροβάθος 9 15 1 1 7 Red-Black Trees

Ύψος ενός μελανέρυθρου δέντρου Θεώρημα: Ένα μελανέρυθρο δέντρο με n στοιχεία ( n έχει ύψος O(log Απόδειξη: Το ύψος ενός μελανέρυθρου δέντρου έιναι το πολύ διπλάσιο ( n του αντίστοιχού του δέντρου (,), που είναι O(log Ο αλγόριθμος αναζήτησης ενός δυαδικού δέντρου αναζήτησης έιναι είναι ίδιος με αυτόν για ένα δυαδικό δέντρο αναζήτησης Απότοπαραπάνωθεώρημα, ηαναζήτησησεένα μελανέρυθρο δέντρο παίρνει O(log n) χρόνο Red-Black Trees 5

Εισαγωγή ΓιαναεκτελέσουμετηλειτουργίαinsertItem(k, o), εκτελούμε τον αλγόριθμο εισαγωγής για δυαδικά δέντρα αναζήτησης και χρωματίζουμε κόκκινο τον νεοεισαχθέντα κόμβο εκτός και αν είναι ηρίζα Διατηρούμε τις ιδιότητες ρίζας, βάθους και την εξωτερική ιδιότητα Αν ο γονιός v του z είναι μαύρος, διατηρούμε και την εσωτερική ιδιότητα και εέχουμε τελειώσει Αλλιώς (αν ο v έιναι κόκκινος) έχουμε ένα διπλό κόκκινο κόμβο (δηλαδή μία παραβίαση της εσωτερικής ιδιότητας), που απαιτεί αναδιοργάνωση του δέντρου Παράδειγμα όπου η εισαγωγή του προκαλέι ένα διπλά κόκκινο κόμβο: v 3 8 z v 3 8 z Red-Black Trees

Αποκατάσταση ενός διπλά κόκκινου κόμβου Έστω ένα διπλά κόκκινος κόμβος με παιδί z και γονιό v, και έστω w οαδερφόςτουv Περίπτωση 1: ο w έιναι μάυρος Tο διπλό κόκκινο είναι μία λάθος αντικατάσταση ενός -κόμβου Αναδόμηση: Αλλάζουμε την αντικατάσταση του -κόμβου Περίπτωση : ο w έιναι κόκκινος Το διπλό κόκκινο αντιστοιχεί σε μία υπερχείλιση Αναχρωματισμός: κάνουμε το αντίστοιχο ενός split w z 7 v w z 7 v 7 7.... Red-Black Trees 7

Αναδόμηση Μία αναδόμηση αποκαθιστά ένα διπλό κόκκινο γονέος-παιδιού όταν ο κόκκινος κόμβος γονέας έχει ένα μαύρο αδερφό. Είναι ισοδύναμο με την αποκατάσταση της σωστής αντικατάστασης ενός -κόμβου Αποκαθίσταται η εσωτερική ιδιότητα και οι υπόλοιπες ιδιότητες διατηρούνται w z 7 v w z 7 v 7 7........ Red-Black Trees 8

(. Αναδόμηση(συν Υπάρχουν τέσσερις τύποι αναδόμησης ανάλογα με το αν οι διπλά κόκκινοι κόμβοι είναι αριστερά ή δεξιά παιδιά Red-Black Trees 9

Αναχρωματισμός Ο αναχρωματισμός διορθώνει ένα διπλά κόκκινο παιδιού-γονέος όταν ο κόμβος-γονέας έχει ένα κόκκινο αδερφό Ογονιόςv και ο αδερφός του w γίνονται μαύροι και ο παππούς u γίνεται κόκκινος,εκτός και αν είναι η ρίζα Είναι ισοδύναμος με ένα split σε έναν 5-κόμβο Η παραβίαση του διπλού κόκκινου μπορεί να μεταδοθεί στον παππού u w z 7 v w z 7 v 7 7 Red-Black Trees 10

Aνάλυση της εισαγωγής ( o Algorithm insertitem(k, 1. Ψάχνουμε ένα κλειδί k για να εντοπίσουμε τον εισαχθέντα κόμβο z. Προσθέτουμε το νέο στοιχείο (k, o) στον κόμβο z και χρωματίζουμε τον z κόκκινο ( doublered(z 3. while ((( isblack(sibling(parent(z if ( restructure(z z return else { sibling(parent(z) is red } ( recolor(z z 'ενα μελανέρυθρο δέντρο έχει ( n ύψος O(log Το βήμα 1 παίρνει O(log n) χρόνο αφού επισκεπτόμαστε O(log n) κόμβους Το βήμα παίρνει χρόνο O(1) Το βήμα 3 παίρνει O(log n) χρόνο αφού εκτελούμε O(log n) αναχρωματισμούς, χρόνου O(1) έκαστος, και το πολύ μία αναδόμηση χρόνου ( O(1 Άρα μια εισαγωγή σε ένα μελανέρυθρο δέντρο γίνεται σε χρόνο O(log n) Red-Black Trees 11

Διαγραφή Γιαναεκτελέσουμετηλειτουργία remove(k), πρώτα εκτελούμε τον αλγόριθμο διαγρφής για δυαδικά δέντρα αναζήτησης Έστω v ο διαγεγραμμένος εσωτερικός κόμβος, w ο διαγεγραμμένος εξωτερικός κόμβος, και r ο αδερφός του w Αν ο v ήοr ήταν κόκκινος, χρωματίζουμε τον r μαύρο και έχουμε τελειώσει Αλλιώς (αν ο v και ο r ήτανκαιοιδύομαύροι) ο r είναι διπλά μαύρος, και έχουμε μια παραβίαση της εσωτεριής ιδιότητας που απαιτεί μια αναδιοργάνωση του δέντρου Παράδειγμα οπου η διαγραφή του 8 προκαλέι ένα διπλά μαύρο: 3 8 r v w 3 r Red-Black Trees 1

Αποκατάσταση ενός διπλά μαύρου κόμβου Ο αλγόριθμος για την αποκατάσταση έναν διπλά μαύρου κόμβου w με αδερφό y αφορά τρεις περιπτώσεις Περίπτωση 1: ο y είναι μαύρος και έχει ένα κόκκινο παιδί Κάνουμε μία αναδόμηση, ισοδύναμη με μια μεταφορά και έχουμε τελειώσει Περίπτωση : ο y είναι μαύρος και τα παιδιά του είναι και τα δύο μαύρα Κάνουμε έναν αναχρωματισμό, ισοδύναμο με μία συγχώνευση, που μπορεί να μεταδώσει την παραβίαση διπλά μαύρου κόμβου προς τα πανω Περίπτωση 3: ο y είναι κόκκινος Κάνουμε μία προσαρμογή, ισοδύναμη με την επιλογή διαφορετικής αναπαράστασης ενός 3-κόμβου, μετά από την οποία έχουμε την περίπτωση 1 η την περίπτωση Η διαγραφή σε ένα μελανέρυθρο δέντρο παίρνει O(log n) χρόνο Red-Black Trees 13

Αναδιοργάνωση μελανέρυθρου δέντρου Insertion Μελανέρυθρο δέντρο Αποκατάσταση διπλά κόκκινου κόμβου (,)δέντρο Αποτέλεσμα αναδόμηση αναχρωματισμός αλλαγή αναπαράστασης ενός -κόμβου split αφαίρεση αφάιρεση ή διάδοση Διαγραφή Μελανέρυθρο δέντρο αναδόμηση αναχρωματισμός Αποκατάσταση διπλά (,) δέντρο μεταφορά συγχώνευση μαύρου κόμβου Αποτέλεσμα αφαίρεση αφαίρεση ή διάδοση προσαρμογή αλλαγή αναπαράστασης ενός 3-κόμβου ακολουθεί αναδόμηση ή αναχρωματισμός Red-Black Trees 1

Τέλος Ενότητας

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

Σημειώματα

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Ιωάννης Τόλλης 015. «Αλγόριθμοι και πολυπλοκότητα. Μελανέρυθρα δεντρα». Έκδοση: 1.0. Ηράκλειο 015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://opencourses.uoc.gr/courses/course/view.php?id=38

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.