Wege, Pfade, Zyklen und Kreise in Graphen

Definitionen

Sei G=(V, E) ein (gerichteter) (Multi-)Graph und W=(v1,...,vn) eine Folge von Knoten aus V, mit der Eigenschaft, dass für alle i aus {1,...,n-1} gilt:

das heißt vi und vi+1 sind durch eine Kante verbunden. Dann bezeichnet man W als ungerichteten Weg in G, falls G ungerichtet ist, und als gerichteten Weg in G, falls G gerichtet ist. Eine andere Bezeichnung für Weg ist Kantenfolge. Den Knoten v1 nennt man Startknoten von W und den Knoten vn Endknoten von W. Ferner bezeichnet man W statt als Weg, spezieller als

Bemerkung: Jeder Kreis, Zyklus und Pfad in einem Graphen G ist also auch ein Weg und jeder Kreis ist auch ein Zyklus in G. Wege, Pfade, Zyklen und Kreise definiert man alternativ auch über Kantenzüge oder Teilgraphen. Gibt es einen Weg von Knoten u zu Knoten v in G, so heißt v von u aus erreichbar (Erreichbarkeitsproblem in Graphen).

In ungerichteten Wegen und Pfaden bezeichnet man den Startknoten meist ebenfalls als Endknoten. In Zyklen und Kreisen verwendet man die Bezeichnungen Startknoten und Endknoten meist nicht.

Graphen mit Zyklen heißen zyklisch. Graphen ohne Zyklen heißen azyklisch.

Sind A und B Teilmengen von V, so bezeichnet man einen Weg als A-B-Weg, falls der Startknoten in A und der Endknoten in B liegt. Statt von einem {v}-{w}-Weg spricht man auch von einem v-w-Weg.

Zwei Wege W1=(v1,1,...,v1,k) und W2=(v2,1,...,v2,l) heißen kreuzungsfrei, knotendisjunkt oder einfach nur disjunkt, falls es kein Paar (i,j) mit i aus {2,...,k-2} und j aus {2,...,l-2} gibt, so dass v1,i=v2,j, das heißt, wenn sie keine inneren Knoten gemeinsam haben. Eine Menge von Wegen nennt man kreuzungsfrei, knotendisjunkt oder disjunkt, wenn die Wege paarweise disjunkt sind. Zwei Wege W1=(v1,1,...,v1,k) und W2=(v2,1,...,v2,l) heißen kantendisjunkt, falls es kein Paar (i,j) mit i aus {1,...k-1} und j aus {1,...,l-1} gibt, so dass v1,i=v2,j und v1,i+1=v2,j+1. Eine Menge von Wegen nennt man kantendisjunkt, wenn die Wege paarweise kantendisjunkt sind. Eine Menge von a-B-Wegen nennt man einen a-B-Fächer, wenn die Wege paarweise nur den Knoten a gemeinsam haben.

Ein Zyklus oder Kreis heißt trivial, wenn er weniger als 3 Knoten enthält. Triviale Kreise oder Zyklen werden meist nicht betrachtet.

Ein Kreis, der genau 3 Knoten enthält nennt man oft Dreieck. Ein Graph ohne Dreieck nennt man dann dreiecksfrei.

In Graphen ohne Gewichte auf den Kanten bezeichnet man mit n-1 die Länge eines Weges (oder Pfades) und mit n die Länge eines Zyklus (oder Kreises) (v1,...,vn). Anschaulich zählt man also die Anzahl zugehöriger Kanten.

In kantengewichteten Graphen bezeichnet man als Länge eines Weges die Summe der Kantengewichte aller zugehörigen Kanten. Als einen kürzesten Weg von einem Knoten s zu einem Knoten t in einem Graphen bezeichnet man einen Weg von s nach t, dessen Länge minimal ist. Die Länge eines kürzesten Weges nennt man dann Abstand oder Distanz von s nach t. Falls kein Weg zwischen zwei Knoten existiert, so setzt man den Abstand auf unendlich. Man beachte, dass in gerichteten Graphen der Abstand von der Richtung des Weges abhängt. Insbesondere kann es sein, dass nur in eine Richtung ein gerichteter Weg existiert.

Den größten Abstand zwischen zwei Knoten in einem Graphen G nennt man Durchmesser von G. 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.

Der Distanzgraph zu einem Graphen G=(V,E) bezeichnet den vollständigen (das heißt je zwei Knoten sind durch eine Kante verbunden, ggf. in gerichteten Graphen in beide Richtungen, wobei es aber keine Schleifen gibt) kantengewichteten Graphen auf der Knotenmenge V, der jeder Kante als Kantengewicht den Abstand zwischen den beiden Knoten in G zuordnet.

Wichtige Algorithmen

Der Algorithmus von Dijkstra findet einen kürzesten Pfad zwischen zwei beliebigen Knoten in einem (kantengewichteten) Graphen. Mit seiner Hilfe lässt sich auch der Distanzgraph bestimmen, indem man ihm ausgehend von jedem Knoten den Abstand zu jedem anderen bestimmt. Für jeden Knoten ist dabei nur ein Aufruf des Algorithmus Dijkstra nötig, da dieser auch den Abstand von einem Knoten zu allen anderen Knoten bestimmen kann.

Der Distanzgraph ist für das Problem des Handlungsreisenden interessant, da dieser metrisch ist, weshalb verschiedene Approximationsalgorithmen dieses Problem wenigstens annähernd lösen können und die Lösung auf dem Distanzgraphen in der Praxis ausreicht.

Siehe auch

See also: Wege, Pfade, Zyklen und Kreise in Graphen, Algorithmus von Dijkstra, Approximationsalgorithmus, Erreichbarkeitsproblem in Graphen, Gerichteter Graph, Graph (Graphentheorie), Graph mit Mehrfachkanten, Graph ohne Mehrfachkanten, Kante (Graphentheorie), Kantengewicht