Graph (Graphentheorie)
Ein Graph (selten auch Graf) ist in der Graphentheorie eine abstrakte Struktur, die eine Menge von Objekten zusammen mit den zwischen diesen Objekten bestehenden Verbindungen repräsentiert. Die mathematischen Abstraktionen der Objekte werden dabei Knoten (auch Ecken) des Graphen genannt. Die paarweisen Verbindungen zwischen Knoten heißen Kanten (manchmal auch Bögen). Die Kanten können gerichtet oder ungerichtet sein. Häufig werden Graphen anschaulich gezeichnet, indem die Knoten durch Punkte und die Kanten durch Linien dargestellt werden.


Anschauliche Beispiele für Graphen sind ein Stammbaum oder das U-Bahn-Netz einer Stadt (siehe Abbildungen). Bei einem Stammbaum stellt jeder Knoten ein Familienmitglied dar und jede Kante ist eine Verbindung zwischen einem Elternteil und einem Kind. In einem U-Bahn-Netz stellt jeder Knoten eine U-Bahn-Station dar und jede Kante eine direkte Zugverbindung zwischen zwei Stationen.
Visualisierung spezieller Graphen
Multigraph

In sogenannten Multigraphen können zwei Knoten auch durch mehrere Kanten verbunden sein, was in einfachen Graphe nicht erlaubt ist. Außerdem dürfen Multigraphen Schleifen enthalten.
Sind Knoten durch mehrere Kanten verbunden, wird häufig nur eine Kante gezeichnet und die Anzahl der Kanten zwischen diesen beiden Knoten als Kantengewicht an die eine Kante geschrieben. Im Beispiel gibt es 60 Kanten zwischen Knoten A und D. Anstatt alle 60 Kanten zu zeichnen, wird eine Kante mit dem Kantengewicht 60 gezeichnet.
Digraph
In Digraphen (auch orientierte oder gerichtete Graphen genannt) werden Kanten statt durch Linien durch Pfeile gekennzeichnet, wobei der Pfeil von ihrem Anfangs- zu ihrem Endknoten zeigt. Dies verdeutlicht, dass jede Kante des Graphen nur in eine Richtung durchlaufen werden kann.
Hypergraph
Bei Hypergraphen verbindet eine Kante (auch Hyperkante genannt) nicht nur zwei, sondern mehrere Knoten gleichzeitig. Hypergraphen können beispielsweise durch mehrere planare Graphen mit Indizierung der Kanten dargestellt werden. Hypergraphen mit wenigen Kanten (sogenannte dünne Graphen) zeichnet man so, dass man eine Menge von Punkten zeichnet, die den Knoten entsprechen, und die zu einer Hyperkante gehörigen Punkte werden dann durch eine geschlossene Linie umkreist, die somit die Teilmenge der zu ihr gehörenden Knoten innerhalb aller Knoten angibt. Bei Hypergraphen mit vielen Kanten wird diese Darstellung aber schnell unübersichtlich. Weniger intuitiv, aber übersichtlicher ist es dann, einen Hypergraphen als bipartiten Meta-Graphen darzustellen, wobei die eine der beiden Bipartitionsmengen den Knoten des Hypergraphen, die andere Bipartitionsmenge den Hyperkanten des Hypergraphen entspricht. Die Kanten zwischen diesen beiden Bipartitionsmengen symbolisieren dann die Zugehörigkeit der Knoten zu den Hyperkanten.
Definitionen
Ein Graph
ist ein geordnetes
Paar
,
wobei
eine Menge von Knoten
(englisch vertex/vertices, oft auch Ecken genannt) und
eine Menge von Kanten (engl. edge/edges, manchmal auch
Bögen genannt) bezeichnet. Dabei ist
in
- ungerichteten Graphen ohne Mehrfachkanten eine Teilmenge aller
2-elementigen Teilmengen von
,
- gerichteten
Graphen ohne Mehrfachkanten eine Teilmenge aller Paare (i, j) die
durch das kartesische
Produkt
entstehen,
- ungerichteten Graphen mit zusammengefassten Mehrfachkanten eine
Multimenge über der Menge
aller 2-elementigen Teilmengen von
, also eine Funktion
,
- gerichteten Graphen mit zusammengefassten Mehrfachkanten eine
Multimenge über dem kartesischen Produkt
, also eine Funktion
,
- gerichteten Graphen mit eigenständigen Mehrfachkanten eine
beliebige Menge, deren Elemente mit Hilfe von zwei Funktionen
die den Elementen einen Quell- bzw. Zielknoten zuordnen, als Kanten angesehen werden (so ein Graph ist dasselbe wie ein Funktor
, wobei
die recht überschaubare Kategorie
mit zwei Objekten und zwei ausgezeichneten Pfeilen ist)
- Hypergraphen eine Teilmenge der Potenzmenge
von
.
![]() Ungerichteter Graph ohne
Mehrfachkanten |
![]() Gerichteter Graph ohne
Mehrfachkanten |
![]() Ungerichteter Graph mit
Mehrfachkanten |
![]() Gerichteter Graph mit Mehrfachkanten |
Den Zusatz „ohne Mehrfachkanten“ lässt man gewöhnlich weg und nennt Graphen mit Mehrfachkanten Multigraphen. Ferner verzichtet man meist auf das Attribut „ungerichtet“ und kennzeichnet nur gerichtete Graphen explizit. Ungerichtete Graphen ohne Mehrfachkanten nennt man auch häufig schlicht oder einfach. Eine andere Bezeichnung für gerichtete Graphen ist Digraph (Directed Graph).
Abgeleitete Bezeichnungen
Statt die Knoten- und Kantenmenge eines Graphen
mit den Symbolen
und
zu identifizieren, kann man auch allgemeine Abbildungen
und
definieren, die einen Graphen auf dessen Knotenmenge oder Kantenmenge abbilden.
Für zwei Graphen
und
bezeichnen also
und
sowie
und
.
Die Mehrdeutigkeit
und
wird bei dieser Notation in Kauf genommen, obwohl die Abbildungen etwas anderes
darstellen als die mit ihr verbundene Knoten- und Kantenmenge. Als Konvention
bietet sich an, mit
bzw.
ohne Argument
Knoten- bzw. Kantenmenge zu bezeichnen,
bzw.
mit Argument bezeichnen dagegen die definierten Abbildungen.
Ist
ein Graph, so sagt man allgemein
ist Knoten bzw. Ecke von
,
wenn
zu
gehört. Außerdem bezeichnet man Kanten
als
- ungerichtete Kante von
, falls
ein ungerichteter Graph ist.
- gerichtete Kante von
, falls
ein gerichteter Graph ist.
- Hyperkante von
, falls
ein Hypergraph ist.
In einer ungerichteten Kante
bezeichnet man
und
als Endknoten von
.
In einer gerichteten Kante
bezeichnet man
als Startknoten und
als Endknoten von
.
Bei Multigraphen bezeichnet
die Vielfachheit von
.
Wenn
gilt, so spricht man von einer Multi- oder Mehrfachkante.
Hat eine Kante
in gerichteten Graphen die Form
,
so spricht man von einer Schleife. Ist die Schleife
in einem Multigraphen
zugleich eine Mehrfachkante, so spricht man von einer Mehrfachschleife.
Gerichtete Graphen ohne Schleifen nennt man schleifenlos oder
schleifenfrei.
Als Knotenzahl
eines Graphen
bezeichnet man die Anzahl seiner Knoten, als Kantenzahl
bezeichnet man die Anzahl seiner Kanten (in Multigraphen summiert man über die
Vielfachheit der Kanten).
Spezialfälle
Zwei verschiedene Kanten
und
eines gerichteten Graphen, die dieselben Knoten verbinden, kann man auch als
eine ungerichtete Kante innerhalb des gerichteten Graphen betrachten. Im
Falle von Mehrfachkanten müssen die Vielfachheiten beider Kanten
übereinstimmen.
Gibt es zu jeder Kante eines gerichteten Graphen eine solche entgegengesetzte Kante im Graphen, so ist dies ein Symmetrischer Graph.
Einen Graphen, dessen Knotenmenge endlich ist, nennt man einen endlichen Graphen. Zwangsläufig ist in diesen auch die Kantenmenge endlich. Im Gegensatz dazu nennt man einen Graphen, dessen Knotenmenge unendlich ist, unendlichen Graphen. Meist betrachtet man nur endliche Graphen und lässt daher das Attribut „endlich“ weg, während man unendliche Graphen explizit kennzeichnet.
Teilgraphen, Wege und Zyklen


