Bachelorarbeit
Thema: Visualisierung grundlegender Graphenalgorithmen
Die Bachelorarbeit ist nun fertig und kann hier eingesehen werden (.pdf). Im Anhang des PDFs befindet sich nochmals das Java-Programm.
Die aktuelle Version des Programms kann auch über Java Web Start hier ausgeführt werden. Das Programm legt ein paar Beispieldateien im Home-Verzeichnis des Nutzers an, deswegen müssen die Sicherheitsfragen akzeptiert werden.
Zur Beschreibung des Inhalts der Arbeit ist hier die kleine Einleitung aus der Arbeit:
Der Inhalt dieser Bachelorarbeit ist mit dem Titel „Visualisierung Graphentheoretischer Algorithmen“ noch sehr grob umschrieben. Die Aufgabenstellung war, eine Software zu entwickeln, die die fundamentalen graphentheoretischen Algorithmen enthält, die in der Vorlesung „Algorithmen und Graphentheorie“ an der TU Bergakademie Freiberg von Prof. Dr. rer. nat. habil. Sonntag gelehrt werden. Das so entstandene Programm stellt dem Endbenutzer eine Oberfläche zur Verfügung, mit der er Graphen eingeben, editieren und die bekannten Algorithmen auf eben diese Graphen anwenden kann. Dabei ist es
dem Benutzer möglich, auch komplexe Graphen mit den Algorithmen zu bearbeiten und sich dabei die wichtigen Teilschritte anzeigen zu lassen. Bei der Entwicklung des Programmes wurde vielWert darauf gelegt, neben einer einfachen Bedienbarkeit für normale Anwender, dem Lehrenden ein effizientes Programm zur Verfügung zu stellen, um dieses auch während einer Lehrveranstaltung zur Präsentation der Algorithmen zu nutzen. Die im Programm enthaltenen Algorithmen sind: Kruskal, Prim, Dantzig/Dijkstra, Hierholzer, Christofides, Ford-Fulkerson und die Ungarische Methode.
Der Umfang dieser sieben Algorithmen machte es notwendig, die Bachelorarbeit von zwei Personen bearbeiten zu lassen. Schon allein der Quellcode des gesamten Programmes umfasst mehr als 19000 Zeilen. Mit der Teilung der Arbeit musste eine klare Trennung in zwei Teile erfolgen, mit annähernd gleichem Umfang jeweils im mathematischen und programmiertechnischen Teil. Darauf basierend erfolgt nun eine Aufschlüsselung der Bereiche dieser Bachelorarbeit nach dem Autor.
Andreas Groll ist für folgende Bereiche verantwortlich: Vorwort, Minimalgerüste, Maximalstromproblem, Matchingprobleme, Klassenaufbau, GraphHQ und GraphPanel. Diesen Abschnitten entsprechend erfolgte auch die Programmierung.
Die bearbeiteten Abschnitte von Robert Jockwitz sind: Begriffsdefinition, KürzesteWege, Das chinesische Briefträgerproblem, Das Traveling Salesman Problem, Graphenformat, Graphparser und GraphWriter, Convert-Tools, Console, GraphMenu, GraphPrint, Weitere Klassen und GraphCalc Anwendungsfälle.
In einigen Fällen war es nicht möglich, eine klare Trennung durchzuführen. So ist die Planungsphase ein Beispiel dafür, dass ein umfangreiches Softwareprojekt mit mehreren Programmierern nur mit ausreichender Zusammenarbeit und gut durchdachter Versionsverwaltung realisierbar ist. Die einzelnen Aufgabenbereiche dieser Bachelorarbeit konnten deshalb nur entstehen, weil in grundlegenden Prozessen der Softwareentwicklung zusammen gearbeitet wurde.
