ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Σχετικά έγγραφα
Βάσεις Δεδομένων ΙΙ Ενότητα 11

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

R-Trees, kd-trees, QuadTrees. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

Βάσεις Δεδομένων ΙΙ Ενότητα 12

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6, μέρος 2 ο : Δομές ευρετηρίων για αρχεία

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΟΝΤΕΛΟΠΟΙΗΣΗ-ΨΗΦΙΑΚΗ ΣΥΝΘΕΣΗ ΕΙΚΟΝΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ανάγκη Ανάπτυξης Μοντέλων και Δομών Χωρικών Δεδομένων

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

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

Multimedia IR. εικτοδότηση και Αναζήτηση. Ανάκτηση Πληροφορίας

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

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Multimedia IR. Εισαγωγή. Εισαγωγή. εικτοδότηση και Αναζήτηση

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

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

Μοντελοποίηση Γεωγραφικών Δεδομένων

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Μορφές των χωρικών δεδομένων

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 18: B-Δένδρα

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

Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε 3Δ. 3ο Μάθημα Αποκοπή. Γραφικα. Ευάγγελος Σπύρου

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ

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

Γραφικά με υπολογιστές. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #07

Συμπίεση Δεδομένων

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση

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

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

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

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

Χωρικές και Πολυμεσικές Βάσεις Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

Κατακερματισμός (Hashing)

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Επεξεργασία Ερωτήσεων

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

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

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Διδάσκων: Κωνσταντίνος Κώστα

Λίγα λόγια από το συγγραφέα...7

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

1 x m 2. degn = m 1 + m m n. a(m 1 m 2...m k )x m 1

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

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόμου Μέθοδοι Προσπέλασης Χωρικών Δεδομένων Ι Spatial Access Methods (SAMs) I (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και Sudarshan και του C. Faloutsos)

Γενική επισκόπηση Δεικτοδότηση πολυμέσων Spatial Access Methods (SAMs) k-d trees Point Quadtrees MX-Quadtree z-ordering R-trees

SAMs Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees MX-quadtrees z-ordering R-trees

Spatial Access Methods - πρόβλημα δοθέντοςμιαςσυλλογήςγεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, ώστε να απαντηθούν χωρικά ερωτήματα (όπως;)

Spatial Access Methods - πρόβλημα δοθέντοςμιαςσυλλογήςγεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν: ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντοςμιαςσυλλογήςγεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντοςμιαςσυλλογήςγεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντοςμιαςσυλλογήςγεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντοςμιαςσυλλογήςγεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη εντός ε)

SAMs - κίνητρο Ε: εφαρμογές?

SAMs - κίνητρο παραδοσιακές DB GIS ηλικία μισθός

SAMs - κίνητρο παραδοσιακές DB GIS ηλικία μισθός

SAMs - κίνητρο CAD/CAM βρείτε στοιχεία πολύ κοντά το ένα στο άλλο

SAMs - κίνητρο CAD/CAM

SAMs - κίνητρο S1 eg,. std F(S1) 1 365 day F(Sn) Sn eg, avg 1 365 day

SAMs: λύσεις K-d δέντρα point quadtrees MX-quadtrees z-ordering R-trees (grid files) Ε: Πώς θα οργανώσετε, π.χ., n-διάστατα σημεία, στο δίσκο? (C σημεία ανά σελίδα δίσκου)

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d δένδρα point quadtrees MX-quadtrees z-ordering R-trees

k-d δένδρα Χρησιμοποιούνται για αποθηκεύουν κ-διαστατά σημειακά δεδομένα Δεν χρησιμοποιούνται για να αποθηκεύονται region δεδομένα Ένα 2-d δένδρο (π.χ., για k=2) αποθηκεύει 2-διαστατά σημειακά δεδομένα ενώ ένα 3-d δένδρο αποθηκεύει 3-διάστατα σημειακά δεδομένα,

