Zum Inhalt springen

Informatik · Klasse 9–13 · aktualisiert

Graphenalgorithmus: Graphen modellieren und lösen

Du lernst, was Knoten und Kanten sind, wie man Graphen speichert und wofür Breitensuche, Tiefensuche, Dijkstra und Kruskal gut sind.

0 von 12 Aufgaben gelöst

Graphenalgorithmus: Graphen modellieren und lösen

Kurz gesagt

Ein Graph besteht aus Knoten und Kanten. Man speichert ihn als Adjazenzliste oder Adjazenzmatrix. Breiten- und Tiefensuche besuchen die Knoten in einer festgelegten Reihenfolge. Dijkstra sucht kürzeste Pfade, Kruskal einen minimalen Spannbaum.

Auf einem U-Bahn-Plan suchst du den Weg zu einer Station. Der Plan ist ein Netz aus Punkten und Verbindungen, also ein Graph. Mit ein paar klaren Regeln kann ein Computer in so einem Netz suchen. Genau diese Regeln lernst du hier.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Ein Graph ist eine abstrakte Struktur. Er besteht aus Objekten und den Verbindungen zwischen ihnen. Die Objekte heißen Knoten (auch Ecken). Die paarweisen Verbindungen heißen Kanten (manchmal auch Bögen). Man zeichnet Knoten meist als Punkte und Kanten als Linien.

Ein U-Bahn-Netz ist ein gutes Beispiel: Jeder Knoten stellt eine U-Bahn-Station dar und jede Kante eine direkte Zugverbindung zwischen zwei Stationen. Auch andere Dinge lassen sich so beschreiben. In der chemischen Graphentheorie sind die Atome eines Moleküls die Knoten und die Molekularverbindungen die Kanten. Das Internet ist ein riesiger Graph aus Computern und Datenverbindungen.

Kanten können gerichtet oder ungerichtet sein. Bei einem ungerichteten Graphen haben die Kanten keine Richtung: Jede Kante kann in beide Richtungen durchlaufen werden. Bei einem gerichteten Graphen (auch Digraph genannt) zeichnet man Pfeile, die vom Anfangsknoten zum Endknoten zeigen. Jede Kante kann dann nur in eine Richtung durchlaufen werden. Zwei Knoten heißen benachbart, wenn eine Kante sie verbindet.

Manchmal reicht es nicht zu wissen, welche Knoten verbunden sind. Dann bekommen die Kanten ein Gewicht. In einem Straßennetz könnte das Gewicht zum Beispiel die Entfernung zwischen zwei Orten sein.

Definition

Graph

Ein Graph ist eine abstrakte Struktur aus Objekten (Knoten) und den Verbindungen zwischen ihnen (Kanten). Die Kanten können gerichtet oder ungerichtet sein.

MerkmalUngerichteter GraphGerichteter Graph
Zeichnung der KanteLiniePfeil
Durchlaufenin beide Richtungennur in eine Richtung

Merke: Die Knoten sind die Objekte, die Kanten sind die Verbindungen. Ungerichtete Kanten gehen in beide Richtungen, gerichtete nur in Pfeilrichtung.

Teste dich

LeichtWas stellt in einem U-Bahn-Netz eine Kante dar?
MittelWie zeichnet man eine Kante in einem gerichteten Graphen?

Alles auf einen Blick

Graphenalgorithmus

  • Graph

    Knoten sind die Objekte, Kanten die Verbindungen, gerichtet oder ungerichtet

  • Speichern

    Adjazenzliste (Nachbarn je Knoten) oder Adjazenzmatrix (n × n mit 0 und 1)

  • Breitensuche

    Warteschlange, Ebene für Ebene, Nachbarn in festgelegter Reihenfolge

  • Tiefensuche

    einem Pfad in die Tiefe folgen, dann Schritt für Schritt zurückgehen

  • Einsatz

    Dijkstra für kürzeste Pfade, Kruskal für minimale Spannbäume

Musteraufgabe · Schritt für Schritt

Breitensuche und Tiefensuche ab H (ausgedachtes Beispiel)

  1. 1Ungerichteter Graph, Nachbarn in dieser Reihenfolge: H:I,J I:H,L J:H,L,M L:I,J M:J. Start bei H.
  2. 2Breitensuche: H raus, neu I, J. Warteschlange: I J
  3. 3I raus, neu L (H ist schon gesehen). Warteschlange: J L
  4. 4J raus, neu M (H und L sind schon gesehen). Warteschlange: L M
  5. 5L raus und M raus: nichts Neues. Besuchsreihenfolge: H I J L M
  6. 6Tiefensuche: H, dann I (erster Nachbar von H), dann L (I hat außer H nur L), dann J (L hat außer I nur J), dann M
  7. 7M hat nichts Neues. Zurück bis H: alle Nachbarn sind besucht. Besuchsreihenfolge: H I L J M

Fehler finden

Prüfe die Schritte der Breitensuche ab P (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Eine Adjazenzmatrix für 5 Knoten hat . Die Breitensuche nimmt den ersten Knoten der Warteschlange, seine neu entdeckten Nachbarn werden angehängt. Ein Netzbetreiber will mehrere Städte mit möglichst wenig Kabel verbinden. Dafür berechnet man einen minimalen Spannbaum, zum Beispiel mit dem Algorithmus von .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Graphenalgorithmus

LeichtEin gerichteter Graph hat die Knoten 1, 2 und 3 und nur eine Kante, nämlich von Knoten 1 zu Knoten 2 (ausgedachtes Beispiel). Was steht in seiner Adjazenzmatrix?
MittelEin ungerichteter Graph hat die Nachbarlisten U:V,X,Y V:U,W X:U,W Y:U W:V,X. Die Breitensuche startet bei U und nimmt die Nachbarn in dieser Reihenfolge. Welcher Knoten wird als dritter besucht?
SchwerWelche Aussage über den Algorithmus von Dijkstra stimmt?

Weiterlesen in Informatik