Labeling Schemes The case of Reachability Queries

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

description

Labeling Schemes The case of Reachability Queries. Παναγιώτης Μπούρος 11 Φεβ 2008. Εισαγωγικά ( εναρκτήριο λάκτισμα ). Τι είναι ένα Labeling Scheme (LB); Σχήμα δεικτοδότησης γράφων Ωραία…, και γιατί μου χρειάζεται ; Αποθήκευση και δεικτοδότηση transitive σχέσεων [Agrawal et al.] - PowerPoint PPT Presentation

Transcript of Labeling Schemes The case of Reachability Queries

Page 1: Labeling Schemes The case of Reachability Queries

Labeling SchemesThe case of Reachability Queries

Παναγιώτης Μπούρος

11 Φεβ 2008

Page 2: Labeling Schemes The case of Reachability Queries

Εισαγωγικά (εναρκτήριο λάκτισμα)

• Τι είναι ένα Labeling Scheme (LB);– Σχήμα δεικτοδότησης γράφων

• Ωραία…, και γιατί μου χρειάζεται;– Αποθήκευση και δεικτοδότηση transitive σχέσεων

[Agrawal et al.]• Semantic Web [Christophides et al.] – σχέση subsumption

(ιεραρχία κλάσεων - εννοιών)

– XML path ερωτήματα (ξέρει ο Στέφανος 8-))– Αναγωγή σε ερωτήματα γράφων

• Βρες απόγονους, πρόγονους, παιδιά κλπ.• Reachability ερώτημα reach(S,T) ?

– Υπάρχει μονοπάτι από το S στο T;

Page 3: Labeling Schemes The case of Reachability Queries

Εισαγωγικά (εναρκτήριο λάκτισμα)

• Τι είναι ένα Labeling Scheme (LB);– Σχήμα δεικτοδότησης γράφων

• Ωραία…, και γιατί μου χρειάζεται;– Αποθήκευση και δεικτοδότηση transitive σχέσεων

[Agrawal et al.]• Semantic Web [Christophides et al.] – σχέση subsumption

(ιεραρχία κλάσεων - εννοιών)

– XML path ερωτήματα (ξέρει ο Στέφανος 8-))– Αναγωγή σε ερωτήματα γράφων

• Βρες απόγονους, πρόγονους, παιδιά κλπ.• Reachability ερώτημα reach(S,T) ?

– Υπάρχει μονοπάτι από το S στο T;

Page 4: Labeling Schemes The case of Reachability Queries

Οικογένειες 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.]

Page 5: Labeling Schemes The case of Reachability Queries

Οικογένειες 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.]

Page 6: Labeling Schemes The case of Reachability Queries

Ένα πρωτογενές 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)

Page 7: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node interval

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]

A

C

B E F

D G

H I

Page 8: Labeling Schemes The case of Reachability Queries

Παράδειγμα – reachability LB

node interval

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)=2post(G)=5 < post(C)=8

• reach(F,D)? OXIpre(D)=7 < pre(F)=9

A

C

B E F

D G

H I

Page 9: Labeling Schemes The case of Reachability Queries

Παράδειγμα – reachability LB

node interval

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)=2post(G)=5 < post(C)=8

• reach(F,D)? OXIpre(D)=4 < pre(F)=9

A

C

B E F

D G

H I

Page 10: Labeling Schemes The case of Reachability Queries

Συζήτηση

• Βελτίωση– Ένας μετρητής για pre και post

• Reachability ερώτημα– reach(S,T) ? ΝΑΙ ανν

pre(S) < pre(T) < post(S)

• [Trißl et al.]

Page 11: Labeling Schemes The case of Reachability Queries

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)]

Page 12: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

A [ , ]

B [ , ]

C [ , ]

D [ ,1]

E [ , ]

F [ , ]

G [ , ]

H [ , ]

I [ , ]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 13: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

A [ , ]

B [ ,2]

C [ , ]

D [ ,1]

E [ , ]

F [ , ]

G [ , ]

H [ , ]

I [ , ]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 14: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