2-d δένδρα δομή κόμβου δυαδικά δένδρα Info: πεδίο πληροφορίας Xval,Yval: συντεταγμένες σημείου σχετιζόμενες με τον κόμβο Llink, Rlink: δείκτες προς τα παιδιά Ιδιότητες (N: κόμβος): Αν Ν επίπεδο είναι ζυγό -> για όλους τους κόμβους Μ στο υποδένδρο κάτω από το N.Llink: M.Xval < N.Xval για όλους τους κόμβους Ρ στο υποδένδρο κάτω από το N.Llink: P.Xval >= N.Xval Αν Ν επίπεδο είναι μονό -> Παρόμοια με Yvals

2-d δένδρα Παράδειγμα

2-d δένδρα: Εισαγωγή/Αναζήτηση Για την εισαγωγή ενός κόμβου Ν στο δένδρο που αναφέρεται από το T Αν N και T συμφωνούν στις Xval, Yval τότε αντικαταστήσετε T Αλλιώς, πήγαινε αριστερά αν N.Xval < T.xval, δεξιά διαφορετικά (μονά επίπεδα) Παρόμοια για τα μονά επίπεδα (διακλάδωση με βάση τα Yvals)

2-d δένδρα Παράδειγμα εισαγωγής City (Xval, Yval) Banja Luka (19, 45) Derventa (40, 50) Toslic (38, 38) Tuzla (54, 35) Sinj (4, 4) Splitting of region by Banja Luka Splitting of region by Derventa Splitting of region by Toslic Splitting of region by Sinj

2-d δένδρα: Διαγραφή Διαγραφή σημείου (x,y) από T Αν N είναι φύλλο είναι εύκολο Διαφορετικά όποιο από T l (αριστερό υποδένδρο) ή T r (δεξί υποδένδρο) δεν είναι άδειο Βρείτε ένα κόμβο υποψήφιο αντικατάστασης R στο T l ή T r Αντικατέστησε όλα τα μη συνδεδεμένα πεδία του N από αυτά του R Σβήστε επαναληπτικά το R από το T i Η επανάληψη είναι σίγουρο ότι θα τερματίσει Γιατί;

2-d δένδρα: Διαγραφή Εύρεση υποψήφιου κόμβου αντικατάστασης για διαγραφή Ο αντικαταστάτης κόμβος R πρέπει να φέρει την ίδια χωρική σχέση σε όλους τους κόμβους στο T l και T r όπως και ο κόμβος Ν

2-d δένδρα: Ερωτήματα Εύρους Ε: Δοθέντος ενός σημείου (x c, y c ) και μίας απόστασης r να βρεθούν όλατασημείαστο2-d δένδρο τα οποία βρίσκονται μέσα στο κύκλο A: Κάθε κόμβος N σε ένα 2-d δένδρο άμεσα αναπαριστά μία περιοχή R N Αν ο κύκλος (που ορίζει το ερώτημα) δεν τέμνεται με το R N τότε δεν έχει νόημα η αναζήτηση στο υποδένδρο κάτω από τον κόμβο N

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees z-ordering R-trees

Point Quadtrees Αναπαριστούν σημειακά δεδομένα Πάντα χωρίζουν περιοχές σε 4 τμήματα 2-d δένδρο: ένας κόμβος N χωρίζει μία περιοχή σε δύο σχεδιάζοντας μία γραμμή διαμέσου του σημείου (N.xval, N.yval) Point quadtree: ένας κόμβος Ν χωρίζει μία περιοχή σχεδιάζοντας μία οριζόντια και μία κάθετη γραμμή διαμέσου του σημείου (N.xval, N.yval) Τέσσερα τμήματα: NW, SW, NE και SE τεταρτημόρια Ε: Quadtree nodes έχουν 4 παιδιά?

Point Quadtrees Οι κόμβοι σε point quadtrees αναπαριστούν περιοχές

Point Quadtrees - Εισαγωγή City (Xval, Yval) Banja Luka (19, 45) Derventa (40, 50) Toslic (38, 38) Tuzla (54, 35) Sinj (4, 4) Splitting of region by Banja Luka Splitting of region by Derventa Splitting of region by Toslic Splitting of region by Tuzla Splitting of region by Sinj

Point Quadtrees Εισαγωγή

