 
                                Graph Matching
Torsten Gründel
03.11.2006
Überblick
1.
Was ist Graph Matching
2.
Morphismen
Allgeimeines
2. Graphisomorphismus
3. Subgraphisomorphismus
4. Eigenschaften
1.
Überblick
3. Kategorien von Matchingmethoden
1. Exakte Matchingmethoden
2. Unexaktes Matching
1.
2.
3.
Matchingkosten
Optimale & Suboptimale Inexakte
Matchingalgorithmen
Matchingmethoden
Überblick
4. Subgraphalgorithmus von Ullmann
1. Definitionen
2. Einfacher Aufzählungsalgorithmus
3. Verbesserte Prozedur
5. Zusammenfassung
6. Referenzen
1. Was ist Graph Matching?
Rechenintensive Technik aus den späten 70ern
„Graph Matching ist der Prozess, eine Korrespondenz zwischen Knoten und Kanten
zweier Graphen zu finden, die (mehr oder weniger strikte) Bedingungen erfüllt und
sicherstellt, dass gleiche Substrukturen eines Graphen auf gleiche Substrukturen des
anderen Graphen abgebildet werden.“
Vielfältige Einsatzgebiete:
2D & 3D Bildanalyse
Dokumentenverarbeitung
Biometrische Identifizierung
Bilddatenbanken
Videoanalyse
Biomedizinische und Biologische Anwendungen
2. Morphismen
1.
2.
3.
4.
Allgemeines
Graphisomorphismus
Subgraphisomorphismus
Eigenschaften
2. Morphismen
„Ein Morphismus ist eine Abbildung zwischen zwei mathematischen
Objekten des selben Typs, die die grundlegende Struktur der Objekte
erhält.“
Hier: Abbildung zwischen den Knoten der Graphen G=(V,E) und
G‘=(V‘,E‘), die die Kantenverbindungen erhält.
Definition Graphenhomomorphisus (schwächste Form):
f : V  V ' mit x, y E   f ( x), f ( y) E' für alle x, y V
Striktere Form: Graphmonomorphismus
Hier müssen die Knotenabbildungen eindeutig sein
2. Morphismen
1.
2.
3.
4.
Allgemeines
Graphisomorphismus
Subgraphisomorphismus
Eigenschaften
2.1 Graphisomorphismus
Definition: Ein Graphenisomorphismus ist ein bijektiver Graphenhomomorphismus
zwischen zwei Graphen G=(V,E) und G‘=(V‘,E‘)
f : V  V ' mit x, y E   f ( x), f ( y) E' für alle x, y V
4
A
D
F(A) = 1
F(B) = 2
C
F(C) = 3
F(D) = 4
B
E
1
3
2
F(E) = 5
5
2.1 Graphisomorphismus
Definition: Ein Graphenisomorphismus ist ein bijektiver Graphenhomomorphismus
zwischen zwei Graphen G=(V,E) und G‘=(V‘,E‘)
f : V  V ' mit x, y E   f ( x), f ( y) E' für alle x, y V
4
A
D
F(A) = 2
F(B) = 1
C
F(C) = 3
F(D) = 5
B
E
1
3
2
F(E) = 4
5
2. Morphismen
1.
2.
3.
4.
Allgemeines
Graphisomorphismus
Subgraphisomorphismus
Eigenschaften
2.2 Subgraphisomorphismus
Knoteninduzierter Subgraph: G‘=(V‘,E‘) ist Subgraph von G=(V,E) und
Definition: Ein Subgraphisomorphismus ist ein Graphisomorphismus zwischen
einem Graph G=(V,E) und einem knoteninduzierten Subgraph
eines zweiten Graphen G‘=(V‘,E‘)
u, v E : u V '  v V '  u, v E'
4
A
1
F(A) = 1
B
F(B) = 3
F(C) = 2
3
2
C
5
2.2 Subgraphisomorphismus
Knoteninduzierter Subgraph: G‘=(V‘,E‘) ist Subgraph von G=(V,E) und
Definition: Ein Subgraphisomorphismus ist ein Graphisomorphismus zwischen
einem Graph G=(V,E) und einem knoteninduzierten Subgraph
eines zweiten Graphen G‘=(V‘,E‘)
u, v E : u V '  v V '  u, v E'
4
A
F(A) = 1
B
F(B) = 3
F(C) = 4
1
3
2
C
5
2. Morphismen
1.
2.
3.
4.
Allgemeines
Graphisomorphismus
Subgraphisomorphismus
Eigenschaften
2.5 Eigenschaften
Graphisomorphismus: nicht bewiesen ob in NP
Alle Anderen: NP-Vollständig
Polynomielle Algorithmen für spezielle Graphen existieren
Rechenzeit heute akzeptabel, da
Gesteigerte Rechenleistung
Graphen in Praxis unterscheiden sich von „Worst Case Graphen“
Knoten- & Kanteneigenschaften reduzieren Suchzeiten
3. Graph Matching Methoden
1.
2.
Exaktes Matching
Unexaktes Matching
1.
2.
3.
Matchingkosten
Optimale & Suboptimale Inexakte Matchingalgorithmen
Matchingmethoden
3.1 Exaktes Graph Matching
Matching anhand vorgestellter
Morphismen
2
A
B
Meist werden Bäume verwendet
Suchstrategie (z.B. BFS, DFS) gibt
Reihenfolge vor
Grundidee: Partielles Matching
(anfangs leer) iterativ um
Matchingpaar erweitert
1
{ }
{(A,1)}
{(A,2)}
{(A,1),
{(A,1),
{(A,2),
{(A,2),
(B,1)}
(B,2)}
(B,1)}
(B,2)}
3. Graph Matching Methoden
1.
2.
Exaktes Matching
Unexaktes Matching
1.
2.
3.
Matchingkosten
Optimale & Suboptimale Inexakte Matchingalgorithmen
Matchingmethoden
3.2 Unexaktes Matching
Gründe für Unexaktheit:
1.
Nichtdeterministische Elemente sind enthalten
2.
Exaktes Matching ist zu teuer (Rechenzeit)
Matching muss nicht kantenerhaltend sein
Bestrafung durch zuweisen von Kosten bei Unterschieden
Suche Matching mit minimalen Kosten
Unterscheiden:
Optimale Inexakte Matchingalgorithem
Suboptimale Matchingalgorithmen
3.2.1 Matchingkosten
Fehlerkorrektur oder Fehlertoleranz
Zuweisung von Kosten für jeden Fehler (z.B. fehlender Knoten)
 Vergleich der Graphen anhand der Kosten
