380 likes | 529 Views
Seminar Indizieren und Anfragen von Graphen in Datenbanken WS 2007/2008. Thema Transitive Hülle mit geometrischem Ansatz Habib Muhammad Shakhawat shakhawa@informatik.hu-berlin.de. Transitive Hülle mit geometrischem Ansatz. Übersicht Motivation Ziel definieren Mögliche Probleme
E N D
SeminarIndizieren und Anfragen von Graphen in DatenbankenWS 2007/2008 Thema Transitive Hülle mit geometrischem Ansatz Habib Muhammad Shakhawat shakhawa@informatik.hu-berlin.de
Transitive Hülle mit geometrischem Ansatz • Übersicht • Motivation • Ziel definieren • Mögliche Probleme • Graphentheoretische Definitionen • Kurzer Überblick in bisherige Lösungen • Vorschlag mit geometrischem Ansatz • Leistungsvergleich
Transitive Hülle mit geometrischem AnsatzMotivation • Hauptaufgabe einer Datenbank besteht darin die Beziehungen zwischen verschiedene Datenobjekte zu finden und analysieren. • Daten als gerichteter Graph • Bio-Informatik • Semantic Web • Computer Vision • usw.
Transitive Hülle mit geometrischem AnsatzMotivation • u und v sind zwei Datenobjekte Stehen u und v in einer Beziehung ?
Transitive Hülle mit geometrischem AnsatzZielformulierung • Gegeben • Ein gerichteter Graph G = (V,E) • u, v V • Ziel: Schnelle Antwort auf der Frage Gibt es einen Pfad von u nach v in G?
Transitive Hülle mit geometrischem AnsatzWo sind die Probleme ? • Erreichbarkeitsinformation über den gesamten Graph notwendig • Reale Graphen sind groß • Preprocessing notwendig • Höhe Speicher- und Zeitbedarf
Graph: Ein Graph G=(V,E) besteht aus eine endliche Menge von Knoten V und Kanten E . 0 0 1 1 2 2 4 4 3 3 • Gerichtet Transitive Hülle mit geometrischem AnsatzEinige Definitionen • Ungerichtet G
Transitive Hülle mit geometrischem AnsatzEinige Definitionen • Pfad: Ein Weg indem kein Knoten mehrfach vorkommt. 0 0 0 • Kreis: Ein geschlossener Kantenzug, in dem kein Knoten mehrfach vorkommt. 1 1 1 2 2 2 • Starke Zusammenhangskomponente (SZK): Für jede bel. u und v in V gilt: es ex. ein Pfad aus u nach v in G. 4 4 4 3 3 3 5
Transitive Hülle mit geometrischem AnsatzEinige Definitionen • Transitive Hülle: H(G)=(V, E´) ist transitive Hülle von G=(V, E) gdw. E´={(u,v)|u,vV und Pfad von v nach w in E} 0 1 2 Nach Von 4 3 n x n Erreichbarkeitsmatrix
Transitive Hülle mit geometrischem AnsatzEinige Definitionen • Problematik bei Transitive Hülle • Sehr hoher Zeitaufwand bei der Berechnung • Warshall • Sehr hoher Speicherbedarf • Worst-Case
a b c d e f Transitive Hülle mit geometrischem AnsatzKurzer Überblick: Bisherige Lösungen • 2-hop cover (Cohen et al, 2002) • Pfade als Konkatenation je zweier Pfadteilstücke zu repräsentieren • Teilstücke werden an so genannten Hop – Knoten zusammengefügt C = Hop-Knoten
a b c d e f Transitive Hülle mit geometrischem AnsatzKurzer Überblick: Bisherige Lösungen • Beispiel: 2-hop cover ⋈ = cin cout Überdeckte Kanten in TC
Transitive Hülle mit geometrischem AnsatzKurzer Überblick: Bisherige Lösungen • Vorteil: 2-Hop Cover • Statt der ganzen transitiven Hülle speichert man nur die Pfade zu den Hop-Knoten • Größe der 2-hop cover ist kleiner als die Transitive Hülle • Antwortzeiten sind konstant
Transitive Hülle mit geometrischem AnsatzKurzer Überblick: Bisherige Lösungen • Nachteile: 2-Hop Cover • Transitive Hülle muss vor der Überdeckung durch Hop-Knoten zunächst vollständig materialisiert werden • Transitive Hülle als Grundmenge für 2-hop cover • Schlechte Laufzeit bei der Berechnung der Hop-Knoten
Transitive Hülle mit geometrischem AnsatzKurzer Überblick: Bisherige Lösungen Beispiel: Konstruktionszeit und Speicherbedarf Eingabe: Ein Teilgraph von DBLP mit 344,992,370 Verbindungen System: SUN-Fire 15000 mit 64 Prozessoren und 180 GB RAM Große 2-hop cover: 1,289,930 Einträge Speicherverbrauch: 80 GB RAM Zeit: 45 Stunden und 23 Minuten
Transitive Hülle mit geometrischem AnsatzKurzer Überblick: Bisherige Lösungen • Wünschenswert • Ohne aufwendige Berechnung der Transitive Hülle auszukommen • Möglich viele Informationen im Speicher halten
Transitive Hülle mit geometrischem AnsatzMaxCardinality-G (Cheng et al.) • Wünsche werden erfüllt durch geometrischen Ansatz nach Cheng et al. • Berechnung der Transitive Hülle nicht otwendig • Bestimmung der 2-Hop Cover durch Rechteckoperationen • Visualisierung der Erreichbarkeitsmatrix durch Rechtecke in einem 2-dim. Gitter
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G (Cheng et al.) • Gegeben: Ein gerichteter Graph G • Maxcardinatily-G berechnet 2-Hop Cover in 3 Schritten • Konstruiere aus G einen gerichteten kreisfreien Graph G • Bestimme 2-Hop Cover für G • Bestimme 2-Hop Cover für G aus dem 2-Hop Cover von G
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Konstruktion eines kreisfreien Graph • Finde alle starken Zusammenhangs-komponenten (SZK) in G. 0 3 7 12 8 • Ersetze SZK mit einen zufällig ausgesuchten Knoten v´aus dem SZK • Füge alle ein- und ausgehende Kanten von SZK zu v´hin. 4 10 6 5 9 1 11 G G
0 3 12 8 4 5 1 9 11 Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Konstruktion eines kreisfreien Graph Vorteile: • G hat weniger Knoten und Kanten als G (ausgenommen, G hat keine SZK) • Mit zunehmender Kantenanzahl steigt die Wahscheinlichkeit der SZK • Je mehr SZK desto kleiner ist G • Alle Knoten in einem SZK haben den selben Hop-Knoten. • Vermeidung unnötiger Berechnungen G
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Intervall Labeling [1,9] 9 0 • Gwird zerlegt in • Spannenden Baum T • Nicht-Baumkanten EN • Jeder Knoten v in T • bekommt min. ein Intervall [s, e] • e: Postorder Nummer des Knotens • Vergabe bei Postorder Traversal • s: Kleinste Postorder Nummer seiner Nachfolger [1,6] 6 8 3 7 [2,2] 12 8 2 [7,7] [8,8] 4 5 5 [3,5] 1 1 [1,1] 9 4 [3,4] 11 [3,3] G 3
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Intervall Labeling • Nicht-Baumkanten EN • Ist u, v EN, so bekommt u alle Intervalle von v und alle Vorgänger von u ebenso • Intervalle können zusammengefügt werden • .z.B. [5, 9] und [10,15] zusammengefügt in [5, 15] • Falls ein Intervall in einem Anderen enthalten ist, kann eliminiert werden [1,9] 9 0 [1,6] 6 8 3 7 [2,2] 12 [1,1] 8 2 [3,3] [7,7] [8,8] 4 5 [3,3] 5 [3,5] [1,1] 1 1 [1,1] [3,3] 9 4 [3,4] 11 [3,3] 3 G
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Reachability Table • Konstruiere aus G (V, E) einen zusätzlichen Graph G (V, E), so dass • | V|=| V| • (v, u) ist eine Kante in E, falls (u, v) eine Kante in E ist • Berechne Postorder Nr. und die Intervall Labels für G • Speichere die Informationen in einer Reachability Table
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Reachability Table 11 0 9 3 1 12 8 4 5 5 4 8 1 12 3 9 0 11 G G
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Reachability Map • Virtuelle Darstellung der Reachability Table als Reachability Map M durch n x n Gitter • x-Achse: Postorder Nr. in G • y-Achse: Postorder Nr. in G
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Reachability Map Beispiel: po(9) ∈ I(5) M(4,6)=true • Wenn po(w) I(v), dann M(po(w), po(v))=true x
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Reachability Map • Funktion f zuordnet jedes Knotenpaar u, v in Gin einer Zelle (x(v), y(u)) in M, wobei • x(w)=po(w) • po: Postorder Nr. in G • y(w)=po(w) • po: Postorder in G • f(u,v) = 1, falls v aus u erreichbar ist, sonst 0 Erreichbarkeit: aus 3 zu 9 f(3,9)=(x(9),y(3))=(4,5)=1 x
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Algorithmus • Algorithmus • Schritt 1: Suche max. Fläche • Von Knoten w • Noch nicht überdeckt • Schritt 2: • w wird neuer Hop-Knoten • Erzeuge 2-Hop Labeling für w • Speichere w als Hop-Knoten • Schritt 3: • Weiter mit Schritt 1, solange w noch vorhanden ist.
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Algorithmus • Konstruktion: Recheck für w als Hop-Knoten Beispiel: w=1 I(1)=((s1, e1)=[1,1]), (s2, e2)=[3,3]) I(1)=(s1´, e1´)=[1,5] Bilde die Rechtecke durch kombinationen aus I(w) und I(w). Rechtecke: ((s1, s1´), (e1, e1´))=((1,1), (1,5)) ((s2, s1´), (e2, e1´))=((3,1), (3,5))
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Rechteckoperationen • Rect(BC1 BC2) = Rect(BC1) Rect(BC2) • Rect(BC1 BC2) = Rect(BC1) Rect(BC2) • Rect(BC1 − BC2) = Rect(BC1) − Rect(BC2)
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Algorithmus • Algorithmus • Schritt 1: Suche max. Fläche • Von Knoten w • Noch nicht überdeckt • Schritt 2: • w wird neuer Hop-Knoten • Erzeuge 2-Hop Labeling für w • Speichere w als Hop-Knoten • Schritt 3: • Weiter mit Schritt 1, solange w noch vorhanden ist.
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Algorithmus
Transitive Hülle mit geometrischem AnsatzMaxcardinality-G: Algorithmus • Gefundene 2-hop cover 0 3 12 8 4 5 1 9 In Out 11 2-hop cover
Transitive Hülle mit geometrischem AnsatzLeistungsvergleich • Messung am generierten und reale Daten Cohen´s Algorithmus gegen Cheng´s Cohen Cheng Fazit: Gefundene 2-hop cover sind ähnlich
Transitive Hülle mit geometrischem AnsatzLeistungsvergleich • Messung am generierten und reale Daten Cohen´s Algorithmus gegen Cheng´s Cohen Cheng Fazit: Cheng´s Algorithmus ist schneller als Cohen´s
Transitive Hülle mit geometrischem AnsatzLiteratur • Cheng, J., Yu, J.X., Lin, X., Wang, H. & Yu, P.S. Fast Computation of Reachability Labeling for Large Graphs. EDBT Conference 2006 • R. Agrawal, A. Borgida, and H. V. Jagadish. Efficient management of transitive relationships in large data and knowledge bases. In Proc. of SIGMOD’89, 1989. • E. Cohen, E. Halperin, H. Kaplan, and U. Zwick. Reachability and distance queries via 2-hop labels. In Proc. of SODA’02, 2002
Transitive Hülle mit geometrischem Ansatz Fragen ? Danke für die Aufmerksamkeit