Labeling Schemes The case of Reachability Queries Παναγιώτης Μπούρος 11 Φεβ 2008.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη.
Advertisements

Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Ο αγαπημένος αριθμός του σύμπαντος
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Διακριτά Μαθηματικά ΙI Δέντρα
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
Ο αλγόριθμος του Ukkonen Βεργούλης Θανάσης Το suffix trie Το suffix trie του string D=“book” b o o k o o k k k $ $ $ $
Ο Αλγόριθμος FP-Growth. Αλγόριθμος FP-Growth Ο αλγόριθμος χρησιμοποιεί μια συμπιεσμένη αναπαράσταση της βάσης των συναλλαγών με τη μορφή ενός FP-δέντρου.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Δίκτυα Η/Υ ΙΙ Multicasting. Δίκτυα Η/Υ ΙΙ Multicasting Η διαδικασία της μετάδοσης πακέτων από μια πηγή προς τα μέλη μιας κλειστής ομάδας. Εφαρμογές όπου.
Αλγόριθμοι και Πολυπλοκότητα
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Επικαλύπτοντα Δέντρα και Σύνολα Τομής
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
A Balanced Tree Structure for Peer-to-Peer Networks
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Γράφοι – Graphs (Εισαγωγή)
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 1: Βασικές Έννοιες (πράξεις) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Ουρά Προτεραιότητας: Heap
Συντομότερες Διαδρομές
Δρομολόγηση (Routing). Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναμικός Προγραμματισμός  Dijkstra’s Algorithm Αλγόριθμοi Δρομολόγησης  Link State.
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
Δίκτυα Η/Υ ΙΙ Θεωρία γράφων. Δίκτυα Η/Υ ΙΙ Δομή δικτύου GUnet.
1 Βέλτιστη δρομολόγηση (optimal routing) Αντιμετώπιση της δρομολόγησης σαν «συνολικό» πρόβλημα βελτιστoποίησης. Γιατί: Η αλλαγή της δρομολόγησης μιας συνόδου.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Βέλτιστη Δυναμική Προσαρμογή Τοπολογίας Δικτύων: Γραφοθεωρητικοί Αλγόριθμοι Για περισσότερα: N. Li, J. C. Hou. Topology Control in Heterogeneous Wireless.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
Υπολογιστική Πολυπλοκότητα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό.
Δρομολόγηση (Routing). Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναμικός Προγραμματισμός  Dijkstra’s Algorithm Αλγόριθμοi Δρομολόγησης  Link State.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
1 Κατανεμημένοι αλγόριθμοι για την εύρεση γεννητικών δέντρων (spanning trees) 1.Ένας σταθερός κόμβος στέλνει ένα ‘start’ μήνυμα σε κάθε γειτονική του ακμή.
Χρονική Πολυπλοκότητα και Μοντέλα
A Scalable Content-Addressable Network Μυρτώ Ντέτσικα Παναγιώτα Νικολαΐδου Ελένη Γεώργα Λαμπρινή Κώνστα Βαγγέλης Λάππας Γρηγόρης Τζώρτζης Γιώργος Καρπάθιος.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ Άπληστη Αναζήτηση και Αναζήτηση Α* ΣΠΥΡΟΣ ΛΥΚΟΘΑΝΑΣΗΣ, ΚΑΘΗΓΗΤΗΣ.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Δομές Δεδομένων 2η Διάλεξη Αλγόριθμοι Ένωσης-Εύρεσης (Union-Find)
ΟΜΑΔΕΣ Δημιουργία Ομάδων
Επίλυση Προβλημάτων με Αναζήτηση
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
8.1 Θεματικό πλαίσιο για σύστημα παρακολούθησης ασθενών σε νοσοκομείο
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Δικτυωτή ανάλυση.
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
Επικαλύπτοντα Δέντρα και Σύνολα Τομής
Β. Μάγκλαρης 2/11/2015 ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman)
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Ουρά Προτεραιότητας (priority queue)
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
Διαχρονικές Δομές Δεδομένων
Προβλήματα Μεταφοράς: Παραδείγματα και Εφαρμογές
Μεταγράφημα παρουσίασης:

Labeling Schemes The case of Reachability Queries Παναγιώτης Μπούρος 11 Φεβ 2008