Graphenbearbeitungskosten (GbK)
Zuweisung von Kosten für Graphenbearbeitungsoperationen
 GbK = billigste Sequenz von Operationen zur Transformierung von G in G‘
Graphenbearbeitungsabstand
Graphenbearbeitungskosten erfüllen gewisse Bedingungen
 Operationen zur Transformierung als Maß für den Abstand zwischen Graphen
Graphabstand (nur für Algorithmen in metrischen Räumen)
Kostendefinition erfüllt Distanzfunktionseigenschaften
 Kosten sind Maß für die Ungleichheit von Graphen
3.2.2 Optimale & Suboptimale inexakte Matchingalgorithmen
Optimale Inexakte Matchingalgorithmen
Finden immer globales Minimum, also auch exakte Lösung wenn vorhanden
 Kommt mit Graphschwankungen zurecht
 Kostenintensiver als Exakte Algorithmen
 Eignen sich zur Lösung von Problemen wenn exakte Lösung erforderlich aber
Graphschwankungen vorliegen
Suboptimale Matchingalgorithmen
Finden lokales Minimum
Keine Garantie exakte Lösung zu finden, wenn vorhanden
Normalerweise polynomielle Vergleichszeit
Eignen sich, wenn Rechenzeit gespart werden soll
3.2.3 Matchingmethoden
Baumsuche
Heuristische Abschätzung der Matchingkosten für verbleibende Knoten
Entfernen von unfruchtbaren Pfaden anhand Abschätzungen
Kontinuierliche Optimierung
Grundidee:
1.
Graphmatching umwandeln in kontinuierliches, nichtlineares OP
2.
Anwendung eines Optimierungsalgorithmus um Lösung zu finden
3.
Rücktransformierung in Graphmatching Domäne
Polynomielle Rechenzeit (mit kleinem Exponenten) bzgl. Graphgröße
Spektralmethoden
Benutzt Eigenschaft, dass
G1 , G2 isomorph  EW G1   EW G2   EV G1   EV G2 
4. Ullmanns Subgraphalgorithmus
1.
2.
3.
4.
Allgemeines
Einfacher Aufzählalgorithmus
Verbesserte Version
Eigenschaften
4.1 Allgemeines
Wahrscheinlich bekanntester Graphmatching Algorithmus
Anwendbar für
Subgraphisomorphismus
Graphisomorphismen
Graphmonomorphismen
MCS
Maximum Clique
Exakter DFS Baumsuchalgorithmus
Findet Subgraphisomorphismen zwischen zwei Graphen G  V , E 
und G  V , E
4. Ullmanns Subgraphalgorithmus
1.
2.
3.
4.
Allgemeines
Einfacher Aufzählalgorithmus
Verbesserte Version
Eigenschaften
4.2 Einfacher Aufzählungsalgorithmus
Benutzen Matrizen der Form:
Einträge bestehen aus 0 und 1
 Genau eine 1 in jeder Reihe
 Nicht mehr als eine 1 pro Spalte