Point Quadtrees: Διαγραφή Διαγραφή του σημείου (x,y) από το T Αν N είναι φύλλο, τότε είναι εύκολο Διαφορετικά το υποδένδρο (N.NW, N.SW, N.NE. N.SE) δεν είναι κενό Βρείτε ένα υποψήφιο αντικατάστασης κόμβο R σε ένα από τα υποδένδρα, τέτοιο ώστε: Κάθε άλλος κόμβος R1 στο N.NW είναι στο NW του R Κάθε άλλος κόμβος R2 στο N.SW είναι στο SW του R κτλ Αντικαταστήστε όλους τα μη-συνδεδεμένα πεδία του N με αυτά του R Διαγράψτε επαναληπτικά το R από το T i Γενικά, μπορεί να μην είναι πάντα δυνατό να βρεθεί τέτοιος κόμβος αντικατάστασης Ε: Τι μπορεί συμβεί στη χειρότερη κατάσταση;

Point Quadtrees: Διαγραφή Διαγραφή του σημείου (x,y) από το T Αν N είναι φύλλο, τότε είναι εύκολο Διαφορετικά το υποδένδρο (N.NW, N.SW, N.NE. N.SE) δεν είναι κενό Βρείτε ένα υποψήφιο αντικατάστασης κόμβο R σε ένα από τα υποδένδρα, τέτοιο ώστε: Κάθε άλλος κόμβος R1 στο N.NW είναι στο NW του R Κάθε άλλος κόμβος R2 στο N.SW είναι στο SW του R κτλ Αντικαταστήστε όλους τα μη-συνδεδεμένα πεδία του N με αυτά του R Διαγράψτε επαναληπτικά το R από το T i Γενικά, μπορεί να μην είναι πάντα δυνατό να βρεθεί τέτοιος κόμβος αντικατάστασης Ε: Τι μπορεί συμβεί στη χειρότερη κατάσταση; Μπορεί να χρειαστείόλοιοικόμβοι να επαναεισαχθούν

Point Quadtrees: Αναζητήσεις εύρους Κάθε κόμβος σε ένα point quadtree αναπαριστά μία περιοχή Να μην αναζητηθούν περιοχές που δεν τέμνουν τον κύκλο που ορίζεται από το ερώτημα

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees MX-quadtrees z-ordering R-trees

MX-Quadtrees Μειονεκτήματα των 2-d δένδρων, point quadtrees: διαμόρφωση του δένδρου εξαρτάται από τη σειρά με την οποία τα αντικείμενα εισέρχονται στο δένδρο διαχωρισμοί μπορεί να είναι άνισοι ανάλογα με το που το σημείο (N.xval, N.yval) βρίσκεται μέσα στη περιοχή (αναπαριστώμενη από το N) MX-quadtrees: σχηματίζουν (και εκτείνουν) το δένδρο ανάλογα με τον αριθμό των κόμβων και τη σειρά εισόδου

MX-Quadtrees Υπόθεση: ο χάρτης αναπαρίσταται ως ένα πλέγμα μεγέθους (2 k x 2 k ) για κάποιο k Όταν μία περιοχή διαχωρίζεται, διαχωρίζεται στο κέντρο

MX-Quadtrees - Εισαγωγή Μετά την είσοδο των A, B, C και D αντίστοιχα

MX-Quadtrees - Εισαγωγή Μετά την είσοδο των A, B, C και D αντίστοιχα

MX-Quadtrees - Διαγραφή Αρκετά εύκολο γιατί; Όλα τα σημεία αναπαριστώνται στο επίπεδο των φύλλων Συνολικός χρόνος για διαγραφή: O(k)

MX-Quadtrees Αναζητήσεις εύρους Όμοια όπως στα point quadtrees Μόνη διαφορά: Ελέγχοντας για να βρεθεί αν ένα σημείο στο κύκλο ορισμένο από το ερώτημα εύρους πρέπει να εφαρμόζεται στο επίπεδο των φύλλων (τα σημεία αποθηκεύονται στο επίπεδο των φύλλων)

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees MX-quadtrees z-ordering R-trees