A [ , ]

B [ ,2]

C [ , ]

D [ ,1]

E [ , ]

F [ , ]

G [ , 3]

H [ , ]

I [ , ]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 15: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

A [ ,9]

B [ ,2]

C [ ,8]

D [ ,1]

E [ ,6]

F [ ,7]

G [ ,5]

H [ ,3]

I [ ,4]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 16: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

A [ ,9]

B [ ,2]

C [ ,8]

D [1,1]

E [ ,6]

F [7,7]

G [ ,5]

H [3,3]

I [4,4]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 17: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

A [ ,9]

B [ ,2]

C [ ,8]

D [1,1]

E [ ,6]

F [7,7]

G [3,5]

H [3,3]

I [4,4]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 18: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node s-tree propagation merging

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]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 19: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

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]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 20: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

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]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 21: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

A [1,9] [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]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 22: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

A [1,9] [3,5] [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 [3,5]

H [3,3]

I [4,4]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 23: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

A [1,9] [1,9]

B [1,3] [1,5]

C [1,8] [1,8]

D [1,1] [3,3]

E [3,6]

F [7,7] [3,5]

G [3,5]

H [3,3]

I [4,4]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 24: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

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]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 25: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node intervals propagation merging

A [1,9] [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]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 26: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node post intervals

A 9 [1,9]

B 2 [1,5]

C 8 [1,8]

D 1 [1,1] [3,3]

E 6 [3,6]

F 7 [3,5] [7,7]

G 5 [3,5]

H 3 [3,3]

I 4 [4,4]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 27: Labeling Schemes The case of Reachability Queries

Παράδειγμα – reachability LB

node post intervals

A 9 [1,9]

B 2 [1,5]

C 8 [1,8]

D 1 [1,1] [3,3]

E 6 [3,6]

F 7 [3,5] [7,7]

G 5 [3,5]

H 3 [3,3]

I 4 [4,4]

• reach(C,G)? ΝΑΙpost(G)= 5 στο [1,8]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 28: Labeling Schemes The case of Reachability Queries

Παράδειγμα – reachability LB

node post intervals

A 9 [1,9]

B 2 [1,5]

C 8 [1,8]

D 1 [1,1] [3,3]

E 6 [3,6]

F 7 [3,5] [7,7]

G 5 [3,5]

H 3 [3,3]

I 4 [4,4]

• reach(C,G)? ΝΑΙpost(G)= 5 στο [1,8]

• reach(F,I)? ΝΑΙpost(I)= 4 στο [3,5]

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 29: Labeling Schemes The case of Reachability Queries

Παράδειγμα – reachability LB

node post intervals

A 9 [1,9]

B 2 [1,5]

C 8 [1,8]

D 1 [1,1] [3,3]

E 6 [3,6]

F 7 [3,5] [7,7]

G 5 [3,5]

H 3 [3,3]

I 4 [4,4]

• reach(C,G)? ΝΑΙpost(G)= 5 στο [1,8]

• reach(F,I)? ΝΑΙpost(I)= 4 στο [3,5]

• reach(F,D)? OXIpost(F)= 7 όχι σε

κάποιο από τα {[1,1], [3,3]}

A

C

B E F

D G

H I

spanning tree edge

non-spanning tree edge

Page 30: Labeling Schemes The case of Reachability Queries

Συζήτηση

• Μέγεθος LB εξαρτάται από spanning tree• Αλγόριθμος κατασκευής optimal spanning tree

– Κάθε interval προσθέτει 1 μονάδα κόστους σε κόμβο– Ελαχιστοποίηση του συνολικού κόστος για όλους

τους κόμβους

• Ενημερώσεις– postorder αριθμοί όχι συνεχόμενοι– Εισαγωγή spanning tree ή non spanning tree ακμής– Διαγραφή spanning tree ή non spanning tree ακμής

Page 31: Labeling Schemes The case of Reachability Queries

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

Page 32: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-tree

A [0, )

B [ , )

C [ , )

D [ , )

E [ , )

F [ , )

G [ , )

H [ , )

