DE EN
Menü

Programmierpraktikum Diskrete Optimierung (Modul P2C1)

← Semesterübersicht

Sommersemester 2020


Thema: Graphenisomorphie


Thema dieses Programmierpraktikums ist die Implementierung von Algorithmen zum Test auf Isomorphie von Graphen.
Aktueller Hinweis: Das Programmierpraktikum wird wie geplant im SS2020 stattfinden. Aufgrund der derzeitigen Situation wird jedoch die Frist zur Abgabe der Einstiegsaufgabe bis zum 15.5.2020 verlängert.

Abschlusspräsentation: Die Präsentation der Programme ist für Montag, den 6.7., 16:00 Uhr s.t. geplant. Jeder Teilnehmer soll dabei in 10 bis 15 Minuten das von ihm betrachtete Verfahren, seine Implementierung sowie experimentelle Ergebnisse vorstellen.

Terminplan für die Abschlusspräsentation:

  • 16:00 Antonia Ellerbrock
  • 16:15 Markus Kleinau
  • 16:30 Linnea Leuze
  • 16:45 Simon Blasinski
  • 17:00 Timo Brand
  • 17:15 Jan Sebastian Walter

Einstiegsaufgabe: Implementieren Sie einen Backtracking-Algorithmus, der Graphisomorphie testet. Der Algorithmus soll die jeweils ersten i Knoten des ersten Graphen auf die ersten i Knoten des zweiten Graphen abbilden und für die Wahl des i+1-ten Knoten die Adjazenz zu den bisherigen Knoten beachten. Mögliche, aber nicht notwendige Ausbaustufen: Geschickte Wahl des i+1-ten Knotens, Gradbedingungen etc.


Testinstanzen: Hier finden Sie einige Testinstanzen. Die Dateien enthalten in der ersten Zeile eine Knotenzahl n. In jeder weiteren Zeile wird genau eine Kante durch die Nummern ihrer Endknoten bestimmt, wobei alle Knoten von 0 bis n-1 nummeriert seien. Dieses Datenformat wurde bereits in der Vorlesung Algorithmische Mathematik I verwendet (siehe hier) und kann mit den dort eingeführten Einleseroutinen eingelesen werden.


Neue Abgabefrist der Einstiegsaufgabe: 15.5.2020
Programmieraufgaben:
  • Aufgabe 1 (Antonia Ellerbrock): Isomorphie von Intervallgraphen
    Algorithmus von Lueker und Booth, wie in deren Arbeit beschrieben.
    Betreuer: Siad Daboul
  • Aufgabe 2 (Markus Kleinau): Exakter Isomorphietest
    Algorithmus von Corneil und Gotlieb
    Betreuer: Siad Daboul
  • Aufgabe 3 (Linnea Leuze): Local Weisfeiler Lehman Algorithmus
    Arbeit von Morris und Mutzel 2019, Vergleich k-dim vs local
    Betreuer: Benjamin Klotz
  • Aufgabe 4 (Simon Blasinski): Erzeuge Liste aller nicht-isomorphen Graphen mit Eigenschaft Pi
    Arbeiten von Read sowie Colbourn+Read, Ergebnis sollte verglichen werden mit der sehr effizienten Implementierung von McKay (makeg)
    Betreuer: Stefan Rabenstein
  • Aufgabe 5 (Timo Brand): Practical Graph Isomorphism
    Arbeit von McKay, in der die wesentliche Funktionsweise von Nauty beschrieben wird.
    Betreuer: Stefan Rabenstein
  • Aufgabe 6 (Jan Sebastian Walter): Largest Common Subgraph
    Arbeit von Koch (via Clique Reduction) und Cuissart et al (direkter Ansatz)
    Betreuer: Benjamin Klotz
Abgabefrist der Hauptaufgabe: 29.6.2020

Allgemeine Hinweise zum Programmieren.
Prof. Dr. B. Korte,
Prof. Dr. J. Vygen,
Prof. Dr. S. Hougardy,
Prof. Dr. S. Held,
Dr. U. Brenner