Inhaltsverzeichnis

Topologische Sortierung von Graphen

Bei einem Aufbausimulationsspiel kann man verschiedene Gebäude bauen. Jedes Gebäude produziert eine bestimmte Ware. Damit das Gebäude arbeiten kann, benötigt es seinerseits Waren anderer Gebäude als Rohstoff:

1)

Diese Abhängigkeiten machen es schwer zu entscheiden, in welcher Reihenfolge man die Gebäude bauen sollte, damit sie nicht ungenutzt herumstehen.


(A1)

Gib (wenn möglich) eine sinnvolle Baureihenfolge der Gebäude an.

Modellierung von Abhängigkeiten

Die Problematik der gegenseitigen Abhängigkeiten tritt in vielen Situationen auf. Es wäre also von Vorteil, mit einem Algorithmus entscheiden zu können, ob eine sinnvolle Reihenfolge gefunden werden kann und wenn ja welche. Eine solche Reihenfolge nennt man topologische Sortierung auf einem gerichteten Graphen


(A2)

Modelliere die Situation im Aufbausimulationsspiel als gerichteter Graph.

Lösung


(A3)

Im Computerspiel gibt es zwei Möglichkeiten, Verklemmungen zu lösen.

Gib an, welche Kanten des ursprünglichen Graphen (zumindest vorübergehend) entfernt werden können, wenn man die Fischerhütte hinzufügt und zu Beginn 20 Pickel zur Verfügung stehen. Zeige, dass so die Verklemmung gelöst wird und eine topologische Sortierung nun möglich ist. Zeichne den zu dieser topologischen Sortierung gehörigen Graphen.

Lösung

Definition: Topologische Sortierung, Reihenfolge

Wenn es bei einem gerichteten Graphen eine Abfolge der Knoten des Graphen gibt, so dass für jede Kante k gilt: Wenn k von A nach B geht, dann steht A vor B in der Abfolge, dann existiert in diesem Graphen eine topologische Sortierung.

Um eine Reihenfolge anzugeben, muss man eine Abfolge der Knoten des Graphen angeben, so dass für jede Kante k gilt: Wenn k von A nach B geht, dann steht A vor B in der Abfolge.

Wichtig dabei ist, dass es innerhalb der Reihenfolge der Sortierung nicht notwendig ist, stets eine Kante von einem Knoten in der Sortierung zum nächsten zu haben. Es reicht, wenn man die Knoten von links nach rechts in einer Reihenfolge anordnen kann, so dass es keine Kanten gibt, die von rechts nach links zeigen. So kann man den Lösungsgraphen aus der vorigen Aufgabe durch Verschieben der Knoten folgendermaßen anordnen:

Das stellt eine gültige topologische Sortierung dar, auch wenn es keine Kante von der Kohle- zur Erzmine gibt. Man erkennt auf diese Weise auch sofort, dass es mehr als eine topologische Sortierung eines gerichteten Graphen geben kann, die Reihenfolge ist also nicht eindeutig:


(Hands-On)

Du kannst das selbst ausprobieren, indem du die folgende Datei aufbausimulation-graph-fischerhuette.zip herunterlädst und auspackst. Du erhältst die Datei Aufbausimulation-Graph-Fischerhuette.excalidraw. Diese kannst du in Excalidraw öffnen, nun kannst du die Knoten des Graphen auf einer Achse anordnen, so dass es keine Kanten gibt, die von rechts nach links zeigen.

Zum Vergleich, kannst du versuchen, dasselbe Ergebnis mit dem ursprünglichen Graphen (ohne Fischerhütte) zu erzielen: aufbausimulation-graph.zip - man kann sehr gut erkennen, wie ein Zyklus im Graph eine topologische Sortierung unmöglich macht.

Algorithmus

(A4)

Öffne im Graphentester das Beispiel 02_topologischesortierung/02_aufbausimulation2.csv. Untersuche die Situation mit Hilfe des bereits im Graphentester implementierten Algrithmus "Topologogische Sortierung".

Formuliere den Algorithmus als Pseudocode.

Hilfestellung: Verbale Beschreibung des Algorithmus

Lösung: Pseudocode


(A5)

Implementiere den Algorithmus selbst in einer eigenen Klasse unter "eigene Algorithmen". Teste deinen Algorithmus an den Beispielen 03_beispiel_obst.csv und 04_beispiel_obst2.csv.

