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.