I [ , )

J [ , )

K [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 33: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-tree

A [0, )

B [1, )

C [ , )

D [2, )

E [ , )

F [ , )

G [3, )

H [ , )

I [ , )

J [ , )

K [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 34: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-tree

A [0, )

B [1, )

C [ , )

D [2, )

E [ , )

F [ , )

G [3,4)

H [ , )

I [ , )

J [ , )

K [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 35: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-tree

A [0, )

B [1, )

C [ , )

D [2, )

E [ , )

F [ , )

G [3,4)

H [4,5)

I [ , )

J [ , )

K [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 36: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-tree

A [0, )

B [1,5)

C [ , )

D [2,5)

E [ , )

F [ , )

G [3,4)

H [4,5)

I [ , )

J [ , )

K [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 37: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-tree

A [0, )

B [1,5)

C [5, )

D [2,5)

E [ , )

F [ , )

G [3,4)

H [4,5)

I [ , )

J [ , )

K [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 38: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-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 [ , )

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 39: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LBnode s-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)

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

Page 40: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

• Non-tree edges– I->B– F->E

• Link table

start -> label– 9 -> [6,9)– 7 -> [1,5)

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

Page 41: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

• Non-tree edges– I->B– F->E

• Transitive link table (TLT)– 9 -> [6,9)– 7 -> [1,5)– 7 στο [6,9)

9 -> [1,5)

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

Page 42: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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 ορθογώνιο

3 6 970

3

6

9

5

1

Page 43: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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 ορθογώνιο

3 6 970

3

6

9

5

1

9 -> [6,9)

Page 44: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

1

3 6 970

3

6

9

5

11

1

4

Page 45: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

Page 46: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

N(9,3)

Page 47: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

Page 48: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

N(9,3)

Page 49: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

N(9,3)

N(11,3)

Page 50: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

N(9,3) - N(11,3)

Page 51: Labeling Schemes The case of Reachability Queries

Δεικτοδότηση 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)

3 6 970

3

6

9

5

11

N(9,3) - N(11,3)

Page 52: Labeling Schemes The case of Reachability Queries

Υπολογισμός TLC

3 6 970

3

6

9

5

1

• Λύση– Τεμαχισμός σε

ορθογώνια– Τιμή σταθερή εντός

ορθογωνίου– Αποθήκευση των

τιμών μόνο για την κάτω δεξιά κορυφή

– Αναγωγή κάθε σημείου στο αντίστοιχο αποθηκευμένο

Page 53: Labeling Schemes The case of Reachability Queries

Υπολογισμός TLC

• Λύση– Τεμαχισμός σε

ορθογώνια– Τιμή σταθερή εντός

ορθογωνίου– Αποθήκευση των

τιμών μόνο για την κάτω δεξιά κορυφή

– Αναγωγή κάθε σημείου στο αντίστοιχο αποθηκευμένο

3 6 970

3

6

9

5

1

Page 54: Labeling Schemes The case of Reachability Queries

Υπολογισμός TLC

• Λύση– Τεμαχισμός σε

ορθογώνια– Τιμή σταθερή εντός

ορθογωνίου– Αποθήκευση των

τιμών μόνο για την κάτω δεξιά κορυφή

– Αναγωγή κάθε σημείου στο αντίστοιχο αποθηκευμένο

3 6 970

3

6

9

5

1

(x,y)

Page 55: Labeling Schemes The case of Reachability Queries

Υπολογισμός TLC

3 6 970

3

6

9

5

1

(x,y)

• TLC matrix– Οι τιμές N(x,y) για τα

αποθηκευμένα σημεία

1 1

2 1

x

y

Page 56: Labeling Schemes The case of Reachability Queries

3 6 970

3

6

9

5

1

(x,y)

Υπολογισμός TLC

• TLC matrix– Οι τιμές N(x,y) για τα

αποθηκευμένα σημεία

1 1

2 1

x

y

Page 57: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή 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 εισερχόμενη ακμή

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

(0,-,-)

(0,-,-)

(1,-,-)

(-,-,-)

(0,1,1)

(0,0,0)

(0,0,0)

(0,0,0)

(0,0,0) (0,1,1)

(1,1,1)

Page 58: Labeling Schemes The case of Reachability Queries

Παράδειγμα – 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

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

(0,-,-)

(0,-,-)

(1,-,-)

(-,-,-)

(0,1,1)

(0,0,0)

(0,0,0)

(0,0,0)

(0,0,0) (0,1,1)

(1,1,1)

Page 59: Labeling Schemes The case of Reachability Queries

Παράδειγμα – 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

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

(0,-,-)

(0,-,-)

(1,-,-)

(-,-,-)

(0,1,1)

(0,0,0)

(0,0,0)

(0,0,0)

(0,0,0) (0,1,1)

(1,1,1)

Page 60: Labeling Schemes The case of Reachability Queries

Παράδειγμα – 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

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

(0,-,-)

(0,-,-)

(1,-,-)

(-,-,-)

(0,1,1)

(0,0,0)

(0,0,0)

(0,0,0)

(0,0,0) (0,1,1)

(1,1,1)

Page 61: Labeling Schemes The case of Reachability Queries

Παράδειγμα – 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

A

B C

D

spanning tree edge

non-spanning tree edge

G H

E F

I J K

[0,11)

[1,5) [5,11)

[2,5)

[3,4)

[4,5) [7,8)

[6,9)

[8,9)

[9,11)

[10,11)

(0,-,-)

(0,-,-)

(1,-,-)

(-,-,-)

(0,1,1)

(0,0,0)

(0,0,0)

(0,0,0)

(0,0,0) (0,1,1)

(1,1,1)

Page 62: Labeling Schemes The case of Reachability Queries

Συζήτηση

• Ελαχιστοποίηση non-tree edges– Κατασκευή minimal equivalent γράφου

– Αφαίρεση μέγιστου δυνατού αριθμού ακμών χωρίς να επηρεάζεται το reachability του γράφου

– Κατασκευή spanning tree

Page 63: Labeling Schemes The case of Reachability Queries

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))• Διαφορετικά αναδρομικά στους απογόνους του

Page 64: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A

B

E

F

C

D

G

B

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 65: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 tree

E 3 tree

F

C

D

G

B

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 66: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 tree

E 3 4 tree

F

C

D

G

B

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 67: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 tree

E 3 4 tree

F 5 6 tree

C

D

G

B

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 68: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 7 tree

E 3 4 tree

F 5 6 tree

C

D

G

B

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 69: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 7 tree

E 3 4 tree

F 5 6 tree

C 8 9 tree

D 10 tree

G 11 tree

B

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 70: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 7 tree

E 3 4 tree

F 5 6 tree

C 8 9 tree

D 10 tree

G 11 tree

B 12 non-tree

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 71: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 7 tree

E 3 4 tree

F 5 6 tree

C 8 9 tree

D 10 tree

G 11 tree

B 12 13 non-tree

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 72: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 tree

A 1 tree

B 2 7 tree

E 3 4 tree

F 5 6 tree

C 8 9 tree

D 10 tree

G 11 14 tree

B 12 13 non-tree

H

A

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 73: Labeling Schemes The case of Reachability Queries

Παράδειγμα – κατασκευή LB

node pre post instance type

r 0 21 tree

A 1 20 tree

B 2 7 tree

E 3 4 tree

F 5 6 tree

C 8 9 tree

D 10 19 tree

G 11 14 tree

B 12 13 non- tree

H 15 18 tree

A 16 17 non- tree

A

C

G H

B

F

tree edge

non-tree edge

r

D

E

Page 74: Labeling Schemes The case of Reachability Queries

Plotting GRIPP – Order Tree O(G)

• Κάθε tree instance αντιστοιχεί σε ένα μαύρο σημείο

• Κάθε non-tree instance αντιστοιχεί σε κίτρινο κόμβο (πάντα φύλλο)

5 10 15 20

20

15

10

5

rA

B

E

F

C

D

G

F

B

A

Tree instance

Non-tree instance

Page 75: Labeling Schemes The case of Reachability Queries

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}

5 10 15 20

20

15

10

5

rA

B

E

F

C

D

G

F

B

A

Tree instance

Non-tree instance

Page 76: Labeling Schemes The case of Reachability Queries

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}