z-ordering Ε: πώς θα οργανώνεται, π.χ., n-διάστατα σημεία, στο δίσκο; (C σημεία ανά σελίδα δίσκου) Υπόδειξη: μειώστε το πρόβλημα σε 1- διάστατα σημεία (!!) Ε1: γιατί; A: Ε2: πώς;

z-ordering Ε: πώς θα οργανώνεται, π.χ., n-αστατα σημεία, στο δίσκο; (C σημεία ανά σελίδα δίσκου) Υπόδειξη: μειώστε στο πρόβλημα σε 1- αστατα σημεία (!!) Ε1: γιατί; A: B-trees! Ε2: πώς;

z-ordering Ε2: πώς; A: υποθέστε πεπερασμένη granularity; z- ordering = bit-shuffling = N-trees = Morton keys = geo-coding =...

z-ordering Ε2: πώς; A: υποθέστε πεπερασμένη granularity (π.χ., 2 32 x2 32,4x4 εδώ) Q2.1: πώς να απεικονίσουμε n-d κελιά σε 1-d κελιά;

z-ordering Q2.1: πώς να απεικονίσουμε n-d κελιά σε 1-d κελιά;

z-ordering Q2.1: πώς να απεικονίσουμε n-d κελιά σε 1-d κελιά; A: row-wise Ε: είναι καλό;

z-ordering Ε: είναι καλό; A: καλό για τον x άξονα, άσχημο για τον y άξονα

z-ordering Ε: Η snake curve πως αποδίδει;

z-ordering Ε: Η snake curve πως αποδίδει; A: προβλήματα: 2^32 2^32

z-ordering Ε: Γιατί οι curves είναι άσχημες? A: δεν διατηρείτε η απόσταση (~ clustering) Ε: λύση; 2^32 2^32

z-ordering Ε: λύση; (με καλό clustering και ευκολία υπολογισμού, για 2-d και n-d;)

z-ordering Ε: λύση; (με καλό clustering και ευκολία υπολογισμού, για 2-d και n-d;) A: z-ordering/bit-shuffling/linearquadtrees φαίνεται καλύτερο: λίγα μεγάλα άλματα σαρώνει ολόκληρο το τετράεδρο (quadrant) πριν αποχωρήσει όπως space filling curves

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y ); A: 3 (ισοδύναμες) απαντήσεις!

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y ); A1: z (ή N ) σχήματα, επαναλαμβανόμενα order-1 order-2... order (n+1)

z-ordering Παρατήρηση: αυτο-επαναλαμβανόμενη (θα δούμε για τα fractals, σύντομα) Δύσκολη μέθοδος για χρήση: z =? f(x,y) order-1 order-2... order (n+1)

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y ); A: 3 (ισοδύναμες) απαντήσεις! Μέθοδος #2;

z-ordering bit-shuffling y 11 10 01 00 00 01 10 11 x x 0 0 y 1 1 z =( 0 1 0 1 ) 2 = 5

z-ordering bit-shuffling y 11 10 01 00 00 01 10 11 x x 0 0 y 1 1 z =( 0 1 0 1 ) 2 = 5 Το αντίστροφο: (x,y) = g(z) ;

z-ordering bit-shuffling y 11 10 01 00 00 01 10 11 x x 0 0 y 1 1 z =( 0 1 0 1 ) 2 = 5 Σε n-διάστατους χώρους;

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y ); A: 3 (ισοδύναμες) απαντήσεις! Μέθοδος #3;

z-ordering linear-quadtrees : έστω N 1, S 0 κ.τ.λ. W E 1 N 01... 11... 0 S 00... 10... 0 1

z-ordering... και επαναλάβατε αναδρομικά. πχ.: z gray-cell = WN;WN = (0101) 2 = 5 1 W E N 01... 11... 00 11 0 S 00... 10... 0 1

z-ordering Drill: z-value του σκιασμένου κελιού, με τις τρεις μεθόδους; W E 1 0 N S 0 1

z-ordering Drill: z-value του σκιασμένου κελιού, με τις τρεις μεθόδους; 1 W E N μέθοδος #1: 14 μέθοδος #2: shuffle(11;10)= (1110) 2 = 14 0 S 0 1