Εισαγωγικά (εναρκτήριο λάκτισμα) Τι είναι ένα Labeling Scheme (LB); –Σχήμα δεικτοδότησης γράφων Ωραία…, και γιατί μου χρειάζεται; –Αποθήκευση και δεικτοδότηση transitive σχέσεων [Agrawal et al.] Semantic Web [Christophides et al.] – σχέση subsumption (ιεραρχία κλάσεων - εννοιών) –XML path ερωτήματα (ξέρει ο Στέφανος 8-)) –Αναγωγή σε ερωτήματα γράφων Βρες απόγονους, πρόγονους, παιδιά κλπ. Reachability ερώτημα reach(S,T) ? –Υπάρχει μονοπάτι από το S στο T;

Εισαγωγικά (εναρκτήριο λάκτισμα) Τι είναι ένα Labeling Scheme (LB); –Σχήμα δεικτοδότησης γράφων Ωραία…, και γιατί μου χρειάζεται; –Αποθήκευση και δεικτοδότηση transitive σχέσεων [Agrawal et al.] Semantic Web [Christophides et al.] – σχέση subsumption (ιεραρχία κλάσεων - εννοιών) –XML path ερωτήματα (ξέρει ο Στέφανος 8-)) –Αναγωγή σε ερωτήματα γράφων Βρες απόγονους, πρόγονους, παιδιά κλπ. Reachability ερώτημα reach(S,T) ? –Υπάρχει μονοπάτι από το S στο T;

Οικογένειες LBs Bit-vector –Label κάθε κόμβου ένα bit vector μεγέθους |V| (πλήθος κόμβων), 1 στους πρόγονούς του Prefix –Label κάθε κόμβου: το label του πατέρα του (prefix) + δικό του αναγνωριστικό –Dewey Prime numbers based –Γινόμενα πρώτων αριθμών – factorization –[Wu et al. (1)], [Wu et al. (2)] Intervals –Label κάθε κόμβου ως ένα διάστημα –[Dietz et al.], [Agrawal et al.], [Trißl et al] Hybrid –[Wang et al.]

Οικογένειες LBs Bit-vector –Label κάθε κόμβου ένα bit vector μεγέθους |V| (πλήθος κόμβων), 1 στους πρόγονούς του Prefix –Label κάθε κόμβου: το label του πατέρα του (prefix) + δικό του αναγνωριστικό –Dewey Prime numbers based –Γινόμενα πρώτων αριθμών – factorization –[Wu et al. (1)], [Wu et al. (2)] Intervals –Label κάθε κόμβου ως ένα διάστημα –[Dietz et al.], [Agrawal et al.], [Trißl et al.] Hybrid –[Wang et al.]

Ένα πρωτογενές interval LB Βασισμένο [Dietz et al.] Εφαρμογή σε δέντρα Κατασκευή –Σε κάθε κόμβο label το interval [pre,post] pre = preorder number post = postorder number Reachability ερώτημα –reach(S,T) ? NAI, ανν pre(T) > pre(S) και post(T) < post(S)

Παράδειγμα – κατασκευή LB nodeinterval A[1,9] B[3,2] C[2,8] D[4,1] E[5,6] F[9,7] G[6,5] H[7,3] I[8,4]

Παράδειγμα – reachability LB nodeinterval A[1,9] B[3,2] C[2,8] D[4,1] E[5,6] F[9,7] G[6,5] H[7,3] I[8,4] reach(C,G)? ΝΑΙ pre(G)=6 > pre(C)=2 post(G)=5 < post(C)=8 reach(F,D)? OXI pre(D)=7 < pre(F)=9

Παράδειγμα – reachability LB nodeinterval A[1,9] B[3,2] C[2,8] D[4,1] E[5,6] F[9,7] G[6,5] H[7,3] I[8,4] reach(C,G)? ΝΑΙ pre(G)=6 > pre(C)=2 post(G)=5 < post(C)=8 reach(F,D)? OXI pre(D)=4 < pre(F)=9

Συζήτηση Βελτίωση –Ένας μετρητής για pre και post Reachability ερώτημα –reach(S,T) ? ΝΑΙ ανν pre(S) < pre(T) < post(S) [Trißl et al.]