5 10 15 20

20

15

10

5

rA

B

E

F

C

D

G

F

B

A

Tree instance

Non-tree instance

Page 77: Labeling Schemes The case of Reachability Queries

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

Page 78: Labeling Schemes The case of Reachability Queries

Παράδειγμα – reachability LB (1)

• reach(D,E) ?

A

C D

G H

B

E F

tree edge

non-tree edge

r

Page 79: Labeling Schemes The case of Reachability Queries

Παράδειγμα – 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}

– ΝΑΙ

5 10 15 20

20

15

10

5

rA

B

E

F

C

D

G

F

B

A

Tree instance

Non-tree instance

Page 80: Labeling Schemes The case of Reachability Queries

Παράδειγμα – 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 περιέχεται άρα ΝΑΙ

5 10 15 20

20

15

10

5

rA

B

E

F

C

D

G

F

B

A

Tree instance

Non-tree instance

Page 81: Labeling Schemes The case of Reachability Queries

Στρατηγικές pruning (1)

• Λογική– Έστω πρώτα χρησιμοποιούμε

RIS(A) = {B,C,D,E,F,G,H,B,A}– Ανούσιο να χρησιμοποιήσουμε hop node A

• Διατηρούμε λίστα U με κόμβους που βρήκαμε το RIS τους

