Βασικές Προτάσεις έντρα Ορέστης Τελέλης Κάθε δέντρο µε n κόµβους έχει n ακµές. ικαιολόγηση: Με επαγωγή στο πλήθος των κόµβων, n. έντρο µε k εσωτερικούς κόµβους και l ϕύλλα έχει n = k + l κόµβους. tllis@unipi.r ικαιολόγηση: ένα δέντρο έχει µόνο εσωτερικούς κόµβους και ϕύλλα. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Πλήρες m-αδικό δέντρο µε k εσωτ. κόµβους έχει n = m k + κόµβους. ικαιολόγηση: κάθε κόµβος εκτός της ϱίζας είναι παιδί εσωτερικού κόµβου. Κάθε m-αδικό δέντρο ύψους h έχει το πολύ m h ϕύλλα. ικαιολόγηση: µε ισχυρή επαγωγή στο ύψος h του δέντρου. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Ισοζυγισµένα έντρα και Υψος υαδικά έντρα Αναζήτησης ( Α) Ενα δέντρο (µε ϱίζα) ύψους h είναι ισοζυγισµένο αν: όλα τα ϕύλλα του ϐρίσκονται στο επίπεδο h ή στο επίπεδο h. οµή οργάνωσης συνόλου από διατεταγµένα δεδοµένα. Π.χ., σύνολο από διαφορετικούς αριθµούς,,, 7,,. Ενας κόµβος για κάθε στοιχείο του διατεταγµένου συνόλου δεδοµένων. Το στοιχείο ονοµάζεται κλειδί του κόµβου. Κάθε κόµβος έχει το πολύ δύο παιδιά: το αριστερό και το δεξί. Ισοζυγισµένο Μη ισοζυγισµένο Ισοζυγισµένο Ορισµός Α: Κάθε κόµβος έχει κλειδί που είναι: Μεγαλύτερο από όλα τα κλειδιά του αριστερού του υποδέντρου. Αν ένα m-αδικό δέντρο έχει l ϕύλλα, τότε h lo m l. Αν είναι πλήρες και ισοζυγισµένο, τότε h = lo m l. ηλαδή του υποδέντρου µε ϱίζα το αριστερό του παιδί. Μικρότερο από όλα τα κλειδιά του δεξιού του υποδέντρου. ηλαδή του υποδέντρου µε ϱίζα το δεξί του παιδί. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα /
Παραδείγµατα Α Αναζήτηση Κλειδιού σε Α. Ξεκινάµε την αναζήτηση από τη ϱίζα του δέντρου.. Αν το δέντρο είναι άδειο, η αναζήτηση αποτυγχάνει. 8 8. Αν Ϲητούµενο κλειδί = κλειδί ϱίζας: η αναζήτηση τερµατίζει επιτυχώς. 7 9 7. Αν Ϲητούµενο κλειδί < κλειδί ϱίζας: Εκτελούµε από το βήµα., για το αριστερό υποδέντρο.. Αν Ϲητούµενο κλειδί > κλειδί ϱίζας: υαδικά έντρα Αναζήτησης Εκτελούµε από το βήµα., για το δεξιό υποδέντρο. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Παραδείγµατα Αναζήτησης (/) Αναζήτηση του κλειδιού. Παραδείγµατα Αναζήτησης (/) Αναζήτηση του κλειδιού. 7 <7 αριστερά 7 <7 αριστερά > δεξιά 9 > δεξιά 9 < αριστερά > Αποτυχία = Επιτυχία Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 7 / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 8 /
Εισαγωγή Κλειδιού σε Α Παράδειγµα Κατασκευής Α (/). Αναζητούµε κόµβο µε το κλειδί που ϑέλουµε να εισάγουµε.. Αν ϐρεθεί τέτοιος κόµβος, τότε η εισαγωγή τερµατίζεται.. Αν η αναζήτηση είναι ανεπιτυχής: ϕτάσαµε σε κόµβο που δεν έχει ακµή προς παιδί. προσθέτουµε το κλειδί σε νέο κόµβο-παιδί τρέχοντος κόµβου. 0 Εισαγωγή του 0 ως ϱίζας του δέντρου 0 0 Εισαγωγή του κλειδιού 0 αριστερό παιδί, αν το νέο κλειδί είναι µικρότερο από το κλειδί του πατέρα, δεξιό παιδί, αν το νέο κλειδί είναι µεγαλύτερο από το κλειδί του πατέρα. Με επαναληπτικές εισαγωγές µπορούµε να κατασκευάσουµε ένα Α. 0,,, 7, 7, 0, 0, 8 Εισαγωγή του κλειδιού 7 Εισαγωγή του κλειδιού 7 Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 9 / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 0 / Παράδειγµα Κατασκευής Α (/) Επικαλύπτον έντρο Γραφήµατος 0 0 Επικαλύπτον δέντρο ενός απλού γραφήµατος G είναι ένα επικαλύπτον υπογράφηµα του G (περιέχει κάθε κόµβο του G), που συνιστά δέντρο. 7 7 Ενα γράφηµα G και τρία επικαλύπτοντα δέντρα (spnnin trs). 7 7 0 Εισαγωγή του κλειδιού 7. 0 Εισαγωγή του κλειδιού 0. 0 7 7 G T 7 0 7 0 0 0 8 Εισαγωγή του κλειδιού 0. Εισαγωγή του κλειδιού 8. T T Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα /
Εύρεση Επικαλύπτοντος έντρου Με διαδοχική εξάλειψη κύκλων του γραφήµατος Εύρεση Επικαλύπτοντος έντρου Με Πρώτα Κατά Βάθος Αναζήτηση ( Dpth-First Srh) στο γράφηµα. Εκκινούµε από οποιονδήποτε κόµβο του γραφήµατος και τον σηµαδεύουµε. Αυτός ϑα είναι η ϱίζα ενός επικαλύπτοντος δέντρου του γραφήµατος.. Αφαίρεση της ακµής {, }. Αφαίρεση της ακµής {, }. Ακολουθούµε ένα µονοπάτι από «συνεχόµενες» ακµές: κάθε ακµή πρόσκειται στον κόµβο που επισκεφθήκαµε πιο πρόσφατα. κάθε νέο κόµβο που επισκεπτόµαστε τον σηµαδεύουµε.. Αν επισκεφθούµε σηµαδεµένο κόµβο για η φορά: αφαιρούµε από το γράφηµα την ακµή που µας οδήγησε σε αυτόν ξανά.. Αφαίρεση της ακµής {, } Τελικό επικαλύπτον δέντρο. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα /. Επιστρέφουµε στον κόµβο που επισκεφθήκαµε πιο πρόσφατα: και διαθέτει «νέες» προσκείµενες ακµές για να ακολουθήσουµε. Επαναλαµβάνουµε από το ϐήµα. Ο αλγόριθµος τερµατίζει όταν επιστρέψουµε στον κόµβο όπου εκκινήσαµε και δεν έχουν αποµείνει ακµές για διάσχιση. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Πρώτα Κατά Βάθος Αναζήτηση: Παράδειγµα Εύρεση Επικαλύπτοντος έντρου Εκκινούµε στον κόµβο. Κάθε κόµβος σηµαδεύεται µε τη σειρά επίσκεψης.,,,, Με Πρώτα Κατά Πλάτος Αναζήτηση ( Brth-First Srh) στο γράφηµα,, Αφαίρεση της ακµής {, }. Επιστρέφουµε στον κόµβο.,,,, 7,,, Αφαίρεση της ακµής {, }. Επιστρέφουµε στον κόµβο.,,,, 7. Εκκινούµε από οποιονδήποτε κόµβο του γραφήµατος και τον εισάγουµε σε µια διατεταγµένη λίστα κόµβων L. Αυτός ϑα είναι η ϱίζα ενός επικαλύπτοντος δέντρου του γραφήµατος.. Οσο η λίστα L δεν είναι άδεια: Εξάγουµε τον πρώτο κόµβο v από τη λίστα L και τον σηµαδεύουµε. Για κάθε ακµή {v, w} E µε {v, w} T:,,,,,, Αν w δεν είναι σηµαδεµένος: Εισάγουµε την {v, w} στο T. Εισάγουµε τον w στο τέλος της λίστας L. Επιστρέφουµε στον κόµβο. Αφαιρούµε την ακµή {, }. Επιστρέφουµε στον κόµβο. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα /
Πρώτα Κατά Πλάτος Αναζήτηση: Παράδειγµα (/) Πρώτα Κατά Πλάτος Αναζήτηση: Παράδειγµα (/) Εκκινούµε στον κόµβο. Κάθε κόµβος σηµαδεύεται µε τη σειρά επίσκεψης.,,,,,,,,,,,,,, T = { {, }, {, } }. L = [, ].,, T = {{, }, {, }, {, }}. L = [, ].,, T = {{, }, {, }, {, }, {, }, {, }} L = [ ].,,,, 7 T = { {, }, {, }, {, }, {, }, {, }, {, }} L = [ ]., T = {{, }, {, }, {, }, {, }}. L = [, ].,, T = {{, }, {, }, {, }, {, }, {, }} L = [, ].,,, T = { {, }, {, }, {, }, {, }, {, }, {, }} L = [ ]. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 7 / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 8 / Ελάχιστο Επικαλύπτον έντρο Ο αλγόριθµος του Kruskl Minimum Spnnin Tr Επικαλύπτον δέντρο ελάχιστου ϐάρους σε ένα γράφηµα µε ϐάρη στις ακµές του. Josph Kruskl, 9. Αρχικοποίησε T =. Παράδειγµα: Γράφηµα µε ϐάρη στις ακµές Ελάχιστο Επικαλύπτον έντρο. Ταξινόµησε τις ακµές E σε σειρά αύξοντος ϐάρους ().. Για κάθε ακµή E (στη σειρά ταξινόµησης):.. Αν T {} περιέχει κύκλο, τότε αγνοούµε την διαφορετικά: ϑέτουµε T = T {}.. Επίστρεψε T. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 9 / Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 0 /
Παράδειγµα Εκτέλεσης Αλγορίθµου Kruskl. Επιλέγεται η ακµή ελάχιστου ϐάρους, {, }.. Επιλέγεται η επόµενη ακµή ελάχιστου ϐάρους, {, }.. Η επόµενη ακµή ελάχιστου ϐάρους, {, }, σχηµατίζει κύκλο µε τις προηγούµενες επιλεγµένες ακµές και απορρίπτεται.. Επιλέγεται η επόµενη ακµή ελάχιστου ϐάρους, {, }. Εκαστη από τις δύο εναποµείνασες ακµές, {, } και {, } σχηµατίζει κύκλο µε τις προηγούµενες επιλεγµένες ακµές και απορρίπτεται. Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα /