Die Regionalregierung eines Archipels hat eine Fähre angeschafft, die die vier Inseln des Archipels verbinden soll. Dabei sollen die abgebildeten Fährrouten bedient werden. Idealerweise sollte das Schiff immer wieder eine Rundtour fahren, bei der jede Fährverbindung einmal bedient wird.
Um derartige Fragestellungen in informatischen Systemen modellieren zu können, müssen wir uns nun ein paar Gedanken machen.
Welche der folgenden Informationen sind wichtig für die Suche nach Rundtouren:
Zur Modellierung kommt also ein Modell zum Einsatz, welches die Häfen und die Verbindungen zwischen den Häfen umfassen muss. Allgemeiner kann man davon sprechen, dass man Knoten modellieren möchte, deren Verbindungen mit Hilfe von Kanten dargestellt werden.
Für unser Archipel sieht das so aus:
Die Anordnung der Elemente auf der Zeichenfläche spielt dabei überhaupt keine Rolle, solange die Kanten und ihre Verbindungen gleich bleiben, modellieren wir dasselbe Archipel:
Ein Graph ist ein Gebilde, das aus Knoten und Kanten besteht. Jede Kante verbindet zwei Knoten oder einen Knoten mit sich selbst. Von einem Knoten können eine, mehrere oder keine Kanten ausgehen.
Formal ist ein Graph also ein 2-Tupel, das aus einer Knotenmenge und einer Kantenmenge besteht und man schreibt:
Graph G = (V,E)
mit V
: Knotenmenge und E
: Kantenmenge
Die Buchstaben sind aus den englischen Begriffen abgeleitet: V ist die Menge von Knoten (Vertices) und E die Menge der Kanten (Edges).
Das Bild rechts veranschaulicht die Begriffe, man erkennt dort auch, wie man die Kanten darstellen kann, indem man die verbundenen Knoten in runden Klammern durch ein Komma getrennt angibt. In der Menge der Kanten fehlt (d,b), weil der Knoten d nicht mit dem Knoten b verbunden ist.
Zeichne den folgenden Graphen: G=(V,E)
mit V = {29,8,1,16,42,3}
und E = {(8,42),(8,1),(16,8),(8,29),(1,16),(42,3),(29,42),(3,29)}
Jeder Knoten hat die Eigenschaft "Grad des Knotens"
Der Grad eines Knotens entspricht der Anzahl der Kantenenden, die mit dem Knoten verbunden sind.1)
grad(C) = 2 grad(A) = 3 grad(4) = 3 grad(1) = 4
Wenn es in einem Graphen von jedem Knoten zu einem anderen einen Weg gibt, heißt der Graph zusammenhängend.
Einen zusammenhängenden Teilgraphen nennt man Zusammenhangskomponente.
Zusammenhängende, azyklische Graphen sind Bäume.
Ein Kantenzug, in dem jede Kante genau einmal vorkommt, heißt Eulerzug.
In einem gegebenen Graph gibt es einen Eulerzug wenn
Ein geschlossener Eulerzug (auch Eulerkreis) ist ein Zyklus, in dem jede Kante genau ein mal vorkommt.
Ein Graph besitzt einen geschlossenen Eulerzug, wenn
Für viele Anwendungen verwendet man gerichtete Graphen, d.h. die Kanten haben eine Richtung (z.B. bei einem Stadtplan mit Einbahnstraßen). Bei einem Euler-Zug darf man die Kanten dann nur in der vorgegebenen Richtung durchlaufen.
Jeder Knoten hat dann einen Ausgangsgrad (wie viele Kanten gehen von einem Knoten aus) und einen Eingangsgrad (wie viele Kanten führen zu einem Knoten hin).
Filename | Filesize | Last modified |
---|---|---|
archipel.drawio.png | 933.7 KiB | 09.11.2022 18:18 |
archipel.png | 371.0 KiB | 09.11.2022 16:01 |
auswahl_376.png | 37.9 KiB | 09.11.2022 20:25 |
auswahl_377.png | 27.9 KiB | 09.11.2022 20:36 |
auswahl_378.png | 22.6 KiB | 09.11.2022 20:38 |
einfuehrung.odp | 1.7 MiB | 10.11.2022 07:41 |
einfuehrung.pdf | 328.0 KiB | 10.11.2022 07:41 |
euler1.png | 20.2 KiB | 09.11.2022 20:28 |
euler2.png | 30.4 KiB | 09.11.2022 20:29 |
grad01.png | 180.1 KiB | 09.11.2022 18:48 |
graph.drawio.png | 60.4 KiB | 18.03.2024 08:04 |
graph01.drawio.png | 40.3 KiB | 09.11.2022 16:28 |
graph02.drawio.png | 75.5 KiB | 09.11.2022 16:33 |