Zyklus (Graphentheorie)
Ein Zyklus ist in der Graphentheorie ein Weg in einem Graphen, bei dem Start- und Endknoten gleich sind. Analog dazu ist ein Kreis ein Pfad in einem Graphen, bei dem Start- und Endknoten übereinstimmen. Ein zyklischer Graph ist ein Graph mit mindestens einem Zyklus. Algorithmen zum Auffinden von Zyklen in einem Graphen sind eine modifizierte topologische Sortierung oder eine modifizierte Tiefensuche.
Inhaltsverzeichnis |
[Bearbeiten] Definitionen
[Bearbeiten] Zyklus
Ist
ein Graph, dann heißt ein Weg
mit
für
Zyklus, wenn
gilt. In einem Zyklus müssen also Start- und Endknoten des Weges übereinstimmen. Ein Zyklus in einem gerichteten Graph heißt gerichteter Zyklus und in einem ungerichteten Graph ungerichteter Zyklus.
[Bearbeiten] Kreis
Entsprechend dazu heißt ein Pfad
in einem Graphen Kreis, wenn
gilt. Ein Kreis ist damit ein Zyklus, bei dem nur Start- und Endknoten gleich sind, es gilt also zusätzlich
für
mit
. Ein Zyklus in einem gerichteten Graph heißt gerichteter Kreis und in einem ungerichteten Graph ungerichteter Kreis.
[Bearbeiten] Länge
In Graphen ohne Kantengewichte ist
die Länge eines Zyklus oder Kreises
. Anschaulich zählt man also die Anzahl zugehöriger Kanten. In einem kantengewichteten Graphen ist die Länge eines Zyklus oder Kreises die Summe der Kantengewichte aller zugehörigen Kanten.
[Bearbeiten] Spezielle Graphen
[Bearbeiten] Zyklischer Graph
Ein Graph mit mindestens einem Zyklus heißt zyklisch. Graphen ohne Zyklen werden azyklisch oder Wald genannt. Ein Zyklus oder Kreis heißt trivial, wenn er weniger als drei Knoten enthält. Triviale Kreise oder Zyklen werden bei der Analyse von Graphen meist nicht betrachtet. Einen Kreis, der genau drei Knoten enthält, wird Dreieck genannt. Einen Graphen ohne Dreieck nennt man dann dreiecksfrei. Als Taillenweite eines Graphen bezeichnet man die Länge eines kürzesten nicht trivialen Kreises. Falls der Graph keinen Kreis besitzt, so setzt man die Taillenweite auf unendlich. Die einfachsten zyklischen Graphen sind die Kreisgraphen.
[Bearbeiten] Panzyklischer Graph
Ein Graph heißt kantenpanzyklisch falls jede Kante auf einem Kreis der Länge
für alle
liegt. Ein Graph heißt knotenpanzyklisch, wenn jeder Knoten auf einem Kreis der Länge
für alle
liegt. Ein Graph heißt panzyklisch, wenn er für alle
einen Kreis der Länge
besitzt. Kantenpanzyklische Graphen sind damit auch knotenpanzyklisch und knotenpanzyklische Graphen auch panzyklisch. Panzyklische Graphen sind insbesondere hamiltonsch.
[Bearbeiten] Zyklenraum
Zu einer beliebig vorgegebenen Nummerierung der Knoten
heißt ein Element
Inzidenzvektor zur Kantenmenge
, falls
gilt. Haben die Kanten zudem ein nichtnegatives Gewicht, werden die Einträge des Vektors mit diesem Gewicht multipliziert. Die Menge aller so beschriebenen Kreise bilden den Zyklenraum, einen Untervektorraum des
. Eine Basis des Zyklenraums sind die Fundamentalkreise. Jeder Fundamentalkreis entsteht durch Hinzufügen einer Kante zu einem aufspannenden Baum.
Der Kozyklenraum ist der Vektorraum aller durch Schnitte erzeugten Inzidenzvektoren. Er ist ebenfalls ein Untervektorraum des
und ergibt in direkter Summe mit dem Zyklenraum den ganzen Raum. Eine Basis des Kozyklenraums sind die Fundamentalschnitte. Jeder Fundamentalschnitt entsteht durch Weglassen einer Kante eines aufspannenden Baums als Zusammenhangskomponente.
[Bearbeiten] Zykluserkennung mittels Tiefensuche
Für jeden Knoten v: visited(v) = false, finished(v) = false Für jeden Knoten v: DFS(v)
DFS(v):
if finished(v)
return
if visited(v)
"Zyklus gefunden" und Abbruch
visited(v) = true
für jeden Nachfolger w
DFS(w)
finished(v) = true
[Bearbeiten] Literatur
- R. Diestel: Graphentheorie. 3. Auflage. Springer, Heidelberg 2005. ISBN 3-540-67656-2


