880 likes | 1.01k Views
Labeling Schemes The case of Reachability Queries. Παναγιώτης Μπούρος 11 Φεβ 2008. Εισαγωγικά ( εναρκτήριο λάκτισμα ). Τι είναι ένα Labeling Scheme (LB); Σχήμα δεικτοδότησης γράφων Ωραία…, και γιατί μου χρειάζεται ; Αποθήκευση και δεικτοδότηση transitive σχέσεων [Agrawal et al.]
E N D
Labeling SchemesThe 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)
Παράδειγμα – reachabilityLB • 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
Παράδειγμα – reachabilityLB • 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)]
Παράδειγμα – reachability LB • reach(C,G)?ΝΑΙ • post(G)= 5 στο [1,8]
Παράδειγμα – reachability LB • reach(C,G)? ΝΑΙ • post(G)= 5 στο [1,8] • reach(F,I)?ΝΑΙ • post(I)= 4 στο [3,5]
Παράδειγμα – reachability LB • 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 • 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)