Interval LB on DAGs [Agrawal et al.] Μετάβαση από δέντρο σε DAG –Αν γράφος δεν είναι DAG Αντικατάσταση strongly connected components με κόμβους –Γράφος αποτελείται από μία connected component Αν όχι, ορισμός εικονικής ρίζας Κατασκευή –Υπολογισμός spanning tree –Σε κάθε κόμβο label το interval [index, post] post = postorder number index = ελάχιστο post των απογόνων –Για κάθε ακμή εκτός spanning tree Διάδοση intervals (προς τα πάνω) από target κόμβο στο source και στους προγόνους αυτού Συμπίεση intervals Reachability ερώτημα –reach(S,T) ? NAI, ανν post(T) στο [index(S), post(S)]

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[, ] B C D[,1] E[, ] F G H I

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[, ] B[,2] C[, ] D[,1] E[, ] F G H I

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[, ] B[,2] C[, ] D[,1] E[, ] F G[, 3] H[, ] I

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[,9] B[,2] C[,8] D[,1] E[,6] F[,7] G[,5] H[,3] I[,4]

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[,9] B[,2] C[,8] D[1,1] E[,6] F[7,7] G[,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[,9] B[,2] C[,8] D[1,1] E[,6] F[7,7] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodes-treepropagationmerging A[1,9] B[1,2] C[1,8] D[1,1] E[3,6] F[7,7] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9] B[1,2] C[1,8] D[1,1][3,3] E[3,6] F[7,7] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9][3,3] B[1,2][3,3] C[1,8] D[1,1][3,3] E[3,6] F[7,7] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9] B[1,2][1,3] C[1,8] D[1,1][3,3] E[3,6] F[7,7] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9][3,5] B[1,3][3,5] C[1,8][3,5] D[1,1] [3,3] E[3,6] F[7,7][3,5] G H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9] B[1,3][1,5] C[1,8] D[1,1] [3,3] E[3,6] F[7,7][3,5] G H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9][3,5] B[1,5] C[1,8] D[1,1] [3,3] E[3,6] F[7,7] [3,5] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodeintervalspropagationmerging A[1,9] B[1,5] C[1,8] D[1,1] [3,3] E[3,6] F[7,7] [3,5] G[3,5] H[3,3] I[4,4]

Παράδειγμα – κατασκευή LB nodepostintervals A9[1,9] B2[1,5] C8[1,8] D1[1,1] [3,3] E6[3,6] F7[3,5] [7,7] G5[3,5] H3[3,3] I4[4,4]

Παράδειγμα – reachability LB nodepostintervals A9[1,9] B2[1,5] C8[1,8] D1[1,1] [3,3] E6[3,6] F7[3,5] [7,7] G5[3,5] H3[3,3] I4[4,4] reach(C,G)? ΝΑΙ post(G)= 5 στο [1,8]

Παράδειγμα – reachability LB nodepostintervals A9[1,9] B2[1,5] C8[1,8] D1[1,1] [3,3] E6[3,6] F7[3,5] [7,7] G5[3,5] H3[3,3] I4[4,4] reach(C,G)? ΝΑΙ post(G)= 5 στο [1,8] reach(F,I)? ΝΑΙ post(I)= 4 στο [3,5]

Παράδειγμα – reachability LB nodepostintervals A9[1,9] B2[1,5] C8[1,8] D1[1,1] [3,3] E6[3,6] F7[3,5] [7,7] G5[3,5] H3[3,3] I4[4,4] reach(C,G)? ΝΑΙ post(G)= 5 στο [1,8] reach(F,I)? ΝΑΙ post(I)= 4 στο [3,5] reach(F,D)? OXI post(F)= 7 όχι σε κάποιο από τα {[1,1], [3,3]}

Συζήτηση Μέγεθος LB εξαρτάται από spanning tree Αλγόριθμος κατασκευής optimal spanning tree –Κάθε interval προσθέτει 1 μονάδα κόστους σε κόμβο –Ελαχιστοποίηση του συνολικού κόστος για όλους τους κόμβους Ενημερώσεις –postorder αριθμοί όχι συνεχόμενοι –Εισαγωγή spanning tree ή non spanning tree ακμής –Διαγραφή spanning tree ή non spanning tree ακμής

Dual Labeling [Agrawal et al.] –Δουλεύει καλά για δέντρα –Αλλά non-tree edges οδηγούν σε μεγάλα labels, δηλ. πολλά intervals Επιπλέον καθυστέρηση [Wang et al.] Κατασκευή –Υπολογισμός spanning tree –Σε κάθε κόμβο label το interval [start, end) start = preorder number end = αν φύλλο το επόμενο preorder, διαφορετικά το μέγιστο end των απογόνων –Για ακμές εκτός spanning tree Transitive closure Reachability ερώτημα –reach(S,T) ? NAI ανν start(T) στο [start(S), end(S)) ή υπάρχει ακολουθία non-tree ακμών που να «ενώνει» το S με το T

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[, ) C D E F G H I J K

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[1, ) C[, ) D[2, ) E[, ) F G[3, ) H[, ) I J K

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[1, ) C[, ) D[2, ) E[, ) F G[3,4) H[, ) I J K

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[1, ) C[, ) D[2, ) E[, ) F G[3,4) H[4,5) I[, ) J K

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[1,5) C[, ) D[2,5) E[, ) F G[3,4) H[4,5) I[, ) J K

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[1,5) C[5, ) D[2,5) E[, ) F G[3,4) H[4,5) I[, ) J K

