Lernpfad
Wie modellierst du paarweise Verbindungen zwischen Objekten?
Mit einer mathematischen Struktur namens Graph. Und genau das ist der Kern der Graphentheorie – die Lehre von Graphen.
Die grundlegenden Bausteine der Graphentheorie sind Knoten (auch Vertices oder Nodes) und Kanten (auch Edges oder Links). Ein Knoten steht für ein einzelnes Objekt oder einen Punkt im Graphen, eine Kante für eine Verbindung bzw. Beziehung zwischen zwei Knoten. Zusammen bilden sie die Struktur eines Graphen, der je nach Art der modellierten Beziehungen gerichtet oder ungerichtet, gewichtet oder ungewichtet sein kann.
In der Informatik bildet die Graphentheorie die Grundlage vieler Algorithmen und Datenstrukturen zur Darstellung von Netzwerken wie dem Internet, sozialen Netzwerken und Kommunikationssystemen. Sie liefert zudem Werkzeuge, um Probleme zu Konnektivität, Pfadsuche und Optimierung zu lösen, und ist grundlegend für das Verständnis mathematischer Strukturen wie Bäume, Zyklen und planare Graphen.
In diesem Artikel zeigen wir dir alles, was du für den Einstieg in die Graphentheorie wissen musst.

Erstellt von der Autorin/dem Autor mit Midjourney
Was ist Graphentheorie?
Die Graphentheorie ist ein Teilgebiet der Mathematik, das die Eigenschaften und Anwendungen von Graphen untersucht. Ein Graph ist eine Menge von Objekten, den Knoten (oder Nodes), die durch Kanten (oder Links) verbunden sind.
Ziel der Graphentheorie ist es, die Struktur solcher Graphen zu verstehen und Fragestellungen zu Konnektivität, Pfadsuche und Netzwerkoptimierung zu untersuchen.
Durch die Analyse dieser Beziehungen liefert die Graphentheorie Einblicke in zahlreiche reale Problemstellungen aus vielen Bereichen.
Woher stammt die Graphentheorie?
Die Wurzeln der Graphentheorie reichen ins 18. Jahrhundert zurück, insbesondere zur Arbeit des Schweizer Mathematikers Leonhard Euler. Eulers Lösung des Königsberger Brückenproblems von 1736 gilt als eines der ersten Probleme der Graphentheorie. Dabei ging es darum, einen Rundweg durch Königsberg zu finden, der jede der sieben Brücken genau einmal überquert. Eulers Ansatz legte den Grundstein für das spätere formale Studium von Graphen.
Im 19. und 20. Jahrhundert entwickelte sich die Graphentheorie stark weiter, mit Beiträgen etwa von Carl Friedrich Gauß, der Eigenschaften von Polyedern untersuchte, und späteren Forschenden, die Begriffe formalisierten und Algorithmen für graphbezogene Probleme entwickelten.
Mit dem Aufkommen der Informatik in der Mitte des 20. Jahrhunderts beschleunigte sich das Wachstum der Graphentheorie weiter, was zu breiten Anwendungen in Computeralgorithmen, Netzwerkanalyse und Datenstrukturen führte.
Grundlegende Konzepte der Graphentheorie
Wer die Grundlagen der Graphentheorie versteht, kann darauf aufbauend fortgeschrittene Themen erschließen. Legen wir also zunächst das Fundament…
Graphen als geordnete Paare
Ein Graph wird formal als geordnetes Paar G = (V, E) definiert, wobei:
- V die Menge der Knoten (Vertices/Nodes) ist und die einzelnen Objekte im Graphen repräsentiert.
- E die Menge der Kanten (Edges/Links) ist und die Verbindungen zwischen Knotenpaaren repräsentiert.
Knoten (V) und Kanten (E)
- Knoten (V): Die elementaren Einheiten bzw. Punkte eines Graphen. Jeder Knoten steht für ein Objekt oder einen Ort in der modellierten Struktur.
- Kanten (E): Die Verbindungen bzw. Beziehungen zwischen Knotenpaaren. Jede Kante verbindet zwei Knoten und zeigt eine Beziehung oder einen Pfad an.
Arten von Kanten
- Gerichtete Kanten: In einem gerichteten Graphen (Digraph) haben Kanten eine Richtung, d. h. sie führen von einem Knoten zu einem bestimmten anderen Knoten. Die Richtung wird oft mit einem Pfeil dargestellt. Gerichtete Kanten eignen sich zur Modellierung asymmetrischer Beziehungen, etwa Verkehrsflüsse oder Vorgänger-Nachfolger-Beziehungen in der Ablaufplanung.
- Ungerichtete Kanten: In einem ungerichteten Graphen haben Kanten keine Richtung, sie verbinden einfach zwei Knoten. Diese Graphen repräsentieren symmetrische Beziehungen, z. B. gegenseitige Freundschaften oder Verbindungen, bei denen die Richtung keine Rolle spielt.
Grundbegriffe und Konzepte der Graphentheorie
Definieren wir nun einige Basisbegriffe und Konzepte:
Knoten (Vertex, Node)
Ein Knoten steht für ein einzelnes Objekt oder einen Punkt in der Graphstruktur. In einem sozialen Netzwerk-Graphen kann z. B. jede Person als Knoten dargestellt werden.
Grad eines Knotens
Der Grad eines Knotens ist die Anzahl der Kanten, die an ihn angrenzen. Das liefert Hinweise auf seine Konnektivität und Bedeutung im Graphen. Am besten lässt sich das mit einer Person als Knoten in einem sozialen Netzwerk vorstellen. Hat dieser Knoten viele Kanten, sprechen wir von einem „hohen Grad“, was auf eine besonders einflussreiche Person hindeutet. In einem Verkehrsnetz würde ein Knoten mit hohem Grad signalisieren, dass es sich um einen zentralen Knotenpunkt handelt, der viele Orte direkt verbindet.
Pfad
Ein Pfad ist eine Folge von Knoten, bei der jedes benachbarte Paar durch eine Kante verbunden ist. Pfade können einfach (ohne wiederholte Knoten) oder allgemein (mit Wiederholungen) sein. Beispiel: In einem Graphen mit den Knoten A, B, C und D könnte ein Pfad A → B → C → D sein, wobei jeder Knoten durch eine Kante mit dem nächsten verbunden ist.
Zyklus
Ein Zyklus ist ein Pfad, der am selben Knoten beginnt und endet, ohne andere Knoten oder Kanten zu wiederholen. Zyklen können einfach (keine Wiederholung außer Start- und Endknoten) oder allgemein sein. Beispiel: In einem Graphen mit den Knoten A, B, C und D könnte ein einfacher Zyklus A → B → C → D → A sein.
Zusammenhängende Graphen
Ein Graph ist zusammenhängend, wenn es zwischen jedem Knotenpaar einen Pfad gibt. Mit anderen Worten: In einem zusammenhängenden Graphen kann jeder Knoten über eine Folge von Kanten jeden anderen erreichen. Ein Beispiel wäre ein soziales Netzwerk, in dem alle Personen über Umwege miteinander verbunden sind.
Arten von Graphen
Die Graphentheorie umfasst verschiedene Grapharten, die sich für unterschiedliche Anwendungen und Analysen eignen. In diesem Abschnitt stellen wir diese Arten vor, erläutern ihre Grundstrukturen und geben Anwendungsbeispiele. So weißt du, wann welcher Graphentyp für ein bestimmtes Problem oder ein reales Szenario passt.
Einfacher Graph

