60 likes | 131 Views
Υπολογιστική Γεωμετρία. Κάποιες εφαρμογές: Γραφικά GIS Constraint DBs. Διαχείριση Διαστημάτων. Πρόβλημα: Δυναμική διατήρηση N διαστημάτων με διαφορετικά ανά δύο σημεία αρχής και τέλους (σύνορα) έτσι ώστε να απαντάμε αποδοτικά ερωτήσεις τομής Επιθυμητή απόδοση: Ο ( n ) χώρο
E N D
Κάποιες εφαρμογές: • Γραφικά • GIS • Constraint DBs Διαχείριση Διαστημάτων Πρόβλημα: • Δυναμική διατήρηση Nδιαστημάτων με διαφορετικά ανά δύο σημεία αρχής και τέλους (σύνορα) έτσι ώστε να απαντάμε αποδοτικά ερωτήσεις τομής Επιθυμητή απόδοση: • Ο(n)χώρο • Ο(logBN) ενημέρωση • Ο(logBN+T/B) ερώτηση x
Το Στατικό Πρόβλημα Σάρωσε από αριστερά προς δεξιά χρησιμοποιώντας ένα διαχρονικό B-δένδρο • Ένθεσε το διάστημα όταν συναντούμε το αριστερό σημείο • Διέγραψε το διάστημα όταν συναντούμε το δεξί σημείο Για ερώτηση x: αναφέρουμε όλα τα διαστήματα στοB-δένδρο στο χρόνο x • Ο(n)χώρος • Ο(logBN) ερώτηση • Ο(nlogBN) κατασκευή με την τεχνική ενδιάμεσης μνήμης Γίνεται ημι-δυναμικό με Ο(log2BN)για ένθεση με την λογαριθμική μέθοδο x
Λογαριθμική Μέθοδος: Ιδέα(κύρια Μνήμη) 4 Δοθείσης δομής Dσε σύνολο V • O(log N) ερώτηση, O(log N)διαγραφή, O(N log N) κατασκευή Λογαριθμική Μέθοδος: • Διαίρεση του Vσε υποσύνολα V0, …,VlogN, |Vi| = 2iή|Vi|=0 • Κατασκευή Diσε Vi • Διαγραφή: O(log N) • Ερώτηση: Ρωτάμε κάθε DiO(log2N) • Ένθεση: Βρίσκουμε το πρώτο άδειο Diκαι κατασκευάζουμε Diαπό στοιχεία στα V0,V1, … Vi-1 • O(2i log 2i) κατασκευήO(log N) για κάθε μετακινούμενο στοιχείο • Κάθε στοιχείο μετακινείται O(log N)φορέςΟ(log2N) επιμερισμένο κόστος
Λογαριθμική Μέθοδος: Ιδέα • Μειώνουμε το πλήθος των υποσυνόλων Vi σεlogB N • Πρόβλημα:Αφού δεν υπάρχουν αρκετά στοιχεία στα V0,V1, … Vi-1για την κατασκευή του Vi • Λύση:Επιτρέπουμε τοViνα περιέχει πλήθος Bi • Ένθεση:Βρες Diέτσι ώστε και κατασκεύασε ένα νέο Diαπό τα στοιχεία των V0,V1, … Vi • Μετακινούμε στοιχεία • Αν το Diκατασκευάζεται σε O((|Vi|/B)logB|Vi|) = O(Bi-1logB N) I/Os τότε κάθε μετακινούμενο στοιχείο κοστίζει O(logB N) I/Os • Το κάθε στοιχείο μετακινείται O(logB N)φορές
x Αποτελέσματα • Δοθείσης δομής δεδομένων γραμμικού χώρου με: • Ο(logBN+T/B) I/Os για ερώτηση • Ο((N/B)logBN)I/Os για κατασκευή • (Ο(logBN)I/Os για διαγραφή) • Γραμμικού χώρου δυναμική δομή με • I/Os για ερώτηση • I/Os για ένθεση επιμερισμένο • ( I/Os για διαγραφή) • Δυναμική διαχείριση διαστημάτων • I/Os για ερώτηση • I/Os για ένθεση επιμερισμένο