Matrizen dienen Zur Permutation von
Adjazenzmatrizen
Permutationsmatrix C  cij   M ' M ' B T
p
p  V
p  
und
p  V
Falls mij  1 , dann korrespondiert der j-te Knoten in G  zu dem i-ten Knoten
in G
4.2 Einfacher Aufzählungsalgorithmus (Beispiel Permutation)
0
1
B  
0
0
1
2
4
3
1
3
2
1 0 0
0 1 1
1 0 0
1 0 0 
1
0
0
0
 1
 
0 0 1 0  0
0 1 0 0 0
 
0
1 0 0 0 
 1
 0 0 1 0  
0 1 0 0 0
 0
0 0 1
 0 0 1  C
1 1 0
1 0 0 0
M '   0 0 1 0
 0 1 0 0
0
0 0 0 
 1
0 1 0  
0
1 0 0 
0
0 1
1 0
0 1
0 1 
1 0 0
0 1 1
1 0 0
1 0 0  
4.2 Einfacher Aufzählungsalgorithmus
G
Vergleiche Resultierenden Graph mit
Isomorphismus vorhanden falls i , j  a  1  c  1
ij
ij
1 i  p
1 j  p
0
Erstellung einer Startmatrix M mit
1 , falls der Grad des j - ten Knotens von G  dem Grad des i - ten Knotens von G
m 
0 , sonst
0
ij
Generierung aller M mit mij  1  mij  1
umändern von 1en in 0en
Baum von Matrizen mit Terminierungsebene p
'
'
0
durch systematisches
4.2 Einfacher Aufzählungsalgorithmus (Generierung Startmatrix)
G
1
2
3
1 1 1 1
1 1 1 1
 0 1 0 0
M
0 0 1
0 0 1
1 1 0
A
G
1
2
4
3
0
1 , falls der Grad von vj  dem Grad von vi
mij0  
0 , sonst
0
1
0
0
1 0 0
0 1 1
1 0 0
1 0 0 
B
4.2 Einfacher Aufzählungsalgorithmus (Der Algorithmus)
Step 7:
2:
3:
4:
5:
6:
Gibt
Suche
Falls
Überprüfe,
Speichere
es
Terminierungslevel
ersten
in aktueller
welche
ob
verwendbaren
esVariablen,
einen
Zeile
Reihe
Eintrag
verwendet
erreicht,
eine
Spalteneintrag
1,
weiter
deren
dann
wurde
rechts
überprüfe
Spalte
und
mit
inerhöhe
noch
Matrix
1 ob
und
nicht
die
gibt,
1: Backtracking
Initialisieren
der
starten
bei
Initialmatrix
und
verwendet
setze
Isomorphismus
der
Zeilenanzahl
1 ist
alle
und
anderen
wurde?
verwendet
umvorhanden
1 Einträge
Wennwerden
ja, der
dann
Zeile
kann
verwende
auf
0 verwendet
diese Spalte
erster
Zeile.
Alle
Spalten
wurden
noch
nicht
4.2 Einfacher Aufzählungsalgorithmus (Beispiel)
1 1 1 1
1 1 1 1
 0 1 0 0
1 0 0 0
1 1 1 1
 0 1 0 0
1 0 0 0
 0 0 1 0
 0 1 0 0
1 0 0 0
0 0 0 1
 0 1 0 0
1 0 0 0
 0 1 0 0
 0 1 0 0
1 0 0 0
 0 0 1 0
 0 1 0 0
1 0 0 0
0 0 0 1
 0 1 0 0
 0 1 0 0
1 1 1 1
 0 1 0 0
 0 1 0 0
1 0 0 0
 0 1 0 0
 0 1 0 0
 0 0 1 0
 0 1 0 0
 0 1 0 0
0 0 0 1
 0 1 0 0
Step 3
4
6
7
5
1
2
 0 0 1 0
1 1 1 1
 0 1 0 0
 0 0 1 0
1 0 0 0
 0 1 0 0
 0 0 1 0
0 0 0 1
 0 1 0 0
 0 0 1 0
 0 1 0 0
 0 1 0 0
 0 0 1 0
1 0 0 0
 0 1 0 0
 0 0 1 0
0 0 0 1
 0 1 0 0
0 0 0 1
1 1 1 1
 0 1 0 0
0 0 0 1
1 0 0 0
 0 1 0 0
0 0 0 1
 0 0 1 0
 0 1 0 0
