42 Graphbasiertes Matching in räumlichen Datenbanken Michael Tiedge, Udo W. Lipeck Fachgebiet Datenbanken und Informationssysteme Leibniz Universität Hannover {mti,ul}@dbs.uni-hannover.de Zusammenfassung Räumliche Daten werden in vielen Bereichen mehrfach erfasst, oftmals zu unterschiedlichen Zeitpunkten bzw. Sichtweisen, und in räumlichen Datenbanken gespeichert. Im nachhinein stellt sich die Aufgabe, diese unterschiedlichen Repräsentationen von räumlichen Objekten in den verschiedenen Datenbeständen zuzuordnen, d.h. zu matchen“. ” In diesem Artikel wird ein allgemeines Verfahren basierend auf Graphmatching für solche räumlichen Datenbestände vorgestellt, auf die sich eine Graphstruktur aufprägen lässt. Bisherige Matchingverfahren für räumlich eingebettete Graphstrukturen beschränken sich meist auf lokal optimale Heuristiken und einfache Zuordnungen (d.h. Knoten/Knoten- bzw. Kanten/Kanten-Zuordnungen). Das hier vorgestellte Verfahren wurde durch die Verwendung von Produktgraphen aus der Graphentheorie zur Bestimmung von Graphisomorphismen motiviert. Da die Anwendung dieser Algorithmen aufgrund ihrer Komplexität auf große räumliche Datenbestände nicht praktikabel ist, sieht das vorgestellte Verfahren ein Regelwerk vor, in dem die räumliche Einbettung des Graphen, die Topologie, der Kontext und die thematische Attributierung als Matchingkriterien berücksichtigt werden. Da im Allgemeinen das Suchen nach einer Bijektivität zwischen zwei räumlichen Datenbeständen zu einschränkend ist, wird nach einer ungenauen Lösung“ (inexact graph matching) gesucht, ” in der n:m-Zuordnungen und sogar Typübergänge (d.h. Zuordnungen zwischen Knoten und Kanten) möglich sind. Weiterhin bietet der Produktgraph als zugrunde liegende Datenstruktur die Möglichkeit, nicht nur lokal beschränkt, sondern auch ausgeweitet nach einem guten Matching zu suchen. Das Verfahren wird am Beispiel des Matchings eines Straßennetzwerks in einer räumlichen objektrelationalen Datenbank vorgestellt. 1 Einleitung Ein bekanntes Anwendungsfeld, um ähnliche räumlich eingebettete Graphen zu suchen, ist z.B. die Bild- bzw. Szenenanalyse. Hier steht aber meist das Problem im Vordergrund, zu einem Graphen in einem großen Bestand anderer Graphen einen möglichst ähnlichen oder auch isomorphen zu finden ([KSK01]). In diesem Artikel wird hingegen ein effizientes Verfahren vorgestellt, eine möglichst gute Zuordnung zwischen zwei gegebenen großen, räumlich eingebetteten Graphen zu finden, wie es zum Beispiel beim Matching zwischen zwei geographischen Karten auftritt, die denselben Ausschnitt der realen Welt beschreiben. Ziel ist es, eine Abbildung beziehungsweise Transformation zwischen den Graphen zu finden. Aus dieser lassen sich die korrespondierenden Objektbeziehungen ablesen, wie einfache 1:1-, n:m(Aggregationen) und n:0- bzw. 0:n-Beziehungen (Verschwinden und Auftauchen von Objekten), aber auch Konfliktsituationen. Hierdurch ist es nicht nur möglich, einzelne korrespondierende Objekte zu finden, sondern ganze Mengen von zusammenhängenden räumlichen Objekten einander zuzuordnen. Die aus der Graphentheorie bekannten Algorithmen zur Bestimmung von Graphisomorphismen ([?], [Mes96]) sind aufgrund ihrer Komplexität für die in räumlichen Datenbanken vorkommenden Graphen, beispielsweise geowissenschaftliche Karten, nicht praktikabel anwendbar. Weiterhin ist es mit diesen Verfahren nicht möglich, n:m-Zuordnungen oder Typübergänge darzustellen. Bisherige Verfahren zum Matchen geographischer Netzwerke (z.B. [Wal97], [Mus06]) konzentrieren sich überwiegend nur auf geometrische Eigenschaften (z.B. Abstand von Objekten oder Überlappungen von umschließenden Puffern) und nutzen den topolgischen Zusammenhang der Objekte nur lokal aus. 43 Das hier vorgestellte Konzept geht von vornherein von einer aufgeprägten Graphstruktur in Form eines topologischen Datenmodells aus und bietet mit Hilfe eines Produktgraphen die Möglichkeit, den topologischen Zusammenhang der Daten zum integralen Bestandteil des Matchingalgorithmus’ werden zu lassen. 2 Produktgraphen Im Allgemeinen ([IK00]) ist das Produkt zweier Graphen G ∗ H ein neuer Graph, dessen Knoten zunächst das kartesische Produkt der Knoten der Ausgangsgraphen sind: V (G ∗ H) = V (G) × V (H). Die Adjazenz zweier Knoten des Produktgraphen (g1 , h1 ), (g2 , h2 ) ergibt sich ausschließlich aus Gleichheit (d.h. g1 = g2 oder h1 = h2 ), der Adjazenz1 (d.h. {g1 , g2 } ∈ E(G) bzw. {h1 , h2 } ∈ E(G)) und Nicht-Adjazenz (d.h. {g1 , g2 } 6∈ E(G) bzw. {h1 , h2 } 6∈ E(G)) der ursprünglichen Knoten. Die an dieser Stelle wichtigen Produkte sind das starke Produkt (strong product) GH und das kartesische Produkt G×H. Für das starke Produkt ergeben sich im Produktgraphen die Kanten wie folgt2 : Die Knoten (g1 , h1 ) und (g2 , h2 ) sind genau dann adjazent, wenn [g1 6= g2 ∨ h1 6= h2 ] ∧ [g1 6= g2 ⇒ {g1 , g2 } ∈ E(G)] ∧ [h1 6= h2 ⇒ {h1 , h2 } ∈ E(H)] gilt. D.h. dass im Produktgraphen zwei Knoten adjazent sind, wenn mindestens ein ursprünglicher Knoten gewechselt wird, und beim Wechsel eines ursprünglichen Knotens diese im Ursprungsgraphen adjazent sind (s. Abb. 1). vH,1 vH,2 vH,3 =H vG,2 G= vG,1 Abbildung 1: Das starke Produkt zwischen zwei Graphen (G H). Im kartesischen Produkt G × H sind nur dann zwei Produktknoten (g1 , h1 ) und (g2 , h2 ) adjazent, wenn sie genau einen gemeinsamen Knoten haben und die verschiedenen Ursprungsknoten adjazent sind3 : [g1 6= g2 ⊕ h1 6= h2 ] ∧ [g1 6= g2 ⇒ {g1 , g2 } ∈ E(G)] ∧ [h1 6= h2 ⇒ {h1 , h2 } ∈ E(H)]. Diese Kanten entsprechen nur den waagerechten und senkrechten Kanten in Abb. 1. Ein Produktknoten kann als Zuordnung von zwei Elementen (d.h. Knoten bzw. Kanten) interpretiert werden. Dass in einem Produkt auch zwei Produktknoten adjazent sein können, wenn ein Urprungsknoten nicht gewechselt wird (waagerechte und senkrechte Kanten in Abb. 1), wird später die Möglichkeit bieten, n:m-Zuordnungen darzustellen. Ein mögliche Zuordung von G zu H als Teilgraphen wäre z.B. vG,2 ↔ vH,1 und vG,1 ↔ vH,2 implizit mit der jeweils dazwischen liegenden Kante (grau hinterlegt). Um beim Matching neben solchen Knoten/Knoten- auch explizit Kanten/Knoten- und Kanten/Kanten-Zuordungen darstellen zu können, werden zu den Ausgangsgraphen zuvor die sogenannten Inzidenzgraphen gebildet. Die Knotenmenge V (G) eines Inzidenzgraphen G von G ist die Vereinigung der Knoten- und Kantenmenge von G, d.h. V (G) = V (G) ∪ E(G). Zwei Knoten in G sind genau dann adjazent, wenn die Elemente in G inzident4 sind. Für das Matching von zwei Inzidenzgraphen G und H wird folgendes Produkt als Mischform zwischen starkem und kartesischem Produkt definiert (). Für zwei Produktknoten gelten folgende Kantenbedingungen: 1 G = hV, Ei (Knoten- und Kantenmenge). Hier werden nur ungerichtete Graphen betrachtet. Schleifen seien hier ausgeschlossen, d.h. z.B. für G, dass ∀g ∈ V (G) : {g, g} 6∈ E(G) gilt. 3 ⊕ sei das exklusive Oder. 4 Das bedeutet, dass ein Knoten Endknoten einer Kante ist. 2 44 1. Falls einer der beiden Produktknoten ein Knoten/Kanten-Paar ist, gilt die Bedingung des kartesischen Produkts. 2. Ansonsten gilt die Bedingung des starken Produkts. Angewendet auf die beiden Beispielgraphen ergibt sich jetzt der in Abb. 2 dargestellte Produktgraph. Diese Struktur bietet die Grundlage für das Matching von räumlichen Netzwerken. vH,1 vH,2 vH,3 =H vG,2 G= vG,1 vG,1 ↔ vH,1 {vG,1 , vG,2 } ← {vH,1 , vH,2 } {vG,1 , vG,2 } ← vH,2 {vG,1 , vG,2 } ← {vH,2 , vH,3 } vG,2 ↔ vH,3 Abbildung 2: Das Produkt auf zwei Inzidenzgraphen (G H) und eine Zuordnung. Beispielsweise lassen sich hier einfache 1:1-Zuordnungen oder auch die 2:1-Kanten-Zuordnung (grau hinterlegt) als Teilgraph finden. 3 Der Matching-Algorithmus Der Matching-Algorithmus besteht aus zwei Phasen. In der ersten Phase wird ein möglichst kleiner, aber hinreichend großer Teilgraph des Produktgraphens konstruiert (expandiert), in dem das Matchingergebnis zu finden ist. In der zweiten Phase wird durch ein regelbasiertes System dieser Teilproduktgraph soweit wie möglich abgebaut (reduziert), so dass im Optimalfall ein eindeutiges Matching entsteht. Da es sich hier um räumlich eingebettete Graphen handelt, die eventuell noch zusätzlich attributiert sind, ergeben sich hier folgende Kriterien, die Bildung des Teilproduktgraphen von vornherein einzuschränken: • Toleranzschranken für zugelassene Distanzen (geometrisches Kriterium): Für Knoten/Knoten- und Knoten/Kanten-Zuordnungen bieten sich die euklidische Distanz und für Kanten/Kanten-Zuordnungen die Hausdorffdistanz an, da diese effizient zu berechnen sind. • Inhaltliche Ähnlichkeiten (semantische Kriterien): Beim Matching geographischer Karten macht es z.B. keinen Sinn, eine Straße einem Fluss zuzuordnen. 3.1 Expansion Die Grundidee des Expansionsalgorithmus besteht darin, dass basierend auf einer Vorgabe einer Menge von Produktknoten, sogenannten Saatknoten (seed nodes), ein paralleler Breitendurchlauf durch beide Inzidenzgraphen stattfindet. Diese Saatknoten können beispielsweise durch räumliche Anfragen in der Datenbank erzeugt (alle Paare von Knoten, deren Abstand innerhalb einer Toleranz liegen; Nearest-Neighbour-Abfragen) oder durch einen Operateur gewählt werden. Für alle noch nicht expandierten Produktknoten (am Anfang sind dieses die Saatknoten), werden gemäß der Produktdefinition und der einschränkenden Kriterien die adjazenten Produktknoten gebildet. Im Falle eines Knoten/Kanten-Produktknotens (g, h) ∈ V (G H), g ∈ E(G), h ∈ V (H) lautet beispielsweise die Regel wie folgt: • Füge für jede Kante h0 aus E(H), wenn hierfür eine Kante {h, h0 } in E(H) existiert, den neuen Produktknoten (g, h0 ) benachbart zu (g, h) in den Teilproduktgraphen ein, soweit noch nicht vorhanden. • Füge für jeden Knoten g 0 aus V (G), wenn hierfür eine Kante {g, g 0 } in E(G) existiert, den neuen Produktknoten (g 0 , h) benachbart zu (g, h) in den Teilproduktgraphen ein, soweit noch nicht vorhanden. 45 Analog hierzu lauten die Regeln für die Expansion der Produktknoten vom Typ Kante/Knoten, Knoten/Knoten und Kante/Kante. Durch die Definition des Produktes, dass zwei Produktknoten nur dann adjazent sind, wenn die ursprünglichen Elemente entweder adjazent oder inzident sind, stellen die Zusammenhangskomponenten des Produktgraphen den gemeinsamen Zusammenhang der zu matchenden Graphen dar. Durch die Formulierung von Regeln ermöglicht dieses Verfahren die parallele mengenmäßige Bearbeitung in der räumlichen Datenbank noch nicht expandierter Knoten eines Typs. 3.2 Reduktion Der in der Expansionsphase konstruierte Teilproduktgraph enthält für die Reduktionsphase alle zunächst noch möglichen Zuordnungen zwischen Elementen der zu matchenden Graphen. In dieser Phase wird das Matching iterativ dadurch bestimmt, indem durch Anwendung von Reduktionsregeln noch mögliche Produktknoten aus dem Teilproduktgraphen entweder akzeptiert“ oder ” abgelehnt“ (d.h. entfernt) werden. Im folgenden wird eine Regeltypeinteilung gegeben, wobei ” konkrete Regeln nur beispielhaft an dieser Stelle angegeben werden können. Strukturelle Regeln Diese Regeln arbeiten ausschließlich auf der Graphstruktur; auch eine eventuelle Planarität spielt hier noch keine Rolle. Einfache strukturelle Regeln sind beispielsweise die Behandlung einfacher Pfadzuordnungen im Produktgraphen: • Wenn es zu einem Knoten aus einem Ursprungsgraphen mehrere Knoten/Knoten-Zuordnungen gibt (Produktknoten), alle beteiligten Ursprungsknoten einen Grad von 2 haben und linear verbunden sind, lehne alle bis auf eine Zuordnung ab (Abb. 3 (b)). • Wenn es zu einem Endknoten eines Graphens (Grad 1) mehrere Knotenzuordnungen gibt, die alle bis auf einen, der den Grad 1 hat, den Grad 2 haben, lösche alle bis auf die Zuordnung beider Endknoten (Abb. 3 (a)). Wenn beispielsweise nur vollständige Pfade zugeordnet werden sollen, d.h. ein Pfad in einem Graphen soll in dem anderen Graphen nicht mitten“ in einer Kante stehen bleiben, lässt sich ” folgende Regel formulieren:5 • Wenn ein Knoten/Kanten- bzw. Kanten/Knoten-Produktknoten zu weniger als zwei Kanten/Kanten-Produktknoten adjazent ist, so lehne diesen ab (Abb. 3 (c)). G H G (a) (b) (c) (d) H Abbildung 3: Beispiele der Reduktionsphase (Produktknoten5 sind gestrichelt angedeutet). Wenn mehrere Zuordnungsmöglichkeiten zwischen Knoten höheren Grades auftreten, lässt sich die Tatsache ausnutzen, dass der Teilproduktgraph den gemeinsamen Zusammenhang der ursprünglichen Graphen darstellt. In Abb. 3 (d) wird ein Ausschnitt gezeigt, in dem in einem Graphen nur ein einfacher Pfad existiert und im anderen eine Gabelung. Ein Matching, das nicht global auf der Menge aller möglichen Zuordnungen Entscheidungen trifft, würde sich von links kommend naheliegend für die untere Abzweigung entscheiden (geringerer Abstand). Hierbei würde der (lokale) Zusammenhang zu einem sinnvollen Matching, das weiter nach oben führt, verloren gehen. Vorausgesetzt, dass schon in vorherigen Iterationen lokal Teile des Produktgraphens als Matching akzeptiert wurden, lässt sich folgende Regel formulieren: • Wenn für den Kreuzungsfall nur ein Knoten/Knoten-Produktknoten den (lokalen) Zusammenhang erhält, akzeptiere diesen und lehne die anderen (konfligierenden) ab. 5 Knoten/Kanten-Produktknoten sind hier überwiegend nicht dargestellt. 46 Topologische Regeln Bei Planarität der Ausgangsgraphen (was bei topologischen Datenmodellen der Fall ist) können bei bereits akzeptierten Produktknoten sofort andere ausgeschlossen werden. Ein Beispiel hierfür ist eine Kreuzung mit mindestens drei Straßen, in der jeweils zwei zugeordnet werden konnten. Wenn die noch nicht zugeordnete in einem Fall links der einen Straße und in anderem Fall rechts liegt, lassen sich diese Straßen nicht mehr topologisch korrekt zuordnen und der entsprechende Produktknoten kann entfernt werden. Semantische Regeln Hier werden semantische Attribute der Knoten und Kanten zur Entscheidung hinzugezogen, etwa um Straßen/Straßen- und Straßen/Fluss-Kreuzungen zu unterscheiden. Geometrische Regeln Hierunter fallen Regeln, die nach geometrischen Kriterien lokale Entscheidungen treffen. Beispielsweise kann im Fall mehrerer Zuordnungsmöglichkeiten von in einem Knoten inzidenten Kanten diejenige abgelehnt werden, bei der die größte Differenz zwischen den Ausfallwinkeln auftritt. Hiermit steht eine Vielfalt verschiedener Regeln zur Verfügung, aus der abhängig von den Eigenschaften der zu matchenden Graphen eine Auswahl getroffen und eine Regelbearbeitung gewählt werden muss, die dann mengenmäßig in der Datenbank ausgeführt werden. Für das Matching von Straßennetzwerken hat sich ein Regelwerk als praktikabel erwiesen, in dem zunächst die einfachen strukturellen Regeln solange wie möglich iteriert werden, dann die etwas aufwendigeren strukturellen Regeln (Kreuzungsbeispiel) und erst wenn diese auch keine Änderungen mehr bewirken, geometrische Regeln geschachtelt angewendet werden. In einem so reduzierten Teilproduktgraph, der im Optimalfall nur akzeptierte und keine möglichen“ Produktknoten mehr enthält, lässt sich dann das gewünschte Matching der Ur” sprungsgraphen in Form von n:m-Zuordnungen zwischen den entsprechenden Elementen direkt ablesen. Erste Experimente zeigen deutliche Effizienzgewinne gegenüber klassischen Verfahren wie Buffer Growing“. ” 4 Ausblick In Zukunft soll dieses Konzept in verschiedenen Richtungen erweitert werden. Bisher wird auch im Fall planarer Graphen das Produkt nur aufgrund der Knoten und Kanten gebildet – hier bietet sich an, bei der Bildung des Inzidenzgraphen die enthaltenen Maschen mit einzubeziehen und die Regelsätze entsprechend zu erweitern. Auch soll untersucht werden, wie einfache Reduktionsregeln, die nur lokale Informationen benötigen, in die Expansionsphase vorgezogen werden können. Weiterhin sollen Varianten betrachtet werden, in denen z.B. auch Matchings über Lücken hinweg gefunden werden können (erfordert ein anderes Graphprodukt) oder auch topologische Kriterien ein größeres Gewicht erhalten. Literatur [IK00] W. Imrich, S. Klavažar. Product Graphs. Wiley-Interscience, 2000. [KSK01] P. N. Klein, T. B. Sebastian, B. B. Kimia. Shape matching using edit-distance: an implementation. In SODA ’01: 12th Ann. ACM-SIAM Symposium on Discrete Algorithms. 2001. ISBN 0-89871-490-7, 781–790. [Lyd06] J. J. Lyda. Einsatz von Produktgraphen für das Matching kartographischer Datenbanken, 2006. [Mes96] B. T. Messmer. Efficient Graph Matching Algorithms for Preprocessed Model Graphs, 1996. [Mus06] S. Mustière. Results of Experiments on Automated Matching of Networks at Different Scales. In M. Hampe, M. Sester, L. Harrie, Hg., Proceedings of the JOINT ISPRS Workshop on Multiple Representations and Interoperability of Spatial Data. Vol. XXXVI Part 2/W40. Hannover, 2006. [Rip04] N. Ripperda. Graphbasiertes Matching in räumlichen Datenbanken, 2004. [Wal97] V. Walter. Zuordnung von raumbezogenen Daten - am Beispiel der Datenmodelle ATKIS und GDF, 1997.