faecher:informatik:oberstufe:graphen:adjazenz

Dies ist eine alte Version des Dokuments!


Repräsentation von Graphen

(1A) Gruppe A: Betrachte den Graphen rechts. Wie könnte man diesen Graphen in einer Tabelle darstellen? Notiere deine Ideen und probiere sie aus!

(1B) Gruppe B: Betrachte den Graphen rechts. Wie könnte man diesen Graphen in einer Liste darstellen? Notiere deine Ideen und probiere sie aus!

Wenn zwei Knoten über eine Kante miteinander verbunden sind, heißen diese Nachbarknoten, sie sind benachbart oder auch "adjazent".

Bei ungerichteten Graphen sind alle verbundenen Knoten adjazent (siehe Abbildung rechts). Bei einem gerichteten Graphen hingegen nur die, die durch …

(2) In der Abbildung siehst du die Mitgliedsstaaten der EU. Manche der Staaten sind aufgrund gemeinsamer Grenzen adjazent. Erstelle einen Graphen einen Graphen der dieses Nachbarschaftsverhältnis wiedergibt.

Quelle: Stefan Eling: https://www.hanisauland.de/wissen/spezial/politik/europaeische-union/europaeische-union-kapitel-1.html (10.10.2022).

(3A) Wenn du in der Gruppe A bist, bearbeite bitte diese Seite: Adjazenzmatrix

(3B) Wenn du in der Gruppe B bist, bearbeite bitte diese Seite: Adjazenzliste

Es folgen verschiedene Aufgaben. Um deine Lösungen zu überprüfen, kannst du folgendes Tool verwenden: https://graphonline.ru/de/

Kurzanleitung

(4)

Effizienzanalyse (Speicherplatz)

Die verschiedenen Repräsentationen der Graphen haben Vor- und Nachteile. Man kann z.B. den benötigten Speicherplatz und die Laufzeit für Zugriffsoperationen auf den Graphen bewerten. Dabei muss man Anwendungen unterscheiden, bei denen relativ dünne Graphen auftreten, und Anwendungen, bei denen der Graph (nahezu) vollständig ist. Repräsentiert der Graph z.B. eine Karte mit Straßen und Kreuzungen, gehen von jedem Knoten (= Kreuzung) nur wenige Kanten (= Straßen) ab. Mehr als 4-5 Straßen gehen üblicherweise nicht von einer Kreuzung aus. Diese Zahl ändert sich auch nicht, wenn die Anzahl der Knoten steigt. Der Graph ist also sehr dünn. Betrachtet man einen vollständigen Graphen, steigt bei einer Erhöhung der der Knotenzahl damit auch die Zahl der Kanten pro Knoten.

Speicherplatz (ungerichteter, gewichteter Graph)

  • Adjazenzliste: Zwei Zahlen (Nummer des Nachbarknoten, Entfernung) werden gespeichert.
  • Adjazenzmatrix: Eine Zahl (Entfernung) wird in jeder Zelle gespeichert (0 für keine Kante).
Anzahl der Knoten dünner Graph (4 Kanten pro Knoten) vollständiger Graph
Adjazenzlisten Adjazenzmatrix Adjazenzlisten Adjazenzmatrix
5 5*4*2 = 40 Zahlen 5*5 = 25 Zahlen 5*4*2 = 40 Zahlen 25 Zahlen
6
7
8
9
n

Laufzeitanalyse

Die Laufzeit einzelner Operationen hängt von der Art der Implementierung ab.

  • Adjazenzliste: Ein Array enthält für jeden Knoten eine einfach verkettete Liste der Kanten.
  • Adjazenzmatrix: Zweidimensionales Array.
Operation dünner Graph (4 Kanten pro Knoten) vollständiger Graph
Adjazenzlisten Adjazenzmatrix Adjazenzlisten Adjazenzmatrix
Länge einer Kante? O(1) O(1) O(n) O(1)
Ausgangsgrad eines Knotens?
Einfügen Kante
Einfügen Knoten
Löschen Kante
Löschen Knoten

(Quelle: Verändert nach: ZPG Informatik, Schaller 2020)

(x) Diskutiere die Vor- und Nachteile beider Repräsentationsformen. Erstelle dazu eine Tabelle wie diese:

Adjazenzmatrix Adjazenzlisten
Vorteile - … - …
Nachteile - … - …

Implementation

[n/a: No match]
  • faecher/informatik/oberstufe/graphen/adjazenz.1667301579.txt.gz
  • Zuletzt geändert: 01.11.2022 11:19
  • von Mareike Nutz