0 0 0 1
 0 1 0 0
 0 1 0 0
0 0 0 1
1 0 0 0
 0 1 0 0
0 0 0 1
 0 0 1 0
 0 1 0 0
4.2 Einfacher Aufzählungsalgorithmus (Beispiel)
1 0 0 0
0
0
1
0
 0 1 0 0
1 0 0 0
0
0
0
1
 0 1 0 0
 0 0 1 0
1
0
0
0
 0 1 0 0
 0 0 1 0
0
0
0
1
 0 1 0 0
Berechnete s C  cij   M ' M ' B  jeweils
T
1
4
3
1
2
3
2
0 0 1
0
0
1
1 1 0
2
3
1
1
3
1
2
3
2
3
1
1
4
4
3
0 0 0 1
0
0
1
0
 0 1 0 0
Vergleiche mit A
0 0 1
0
0
1
1 1 0
1
0 0 0 1
1
0
0
0
 0 1 0 0
1
3
3
2
4.3 Verbesserte Prozedur
Wenn für alle Isomorphismen M‘ unter M gilt mij'  0
setze mij  0
vi gematcht auf vj 
 x   a
Neue Bedingung:
Iteratives Testen bis keine 1 in 0 umgewandelt wird
1 x  p
vx1
vy1
v j
vi
vx 2
m 1 dann
ij
1   y  mxy  byj  1
1 y  p
ix
vy 2
4.3 Verbesserte Prozedur (Der Algorithmus)
Step 10:
1:-Nächster
2
5:
6:
7:
8:
9:
Variablen
nächster
Überprüfe
Setze
4:
Fehler,
Nachbarn
Eintrag
Matrixeintrag
Matrixeintrag
aufsetzen
ob des
Nachbar
auf i-ten
0
Matrixeintrag
des
und
nächster
Knoten
i-ten
nächster
Knotens
Knoten
suchen
Knoten
0 ist auf
i, j
einen
neuerKnoten
Durchlauf
gemappt
werden
oder Erfolg
kann.
4.3 Verbesserte Prozedur (Anwendung)
Verbesserung durch Anwendung von
0 0 1
0 0 1
1 1 0
A
 aix 1   y  mxy  byj  1
1 y  p
1 1 1 1
1 1 1 1
 0 1 0 0
M
0
0
1
0
0
1 0 0
0 1 1
1 0 0
1 0 0 
B
4.3 Verbesserte Prozedur (Anwendung)
i=1
j=1
sc = 1000
lst = 3
h=2
1
x=3
0 0 1
0 0 1
1 1 0
A
Step 7
1,2,3,4,5
6
1 1 1 1
1 1 1 1
 0 1 0 0
M
0
0
1
0
0
1 0 0
0 1 1
1 0 0
1 0 0 
B
4.3 Verbesserte Prozedur (Anwendung)
i=1
j=2
sc = 0100
lst = 3
h=1
2
x=3
0 0 1
0 0 1
1 1 0
A
Step 8
6
7
9
 1 10 1 1 
1 1 1 1
 0 1 0 0
M
0
0
1
0
0
1 0 0
0 1 1
1 0 0
1 0 0 
B
4.3 Verbesserte Prozedur (Adaptierter Suchalgorithmus)
4.2 Verbesserte Prozedur (Beispiel)
1 0 1 1
1 0 1 1
 0 1 0 0
1 0 0 0
1 0 1 1
 0 1 0 0
 0 0 1 0
1 0 1 1
 0 1 0 0
Step 5
1
2
3
4
6
7
0 0 0 1
1 0 1 1
 0 1 0 0
1 0 0 0
 0 0 1 0
 0 1 0 0
1 0 0 0
0 0 0 1
 0 1 0 0
 0 0 1 0
1 0 0 0
 0 1 0 0
 0 0 1 0
0 0 0 1
 0 1 0 0
0 0 0 1
1 0 0 0
 0 1 0 0
0 0 0 1
 0 0 1 0
 0 1 0 0
1 0 0 0
 0 0 1 0
 0 1 0 0
1 0 0 0
0 0 0 1
 0 1 0 0
 0 0 1 0
1 0 0 0
 0 1 0 0
 0 0 1 0
0 0 0 1
 0 1 0 0
0 0 0 1
1 0 0 0
 0 1 0 0
0 0 0 1
 0 0 1 0
 0 1 0 0
5. Zusammenfassung
Rechenintensiv, aber akzeptabel
Verschiedene Arten von Matching und Methoden
Vielfältige Anwendungsgebiete und Methoden (>170 Referenzen im
zweiten Paper)
Für uns besonders RDF-Matching interessant
Referenzen