z-ordering Drill: z-value του σκιασμένου κελιού, με τις τρεις μεθόδους; 1 0 W E N S μέθοδος #1: 14 μέθοδος #2: shuffle(11;10)= (1110) 2 = 14 μέθοδος #3: EN;ES =... = 14 0 1

z-ordering Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα -3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (eg., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees

z-ordering χρήση & αλγόριθμοι Ε1: Πώς αποθηκεύεται στο δίσκο; A: Ε2: Πώς απαντούν σε ερωτήματα εύρους κτλ

z-ordering χρήση & αλγόριθμοι Ε1: Πώς αποθηκεύεται στο δίσκο; A: χειριστείτε τη z-value ως πρωτεύον κλειδί, feed to B-tree SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι ΚΥΡΙΑ ΠΛΕΟΝΕΚΤΗΜΑΤΑ με B-tree: Υπάρχουν ήδη σε εμπορικά συστήματα (κανένας κώδικας/αποσφαλμάτωση!) συνέπεια & επαναφορά είναι έτοιμες SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2: ερωτήματα; (πχ.: βρείτε τη πόλη στο (0,3);) SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2: ερωτήματα; (πχ.: βρείτε τη πόλη στο (0,3);) A: βρείτε τη z-value,αναζητήστε στο B-tree SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2: ερωτήματα εύρους; SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2: ερωτήματα εύρους; A: υπολογίστε το εύρος των z-values; Χρησιμοποιείστε το B-tree PGH 9,11-15 SF z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους πώς να ελαττώσετε τον αριθμό των υποψήφιων ευρών; SF PGH 9,11-15 z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους πώς να ελαττώσετε τον αριθμό των υποψήφιων ευρών; A: Αυξήστε τις διατάσεις του ερωτήματος! PGH 9,11-15 -> 8-15 SF z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους πώς να σπάσετε το ερώτημα σε εύρη; 9,11-15

z-ordering χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους πώς να σπάσετε το ερώτημα σε εύρη; A: επαναληπτικά, quadtree-style, αποσυνθέστε μόνο μη πλήρη quadrants 12-15 9,11-15

z-ordering χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους πώς να σπάσετε το ερώτημα σε εύρη; A: επαναληπτικά, quadtree-style, αποσυνθέστε μόνο μη πλήρη quadrants 12-15 9,11-15 9, 11

z-ordering Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα -3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (πχ., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees

z-ordering χρήση & αλγόριθμοι Ε3: k-nn ερωτήματα? (έστω 1-nn); SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι Ε3: k-nn ερωτήματα? (έστω, 1-nn); A: διασχίστε το B-tree, βρείτε nn wrt τιμές και... SF PGH z cname etc 5 SF 12 PGH

z-ordering χρήση & αλγόριθμοι... υποβάλετε ένα ερώτημα εύρους. SF PGH nn wrt z-τιμή 3 5 12

z-ordering χρήση & αλγόριθμοι... υποβάλετε ένα ερώτημα εύρους. SF PGH nn wrt z-τιμή 3 5 12

z-ordering χρήση & αλγόριθμοι Ε4: ερωτήματα όλα τα ζεύγη (όλα τα ζεύγη πόλεων σε απόσταση 10 χλμ μεταξύ τους; ) SF PGH (θα δούμε spatial joins αργότερα: βρείτε όλες τους νομούς που διασταυρώνει μία λίμνη)

z-ordering Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα -3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (eg., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees...

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; A B z B =?? z C =?? C

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; A: 1 ήπερισσότερεςz-τιμές, με quadtree αποσύνθεση A C B z B =?? z C =??

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; z B = 11** ποιος νοιάζεται z W E C =?? A B 00 11 1 N 01... 11... 0 S 00... 10... 0 C 1

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; W E A B z B = 11** z C = {0010; 1000} 1 N 01... 11... ποιος νοιάζεται 00 11 0 S 00... 10... 0 C 1

z-ordering - εύρη Ε: Πώς αποθηκεύετε ένα B-tree; Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) A B C

z-ordering - εύρη Ε: Πώς αποθηκεύετε ένα B-tree; A: sort (*<0<1) Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) A C B z obj-id etc 0010 C 0101 A 1000 C 11** B

z-ordering - εύρη Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) πχ κόκκινο ερώτημα εύρους A C B z obj-id etc 0010 C 0101 A 1000 C 11** B

