1 ΥΠΟΛΟΓΙΣΤΙΚΉ ΓΕΩΜΕΤΡΊΑ
2 Πρόβλημα: Δυναμική διατήρηση N διαστημάτων με διαφορετικά ανά δύο σημεία αρχής και τέλους (σύνορα) έτσι ώστε να απαντάμε αποδοτικά ερωτήσεις τομής Επιθυμητή απόδοση: Ο(n) χώρο Ο(log B N) ενημέρωση Ο(log B N+T/B) ερώτηση Διαχείριση Διαστημάτων x Κάποιες εφαρμογές: • Γραφικά • GIS • Constraint DBs
3 Το Στατικό Πρόβλημα Σάρωσε από αριστερά προς δεξιά χρησιμοποιώντας ένα διαχρονικό B-δένδρο Ένθεσε το διάστημα όταν συναντούμε το αριστερό σημείο Διέγραψε το διάστημα όταν συναντούμε το δεξί σημείο Για ερώτηση x: αναφέρουμε όλα τα διαστήματα στο B-δένδρο στο χρόνο x Ο(n) χώρος Ο(log B N) ερώτηση Ο(nlog B N) κατασκευή με την τεχνική ενδιάμεσης μνήμης Γίνεται ημι-δυναμικό με Ο(log 2 B N) για ένθεση με την λογαριθμική μέθοδο x
4 Λογαριθμική Μέθοδος: Ιδέα (κύρια Μνήμη) Δοθείσης δομής D σε σύνολο V O(log N) ερώτηση, O(log N) διαγραφή, O(N log N) κατασκευή Λογαριθμική Μέθοδος: Διαίρεση του V σε υποσύνολα V 0, …, V log N, |V i | = 2 i ή |V i |=0 Κατασκευή D i σε V i Διαγραφή: O(log N) Ερώτηση: Ρωτάμε κάθε D i O(log 2 N) Ένθεση: Βρίσκουμε το πρώτο άδειο D i και κατασκευάζουμε D i από στοιχεία στα V 0,V 1, … V i-1 O(2 i log 2 i ) κατασκευή O(log N) για κάθε μετακινούμενο στοιχείο Κάθε στοιχείο μετακινείται O(log N) φορές Ο(log 2 N) επιμερισμένο κόστος 4
Μειώνουμε το πλήθος των υποσυνόλων V i σε log B N Πρόβλημα: Αφού δεν υπάρχουν αρκετά στοιχεία στα V 0,V 1, … V i-1 για την κατασκευή του V i Λύση: Επιτρέπουμε το V i να περιέχει πλήθος B i Ένθεση: Βρες D i έτσι ώστε και κατασκεύασε ένα νέο D i από τα στοιχεία των V 0,V 1, … V i Μετακινούμε στοιχεία Αν το D i κατασκευάζεται σε O((|V i |/B)log B |V i |) = O(B i-1 log B N) I/Os τότε κάθε μετακινούμενο στοιχείο κοστίζει O(log B N) I/Os Το κάθε στοιχείο μετακινείται O(log B N) φορές 5 Λογαριθμική Μέθοδος: Ιδέα
6 Αποτελέσματα Δοθείσης δομής δεδομένων γραμμικού χώρου με: Ο(log B N+T/B) I/Os για ερώτηση Ο((N/B)log B N) I/Os για κατασκευή (Ο(log B N) I/Os για διαγραφή) Γραμμικού χώρου δυναμική δομή με I/Os για ερώτηση I/Os για ένθεση επιμερισμένο ( I/Os για διαγραφή) Δυναμική διαχείριση διαστημάτων I/Os για ερώτηση I/Os για ένθεση επιμερισμένο x