Isomorphism - Benchmark verschiedener Isomorphie

Werbung
Isomorphism
Benchmark verschiedener Isomorphie-Algorithmen
Lars Schmidt und Dominik Wol
14.12.2009
Introduction
Im Folgenden werden für einige bekannte
Graph-Isomorphiealgorithmen praktische Laufzeiten präsentiert.
2 / 18
Testumgebung
Testrechner:
I Prozessor: Intel Core2 Duo E8600 3.33GHz
I Arbeitsspeicher: 4GB Ram
Verwendete Implementierung:
I Alle verwendeten Implementierungen der
Isomorphiealgorithmen stehen in der vfLib2 bereit
(http://amal.dis.unina.it/graph/).
I vfLib ist eine in C++ geschriebene Bibliothek von
Isomorphiealgorithmen Implementierungen.
I Die verwendeten Testgraphen stammen aus der
Graphenbibliothek der oben genannten vfLib.
I Diese sind in einem speziellen binären Format gespeichert.
3 / 18
Auswahl der Algorithmen
I Algorithmus von Schmidt und Druel
I Benutzt Informationen aus der Distanzmatrix des Graphen um
eine initiale Partition der Knoten zu erstellen.
I Beim Backtracking wird die Distanzmatrix genutzt um den
Suchbaum der möglichen Mappings zu reduzieren.
I Ullmann's Algorithmus
I Einfach, häug implementiert, häug ausreichend schnell
I VF Algorithmus
I Im Unterschied zum VF2 werden die Informationen der
Zustandssuche in einer weniger ezienten Datenstruktur
gespeichert, dies führt zu mehr Zeit- und Platzbedarf.
I VF2 Algorithmus
I Benutzt ähnliches Prinzip wie bei Ullmann, aber hat linearen
Platzbedarf und ist deutlich schneller
4 / 18
Unsere Testgraphen
Die von uns verwendete Graphklassen:
I Randomly Connected Graphs
I Zufällige, nicht strukturierte Graphen
I Irregular 2D-Meshes
I Sehr strukturierte Graphen, die etwas unregelmäÿig gemacht
werden
I Bounded Valence Graphs
I Folgen einer gewissen Struktur, die fürs Matching negativ ist.
I Irregular Bounded Valence Graphs
I Unregelmäÿige Graphen die special-purpose Algorithmen
unbrauchbar machen.
5 / 18
6 / 18
Randomly Connected Graphs
Abbildung: Randomly Connected Graph mit
η = 0.2
I Sind Graphen in denen Kanten Knoten ohne eine
Regelmäÿigkeit verbinden.
I Die Wahrscheinlichkeit
η,
dass eine Kante zwischen 2 Knoten
existiert, ist unabhängig von den Knoten selbst.
I Es wird Gleichverteilung angenommen
⇒ |E | = η|V ||V − 1|
I Falls der Graph nicht zusammenhängend ist, werden weitere
Kanten eingefügt.
Randomly Connected Graphs: Laufzeit
I VF und VF2 performen immer besser als Ullmann und
Schmidt/Druel.
I Für kleine Graphen ist Ullmann schneller als Schmidt/Druel.
7 / 18
8 / 18
Irregular 2D-Meshes
I Graphen mit einer regelmäÿigen
Struktur stellen worst-case für
Isomorphiealgorithmen dar.
I 2D Meshes: Jeder Knoten (auÿer
Randknoten) ist mit seinen 4
Nachbarn verbunden.
I Irregular 2D-Meshes: Für ein
Abbildung: 2D Mesh und
zugehöriges Irregular 2D-Meshes
mit
ρ = 0.2
2D-Mesh werden weitere
|V |ρ
Kanten eingefügt, wobei Startund End-Knoten zufällig gewählt
werden.
Regular 2D-Meshes: Laufzeit
I Ullmann ist deutlich ungeeignet, da er gleichwertige Knoten
(gleicher Grad) als mögliche Matching-Partner vorsieht.
9 / 18
Irregular 2D-Meshes: Laufzeit
I Es werden nun 1 |
5
10 / 18
V | Kanten zum Graphen zufällig hinzugefügt.
11 / 18
Irregular 2D-Meshes: Laufzeit
I Durch das Hinzufügen von 3 |
5
V | zufälligen Kanten wird
Ullmann besser, da die Anzahl der gleichwertigen Knoten
abnimmt (mögliche Matchingpartner werden weniger).
12 / 18
Bounded Valence Graphs
I Der Grad jedes Knoten ist kleiner als
eine vorgegebene Schranke, genannt
Valence.
I Falls jeder Knoten gleichen Grad hat,
wird er auch xed valence graph
genannt.
I Diese werden generiert indem zufällig
Kanten eingefügt werden, bis jeder
Knoten die entsprechende Valence
Abbildung: Bounded Valence
Graph mit Valence 5
erreicht hat.
I Es ist unmöglich solche Graphen mit
ungeradem
|V |
zu erzeugen.
und ungerader Valence
Bounded Valence Graphs: Laufzeit
I Der Ullmann Algorithmus ndet nicht immer eine Lösung.
I Schmidt/Druel ist auch hier immer schlechter als VF oder
VF2.
13 / 18
Bounded Valence Graphs: Laufzeit
I Für Graphen mit höherer Dichte wird Ullmann besser als für
dünnere Graphen.
I Für die restlichen Algorithmen ergibt sich nur eine kleine
Verschiebung.
14 / 18
15 / 18
Irregular Bounded Valence Graphs
I Die durchschnittliche Valence ist
beschränkt, aber einzelne Knoten
können eine vom Durchschnitt
verschiedene Valence besitzen.
I Graph entsteht durch Verschieben
einer bestimmte Anzahl von Kanten
(z.B. 10%) des xed valence graph.
I Damit Valencen der Knoten variieren,
wird eine spezielle Verteilung für die
Abbildung: Die beiden
gestrichelten Kanten wurden
verschoben
Endknoten benutzt, bei der die
maximale Valence von
|V |
abhängt
und es so unmöglich macht
special-purpose Algorithmen zu
benutzen.
Irregular Bounded Valence Graphs: Laufzeit
16 / 18
I Für die modied Variante schat es der Schmidt/Druel Alg.
besser mit höherer Knotenzahl umzugehen als der VF
I VF hat bei verschiedenen Graphinstanzen erhebliche
Laufzeitunterschiede (0,1s zu 250s)
I Ullmann wird für kleinere Knotenzahl einsatzfähig.
Irregular Bounded Valence Graphs: Laufzeit
I Bei dieser Graphenklasse leisten alle getesteten Algorithmen
ordentliche Ergebnisse.
I Dies liegt an der Unterschiedlichkeit der Knoten innerhalb
der getesteten Graphen.
17 / 18
18 / 18
Fazit
I Generell ist der VF2 Algorithmus der schnellste der getesteten
Algorithmen.
I Die einfachen Implementierungen der Ullmann oder VF
Algorithmen zahlen sich aber evtl. aus, sollte man je nach
Anwendungszweck nur kleine Graphen auf Isomorphie testen
wollen.
Herunterladen