Παράδειγμα – κατασκευή LB nodes-tree A[0, ) B[1,5) C[5, ) D[2,5) E[6,) F[, ) G[3,4) H[4,5) I[7,8) J[, ) K

Παράδειγμα – κατασκευή LB nodes-tree A[0,11) B[1,5) C[5,11) D[2,5) E[6,9) F[9,11) G[3,4) H[4,5) I[7,8) J[8,9) K[10,11)

Παράδειγμα – κατασκευή LB Non-tree edges –I->B –F->E Link table start -> label –9 -> [6,9) –7 -> [1,5)

Παράδειγμα – κατασκευή LB Non-tree edges –I->B –F->E Transitive link table (TLT) –9 -> [6,9) –7 -> [1,5) –7 στο [6,9) 9 -> [1,5)

Δεικτοδότηση TLT (1) Κάθε link i -> [j,k) αντιστοιχεί στο κάθετο ευθύ/μο τμήμα x = i και j <= y < k –O reach(F,G) ? –F [9,11) –G [3,4) –Αντιστοιχεί στο ορθογώνιο από σημείο (9,3) μέχρι το (11,4) –YES iff υπάρχει ευθύ/μο τμήμα που κόβει (stabs) το query ορθογώνιο

Δεικτοδότηση TLT (1) Κάθε link i -> [j,k) αντιστοιχεί στο κάθετο ευθύ/μο τμήμα x = i και j <= y < k –9 -> [6,9) reach(F,G) ? –F [9,11) –G [3,4) –Αντιστοιχεί στο ορθογώνιο από σημείο (9,3) μέχρι το (11,4) –YES iff υπάρχει ευθύ/μο τμήμα που κόβει (stabs) το query ορθογώνιο

Δεικτοδότηση TLT (1) Κάθε link i -> [j,k) αντιστοιχεί στο κάθετο ευθύ/μο τμήμα x = i και j <= y < k –9 -> [6,9) reach(F,G) ? –F [9,11) –G [3,4) –Αντιστοιχεί στο ορθογώνιο από σημείο (9,3) μέχρι το (11,4) –NAI ανν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει το query ορθογώνιο (stabbing query)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατον αποθήκευση όλων των πιθανών N(X,Y)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατον αποθήκευση όλων των πιθανών N(X,Y)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατον αποθήκευση όλων των πιθανών N(X,Y)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατον αποθήκευση όλων των πιθανών N(X,Y)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατον αποθήκευση όλων των πιθανών N(X,Y)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατον αποθήκευση όλων των πιθανών N(X,Y)

Δεικτοδότηση TLT (2) Συνάρτησης N(i,j) (TLC) –Aριθμός των ευθύ/μων τμημάτων που κόβουν το x >= i και y = j reach(S,T) ? Στο TLT, με S[i,j) και T[k,l) –Αντιστοιχεί στο Ν(i,,j) – Ν(k,j) > 0 ? –Δηλ αν υπάρχει κάθετο ευθύ/μο τμήμα που κόβει την κάτω πλευρά του query ορθογωνίου Αδύνατη η αποθήκευση όλων των πιθανών N(X,Y)

Υπολογισμός TLC Λύση –Τεμαχισμός σε ορθογώνια –Τιμή σταθερή εντός ορθογωνίου –Αποθήκευση των τιμών μόνο για την κάτω δεξιά κορυφή –Αναγωγή κάθε σημείου στο αντίστοιχο αποθηκευμένο

Υπολογισμός TLC Λύση –Τεμαχισμός σε ορθογώνια –Τιμή σταθερή εντός ορθογωνίου –Αποθήκευση των τιμών μόνο για την κάτω δεξιά κορυφή –Αναγωγή κάθε σημείου στο αντίστοιχο αποθηκευμένο

Υπολογισμός TLC Λύση –Τεμαχισμός σε ορθογώνια –Τιμή σταθερή εντός ορθογωνίου –Αποθήκευση των τιμών μόνο για την κάτω δεξιά κορυφή –Αναγωγή κάθε σημείου στο αντίστοιχο αποθηκευμένο

