\vocab{Kombinatorische Spieltheorie} beschäftigt sich mit einer spezifischen Sorte an Spielen. Etwas informell meinen wir mit \vocab{Spiel} im Folgenden immer Folgendes: \begin{itemize} \item Es spielen zwei Parteien. Meistens heißen diese rot und blau \item Die Parteien sind abwechselnd am Zug und müssen einen der für sie legalen Züge ausführen \item Beide Parteien verfügen über absolutes Wissen über den Zustand und die Regeln des Spiels \item Das Spiel enthält keinen Zufall \end{itemize} Aus was ein \vocab{Zug} besteht, hängt natürlich davon ab, welches Spiel gerade gespielt wird. Meistens verliert diejenige Partei, die zuerst nicht mehr ziehen kann. Das nennt man dann \vocab{Normalspiel}, es gibt aber auch andere Varianten, wie wir sehen werden. \begin{example} \gm{Schach}, \gm{Go}, \gm{Dame} und \gm{Mühle} sind kombinatorische Spiele. \gm{Uno} oder \gm{Schafkopf} sind keine kombinatorischen Spiele, denn sie enthalten Zufall. \gm{Wer bin ich?} ist kein kombinatorisches Spiel. Sieht man davon ab, dass es vermutlich schwer wäre, genau zu definieren, welche Fragen mit \enquote{ja} und \enquote{nein} beantwortet werden müssen, so gibt es in diesem Spiel keine absoluten Informationen für die Spieler:innen. \end{example} Eigentlich sollte man auch fordern, dass es kein \enquote{Unentschieden} in den Spielen gibt. Das kann man aber dadurch umgehen, indem wir z.B.~einfach sagen, dass bei einem klassischen \enquote{Unentschieden} eine vorher gewählte der beiden Parteien gewinnt. \section{Neutrale Spiele} \begin{talk} Wir ignorieren erstmal, dass wir hier nur \vocab{neutrale Spiele} betrachten und kommen später darauf zurück. \end{talk} \subsection{Subtraktionsspiel} Folgendes Spiel scheint recht verbreitet zu sein und hat eine nicht allzu schwere Gewinnstrategie: \begin{game}[\gm{Subtraktion}] Gegeben ist eine natürliche Zahl $n$. Ein Zug besteht daraus, von $n$ eine Zahl von $1$ bis $10$ abzuziehen. Wer nicht mehr ziehen kann, hat verloren. \end{game} \begin{talk} Hier das ganze mit den Schüler:innen ausprobieren und auf die Strategie kommen lassen. \end{talk} \begin{theorem} In \gm{Subtraktion} sind genau die durch $11$ teilbaren Zahlen die Verluststellungen. \end{theorem} \begin{proof} Ist eine Zahl durch $11$ teilbar, so führt jeder Zug zu einer Zahl, die nicht durch $11$ teilbar ist, weil $1, \dotsc, 10$ nicht durch $11$ teilbar sind. Ist eine Zahl $n$ nicht durch $11$ teilbar, so ist es eine der Zahlen $n-1, \dotsc, n-10$, weil unter den $11$ aufeinanderfolgenden Zahlen $n, n-1, \dotsc, n-10$ ja eine durch $11$ teilbar ist. Es gibt also einen legalen Zug, der auf eine durch $11$ teilbare Zahl verkürzt. \end{proof} Man kann das ganze aber auch schwerer gestalten: \begin{game}[Variante von \gm{Subtraktion}] Gegeben ist wieder eine natürliche Zahl $n$. In einem Zug darf man $2$, $3$ oder $5$ von ihr subtrahieren. \end{game} \begin{talk} Hier wieder viel ausprobieren lassen. Dann backtracking erklären und wie man das mit Tabellen hinbekommen kann. Vermutlich will man hier auch einmal die $8$-piece table von Schach als prominentes Beispiel nennen. \end{talk} \begin{remark} Diese Aufgabe wurde mal bei einer Bundesrunde der MO gestellt, allerdings weiß ich gerade nicht, welche das war. Ich vermute aber, dass das Klasse 9/10 war und eher eine der einfachen Aufgaben. \end{remark} \begin{theorem} In dieser Variante von \gm{Subtraktion} sind genau die Zahlen $\equiv 0,1 \mod 7$ die Verluststellungen. \end{theorem} \begin{proof} Sei $n \not \equiv 0,1 \mod 7$. Dann können wir nach folgendem Schema subtrahieren, um in eine Verluststellung zu überführen: \begin{center} \begin{tabular}{c | c | c | c | c | c } $n \mod 7$ & 2 & 3 & 4 & 5 & 6 \\ \hline Zug & 2 & 3 & 3 & 5 & 5 \end{tabular} \end{center} Außerdem erkennen wir gleichzeitig, dass wir stets weniger abziehen als der Siebenerrest der aktuellen Zahl, also gelangen wir auch nicht unter Null und all diese angegeben Züge sind legal. Ist umgekehrt $n \equiv 0,1 \mod 7$, so unterscheiden wir zwei Fälle: Für $n=0,1$ gibt es keine legalen Züge, das sind also Verluststellungen. Für alle größeren $n$ sind alle $3$ potenziellen Züge legal, allerdings führen diese wegen $0 - 5 \equiv 2 \mod 7$ und $1 - 2 \equiv 6 \mod 7$ immer zu einem neuen Siebenerrest zwischen einschließlich $2$ und $6$, also genau zu den behaupteten Verluststellungen. \end{proof} \begin{proof} \end{proof} \subsection{DIM} \begin{game}[\gm{Dim}] Ein Spielzustand besteht aus einer natürlichen Zahl $n$. Ein Zug besteht daraus, von $n$ einen seiner Teiler zu subtrahieren. Wer auf $0$ subtrahiert, verliert. \end{game} \begin{remark} Das ist nicht die von Conway gegebene Definition von \gm{Dim}, weil wir hier eigentlich die misère Konvention anwenden. Wenn man wie üblich Normalform des Spiels will, dürfte man durchaus auf $0$ subtrahieren und die jeweils andere Person verliert, weil sie nicht mehr ziehen kann. Dann ist aber trivialerweise jede Stellung außer $0$ eine Gewinnstellung und das Spiel für uns (erstmal) uninteressant. Wir kommen später darauf zurück. \end{remark} \begin{theorem} In \gm{Dim} sind genau die geraden Zahlen Gewinnstellungen. \end{theorem} \begin{proof} Ungerade Zahlen haben nur ungerade Teiler. Jede ungerade Stellung führt also zu einer geraden. Potenziell führt diese zu Null, dann endet das Spiel entsprechend sofort. In jeder geraden Stellung subtrahieren wir $1$ und gelangen zu einer ungeraden. Insbesondere haben wir damit noch nicht verloren, weil $0$ gerade ist. \end{proof} \subsection{\gm{Prim}} \begin{game}{\gm{Prim}} Eine Stellung besteht wieder aus einer natürlichen Zahl $n$. In einem Zug darf man eine zu $n$ teilerfremde Zahl von $n$ subtrahieren. \end{game} \begin{theorem} In \gm{Prim} sind die Gewinnstellungen genau die ungeraden Zahlen. \end{theorem} \begin{proof} Wir verfahren analog wie im Fall von \gm{Dim}: Ist $n$ ungerade, so können wir von $n$ einfach $1$ subtrahieren und landen bei einem geraden Zustand, insbesondere hatten wir noch einen legalen Zug. Ist $n$ gerade, so ist jede Zahl, die zu $n$ teilerfremd ist, ungerade und jeder Zug führt somit zu einer ungeraden Zahl. \end{proof} \subsection{Nim} \gm{Nim} ist vermutlich eines der bekanntesten Spiele der kombinatorischen Spieltheorie. Auch hier wollen wir zunächst ein bisschen selber spielen und dann eine allgemeine Theorie aufbauen. \begin{game}[Nim] Gespielt wird mit einer Menge an (nicht zwingend gleich großen) Stapeln von Münzen. Ein Zug besteht daraus, von einem der Stapel eine beliebige, positive Anzahl an Münzen zu entfernen (potenziell alle). Verloren hat, wer keinen Zug mehr ausführen kann. \end{game} Wir versuchen nun, für eine beliebige Position zu klären, wer den Sieg erzwingen kann. Hierzu benötigen wir: \begin{definition} Die \vocab{Nim-Summe} von zwei natürlichen Zahlen $a$ und $b$ ist definiert als die Summe ohne Übertrag der beiden Zahlen $a$ und $b$ in ihrer Binärdarstellung. \end{definition} \begin{example} Es ist $3 \nimsum 7 = 11_{(2)} \nimsum 111_{(2)} = 100_{(2)} = 4$. \end{example} \begin{fact} $(\mathbb{N}, \nimsum)$ ist eine abelsche Gruppe. Insbesondere ist $\nimsum$ kommutativ und assoziativ. \end{fact} \begin{theorem} In Nim sind genau diejenigen Positionen Gewinnpositionen, bei denen die Nimsumme der Anzahl der Münzen in den einzelnen Stapeln \emph{nicht} Null ist. \end{theorem} \begin{proof} Umgekehrt behaupten wir natürlich, dass genau diejenigen Positionen Verluststellungen sind, bei denen die entsprechende Nimsumme Null \emph{ist}. Wie immer zeigen wir, dass jede Verlustposition zwangsweise in eine Gewinnposition übergeht und dass es in jeder Gewinnposition einen Zug gibt, der in eine Verluststellung führt. Sei zunächst eine Verluststellung gegeben, d.h.~$a_1 \nimsum a_2 \nimsum \dotsb \nimsum a_n = 0$. Ein beliebiger Zug ändert nur einen der Summanden, OBdA $a_1$ zu $a_1'$. Wäre die Summe danach immer noch $0$, so würde $a_1 = a_1'$ folgen, das ist aber kein legaler Zug. Sei nun $a_1 \nimsum \dotsb \nimsum a_n = x \neq 0$. Es genügt ein $i$ zu finden mit $a_i \nimsum x < a_i$, solch einen Stapel nennen wir dann \vocab{aktiv}: Dann können wir vom Stapel $a_i$ so viele Münzen wegnehmen, dass $a_i \nimsum x$ viele übrig bleiben. Die neue Nimsumme ist dann \[ a_1 \nimsum \dotsb (a_i \nimsum x) \dotsb a_n = a_1 \nimsum \dotsb a_n \nimsum x = x \nimsum x = 0 . \] Hierzu betrachte die vorderste Stelle $j$ von $x$ in der Binärdarstellung. Weil $x\neq 0$ ist, handelt es sich um eine $1$. Es gibt dann mindestens ein $a_i$, das an Stelle $j$ ebenfalls eine $1$ hat. Dann stimmt aber $x \nimsum a_i$ mit $a_i$ in allen Stellen $>j$ überein und hat an Stelle $j$ eine $0$ statt einer $1$. Damit ist $x \nimsum a_i < a_i$ wie gewünscht. \end{proof} \section{Hackenbush} Wir wollen hier ein Spiel betrachten, das nicht mehr neutral ist. \begin{game}[\gm{Hackenbush (beherrscht)}] Gespielt wird mit einer Anordnung von \vocab{Stäben} (Kanten), die an ihren Enden miteinander verbunden sein können. Jeder Stab ist (direkt oder indirekt) mit dem \vocab{Boden} verbunden und trägt eine der Farben rot und blau (korrespondierend zu den beiden Spielerinnen). Ein Zug besteht darin, eine Kante der eigenen Farbe zu entfernen. Alle Kanten, die danach nicht mehr mit dem Boden verbunden sind, werden ebenfalls entfernt. Wie immer verliert diejenige, die nicht mehr ziehen kann. \end{game} \begin{talk} Hier einige erste Positionen diskutieren und natürliche Zahlen motivieren. \end{talk} \section{Abstrakte Spiele} \begin{definition} Ein \vocab{Spiel} $G$ besteht aus einer Menge von Positionen und einer ausgezeichneten Startposition. Jeder Position $P$ des Spiels sind seine \vocab{linken Züge} und seine \vocab{rechten Züge} zugeordnet, die ebenfalls Positionen von $G$ sind. $2$ Spielerinnen sind abwechselnd an der Reihe und führen einen für sie legalen Zug aus und überführen damit das Spiel in eine neue Position. Mit der \vocab{Normalspielkonvention} sagen wir, dass eine Spielerin verloren hat, wenn sie keinen legalen Zug mehr hat. \end{definition} \begin{remark} Natürlich können wir aus jeder Position $P$ eines Spiels $G$ einfach ein (sehr ähnliches) Spiel $G'$ machen, indem $G'$ in $P$ startet und nur noch die Positionen von $G$ enthält, die man von $P'$ aus \enquote{erreichen} kann. Deswegen werden wir meistens auch Spiele und Positionen einfach gleich behandeln. Es sollte jedoch darauf Wert gelegt werden, dass die bloße Angabe von \gm{Prim} noch \emph{nicht} ein Spiel darstellt, weil wir keine Startposition haben. Eigentlich handelt es sich hier um eine Menge von Spielen, die über die jeweilige Startposition charakterisiert werden. Umgangssprachlich werden wir aber natürlich auch weiterhin sagen, dass \gm{Prim} ein Spiel ist. \end{remark} \begin{notation} Für eine Position $P$ schreiben wir $P = \set{ L_1, L_2, \dotsc \suchthat R_2, R_2, \dotsc } $, wenn die $L_i$ die Menge der linken Züge von $P$ und die $R_i$ die Menge der rechten Positionen von $P$ aufzählen. Oft schreiben wir auch $P = \set{ P^L \suchthat P^R } $ und meinen dann mit $P^L$ und $P^R$ wahlweise alle entsprechenden Züge oder einen \enquote{generischen} Zug für die entsprechende Spielerin. \end{notation} \begin{remark}[Mengentheorie] Wir wollen hier nicht zu genau mit den Begriffen Menge und Klasse umgehen, weil diese meist nicht relevant für uns sind. Eigentlich könnte man erlauben, dass ein Spiel aus einer \emph{Klasse} von Positionen besteht, jede Position aber tatsächlich \emph{Mengen} an linken und rechten Positionen hat. Für die Notation $P = \set{ L_1, L_2, \dots \suchthat R_1, \dotsc } $ muss man natürlich i.A.~dann auch eine beliebige Indexmenge für die Aufzählen zulassen, weil die Menge der linken Züge natürlich keineswegs abzählbar sein muss. Auch das ist aber für uns erstmal irrelevant. \end{remark} \begin{example} Betrachten wir \gm{Dim} und bezeichnen die Spielzustände mit Zahlen $\Dim{n}$. Dann ist z.B. $\Dim{0} = \set{ \suchthat } $, $\Dim 1 = \set{\suchthat } $, $\Dim 2 = \set{ \Dim 1 \suchthat \Dim 1 } $, $\Dim 3 = \set{ \Dim 2 \suchthat \Dim 2 } $, $\Dim 4 = \set{ \Dim 2, \Dim 3 \suchthat \Dim 2, \Dim 3 } $, $\Dim 5 = \set{ \Dim 4 \suchthat \Dim 4 } $, \end{example} Hierbei stellen wir folgendes fest: \begin{definition} Ein Spiel $G$ heißt \vocab{neutral}, wenn in jeder Position beide Spieler (sofern sie am Zug sind) die gleichen legalen Züge haben. Mit anderen Worten: Für jede Position $P = \set{ L \suchthat R } $ von $G$ ist $L = R$. \end{definition} \begin{example} \gm{Subtraktion}, \gm{Dim}, \gm{Prim} und \gm{Nim} sind neutrale Spiele. \end{example} \begin{notation} Ist $G$ ein neutrales Spiel, so schreiben wir für Positionen $P$ von $G$ im Folgenden nur noch $P = \set{ Z_1, Z_2, \dotsc } $ und unterscheiden nicht zwischen $P^L$ und $P^R$. \end{notation} Wir wollen nun erste Schritte unternehmen, um Spiele ganz \emph{formal} zu klassifizieren: \begin{definition} Sei $G$ ein Spiel. Dann sagen wir, dass \begin{enumerate}[p] \item $G$ \vocab{positiv} ist, wenn die linke Spielerin eine Gewinnstrategie hat. Wir schreiben hierbei $G>0$. \item $G$ \vocab{negativ} ist, wenn die rechte Spielerin eine Gewinnstrategie hat. Wir schreiben $G<0$. \item $G$ \vocab{Null} ist, wenn es eine Gewinnstrategie für die zweite Spielerin gibt. Wir schreiben $G=0$. \item $G$ \vocab{fuzzy} ist, wenn es eine Gewinnstrategie für die erste Spielerin gibt. Wir schreiben $G \fuzzy 0$. \end{enumerate} \end{definition} Relevant ist nun Folgendes: \begin{theorem} Für jedes Spiel $G$ gilt genau eines von $G>0$, $G<0$, $G = 0$ und $G \fuzzy 0$. \end{theorem} \begin{proof} Klarerweise können nicht zwei der vier Fälle gleichzeitig eintreten. Wir gehen induktiv vor, sei $G$ also ein Spiel, sodass wir die Aussage für alle linken und rechten Position von $G$ bereits kennen. \end{proof} \begin{talk} Hier etwas darüber sagen, dass wir hier mengentheoretisch etwas gehackt haben, dass das eigentlich formal transfinite Induktion ist, was wir hier brauchen, und dass man etwas vorsichtig sein muss, was das definieren von Spielen angeht, weil wir eigentlich darüber reden müssen, dass wir alle Spiele über ihre Geburtstage \enquote{generieren}, oder zumindest, wie wir gedenken, die Rekursion aus der Definition ein bisschen wegzubekommen. Spezifisch sollte über die folgenden Spiele geredet werden: \[ \on \coloneqq \set{ \on \suchthat }, \qquad \off \coloneqq \set{ \suchthat \off }, \qquad \dud \coloneqq \on + \off = \set{ \dud \suchthat \dud } \] Hierbei steht \enquote{$\dud$} für \enquote{deathless universal draw}. \end{talk} \subsection{Addition von Spielen}