abstrakte spiele. hackenbush definiert

This commit is contained in:
Maximilian Keßler 2022-08-18 16:59:45 +02:00
parent 5295b646ed
commit 7fddf878c9
Signed by: max
GPG key ID: BCC5A619923C0BA5
2 changed files with 214 additions and 29 deletions

View file

@ -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}

View file

@ -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}