6. Graphen
6.1 Beispiele, Definition, Repräsentierung
Hier ist ein Graph.
Wir schreiben
Traditionall bezeichnet
Pfade, Kreise, Kantenzüge, geschlossene Kantenzüge
Für den Moment verzichte ich auf eine formale Definition. Es sei aber noch hinzugefügt, dass Pfade und Kreise sich nicht selbst schneiden dürfen:
Graphen repräsentieren
Wie können wir einen Graphen im Rechner darstellen? Grundsätzlich gibt es zwei Methoden: als Adjazenzmatrix oder mit Adjazenzlisten. An einem Beispiel:
Formal definieren wir die Adjazenzmatrix
In 90% der Fälle (Schätzung aus dem Bauch heraus) verwenden wir
für Algorithmen die Darstellung mit Adjazenzlisten. Sie benötigt
Graphen kodieren
Fürs erste wählen wir eine einfache und etwas primitive
Art der Codierung für Graphen. Die Knotenmenge ist immer
n m u_1 v_1 u_2 v_2 ... u_m v_m
Dies ist sicherlich nicht sehr human readable und nicht sehr flexibel. Es wird uns aber erlauben, mit unserem Programmen Graphen einzulesen, ohne erst ausgefeilte Parser schreiben zu müssen. Außerdem ist es das übliche Format für graphentheoretische Aufgaben beim International Collegiate Programming Content (Wollen Sie daran teilnehmen? Vielleicht können wir ein HSZG-Team auf die Beine stellen).