Visualisierung eines einfachen Graphen Quelle: Wikipedia
Ein einfacher Graph ist ein Graph ohne Mehrfachkanten (mehr als eine Kante zwischen einem Knotenpaar) und ohne Schleifen (Kanten von einem Knoten zu sich selbst). Jede Kante verbindet zwei verschiedene Knoten.
Beispiele:
- Ein einfaches soziales Netzwerk, in dem jede Freundschaft durch genau eine Verbindung zwischen zwei Personen dargestellt wird.
- Eine Karte mit Städten, die durch einzelne, direkte Straßen verbunden sind, ohne Mehrfachrouten oder Selbstverbindungen.
Multigraphen

Visualisierung eines Multigraphen mit Mehrfachkanten in Rot und mehreren Schleifen in Blau Quelle: Wikipedia
Ein Multigraph erlaubt Mehrfachkanten (parallele Kanten) zwischen demselben Knotenpaar und kann auch Schleifen enthalten. So lassen sich Situationen abbilden, in denen mehrere Interaktionen oder Verbindungen zwischen denselben Entitäten bestehen.
Beispiele:
- Ein Verkehrsnetz, in dem mehrere Fluggesellschaften dieselben Städte miteinander verbinden.
- Ein Kommunikationsnetz mit mehreren Kanälen zwischen denselben Kommunikationsknoten.
Gewichtete Graphen

Visualisierung eines gewichteten Graphen Quelle: Hyperskill
In einem gewichteten Graphen ist jeder Kante ein Gewicht oder eine Kostenangabe zugeordnet, etwa Entfernung, Zeit oder Kapazität. Gewichtete Graphen modellieren Probleme, bei denen Kanten unterschiedliche „Stärken“ oder Kosten haben.
Anwendungen:
- In einer Straßenkarte zwischen Städten könnten die Gewichte Distanzen oder Reisezeiten abbilden.
- In Netzwerkoptimierungen könnten Gewichte Bandbreite oder Kosten von Kommunikationsverbindungen darstellen.
Gerichtete Graphen (Digraphs)

Visualisierung eines gerichteten Graphen Quelle: Wikipedia
Ein gerichteter Graph (Digraph) hat Kanten mit eindeutiger Richtung, d. h. jede Kante führt von einem Knoten zu einem anderen. Die Richtung wird meist mit einem Pfeil dargestellt und zeigt Fluss oder Einwegbeziehungen an.
Einsatzszenarien:
- Ein Workflow-Diagramm, in dem Aufgaben in einer festgelegten Reihenfolge erledigt werden müssen.
- Die Linkstruktur des Webs, bei der Hyperlinks von einer Seite zur anderen zeigen und so eine einseitige Verbindung darstellen.
Ungerichtete Graphen