Υπολογισμός TLC TLC matrix –Οι τιμές N(x,y) για τα αποθηκευμένα σημεία x y

Υπολογισμός TLC TLC matrix –Οι τιμές N(x,y) για τα αποθηκευμένα σημεία x y

Παράδειγμα – κατασκευή LB Labeling non-tree edges (x,y,z) –x αντιστοίχηση με το «κοντινότερο» αποθηκευμένο σημείο στη TLC matrix βάση το start του αντίστοιχου i -> [j,k) link –y αντιστοίχηση με το «κοντινότερο» αποθηκευμένο σημείο στη TLC matrix βάση το end του αντίστοιχου i -> [j,k) link –z αντιστοίχηση του κοντινότερου πρόγονου με non-tree εισερχόμενη ακμή

Παράδειγμα – reachability LB reach(S,T) ? ΝΑΙ ανν –start(T) στο [start(S),end(S)) ή –N(x(S),z(T))-N(x(T),z(T)) > 0 reach(C,I) ? YES –start(I) = 7 στο [5,11) reach(F,G) ? YES –start(G) = 3 όχι στο [9,11) –N(1,0) – N(-,0) = 1 – 0 > 0 reach(F,A) ? –start(A) = 0 όχι στο [9,11) –N(1,-) – N(-,0) = 0 – 0 = 0

Παράδειγμα – reachability LB reach(S,T) ? ΝΑΙ ανν –start(T) στο [start(S),end(S)) ή –N(x(S),z(T))-N(x(T),z(T)) > 0 reach(C,I) ? NAI –start(I) = 7 στο [5,11) reach(F,G) ? YES –start(G) = 3 όχι στο [9,11) –N(1,0) – N(-,0) = 1 – 0 > 0 reach(F,A) ? –start(A) = 0 όχι στο [9,11) –N(1,-) – N(-,0) = 0 – 0 = 0

Παράδειγμα – reachability LB reach(S,T) ? ΝΑΙ ανν –start(T) στο [start(S),end(S)) ή –N(x(S),z(T))-N(x(T),z(T)) > 0 reach(C,I) ? NAI –start(I) = 7 στο [5,11) reach(F,G) ? NAI –start(G) = 3 όχι στο [9,11) –N(1,0) – N(-,0) = 1 – 0 > 0 reach(F,A) ? –start(A) = 0 όχι στο [9,11) –N(1,-) – N(-,0) = 0 – 0 = 0

Παράδειγμα – reachability LB reach(S,T) ? ΝΑΙ ανν –start(T) στο [start(S),end(S)) ή –N(x(S),z(T))-N(x(T),z(T)) > 0 reach(C,I) ? NAI –start(I) = 7 στο [5,11) reach(F,G) ? NAI –start(G) = 3 όχι στο [9,11) –N(1,0) – N(-,0) = 1 – 0 > 0 reach(F,A) ? OXI –start(A) = 0 όχι στο [9,11) –N(1,-) – N(-,-) = 0 – 0 = 0

Συζήτηση Ελαχιστοποίηση non-tree edges –Κατασκευή minimal equivalent γράφου –Αφαίρεση μέγιστου δυνατού αριθμού ακμών χωρίς να επηρεάζεται το reachability του γράφου –Κατασκευή spanning tree

Graph Indexing based on Pre- and Postorder numbering (GRIPP) [Wang et al.] –Δουλεύει καλά για αραιούς γράφους |Non-tree edges| << |V| –Διότι προϋπολογίζει TC των non-tree edges [Trißl et al.] Κατασκευή –Σε κάθε κόμβο label το interval [pre, post] pre = preorder number post = postrder number Ένας μετρητής Μοιάζει με XML: pre όταν ανοίγει element, post όταν κλείνει –Πρώτη επίσκεψη σε κόμβο -> tree instance type, αλλιώς non-tree Reachability ερώτημα –reach(S,T) ? NAI ανν pre(T) στο (pre(S), post(S)) Διαφορετικά αναδρομικά στους απογόνους του

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A B E F C D G B H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B2 E3 F C D G B H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B2 E34 F C D G B H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B2 E34 F56 C D G B H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B27 E34 F56 C D G B H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B27 E34 F56 C89 D10tree G11tree B H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B27 E34 F56 C89 D10tree G11tree B12non-tree H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B27 E34 F56 C89 D10tree G11tree B1213non-tree H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r0tree A1 B27 E34 F56 C89 D10tree G1114tree B1213non-tree H A