z-ordering - εύρη Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) πχ κόκκινο ερώτημα εύρους A: σπάστε το ερώτημα σε z-τιμές, ελέγξτε το B-tree A B C z obj-id etc 0010 C 0101 A 1000 C 11** B

z-ordering - εύρη Σχεδόν όμοια με τα ερωτήματα εύρους για σημειακά δεδομένα, εκτός της περίπτωσης ποιος νοιάζεται π.χ., A C B 1100?? 11** z obj-id etc 0010 C 0101 A 1000 C 11** B

z-ordering - εύρη Σχεδόν όμοια με τα ερωτήματα εύρους για σημειακά δεδομένα, εκτός της περίπτωσης ποιος νοιάζεται π.χ., z1= 1100?? 11** = z2 Συγκεκριμένα: το z1 περιέχει/αποφεύγει/τέμνει το z2; Ε: ποιο είναι το κριτήριο για να αποφασίσετε;

z-ordering - εύρη z1= 1100?? 11** = z2 Συγκεκριμένα: το z1 περιέχει/αποφεύγει/τέμνει z2; Ε: ποιο είναι το κριτήριο για να αποφασίσετε; A: Prefix property: έστω r1, r2 οι αντίστοιχες περιοχές και έστω r1 η μικρότερη (=> z1 έχει λιγότερα * s). Τότε:

z-ordering - εύρη το r2 θα περιέχει πλήρως είτε θα αποφεύγει πλήρως το r1. θα περιέχει το r1, αν το z2 είναι το πρόθεμα του z1 A B C 1100?? 11** ηπεριοχήz1: περιέχεται πλήρως στη περιοχή του z2

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2= 01****** z3= 0100**** T/F r2 περιέχει το r1 T/F r3 περιέχει το r1 T/F r3 περιέχει το r2

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2= 01****** z3= 0100**** T/F r2 περιέχει το r1 ΑΛΗΘΕΣ (prefix property) T/F r3 περιέχει το r1 ΨΕΥΔΕΣ (disjoint) T/F r3 περιέχει το r2 ΨΕΥΔΕΣ (r2 περιέχει το r3)

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2 z2= 01****** z3= 0100****

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2 z2= 01****** z3= 0100**** z3 T/F r2 περιέχει το r1 - ΑΛΗΘΕΣ (prefix property) T/F r3 περιέχει το r1 - ΨΕΥΔΕΣ (disjoint) T/F r3 περιέχει το r2 - ΨΕΥΔΕΣ (r2 περιέχει το r3)

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες Προφανής αλγόριθμος: O( N * M) Κάτι πιο γρήγορο;

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες z obj-id etc 0010 ALG 1000 WAS 11** ALG z obj-id etc 0011 Erie 0101 Erie 10** Ont.

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες Λύση: ενώστε τις λίστες (διατεταγμένων) z- values, αναζητώντας για την ιδιότητα προθέματος σημείωση#1: * χρειάζεται προσεκτική μεταχείριση σημείωση#2: χρειάζεται εξάλειψη διπλοτύπων