Visualisierung eines ungerichteten Graphen Quelle: Baeldung
In einem ungerichteten Graphen haben Kanten keine Richtung. Eine Kante verbindet zwei Knoten, und die Beziehung ist gegenseitig bzw. bidirektional. Die Reihenfolge der Knoten in einer Kante spielt keine Rolle.
Beispiele:
- Ein Freundschaftsnetzwerk, in dem Freundschaften gegenseitig sind und Verbindungen in beide Richtungen bestehen.
- Eine Straßenkarte, in der Straßen Städte in beide Richtungen verbinden, ohne Richtungsvorgabe.
Baum-Graphen (Tree Graph Theory)
Ein Baum ist ein zusammenhängender, azyklischer Graph, enthält also keine Zyklen. Ein Baum mit $$n$$ Knoten besitzt genau $$n−1$$ Kanten. Jedes Knotenpaar ist durch genau einen Pfad verbunden, es gibt also zwischen zwei Knoten stets einen eindeutigen Weg.
Hier die wichtigsten Eigenschaften eines Baum-Graphen im Überblick:
- Zusammenhängend. Zwischen jedem Knotenpaar existiert ein Pfad.
- Azyklisch. Es gibt keine Zyklen, also keine geschlossenen Schleifen.
- Eindeutiger Pfad. Zwischen zwei Knoten existiert genau ein Pfad, der Graph ist also minimal zusammenhängend.
- Anzahl der Kanten. Ein Baum mit $$n$$ Knoten hat $$n−1$$ Kanten.
- Teilbaum (Subtree): Jede Teilmenge eines Baums, auch ein einzelner Knoten, ist selbst wieder ein Baum und heißt Teilbaum.
- Blätter (Leaf Nodes). Knoten mit genau einer Kante heißen Blätter. Sie sind Endpunkte des Baums.
Wodurch unterscheiden sich Bäume von anderen Graphen?
Im Gegensatz zu allgemeinen Graphen enthalten Bäume keine Zyklen. Das heißt, jeder Graph mit Zyklen ist kein Baum.
Ein Baum mit $$n$$ Knoten hat genau $$n−1$$ Kanten, während allgemeine Graphen eine variable Anzahl von Kanten haben können, inklusive Mehrfachkanten und Schleifen. Außerdem sind Bäume immer zusammenhängend, während allgemeine Graphen auch aus mehreren, untereinander nicht verbundenen Komponenten bestehen können, von denen jede ein Baum sein kann.
Zudem existiert in einem Baum genau ein Pfad zwischen zwei Knoten. In anderen Graphen können insbesondere bei Zyklen oder Mehrfachkanten mehrere Wege existieren.
Anwendungen
Bäume sind sowohl theoretisch als auch praktisch zentral für Informatik und Datenorganisation. Sie ermöglichen extrem effiziente Lösungen für viele strukturelle und algorithmische Aufgaben. Beispiele:
Datenstrukturen
- Binärbäume: Dienen zur hierarchischen Datenorganisation. Beispiele sind Binäre Suchbäume für schnelle Suche und Sortierung.
- Heaps: Eine Variante des Binärbaums, die in Priority Queues genutzt wird, um effizient Minimum oder Maximum zu verwalten.
- B-Bäume: In Datenbanken und Dateisystemen für effiziente Speicherung und schnellen Zugriff, inklusive Einfügen, Löschen und Suchen.
Netzwerkdesign
- Routing: Bäume kommen in Routing-Protokollen (z. B. Spanning Trees) zum Einsatz, um effiziente Datenpfade im Netzwerk zu bestimmen.
- Broadcasting: Baumstrukturen erleichtern effizientes Verteilen von Daten an alle Knoten mit minimalen Redundanzen.
Hierarchien abbilden
- Dateisysteme: Verzeichnisse und Unterverzeichnisse werden in Baumstrukturen organisiert.
- Organigramme: Bäume modellieren hierarchische Strukturen und Berichtslinien in Organisationen.
Parsing und Syntaxanalyse
- Abstrakte Syntaxbäume (ASTs): In Compilern und Interpretern zur Darstellung der syntaktischen Struktur von Quellcode. ASTs erleichtern Syntaxprüfung und Codeoptimierung.
Anwendungen der Graphentheorie
Die Graphentheorie findet in vielen Disziplinen breite Anwendung. Sie spielt eine zentrale Rolle beim Lösen komplexer Probleme und beim Optimieren von Systemen. Einige Beispiele:
Informatik: Netzwerke, Algorithmen und Datenstrukturen
Die Graphentheorie ist grundlegend für Entwurf und Analyse von Netzwerken, für Algorithmenentwicklung und Datenorganisation. Netzwerke werden als Graphen modelliert, um Datenübertragung und Routing zu optimieren.
Algorithmen wie Dijkstra und Kruskal lösen kürzeste-Wege- bzw. Minimal-Spannbaum-Probleme. Außerdem basieren Datenstrukturen wie Adjazenzlisten und -matrizen auf Graphen und sind essenziell für effiziente Datenverarbeitung und -abfrage.
Biologie: Modellierung biologischer Netzwerke
Auch in der Biologie ist die Graphentheorie unverzichtbar. Sie wird zur Modellierung und Analyse komplexer biologischer Netzwerke eingesetzt, etwa:
- Protein-Protein-Interaktionsnetzwerke
- Metabolische Pfade
- Genregulationsnetzwerke
Diese Netzwerke werden als Graphen dargestellt, wobei Knoten biologische Entitäten (z. B. Proteine, Gene) und Kanten deren Interaktionen oder Beziehungen repräsentieren.
Dieser Ansatz hilft, komplexe Zusammenhänge zu verstehen, Funktionen vorherzusagen und potenzielle Zielstrukturen für Wirkstoffe zu identifizieren.
Sozialwissenschaften: Social-Network-Analyse
In den Sozialwissenschaften dient die Graphentheorie zur Analyse sozialer Netzwerke, in denen Individuen als Knoten und ihre Interaktionen oder Beziehungen als Kanten dargestellt werden.
So lassen sich soziale Strukturen, Einflussmuster und Community-Dynamiken verstehen. Mithilfe von Konzepten wie Zentralität und Konnektivität identifizieren Forschende Schlüsselpersonen, untersuchen Informationsverbreitung und analysieren soziale Verhaltensweisen.
Verkehr: Verkehrsfluss und Stadtplanung
Wenig bekannt: Straßen, Kreuzungen und Liniennetze werden als Graphen modelliert, um:
- Verkehrsflüsse zu optimieren
- Staus zu reduzieren
- Routenplanung zu verbessern.
Graphbasierte Algorithmen unterstützen die Planung effizienter Verkehrsnetze, das Management des öffentlichen Nahverkehrs und den Ausbau der urbanen Infrastruktur. Ihre Analysen helfen Planerinnen und Planern, fundierte Entscheidungen zur Verbesserung von Mobilität und Konnektivität in Städten zu treffen.
Schritt-für-Schritt: Einen einfachen Graphen konstruieren und analysieren
Die Basics sitzen, und du kennst wichtige Anwendungen der Graphentheorie.
Jetzt bist du bereit, einen eigenen einfachen Graphen zu erstellen und zu analysieren. Der Übersicht halber teilen wir die Anleitung in zwei Teile:
- Konstruktion
- Analyse
Am logischsten ist es, mit der Konstruktion zu starten – legen wir los…
Einen einfachen Graphen konstruieren
Schritt 1: Problem definieren.
Angenommen, wir möchten ein kleines Freundschaftsnetzwerk in einem sozialen Netzwerk modellieren.
Dafür können wir die NetworkX-Bibliothek in Python verwenden, die speziell für Netzwerkanalysen entwickelt wurde.
Beginnen wir mit dem Anlegen eines Graphen:
# Bibliotheken importieren
import networkx as nx # Netzwerkanalyse
import matplotlib.pyplot as plt # Datenvisualisierung
import pydot # Python-Schnittstelle zu Graphviz
from networkx.drawing.nx_pydot import graphviz_layout
# Graph erstellen
graph = nx.Graph()
Schritt 2: Knoten festlegen.
In unserem fiktiven Netzwerk gibt es vier Personen: Alice, Bob, Carol und Dave. Diese Personen werden als Knoten im Graphen dargestellt – denk daran: Ein Knoten repräsentiert ein Objekt oder einen Ort in der modellierten Struktur.
So legen wir die Knoten in Python an:
# Knoten hinzufügen
# graph.add_node("Alice") --> Einen einzelnen Knoten hinzufügen
graph.add_nodes_from([
"Alice","Bob", "Carol", "Dave"
]) # Mehrere Knoten hinzufügen
Schritt 3: Kanten bestimmen.
Angenommene Freundschaften:
- Alice ist mit Bob und Carol befreundet.
- Bob ist mit Alice und Dave befreundet.
- Carol ist mit Alice befreundet.
- Dave ist mit Bob befreundet.
Daraus ergeben sich folgende Kanten:
- Alice–Bob
- Alice–Carol
- Bob–Dave
So definieren wir die Kanten in Python:
# Kanten hinzufügen
# graph.add_edge("Alice", "Bob") --> Eine einzelne Kante hinzufügen
graph.add_edges_from([("Alice", "Bob"),
("Alice", "Carol"),
("Bob", "Dave"),
("Bob", "Alice") # Sicherstellen, dass alle beschriebenen Kanten enthalten sind
]) # Mehrere Kanten hinzufügen
Schritt 4: Graph zeichnen.
Sobald Knoten und Kanten definiert sind, können wir den Graphen zeichnen, um die Beziehungen zu visualisieren. Der folgende Code erzeugt eine Darstellung des Netzwerks mit beschrifteten Knoten und Kanten:
# Visualisierung
pos = graphviz_layout(graph, prog="dot")
nx.draw(graph,
pos,
with_labels=True,
node_size=1000,
node_color=["pink", "yellow", "tan", "orange"])
plt.show()
Ausgabe: Es entsteht ein Graph, der die Verbindungen zwischen Alice, Bob, Carol und Dave wie beschrieben zeigt.
Dieser Code erzeugt den folgenden Graphen:

Ein einfacher Graph, der ein soziales Netzwerk modelliert [vom Autor/der Autorin erstellt]
Wenn du dein eigenes soziales Netzwerk modellieren möchtest, kopiere dieses DataLab Notebook und passe es an.
Den einfachen Graphen analysieren
Schritt 1: Konnektivität prüfen.
Da wir von jedem Knoten über eine Folge von Kanten jeden anderen erreichen können, ist der Graph zusammenhängend.
Zur Veranschaulichung hier die Wege zwischen allen Knotenpaaren:
- Alice zu Bob: Direkte Kante.
- Alice zu Carol: Direkte Kante.
- Alice zu Dave: Über Bob.
- Bob zu Carol: Über Alice.
- Bob zu Dave: Direkte Kante.
- Carol zu Dave: Über Alice und Bob.
Schritt 2: Knotengrade bestimmen.
Zur Erinnerung: Der Grad eines Knotens ist „die Anzahl der Kanten, die an ihn angrenzen.“ Für unser Beispiel ergibt sich:
- Alice = Grad 2 (verbunden mit Bob und Carol)
- Bob = Grad 2 (verbunden mit Alice und Dave)
- Carol = Grad 1 (verbunden mit Alice)
- Dave = Grad 1 (verbunden mit Bob)
Die Grade ergeben sich aus der Zahl der Kanten, die an jedem Knoten anliegen, basierend auf den angegebenen Freundschaften.
Schritt 3: Pfade und Zyklen identifizieren.
Ein Pfad zwischen Alice und Dave wäre Alice → Bob → Dave.
Der Graph enthält keine Zyklen, da es keine Wege gibt, die zum Startknoten zurückkehren, ohne Schritte zu wiederholen.
Schritt 4: Zentralität bestimmen.
Alice und Bob sind in diesem Netzwerk zentral, da sie jeweils mit zwei anderen Knoten verbunden sind. Carol und Dave sind weniger zentral und jeweils nur mit einem anderen Knoten verbunden.
Fazit
Die Graphentheorie bietet ein leistungsfähiges Rahmenwerk, um komplexe Beziehungen und Strukturen in vielen Bereichen zu untersuchen und Probleme zu lösen. Wer zentrale Konzepte wie Knoten, Kanten und verschiedene Grapharten versteht und deren praktische Anwendungen kennt, kann Systeme optimieren und reale Herausforderungen adressieren.
Denk beim weiteren Eintauchen daran: Die Prinzipien der Graphentheorie sind nicht nur theoretisch — sie sind essenziell, um reale Probleme anzugehen, Konnektivität zu verbessern und Systeme effizienter zu machen. Ein solides Verständnis schärft deine Problemlösekompetenz und erweitert den Blick auf die vernetzten Systeme um uns herum.
Um dein Verständnis weiter auszubauen, schau dir diese weiterführenden Ressourcen an, die auf diesem Artikel aufbauen:
Graphentheorie: FAQs
Warum ist die Graphentheorie wichtig?
Die Graphentheorie liefert ein grundlegendes Rahmenwerk, um komplexe Netzwerke zu analysieren und zu optimieren, und hilft, praktische Probleme rund um Konnektivität, Pfadsuche und Systemeefizienz zu lösen.
Welche Anwendungen hat die Graphentheorie?
Anwendungsfelder sind u. a.: Optimierung von Netzwerkrouten, Social-Network-Analyse, Modellierung biologischer Systeme, Verbesserung der Verkehrs- und Stadtplanung usw.
Wie starte ich mit der Graphentheorie?
Mach dich mit den Grundbegriffen wie Knoten und Kanten vertraut und lerne anschließend Basis-Grapharten und ihre Eigenschaften kennen. Starte mit einfachen Beispielen, um ein solides Fundament für komplexere Themen und Anwendungen zu legen.
Was ist der Zweck der Graphentheorie?
Zweck der Graphentheorie ist es, Beziehungen zwischen Objekten zu untersuchen, die als Knoten dargestellt und durch Kanten verbunden sind, um komplexe Netzwerke und Strukturen in verschiedenen Bereichen zu analysieren und zu optimieren.
