Kapitel 5. Graphen und Graphenalgorithmen

Inhaltsverzeichnis

5.1. Grundlagen
5.2. Graphen und assoziierte Informationen
5.2.1. Wie man anfängt
5.2.2. Graphen mit Informationen versehen
5.2.3. Gerichtete und ungerichtete Graphen
5.2.4. Über Knoten und Kanten iterieren und in Graphen navigieren
5.2.5. Erzeugen und Speichern von Graphen und der Editor GraphWin
5.2.6. Planar eingebettete Graphen, Maps und Faces
5.2.7. Spezielle Hilfsdatenstrukturen für Graphenalgorithmen
5.3. Vorgefertigte Graphenalgorithmen
5.3.1. Algorithmen für grundlegende Eigenschaften
5.3.2. Grundlegende Graphenalgorithmen
5.3.3. Algorithmen für kürzeste Wege
5.3.4. Netzwerk-Fluss-Algorithmen
5.3.5. Matching-Algorithmen
5.3.6. Minimale aufspannende Bäume
5.3.7. Algorithmen für planare Graphen
5.3.8. Algorithmen zum Zeichnen von Graphen
5.4. Ein selbstgeschriebener Graphenalgorithmus
5.5. Markov-Ketten (Klassen markov_chain und dynamic_markov_chain)
5.6. Was wir nicht beschrieben haben

Einer der Hauptgründe für den Erfolg von LEDA ist seine Unterstützung von Graphen, zum einen durch die überaus mächtige Klasse graph, zum anderen durch eine Vielzahl von vorgefertigten Graphenalgorithmen.

Dieses Kapitel gibt zunächst eine kurze Einführung in die grundlegenden Begriffe aus der Welt der Graphen. Danach beschreibt es die Benutzung der Klasse graph und wie damit Graphen kodiert, verarbeitet und visualisiert werden können. Es folgt eine Übersicht über die wichtigsten vorgefertigten Graphenalgorithmen, jeweils beginnend mit der Beschreibung der zugrunde liegenden Problemstellung anhand eines kleinen Beispiels, die dann mit dem jeweiligen Algorithmus exemplarisch gelöst wird. Das Kapitel schließt mit einem Beispiel für einen selbst geschriebenen Graphenalgorithmus, das einige der vorher erlernten Techniken und algorithmischen Bausteine vereinigt.