From 7fddf878c98fc85a8f22b2723f282b4a23fc29a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Thu, 18 Aug 2022 16:59:45 +0200 Subject: [PATCH] abstrakte spiele. hackenbush definiert --- combinatorial-game-theory.sty | 12 ++ inputs/einleitung.tex | 231 +++++++++++++++++++++++++++++----- 2 files changed, 214 insertions(+), 29 deletions(-) diff --git a/combinatorial-game-theory.sty b/combinatorial-game-theory.sty index 459fb70..f009801 100644 --- a/combinatorial-game-theory.sty +++ b/combinatorial-game-theory.sty @@ -4,11 +4,13 @@ %General setup \usepackage[ngerman]{babel} \usepackage{csquotes} +\usepackage{bm} %% Custom packages \usepackage{mkessler-vocab} \usepackage{mkessler-math} +\usepackage{mkessler-enumerate} %%% Environment setup \usepackage[number in = chapter]{fancythm} @@ -21,3 +23,13 @@ \NewDocumentCommand\nimber{m}{\star#1} \NewDocumentCommand\nimsum{}{\oplus} \NewDocumentCommand\gm{m}{\textsc{#1}} +\NewDocumentCommand\Dim{m}{\bm{#1}} +\NewDocumentCommand\fuzzy{}{\parallel} + +\NewDocumentCommand\DeclareGame{m}{ + \expandafter\NewDocumentCommand\csname #1\endcsname{}{\mathrm{#1}} +} + +\DeclareGame{on} +\DeclareGame{off} +\DeclareGame{dud} diff --git a/inputs/einleitung.tex b/inputs/einleitung.tex index 33c12a1..687e3f0 100644 --- a/inputs/einleitung.tex +++ b/inputs/einleitung.tex @@ -1,5 +1,6 @@ \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 @@ -25,8 +26,16 @@ Eigentlich sollte man auch fordern, dass es kein \enquote{Unentschieden} in den 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 @@ -39,7 +48,7 @@ Gewinnstrategie: \end{game} \begin{talk} - test + Hier das ganze mit den Schüler:innen ausprobieren und auf die Strategie kommen lassen. \end{talk} \begin{theorem} @@ -62,6 +71,13 @@ Man kann das ganze aber auch schwerer gestalten: 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. @@ -101,8 +117,62 @@ Man kann das ganze aber auch schwerer gestalten: \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 @@ -167,43 +237,87 @@ Hierzu benötigen wir: Damit ist $x \nimsum a_i < a_i$ wie gewünscht. \end{proof} -\subsection{DIM} +\section{Hackenbush} -\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. +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} - 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. + 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{theorem} - In \gm{Dim} sind genau die geraden Zahlen Gewinnstellungen. -\end{theorem} +\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{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} +\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. -\subsection{\gm{Prim}} + 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{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{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}, @@ -211,3 +325,62 @@ Hierzu benötigen wir: 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}