z-ordering Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα -3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (πχ., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees

z-ordering - παραλλαγές Ε: το z-ordering είναι ότι καλύτερο μπορούμε να κάνουμε;

z-ordering - παραλλαγές Ε: το z-ordering είναι ότι καλύτερο μπορούμε να κάνουμε; A: προφανώς όχι πιθανά μεγάλα άλματα Ε: τότε;

z-ordering - παραλλαγές Ε: το z-ordering είναι ότι καλύτερο μπορούμε να κάνουμε; A: προφανώς όχι - πιθανά μεγάλα άλματα Ε: τότε; A1: Gray codes

z-ordering - παραλλαγές A2: Hilbert curve! (όπως Hilbert-Peano curve)

z-ordering - παραλλαγές Φαίνετε καλύτερο (ποτέ μεγάλα άλματα). Πώς το πετυχαίνουμε;

z-ordering - παραλλαγές Φαίνετε καλύτερο (ποτέ μεγάλα άλματα). Πώς το πετυχαίνουμε; order-1 order-2... order (n+1)

z-ordering - παραλλαγές Ε: Συνάρτηση για τη καμπύλη Hilbert (h = f(x,y )? A: bit-shuffling, ακολουθουμένη από μεταεπεξεργασία, γιαναχειριστούμετις περιστροφές. Γραμμική στον # bits. Βλέπετε βιβλίο, για κώδικα/αλγόριθμους (πχ., [Jagadish, 90])

z-ordering - παραλλαγές Ε: Η Hilbert curve σε 3-d; n-d; A: Υπάρχει (και δεν είναι μοναδική!). Πχ., 3-d, order-1 Hilbert curves (Hamiltonian μονοπάτια σε κύβο) #1 #2

z-ordering Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα -3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (πχ., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees...

z-ordering - ανάλυση Ε: Πόσα κομμάτια ( quad-tree blocks ) ανά περιοχή; A: ανάλογη της περιμέτρου (επιφάνεια κτλ)

z-ordering - ανάλυση (Πόσο είναι η ακτογραμμή της Πελοποννήσου; Παράδοξο: Η απάντηση αλλάζει με το μέτρο σύγκρισης -> fractals...)

z-ordering - ανάλυση Ε: Πρέπει να αποσυνθέσουμε μία περιοχή στην πλήρη λεπτομέρεια (και να το αποθηκεύσουμε σε B-tree);

z-ordering - ανάλυση Ε: Πρέπει να αποσυνθέσουμε μία περιοχή στην πλήρη λεπτομέρεια (και να το αποθηκεύσουμε σε B-tree); A: ΟΧΙ! Προσέγγιση με 1-3 κομμάτια/zvalues είναι το βέλτιστο [Orenstein90]

z-ordering - ανάλυση Ε: Πώς να μετρήσουμε goodness μίας καμπύλης;

z-ordering - ανάλυση Ε: Πώς να μετρήσουμε goodness μίας καμπύλης; A: π.χ., μέσος # of runs, για ερωτήματα εύρους 4 runs 3 runs (#runs ~ #disk accesses on B-tree)

z-ordering - ανάλυση Ε: Είναι η καμπύλη Hilbert πράγματι καλύτερη; A: 27% λιγότερα runs, για 2-d (παρόμοια για 3-d) Ε: Υπάρχουν σχέσεις (formulas) για #runs, #μπλοκς ενός quadtree, κλπ? A: Ναι ([Jagadish; Moon+ etc])

z-ordering ενδιαφέροντες παρατηρήσεις Καμπύλες Hilbert και z-ordering: «καμπύλες κάλυψης χώρου (space filling curves)»: τελικά, επισκέπτονται κάθε σημείο στον n-d χώρο - συνεπώς: order-1 order-2... order (n+1)

z-ordering ενδιαφέροντες παρατηρήσεις... Δείχνουν ότι το επίπεδο έχει τόσα σημεία όσα και μια γραμμή (-> πονοκέφαλος για τους μαθηματικούς/τοπολογία του 1900) (fractals, again!) order-1 order-2... order (n+1)

z-ordering ενδιαφέροντες παρατηρήσεις Παρατήρηση #2: Hilbert (like) curve για κωδικοποίηση βίντεο [Y. Matias+, CRYPTO 87]: Δοθέντος ενός frame, επισκέψου τα εικονοστοιχεία του χρησιμοποιώντας randomized Hilbert διάταξη, συμπίεσε, και μετέδωσε

z-ordering ενδιαφέροντες παρατηρήσεις Γενικά, η Hilbert καμπύλη είναι θαυμάσια για τη διατήρηση αποστάσεων, clustering, vector quantization κτλ

Συμπεράσματα z-ordering είναι μία καλή ιδέα (n-d points -> 1-d points; τροφοδοτούμενα σε B-trees) Χρησιμοποιείτε από το σύστημα TIGER και (πιθανότατα) από άλλα GIS προϊόντα Λειτουργεί τέλεια με χαμηλής διάστασης σημεία