Ein Teilgraph
eines Graphen
enthält nur Knoten und Kanten, die auch in
enthalten sind. Ein von einer Knotenmenge U induzierter
Teilgraph enthält die Knoten aus U und alle Kanten aus G
zwischen diesen Knoten.
Eine Folge von paarweise verschiedenen Knoten ,
in der aufeinander folgende Knoten
und
im Graphen durch eine Kante verbunden sind, bezeichnet man als Weg, manchmal auch
als Pfad. Gilt
,
und ist dies der einzige doppelte Knoten, spricht man von einem Zyklus oder
Kreis. Eine Sequenz von benachbarten Knoten, in der sich Knoten
wiederholen dürfen bezeichnet man als Kantenfolge.
Die Begriffe Weg, Pfad, Kantenfolge, Kreis und Zyklus werden in der Literatur
zum Teil unterschiedlich definiert.
Enthält ein gerichteter Graph keinen Zyklus, nennt man ihn azyklisch oder zyklenfrei – also einen gerichteten azyklischen Graphen (engl. DAG oder dag für »directed acyclic graph«). Ein solcher Graph repräsentiert eine (endliche) Halbordnung. Ein Hasse-Diagramm ist ein gerichteter azyklischer Graph, bei dem die durch das Transitivitätsgesetz implizierten (gerichteten) Kanten weggelassen sind. Anders herum ausgedrückt: Ein gerichteter azyklischer Graph ist die transitive Hülle eines Hasse-Diagramms.
Grundlegende Operationen
Bei der Untersuchung von Grapheneigenschaften kommt es häufiger vor, dass man auf Graphen einfache Operationen anwenden muss, um möglichst kompakt und damit leichter verständlich schreiben zu können. Besonders häufig werden die üblichen Operationen der Mengenlehre (Vereinigung, Durchschnitt, Differenz und Komplement) auf Knoten- bzw. Kantenmengen von Graphen angewendet, sodass diese direkt auf Graphen definiert werden.
Sind
und
Graphen desselben Typs,
so bezeichnet
den Graphen, der entsteht, wenn man die Knoten- und Kantenmenge vereinigt,
den Graphen, der entsteht, wenn man
von der Kantenmenge von
abzieht und
den Graphen, der entsteht, wenn man
von der Knotenmenge von
abzieht und alle Kanten entfernt, die Knoten aus
enthalten.
Man beachte dabei die unterschiedliche Definition der Begriffe Vereinigungsmenge und Differenzmenge für Mengen und Multimengen. Man schreibt auch abkürzend
, falls
Teilmenge von
ist,
, falls
leer oder Teilmenge von
ist,
, falls
,
, falls
,
, falls
und
falls
.
Kantenkontraktion und die Bildung des Komplementgraphen sind weitere Basisoperationen.
Bemerkungen
Ungerichtete Graphen ohne Mehrfachkanten sind Spezialfälle von Hypergraphen. Multigraphen, in denen keine Mehrfachkanten vorkommen, sind zwar nicht formal, aber anschaulich äquivalent zu Graphen ohne Mehrfachkanten, weshalb man auch diese als Graphen ohne Mehrfachkanten bezeichnet. Es gibt eine bijektive Zuordnung zwischen den beiden Varianten. In diesem Sinne sind Graphen ohne Mehrfachkanten also Spezialfälle von Graphen mit Mehrfachkanten. Ähnlich verhält es sich mit ungerichteten Graphen, die in gewissem Sinn Spezialfälle von gerichteten Graphen sind. Ist ein gerichteter Graph symmetrisch und schleifenlos, so bezeichnet man diesen auch als ungerichtet, da es auch hier eine einfache eineindeutige Zuordnung zwischen beiden Varianten gibt (siehe auch Adjazenzmatrix).
Es lassen sich natürlich auch ungerichtete Graphen mit Schleifen definieren, wobei man diese wohl am einfachsten wie eben als (formale) Spezialfälle von gerichteten Graphen definiert und die Bedingung der Schleifenlosigkeit weg lässt. Solche Graphen sind aber nur selten Gegenstand der Betrachtungen in der Graphentheorie.
Der wohl allgemeinste Typ von Graphen sind gerichtete Hypergraphen mit Mehrfachkanten. Jeder oben definierte Graphentyp kann dann als Spezialfall von diesem betrachtet werden. Solche Graphen sind aber so gut wie gar nicht Gegenstand der Betrachtungen in der Graphentheorie, weshalb sie hier auch nicht näher erläutert werden.
Sollen Graphen als Darstellung eines Sachverhaltes herhalten, werden Algorithmen benötigt, die für das Graphzeichnen benötigt werden. Diese Disziplin der Informatik hat sich in den letzten Jahren stets fortentwickelt und liefert Lösungen für unterschiedliche Visualisierungen, die auf Graphen beruhen.
Erweiterungen
Graphen können mit weiteren Eigenschaften bzw. Informationen ergänzt werden.
Gefärbte Graphen
Eine Erweiterung von Graphen
zu knotengefärbten
Graphen erhält man, indem das Tupel
zu einem Tripel
ergänzt wird.
ist eine Abbildung von
in die Menge der natürlichen
Zahlen. Anschaulich gibt man jedem Knoten damit eine Farbe.
Statt der Knoten kann man in Graphen ohne Mehrfachkanten und in Hypergraphen
auch die Kanten färben und spricht dann von einem kantengefärbten
Graphen. Dazu erweitert man ebenfalls das Tupel
zu einem Tripel
,
wobei
aber eine Abbildung von
(statt von
)
in die Menge der natürlichen
Zahlen ist. Anschaulich gibt man jeder Kante damit eine Farbe. In Graphen
mit Mehrfachkanten ist dies zwar prinzipiell auch möglich, aber schwieriger zu
definieren, insbesondere, wenn Mehrfachkanten entsprechend ihrer Vielfachheit
mehrere verschiedene Farben zugeordnet werden sollen.
Man beachte, dass die Begriffe „Färbung“ und „färben“ in der Graphentheorie auch eine speziellere Bedeutung besitzen. Exakt spricht man dann zwar von gültiger Färbung, lässt das Attribut „gültig“ aber meist weg.
Analog gibt es auch benannte Graphen ,
bei denen Knoten und/oder Kanten einen Namen tragen, und die Abbildungen
bzw.
den Knoten bzw. Kanten einen Namen zuordnen. Die zuvor abgebildeten Beispiele
sind benannte Graphen, bei denen die Knoten mit Buchstaben benannt wurden. Dies
wird oft bei Visualisierungen gemacht, so dass man besser über den Graphen
diskutieren kann.
Gewichtete Graphen
Statt von knoten- bzw. kantengefärbten Graphen spricht man von knoten- bzw.
kantengewichteten
Graphen, falls
statt in die natürlichen Zahlen in die reellen
Zahlen abbildet. Knoten- bzw. kantengefärbte Graphen sind also Spezialfälle
von knoten- bzw. kantengewichteten Graphen.
Man bezeichnet
bzw.
auch als Gewicht des Knotens
bzw. der Kante
.
Zur Unterscheidung spricht man auch von Knotengewicht bzw.
Kantengewicht. Eine solche Gewichtung wird erforderlich, wenn die
Information über Knotenbeziehungen nicht ausreicht. Fasst man beispielsweise das
Straßennetz (vereinfacht) als Graph auf (Orte sind Knoten, die Orte verbindende
Straßen sind Kanten), so könnte eine Gewichtung der Kanten Aufschluss über die
Distanz zwischen zwei Orten geben. Die Kantengewichte eines Graphen können in
einer quadratischen Gewichtsmatrix, der Adjazenzmatrix,
gesammelt werden.
Abbildungen zwischen Graphen
Schließlich lassen sich auch Abbildungen zwischen Graphen definieren. Interessant sind insbesondere solche, die mit der Struktur der beiden verträglich sind, so genannte „Homomorphismen“.
Seien dazu
und
Graphen desselben Typs. Eine Abbildung
heißt Homomorphismus zwischen
und
,
falls gilt:
- In ungerichteten
Graphen
ohne Mehrfachkanten:
Isteine Kante von
, so ist
eine Kante von
.
- In gerichteten
Graphen ohne Mehrfachkanten:
IstKante von
, dann ist
Kante von
.
- In ungerichteten Graphen mit
Mehrfachkanten:
, d. h. je zwei Ecken sind mit höchstens so vielen Kanten verbunden wie ihre Bildecken.
- In gerichteten Graphen mit Mehrfachkanten:
.
- In gerichteten Graphen mit eigenständigen Mehrfachkanten:
hat einen dazugehörenden Partner
und für alle Kanten
gilt
sowie
(werden
und
als Funktoren angesehen, ist ein Graphhomomorphismus gerade eine natürliche Transformation).
- In Hypergraphen:
IstKante von
, so ist
Kante von
.
Das Bild p(G1) ist dann ein Teilgraph von G2. Ist p umkehrbar und die Umkehrfunktion ebenfalls ein Homomorphismus, so ist p ein Isomorphismus von Graphen.
Zu beachten ist, dass die Knoten vor den Kanten einen Vorrang haben, indem p als Funktion nur auf den Knoten spezifiziert ist, die auf den Kanten lediglich eine induzierte Wirkung entfaltet.
Datenstrukturen
Ungerichteter Graph | Adjazenzmatrix |
---|---|
![]() |
Für die Repräsentation von Graphen im Computer gibt es im Wesentlichen zwei gebräuchliche Formen: die Adjazenzmatrix (auch Nachbarschaftsmatrix) und die Adjazenzliste (Nachbarschaftsliste). Die Bedeutung der beiden Darstellungen liegt darin, dass praktisch jede algorithmische Lösung graphentheoretischer Probleme auf wenigstens eine der beiden Repräsentationen zurückgreift. Eine weitere, aber seltener genutzte Möglichkeit zur Darstellung von Graphen im Computer ist die Inzidenzmatrix, die man auch als Knoten-Kanten-Matrix bezeichnet.
Inzidenzmatrizen sind zwar aufwändiger zu implementieren und zu verwalten, bieten aber eine Reihe von Vorteilen gegenüber Adjazenzmatrizen. Zum einen verbrauchen sie bei fester Anzahl von Kanten stets nur linear viel Speicherplatz bezüglich der Anzahl der Knoten, was insbesondere bei dünnen Graphen (also Graphen mit wenig Kanten) von Vorteil ist, während die Adjazenzmatrix quadratischen Platzbedarf bezüglich der Anzahl Knoten besitzt (dafür aber kompakter bei dichten Graphen, also Graphen mit vielen Kanten ist). Zum anderen lassen sich viele graphentheoretische Probleme nur mit Adjazenzlisten in linearer Zeit lösen. In der Praxis verwendet man daher meist diese Form der Repräsentation.
Siehe auch



© biancahoegel.de
Datum der letzten Änderung: Jena, den: 23.04. 2024