Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:graphen:zpg:topologische_sortierung:start [15.11.2022 11:03] – [Algorithmus] Frank Schiebel | faecher:informatik:oberstufe:graphen:zpg:topologische_sortierung:start [11.06.2024 13:21] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Topologische Sortierung von Graphen ====== | ====== 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: | 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: | ||
Zeile 8: | Zeile 8: | ||
* Mit dem Getreide der Farm werden die Schweine gefüttert und in der Mühle das Mehl für den Bäcker gemahlen. | * Mit dem Getreide der Farm werden die Schweine gefüttert und in der Mühle das Mehl für den Bäcker gemahlen. | ||
* Die Schweine werden vom Metzger geschlachtet. | * Die Schweine werden vom Metzger geschlachtet. | ||
+ | |||
+ | {{ : | ||
Diese Abhängigkeiten machen es schwer zu entscheiden, | Diese Abhängigkeiten machen es schwer zu entscheiden, | ||
Zeile 37: | Zeile 39: | ||
++++ Lösung | | ++++ Lösung | | ||
+ | |||
{{ : | {{ : | ||
- | Es gibt keine topologiosche | + | Es gibt keine topologische |
++++ | ++++ | ||
Zeile 59: | Zeile 62: | ||
++++ | ++++ | ||
- | ====== Definition: Topologische Sortierung, Reihenfolge ==== | + | ===== Definition: Topologische Sortierung, Reihenfolge |
<WRAP center round important 96%> | <WRAP center round important 96%> | ||
Zeile 83: | Zeile 86: | ||
Du kannst das selbst ausprobieren, | Du kannst das selbst ausprobieren, | ||
- | Zum Vergleich, | + | Zum Vergleich, |
- | ====== Algorithmus | + | ===== Algorithmus ===== |
{{: | {{: | ||
Zeile 136: | Zeile 139: | ||
=== (A5) === | === (A5) === | ||
- | Implementiere den Algorithmus selbst in einer eigenen Klasse unter " | + | Implementiere den Algorithmus selbst in einer eigenen Klasse unter " |
+ | |||
+ | |||
+ | ++++ Lösungsvorschlag Algorithmus | | ||
+ | |||
+ | <code java> | ||
+ | // Reihenfolge | ||
+ | String Reihenfolge = ""; | ||
+ | // Hole alle Knoten vom Graph g | ||
+ | List< | ||
+ | |||
+ | // Schleife über alle Knoten | ||
+ | for(Knoten k: alleKnoten) { | ||
+ | int Eingangsgrad = g.getEingehendeKanten(k).size(); | ||
+ | k.setWert(Eingangsgrad); | ||
+ | k.setFarbe(7); | ||
+ | } | ||
+ | |||
+ | step(); | ||
+ | boolean sort=true; | ||
+ | |||
+ | |||
+ | while(alleKnoten.size() > 0 && sort) { | ||
+ | Collections.sort(alleKnoten); | ||
+ | Knoten k = alleKnoten.remove(0); | ||
+ | if (k.getIntWert() == 0) { | ||
+ | k.setFarbe(4); | ||
+ | Reihenfolge += k.getInfotext() + " "; | ||
+ | for(Knoten n: g.getNachbarknoten(k)) { | ||
+ | n.setWert(n.getIntWert()-1); | ||
+ | } | ||
+ | } else { | ||
+ | sort=false; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | if (! sort) { | ||
+ | System.out.println(" | ||
+ | } else { | ||
+ | System.out.println(Reihenfolge); | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A6) Rangliste === | ||
+ | |||
+ | Im Tennisclub " | ||
+ | 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. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | * Modelliere die Situation als Graph. Was sind die Knoten? Was wird durch die Kanten beschrieben? | ||
+ | * Verwende den Graphentester, | ||
+ | * Ist die Rangliste eindeutig? | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (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 === | ||
+ | ((Aufgabe aus dem Informatik-Biber-Wettbewerb 2013. https:// | ||
+ | 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 ==== | ||
+ | |||
+ | {{simplefilelist> |