faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:start [30.11.2022 21:28] – [Beschreibung] Frank Schiebelfaecher:informatik:oberstufe:graphen:zpg:kartenfaerben:start [06.12.2022 12:56] (aktuell) – [Weiterführende Fragen & Aufgaben] Frank Schiebel
Zeile 24: Zeile 24:
   * Ist es möglich, den Graphen mit k Farben zu färben?   * Ist es möglich, den Graphen mit k Farben zu färben?
  
-===== Algorithmus ===== +===== Beschreibung eines Greedy-Algorithmus ======
- +
- +
-==== Beschreibung ====+
  
  
Zeile 41: Zeile 38:
  
 {{ :faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:auswahl_416.png|}} {{ :faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:auswahl_416.png|}}
 +
 +Die erste noch nicht benutzte Farbe ist grün. Daher wird der Knoten grün gefärbt.
 +
 +===== Weiterführende Fragen & Aufgaben =====
 +
 +<WRAP center round tip 95%>
 +Für die Kolorierung von Graphen gelten folgende Sätze:
 +  * Graphen, die sich mit einer Farbe färben lassen, haben keine Kante außer Schleifen. 
 +  * Ein bipartiter((https://de.wikipedia.org/wiki/Bipartiter_Graph)) Graph lässt sich mit zwei Farben färben. 
 +  * Ein vollständiger Graph mit n Knoten benötigt n Farben.
 +  * Ein Graph mit einer Clique(([[https://de.wikipedia.org/wiki/Clique_(Graphentheorie)|Wikipedia: Clique]] )) aus m Knoten benötigt mindestens m Farben. 
 +
 +</WRAP>
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A2) ===
 +
 +Begründe die obigen Aussagen.
 +
 +++++ Lösung |
 +
 +  * Sobald eine Kante vorhanden ist, sind zwei Knoten verbunden. Wenn dies verschiedene Knoten sind (also keine Schleife), dann dürfen diese nicht die selbe Farbe haben und es werden mindestens zwei Farben benötigt.
 +  * Wenn der Graph bipartit ist, dann zerfällt er in zwei Teilmenge der Knoten, die untereinander überhaupt nicht verbunden sind. Damit kann jede Teilmenge in einer einzigen Farbe eingefärbt werden.
 +  * Bei einem vollständigen Graphen ist jeder Knoten mit allen anderen verbunden. Daher muss jeder Knoten eine eigene Farbe haben.
 +  * In einer Clique sind alle Knoten untereinander verbunden. Daher muss jeder Knoten der Clique eine eigene Farbe bekommen.
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A3) ===
 +
 +Beschreibe eine Situation (Landkarte incl. Reihenfolge der Länder), in der der Greedy-Algorithmus mehr als 4 Farben erfordert.
 +
 +++++ Lösungsvorschlag | 
 +{{ :faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:karteii.png?300 |}}
 +Werden die Knoten in der angegebenen Reihenfolge bearbeitet, findet der Greedy-Algorithmus (Farbreihenfolge: blau-rot-grün-gelb-lila) die gezeigte Lösung mit 5 Farben, da das Land 2 ungeschickterweise mit rot statt grün gefärbt wurden.
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A4) ===
 +
 +Landkarten lassen sich immer mit vier Farben einfärben. Bestimme die Anzahl der möglichen Färbungen (ohne Beachtung der Regel, dass Nachbarländer nicht die gleiche Farbe haben dürfen) einer Landkarte aus 20 Ländern mit 4 Farben. 
 +
 +++++ Lösung |
 +Es gibt 4<sup>20</sup> = ca. 1 Billion Möglichkeiten, wenn man die Bedingung nicht beachtet, dass zwei Nachbarländer verschieden gefärbt sein müssen.
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A5) ===
 +
 +Für das Kartenfärbeproblem ist kein Algorithmus bekannt, der eine optimale Lösung bestimmt, ohne dabei alle Möglichkeiten auszuprobieren. Begründe die Notwendigkeit eines Näherungsalgorithmus.
 +
 +++++ Lösung |
 +Die Anzahl der Möglichkeiten steigt mit der Anzahl der Knoten exponentiell. Damit wird der Zeitbedarf schon bei relativ wenigen Knoten zu groß. Ein Näherungsalgorithmus arbeitet mit polynomieller Zeitbedart, liefert dafür allerdings nicht die optimale Lösung.
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A6) ===
 +Erläutere, durch welche besondere Eigenschaft ein Graph, der eine Landkarte repräsentiert, die Beschränkung auf 4 Farben ermöglicht.
 +
 +++++ Lösung |
 +Der Graph eine Landkarte ist planar((https://de.wikipedia.org/wiki/Planarer_Graph)). Durch die besondere Situation kann es keine nicht auflösbaren Kreuzungen der Kanten geben, da dies bedeuten würde, dass zwei verschiedene Ländergrenzen über Kreuz liegen.
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A7) ===
 +
 +**(A)** Eine Variante des Kartefärberoblems ist das **Kolonialproblem**: Einige Länder haben Kolonien, die nicht direkt mit dem Mutterland verbunden sind. Dabei sollen das Mutterland und seine Kolonien in der gleichen Farbe eingefärbt werden. Weiterhin soll gelten, dass benachbarte Länder bzw. Kolonien nicht in der gleichen Farbe eingefärbt werden dürfen. Es ist nicht bekannt, ob es eine Obergrenze der Anzahl der benötigten Farben gibt.
 +
 +++++ Tipp: |
 +Stell dir folgende Situation vor:
 +
 +{{ :faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:kolonien_tipp.png?600 |}}
 +
 +  * Können die Mutterländer mit 4 Farben gefärbt werden?
 +  * Wie könnten eine Aufteilung der Insel aussehen, die zu Problemen führen kann?
 +++++
 +
 +++++ Lösung |
 +{{ :faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:kolonien_lsg.png?600 |}}
 +E kann nicht die Farbe von A,B oder D haben, da dies bei den Mutterländern nicht zulässig ist. Die Farbe von C ist auch nicht zulässig, da dies bei den Kolonien nicht erlaubt ist. Keines dieser vier Länder kann die gleiche Farbe haben, da sie oder ihre Kolonien untereinander benachbart sind. Daher wird eine 5. Farbe benötigt.
 +++++
 +
 +**(B) Modellierung ** 
 +
 +  * Überführe die Karte in den dazugehörigen Graphen. Erläutere, wie Du die Forderung modellierst, dass das Mutterland und seine Kolonien in der gleichen Farbe gefärbt werden sollen.
 +  * Begründe anhand des Graphen, warum die Obergrenze von vier Farben für eine Landkarte nicht mehr gilt.
 +
 +++++ Tipp |
 +Die Mutterländer und ihre Kolonien werden durch einen einzigen Knoten repräsentiert.
 +++++
 +
 +++++ Lösung |
 +{{ :faecher:informatik:oberstufe:graphen:zpg:kartenfaerben:kolonie_graph.png |}}
 +
 +Der Graph ist nicht mehr planar, also reichen 4 Farben nicht mehr aus.
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A8) ===
 +
 +Notiere den beschriebenen Algorithmus als Pseudocode und implementiere ihn selbst im Graphentester. Hinweise und Lösungsvorschläge findest du unten.
 +===== Algorithmus: Pseudocode & Implementation =====
 +
 +
 +
 +
 +==== Pseudocode ====
 +
 +
 +
 +++++ Pseudocode |
 +
 +<code>
 +Kartenfärbung:
 +Wiederhole für jeden Knoten k des Graphen
 +  
 +  Wiederhole für jede Farbe der Farbliste
 +     Setze die Farbe auf "unbenutzt"
 +  Ende-Wiederhole
 +  
 +  Wiederhole für jeden Nachbarknoten n von k
 +     Betrachte die Farbe des Knoten n
 +     Setze diese Farbe auf "benutzt"
 +  Ende-Wiederhole
 +  
 +  Wiederhole für jede Farbe der Farbliste
 +     Falls die Farbe "unbenutzt" ist
 +       Färbe den Knoten k mit dieser Farbe
 +       Brich die Schleife ab
 +     Ende-Falls
 +  Ende-Wiederhole
 +
 +Ende-Wiederhole
 +</code>
 +++++
 +==== Beispielimplementation im Graphentester ====
 +
 +++++ Beispielimplementation |
 +<code java>
 +List<Knoten> knoten = g.getAlleKnoten();
 +for (Knoten aktuellerKnoten: knoten) {
 +  boolean[] farbenliste = new boolean[g.getAnzahlKnoten()+1];
 +  for (int i=0; i < farbenliste.length; i++){
 +    farbenliste[i]=false;
 +  }
 +
 +  List<Knoten> nachbarn = g.getNachbarknoten(aktuellerKnoten);
 +  for (Knoten k : nachbarn){
 +    farbenliste[k.getFarbe()]=true;
 +  }
 +
 +  for (int i=1; i<farbenliste.length; i++){
 +    if (!farbenliste[i]) {
 +      aktuellerKnoten.setFarbe(i);
 +      break;
 +    }
 +  }
 +
 +</code>
 +++++
 +
 +
 +
 +
  • faecher/informatik/oberstufe/graphen/zpg/kartenfaerben/start.1669840105.txt.gz
  • Zuletzt geändert: 30.11.2022 21:28
  • von Frank Schiebel