Durchläufe durch Graphen SS12

Aus ProgrammingWiki
< AuK
Archivierte Version vom 2012-05-11T17:57:29+00:00. Aktuelle Version

Inhaltsverzeichnis

Der Graphendurchlauf (engl. graph traversal) bildet die Grundlage vieler Graphenalgorithmen. Die Idee besteht darin, alle Knoten in einem Graphen systematisch zu besuchen, um beispielsweise Informationen über dessen Struktur zu sammeln.

Croxeldyffic_Labyrinth02.png

Als Motivation für die Lösung dieses Problems soll folgendes Beispiel dienen: Eine Person befindet sich in einem Labyrinth, und sucht einen Ausgang, indem sie alle möglichen Kräuzungen von Gängen in Augenschein nimmt. Übertragen auf die Graphentheorie, existieren hierfür zwei bekannte algorithmische Lösungsverfahren, die Hauptgegenstand dieser Vorlesung sind.

Stellen wir uns vor, die eingeschlossene Person folgt einem bestimmten Gang solange, bis sie in eine Sackgasse gerät, zur letzten Kreuzung zurückkehrt und einem anderen Weg auf die gleiche Art verfolgt. Dieses systematische Vordringen in die "Tiefe" nennen wir Tiefensuche. Sucht jedoch eine Gruppe von Leuten den Ausgang, so ist es wahrscheinlicher, dass sie gemeinsam vom Startpunkt ausschwärmung in die "Breite" vordringen. Analog dazu sprechen wir von einer Breitensuche. Am Ende des Kapitels wird es uns möglich sein, das Labyrinth-Problem mithilfe der beiden Algorithmen zu lösen.

Note: Durchlauf (traversal) $\neq$ Suche (search)!
Info

Traversal simply means moving from one node to the next. Generally one searches by traversing the list, comparing each node's data with a given datum, either to return a pointer to a single matching node, or to return a list of matching nodes (copied from the list being searched), or simply to collect data about the matching nodes (such as a count of all the matching nodes).


Wiederholung

Bezug auf:

  • Graphenrepräsentation: Arten und Darstellung \rightarrow abhängig!
  • Sortierte Folgen: Bäume und Preorder
  • w. Datenstrukturen: Stack und Queue
  • Unterscheidung von Durchlaufproblemen

    Durchlauf aller Knoten

    Durchlauf aller Kanten

    Tiefendurchlauf/ -suche

    Breitendurchlauf/ -suche

    Iterative Tiefensuche

    Anwendung/ weiterführende Themen

    Starke Zusammenhangskomponenten

    Topologisches Sortieren

    TSP und CPP


    Java-Test