Einführung

Mit dem Graphical Graph Designer ist es möglich, effektiv und schnell einen Graphen visuell zu erstellen. Dieser kann gespeichert oder exportiert werden, um ihn z.B. in BlueJ zusammen mit den NRW-Abiturklassen Graph, Vertex und Edge zu nutzen. Auch ist es möglich, direkt im Graphical Graph Designer Tiefen- und Breitensuchen zu simulieren und sogar mit dem erstellten Graphen zu programmieren.

Design

Im Design-Modus können Graphen erstellt, geladen, gespeichert und exportiert werden.

Graphen erstellen, öffnen und speichern

Graphen können im XML-Format neu erstellt (ctrl-n), gespeichert (ctrl-s) und wieder geöffnet werden (ctrl-o). Zudem ist es auch möglich, den Quelltext zu exportieren, mit dem der visuell erstellte Graph in Java textuell generiert werden würde (ctrl-g). Dies geht auch als Export einer Java Klasse, die es erlaubt, den Graphen direkt in Java aus der generierten Klasse zu importieren (ctrl-e). Kopiert man die exportierte Java-Klasse z.B. in ein BlueJ-Projekt, so kann der Graph mit Graph g = ExportedGraph.importGraph(); direkt importiert werden. Das erspart sehr viel Schreibarbeit und war die Hauptmotivation für die Entwicklung der Software.

Erstellen und Bearbeiten

Neue Vertices können mit der Taste n an zufälliger Stelle oder mit der rechten Maustaste am gewünschten Ort hinzugefügt werden. Neue Edges können durch Auswählen eines Vertex und Drücken der Taste e oder durch Auswählen eines Vertex und Klicken der rechten Maustaste und Auswahl des entsprechenden Menüpunktes hinzugefügt werden. Vertices und Edges können durch Auswahl und Drücken der Taste r gelöscht werden oder durch den entsprechenden Menüpunkt im Kontextmenü nach Drücken der rechten Maustaste. Ein Doppelklick auf einen Vertex oder eine Edge setzt eine Markierung oder hebt diese wieder auf. Im Tabelleneditor auf der rechten Seite ist dies ebenso möglich durch Setzen eines Hakens. Weiterhin ist es möglich, die ID eines Vertex oder das Gewicht einer Edge über das Kontextmenü mittels rechter Maustaste bzw. über den Tabelleneditor zu ändern. Dargestellter Graph und Tabelleneditor sind dabei immer synchronisiert. Die angezeigten Nummern im Tabelleneditor sind nur zur Information und geben die Reihenfolge der Elemente in den jeweiligen Listen wieder.

Simulate

Im Simulations-Modus können voreingestellte Tiefen- und Breitensuchen visualisiert werden.

Tiefen- und Breitensuche

Dieser Modus bietet die Möglichkeit, zwei komplette Traversierungen des aktuell geladenen Graphen zu animieren, einmal mit einer Tiefensuche (DFS) und einmal mit einer Breitensuche (BFS). Zudem kann im Graphen auch von einem Startpunkt bis zu einem Ziel-Vertex gesucht werden, ebenso mittels animierter Tiefen- oder Breitensuche. Dazu kann die Geschwindigkeit der Animation über den Regler eingestellt werden. Durch Klicken auf den Button 'Unmark all' werden alle Markierungen wieder rückgängig gemacht.

Code

Im Code-Modus kann direkt mit dem visualisierten Graphen programmiert werden.

Voraussetzungen

Das Programmieren mit dem aktuell geladenenen Graphen wurde mit Java JRE und JDK unter Windows, Linux und MacOS getestet. Auf allen Systemem lief dieses Feature ab Java 1.8 entweder durch Start der Software per Doppelklick oder durch Start der Software über die Kommandozeile (java -jar GGD.jar). Keine Probleme wurden bisher unter OpenJDK 11 gefunden.

Programmieren

Im Code-Editor wird eine Klasse zur Verfügung gestellt, in der der Graph als Instanz mit Namen g automatisch zur Verfügung steht. Die Methode run() wird beim Klick auf RUN automatisch ausgeführt. Es können eigene Methoden hinzugefügt und die NRW-Klassen Graph, Vertex, Edge, List und Queue verwendet werden. Im Menü 'Help' können einige Demo-Codes geladen werden, die die Möglichkeiten mit dem Code-Editor andeuten. Der Editor ersetzt keine IDE wie BlueJ, kann aber zum Antesten einiger Algorithmen durchaus dienen.

SLXS.de - Dr. Daniel Janssen. Gymnasium Dionysianum Rheine.