Lösungsvorschlag Algorithmus


(A6) Rangliste

Im Tennisclub "Blau-Weiß" wird normalerweise im Laufe des Jahres eine Rangliste der Spieler ausgespielt. Dazu spielt jeder gegen jeden. In diesem Jahr mussten aber umfangreiche Bauarbeiten am Platz durchgeführt werden. Die Saison neigt sich nun dem Ende, es haben aber noch nicht alle Paarungen stattgefunden. Die Tabelle gibt Auskunft, wie die Spiele nach Sätzen ausgegangen sind. Der Eintrag in der dritten Spalte der zweiten Zeile bedeutet z.B., dass Albert mit 1:3 gegen Boris verloren hat.


(A7) Gruppenarbeit

Für eine Gruppenarbeit bilden die Schüler einer Klasse vier Gruppen. Alle Gruppen teilten ihre Arbeit in einzelne Aufgaben auf. Drei Gruppen konnten alle ihre Aufgaben erledigen, aber eine Gruppe wird nicht fertig.

Die schlausten Schüler, Ada und Charles, haben die vier Gruppen analysiert. Sie fanden heraus, dass die meisten Gruppenmitglieder auf andere warten mussten, bevor sie mit ihrer eigenen Aufgabe beginnen konnten.

Ada und Charles haben für jede Gruppe eine Skizze gezeichnet, die sich auf das Wesentliche konzentriert.

Ein Kreis stellt eine Person dar. Ein Pfeil von Person 1 nach Person 2 bedeutet, dass Person 1 ihre Aufgabe erledigt haben musste, bevor Person 2 mit ihrer Aufgabe beginnen konnte.

Welches Bild entspricht der Gruppe, die nicht fertig wurde? (Begründe deine Antwort)


(A8) Kochplatten

2) Anna und Ben kommen hungrig nach Hause. Nun möchten sie möglichst schnell zu Abend essen. Im Kühlschrank sind Brokkoli, Fisch, Tomaten und Fleisch. Daraus wollen sie zwei Gerichte zubereiten. Die Zubereitung erfolgt in mehreren Schritten. Die meisten Schritte können Anna und Ben erst dann beginnen, wenn sie andere Schritte bereits erledigt haben.

Im Bild sind die Schritte als Kreise und die Abfolge der Schritte mit Pfeilen dargestellt.

Annas und Bens Herd hat drei Herdplatten. Sie können also maximal drei Schritte gleichzeitig erledigen. Für jeden Schritt benötigen sie 5 Minuten.

Frage: Wie viele Minuten benötigen sie für die Zubereitung der beiden Gerichte mindestens?

Lösung

Dateien

FilenameFilesizeLast modified
2024-03-19_15-44.png85.5 KiB19.03.2024 15:46
aufbausim.png389.4 KiB14.11.2022 19:40
aufbausimulation-graph-fischerhuette-geordnet.png292.1 KiB15.11.2022 11:44
aufbausimulation-graph-fischerhuette-geordnet2.png300.3 KiB15.11.2022 11:50
aufbausimulation-graph-fischerhuette.png102.0 KiB14.11.2022 21:09
aufbausimulation-graph-fischerhuette.zip4.3 KiB15.11.2022 11:54
aufbausimulation-graph.png284.6 KiB15.11.2022 12:06
aufbausimulation-graph.zip4.5 KiB15.11.2022 12:02
biberkochen.png72.4 KiB17.11.2022 07:53
einstieg_toposort.odp83.7 KiB17.11.2022 07:26
einstieg_toposort.pdf81.5 KiB17.11.2022 07:26
gruppenarbeit.png127.1 KiB17.11.2022 08:05
tabelle.png42.9 KiB17.11.2022 07:45
ts_gt.png227.8 KiB15.11.2022 09:57
1)
Grafik(en): Warenverkehr bei einer Aufbausimulation (alle Bilder Pixabay-Lizenz - kein Nachweis notwendig)
2)
Aufgabe aus dem Informatik-Biber-Wettbewerb 2013. https://bwinf.de/biber/archiv/aufgabensammlung/ – Copyright 2013 BWINF - GI e.V. (Lizenz CC-BY-SA 3.0)