• Για κάθε hop node h 4 περιπτώσεις αν θα χρησιμοποιήσουμε όλο, μέρος ή καθόλου το RIS(h)

Page 82: Labeling Schemes The case of Reachability Queries

Στρατηγικές pruning (2)

1. Έχουμε ήδη λάβει υπόψη το RIS(h)

2. RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε

3. RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h)

4. Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

h = X X

h

h

X

Xh

Page 83: Labeling Schemes The case of Reachability Queries

Στρατηγικές pruning (2)

1. Έχουμε ήδη λάβει υπόψη το RIS(h)

2. RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε

3. RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h)

4. Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

h = X X

h

h

X

Xh

Page 84: Labeling Schemes The case of Reachability Queries

Στρατηγικές pruning (2)

1. Έχουμε ήδη λάβει υπόψη το RIS(h)

2. RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε

3. RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h)

4. Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

h = X X

h

h

X

Xh

Page 85: Labeling Schemes The case of Reachability Queries

Στρατηγικές pruning (2)

1. Έχουμε ήδη λάβει υπόψη το RIS(h)

2. RIS(h) περιέχεται στο RIS(X) οπότε δεν το χρειαζόμαστε

3. RIS(X) περιέχεται στο RIS(h) οπότε χρειάζεται να λάβουμε υπόψη μας το υπόλοιπο τμήμα του RIS(h)

4. Δε γίνεται κανένα pruning και πρέπει να λάβουμε υπόψη μας όλο το RIS(h)

h = X X

h

h

X

Xh

Page 86: Labeling Schemes The case of Reachability Queries

Stop στρατηγική

• Stop node P– Όλα τα non-tree

instances στο RIS(P) έχουν tree instances επίσης στο RIS(P)

• Σταματά την αναδρομή εξέταση

• Προϋπολογισμός λίστας stop nodes

• Stop nodes = {r,A,B,E,F,C}5 10 15 20

20

15

10

5

rA

B

E

F

C

D

G

F

B

A

Tree instance

Non-tree instance

Page 87: Labeling Schemes The case of Reachability Queries

Συζήτηση

• Σειρά διάσχισης του γράφου– Δεν επηρεάζει το μέγεθος του LB– Επηρεάζει την απόδοση του

• Εύρεση καλής σειρά διάσχισης– Εντός strongly connected components– Μεταξύ strongly connected components

Page 88: Labeling Schemes The case of Reachability Queries

Αναφορές• 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