Παράδειγμα – κατασκευή LB nodeprepostinstance type r021tree A120tree B27 E34 F56 C89 D1019tree G1114tree B1213non- tree H1518tree A1617non- tree

Plotting GRIPP – Order Tree O(G) Κάθε tree instance αντιστοιχεί σε ένα μαύρο σημείο Κάθε non-tree instance αντιστοιχεί σε κίτρινο κόμβο (πάντα φύλλο)

Order Tree – Reachable Instance Set Reachable Instance Set (RIS) –Για κάθε tree instance T το σύνολο των instances X που συνδέονται με αυτό –Δηλ. έχουν pre(T) <= pre(X) <= post(T) RIS(D) = {D,G,F,B,A}

Order Tree – Reachable Instance Set Reachable Instance Set (RIS) –Για κάθε tree instance T το σύνολο των instances X που συνδέονται με αυτό –Δηλ. έχουν pre(T) <= pre(X) <= post(T) RIS(D) = {G,F,B,A}

Order Tree – reachability reach(S,T) ? ΝΑΙ ανν –T στο RIS(S) ή –Αναδρομικά για κάθε non-tree instance h του RIS(S) αν T στο RIS(h) Το h ονομάζεται hop node Hops ελέγχονται με βάση το preorder τους (depth-first traversal του O(G)) RIS ενός hop node είναι το RIS του αντίστοιχου tree instance

Παράδειγμα – reachability LB (1) reach(D,E) ?

Παράδειγμα – reachability LB (2) reach(D,E) ? –RIS(D) = {F,G,A,B} E δεν περιέχεται pre(A) = 15 pre(B) = 12 –RIS(B) = RIS(B) = {F,E} –ΝΑΙ

Παράδειγμα – reachability LB (2) reach(D,E) ? –RIS(D) = {F,G,A,B} E δεν περιέχεται pre(A) = 15 pre(B) = 12 –RIS(B) = RIS(B) = {F,E} E περιέχεται άρα ΝΑΙ

Στρατηγικές pruning (1) Λογική –Έστω πρώτα χρησιμοποιούμε RIS(A) = {B,C,D,E,F,G,H,B,A} –Ανούσιο να χρησιμοποιήσουμε hop node A Διατηρούμε λίστα U με κόμβους που βρήκαμε το RIS τους Για κάθε hop node h 4 περιπτώσεις αν θα χρησιμοποιήσουμε όλο, μέρος ή καθόλου το RIS(h)

Στρατηγικές pruning (2) 1.Έχουμε ήδη λάβει υπόψη το RIS(h) 2.RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε 3.RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h) 4.Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

Στρατηγικές pruning (2) 1.Έχουμε ήδη λάβει υπόψη το RIS(h) 2.RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε 3.RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h) 4.Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

Στρατηγικές pruning (2) 1.Έχουμε ήδη λάβει υπόψη το RIS(h) 2.RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε 3.RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h) 4.Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

Στρατηγικές pruning (2) 1.Έχουμε ήδη λάβει υπόψη το RIS(h) 2.RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε 3.RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h) 4.Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

Stop στρατηγική Stop node P –Όλα τα non-tree instances στο RIS(P) έχουν tree instances επίσης στο RIS(P) Σταματά την αναδρομή εξέταση Προϋπολογισμός λίστας stop nodes Stop nodes = {r,A,B,E,F,C}

Συζήτηση Σειρά διάσχισης του γράφου –Δεν επηρεάζει το μέγεθος του LB –Επηρεάζει την απόδοση του Εύρεση καλής σειρά διάσχισης –Εντός strongly connected components –Μεταξύ strongly connected components

Αναφορές Dietz et al. Two algorithms for maintaining order in a list, STOC’87 Christophides et al. On Labeling Schemes for the Semantic Web, WWW’03 Agrawal et al. Efficient Management of Transitive Closure Relationships in Large Data and Knowledge Bases, VLDB’89 Trißl et al. Fast and Practial Indexing and Querying of Very Large Graphs, SIGMOD’07 Wang et al. Dual Labeling, Answering Graph Reachability Queries in Constant Time, ICDE’06 Wu et al (1)., A Prime Number Labeling Scheme for Dynamic Ordered XML Trees, ICDE’04 Wu et al (2). (άλλος Wu αυτός!!!), Adapting Prime Number Labeling Scheme for Directed Acyclic Graphs, DASFAA’06