28. Bundeswettbewerb Informatik 2009/2010 Endrunde 5.–8.10.2010 Spiele und Gewinnstrategien Gruppenarbeit 2. Tag In dieser Aufgabe betrachten wir gefärbte Graphen. Dabei sei F eine endliche Menge von Farben, wobei auf jeden Fall rot, blau und weiß Farben in F sind. Ein gefärbter Graph G besteht aus einer Menge VG von Knoten, einer Menge EG von gerichteten Kanten (die in einer Zeichnung des Graphen als Pfeile zwischen Knoten eingezeichnet werden) und einer Abbildung fG , die jedem Knoten v von G eine Farbe fG (v) aus F zuordnet. Im Folgenden betrachten wir ein Spiel, dessen Spielbrett aus zwei gefärbten Graphen G und H besteht. Das Spiel wird von 2 Parteien gespielt, die Spieler 1 und Spieler 2 genannt werden. Eine Partie des Spiels besteht aus einer vorher vorgegebenen Anzahl r von Runden. Für jede Runde i (mit 1 6 i 6 r) gibt es zwei Spielsteine. In Runde i darf sich zunächst Spieler 1 einen der beiden Spielsteine aussuchen und legt ihn auf einen beliebigen Knoten eines der beiden Graphen. Spieler 2 darf als Reaktion darauf den zweiten Spielstein auf einen beliebigen Knoten des anderen Graphen legen. Nach Abschluss der r-ten Runde ist die Partie beendet und es wird der Gewinner ermittelt. In den Graphen G und H befinden sich dann je r Spielsteine; wir bezeichnen den in Runde i mit einem Spielstein belegten Knoten des Graphen G mit ai und den des Graphen H mit bi (für 1 6 i 6 r). Spieler 1 hat gewonnen, wenn mindestens eine der folgenden drei Bedingungen verletzt ist; Spieler 2 hat gewonnen, wenn jede der drei Bedingungen erfüllt ist: (1) für jedes i mit 1 6 i 6 r gilt: fG (ai ) = fH (bi ) (d.h., in jeder Runde wurden die beiden Spielsteine auf gleich gefärbte Knoten gelegt); (2) für alle i, j mit 1 6 i 6 r und 1 6 j 6 r gilt: ai = a j ⇐⇒ bi = b j (d.h., in je zwei Runden i und j wurden die Spielsteine entweder auf die gleichen oder auf völlig verschiedene Knoten gelegt); (3) für alle i, j mit 1 6 i 6 r und 1 6 j 6 r gilt: (ai , a j ) ∈ EG ⇐⇒ (bi , b j ) ∈ EH (d.h., in je zwei Runden i und j wurden die Spielsteine entweder in beiden Graphen auf durch eine Kante verbundene Knoten gelegt oder in keinem der beiden Graphen). 1 Beispiel: Seien G und H die gefärbten Graphen aus Abbildung 1 und sei r = 2. Spieler 1 gewinnt eine Partie des 2-Runden Spiels auf G und H, indem er in der ersten Runde den Spielstein auf denjenigen Knoten von G legt, der mit allen anderen Knoten durch eine Kante verbunden ist. Spieler 2 muss in der ersten Runde den Spielstein dann auf irgendeinen Knoten in H legen. Egal, welchen Knoten b1 er hierbei wählt, gibt es auf jeden Fall in H einen Knoten v, der durch keine Kante mit dem Knoten b1 verbunden ist. In Runde 2 kann Spieler 1 dann den Spielstein auf den Knoten v in H legen. Egal, auf welchen Knoten in G dann Spieler 2 seinen Spielstein legt, wird auf jeden Fall die Bedingung (3) verletzt sein. Daher gewinnt Spieler 1 die Partie. H: G: Abbildung 1: Zwei gefärbte Graphen G und H, bei denen jeder Knoten mit der Farbe weiß gefärbt ist. Aufgabe 1: Betrachten Sie die beiden Graphen G und H aus Abbildung 2. Finden Sie eine Strategie, mit der Spieler 1 das 3-Runden Spiel auf G und H gewinnt. Finden Sie außerdem eine Strategie, mit der Spieler 2 das 2-Runden Spiel auf G und H gewinnt. G: H: Abbildung 2: Zwei gefärbte Graphen G und H, bei denen jeder Knoten mit der Farbe weiß gefärbt ist. 2 Aufgabe 2: Für jede Zahl n > 2 sei Gn der gefärbte Graph mit Knotenmenge {1, . . . , n}, bei dem Knoten 1 rot, Knoten n blau und alle anderen Knoten weiß gefärbt sind und bei dem es genau dann eine Kante von Knoten i zu Knoten j gibt, wenn i < j ist. In Abbildung 3 sind G4 und G5 dargestellt. (a) Finden Sie die kleinste Zahl r, für die Spieler 1 eine Gewinnstrategie im r-Runden Spiel auf G4 und G5 hat. Beschreiben Sie die Gewinnstrategie und begründen Sie, warum Spieler 1 keine Gewinnstrategie im r−1-Rundenspiel hat. (b) Finden Sie ein Kriterium für gegebene Zahlen r, m, n, das besagt, welcher der beiden Spieler eine Gewinnstrategie im r-Rundenspiel auf Gm und Gn hat. Begründen Sie, warum Ihre Antwort korrekt ist. G4 : G5 : Abbildung 3: Die gefärbten Graphen G4 und G5 Aufgabe 3: Überlegen Sie, ob – unabhängig davon, wie r, G und H gewählt sind – stets einer der beiden Spieler eine Gewinnstrategie besitzen muss. Begründen Sie, warum Ihre Antwort korrekt ist (indem Sie entweder konkrete r, G, H angeben, für die Sie nachweisen können, dass keiner der beiden Spieler eine Gewinnstrategie im r-Runden Spiel auf G und H hat; oder indem Sie beweisen, dass für jedes r, G und H gilt: einer der beiden Spieler hat eine Gewinnstrategie im r-Runden Spiel auf G und H). Aufgabe 4: Entwickeln Sie einen möglichst effizienten Algorithmus, der bei Eingabe zweier gefärbter Graphen G und H und einer Zahl r folgendes leistet: Er gibt an, ob einer der beiden Spieler eine Gewinnstrategie hat – und falls dies der Fall ist, gibt er an, welcher der beiden Spieler dies ist. Erweitern Sie Ihren Algorithmus so, dass er nicht nur sagt, welcher der beiden Spieler eine Gewinnstrategie besitzt, sondern auch eine konkrete Gewinnstrategie für diesen Spieler ausgibt. Dazu sollten Sie zunächst eine geeignete Datenstruktur entwickeln, mit der Sie Strategien einzelner Spieler repräsentieren können. Analysieren Sie jeweils den Zeit- und Platzbedarf Ihres Algorithmus. 3 Wenn man fordert, dass die gefärbten Graphen G und H eine bestimmte Form haben müssen, kann man oft effizientere Algorithmen als den in Aufgabe 4 entwickelten finden. Zwei solche Fälle werden in den folgenden beiden Aufgaben betrachtet. Zum Lösen der Aufgaben ist es jeweils hilfreich, zunächst ähnliche Überlegungen wie zur Lösung von Aufgabe 2 anzustellen. Dabei kann es auch hilfreich sein, die Aufgabenstellung zunächst auf solche Graphen einzuschränken, deren Knoten alle mit derselben Farbe gefärbt sind. Wenn Sie dieses eingeschränkte Problem gelöst haben, können Sie Graphen betrachten, bei denen es nur 2 verschiedene Farben gibt. Erst wenn Sie auch dieses Problem gelöst haben, sollten Sie den allgemeinen Fall betrachten, in dem Graphen mit allen in F enthaltenen Farben gefärbt sein können. Aufgabe 5: Entwickeln Sie einen möglichst effizienten Algorithmus, der bei Eingabe einer Zahl r und zweier gefärbter Graphen G und H, die keine Kanten besitzen, ermittelt, ob bzw. welcher der beiden Spieler eine Gewinnstrategie besitzt, und ggf. eine Gewinnstrategie für den entsprechenden Spieler ausgibt. Aufgabe 6: In dieser Aufgabe geht es um gefärbte Graphen, die symmetrisch und transitiv sind. Symmetrisch bedeutet folgendes: Wenn es eine Kante von einem Knoten u zu einem Knoten v gibt, so muss es auch die umgekehrte Kante von Knoten v zu Knoten u geben. Transitiv bedeutet folgendes: Wenn es eine Kante von einem Knoten u zu einem Knoten v gibt und eine Kante von v zu einem Knoten w, so muss es auch eine Kante von u zu w geben. Entwickeln Sie einen möglichst effizienten Algorithmus, der bei Eingabe einer Zahl r und zweier gefärbter Graphen G und H, die symmetrisch und transitiv sind, ermittelt, ob bzw. welcher der beiden Spieler eine Gewinnstrategie besitzt, und ggf. eine Gewinnstrategie für den entsprechenden Spieler ausgibt. Zum Schluss noch eine Bemerkung dazu, warum das hier beschriebene Spiel interessant für Informatiker/innen ist. Es gibt einen engen Zusammenhang zwischen der Existenz von Gewinnstrategien und der Beschreibbarkeit von Datenbankanfragen durch die Sprache SQL (genauer gesagt: durch den relationalen Kern von SQL, der der Prädikatenlogik entspricht). Insbesondere kann man durch Finden von Gewinnstrategien für Spieler 2 beweisen, dass bestimmte Datenbankanfragen nicht durch Anfragen des relationalen Kerns von SQL formuliert werden können. 4