Weg (Graphentheorie)
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:
- {vi,vi+1} ist Element von E, falls G ein ungerichteter Graph ohne Mehrfachkanten ist,
- (vi,vi+1) ist Element von E, falls G ein gerichteter Graph ohne Mehrfachkanten ist,
- E({vi,vi+1})>0, falls G ein ungerichteter Graph mit Mehrfachkanten ist,
- E((vi,vi+1))>0, falls G ein gerichteter Graph ohne Mehrfachkanten ist,
d.h. 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. Den Knoten v1 nennt man dann Startknoten von W und den Knoten vn Endknoten von W. Ferner bezeichnet man W statt als Weg, spezieller als
- Pfad, falls alle Knoten in der Folge W voneinander verschieden sind, d.h. falls für alle i und j aus {1,...,n} gilt, dass vi≠vj, falls i≠j.
- Zyklus, falls Start- und Endknoten von W identisch sind, d.h. falls v1=vn.
- Kreis, falls nur Start- und Endknoten von W identisch sind, d.h. falls v1=vn und für alle i und j aus {1,...,n-1} gilt, dass vi≠vj, falls i≠j.
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, Zykel und Kreise definiert man alternativ auch über Kantenzüge oder Teilgraphen.
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.
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, kantendisjunkt 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, d.h., wenn sie keine inneren Knoten gemeinsam haben. Eine Menge von Wegen nennt man kreuzungsfrei, kantendisjunkt 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 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.
Als Abstand oder Distanz zweier Knoten bezeichnet man die Länge eines kürzesten Weges zwischen diesen. Falls ein solcher nicht existiert, so setzt man den Abstand auf unendlich. Man beachte, dass in gerichteten Graphen der Abstand von der Richtung des Pfades abhängt. Im Extremfall gibt es sogar nur in eine Richtung einen gerichteten Pfad. Den größten Abstand zwischen zwei Knoten in einem Graphen G nennt man Durchmesser von G.
Der Distanzgraph zu einem Graphen G=(V,E) bezeichnet den vollständigen (d.h. 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.
Beispiele
kommen später
Schon vorab: Ein kreisförmiger Graph (Daisy-Chain) und ein Hypercube eignen sich für eine Betrachtung der oben definierten Begriffe sehr gut:
Im Daisy-Chain mit gerader Knotenanzahl (2n) z.B. verbindet der Durchmesser zwei sich gegenüberliegende Knoten (und bildet das bekannte Zeichen für Durchmesser Ø).
Der Graphen des Hypercube (HC) ist rekursiv definiert: Ein HC(n):=HC(n-1) --- HC(n-1), HC(0):=ein einzelner Knoten. n bezeichnet die Dimension des HC. Die Schreibweise HC(n) --- HC(n) liest sich wie folgt: Verbinde die sich 'gegenüberliegenden' Knoten. Ein Vorteil des HC liegt in sehr vielen kurzen Wegen bei vielen Knoten. Bei geeigneter Nummerierung der Knoten ergibt sich grosser Konfigurationsmöglichkeit:
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ötigt, da dieser auch den Abstand von einem Knoten zu allen anderen Knoten bestimmen kann.
Der Distanzgraph ist für das Problem des Handlungsreisenden interressant, da dieser metrisch ist, weshalb verschieden Approximationsalgorithmen dieses Problem wenigstens annähernd lösen können und die Lösung auf dem Distanzgraphen in der Praxis ausreicht.