umstrukturieren und hackenbush

This commit is contained in:
Maximilian Keßler 2022-08-18 21:29:47 +02:00
parent 7fddf878c9
commit b1d2d85c3f
Signed by: max
GPG key ID: BCC5A619923C0BA5
4 changed files with 218 additions and 146 deletions

View file

@ -15,8 +15,11 @@
\input{inputs/themen} \input{inputs/themen}
\chapter{Einführung} \chapter{Einige Spiele}
\input{inputs/einleitung} \input{inputs/einige_spiele}
\chapter{Games}
\input{inputs/games.tex}
\end{document} \end{document}

View file

@ -15,7 +15,7 @@
%%% Environment setup %%% Environment setup
\usepackage[number in = chapter]{fancythm} \usepackage[number in = chapter]{fancythm}
\NewFancyTheorem[style = thmgreenmarginandfill, group = big]{game} \NewFancyTheorem[style = thmgreenmarginandfill, group = big]{game}
\NewFancyTheorem[style = thmvioletmargin, group = big]{talk} \NewFancyTheorem[style = thmblackmarginandfill, group = big]{talk}
%%% Custom macros for this project %%% Custom macros for this project
@ -25,6 +25,9 @@
\NewDocumentCommand\gm{m}{\textsc{#1}} \NewDocumentCommand\gm{m}{\textsc{#1}}
\NewDocumentCommand\Dim{m}{\bm{#1}} \NewDocumentCommand\Dim{m}{\bm{#1}}
\NewDocumentCommand\fuzzy{}{\parallel} \NewDocumentCommand\fuzzy{}{\parallel}
\newcommand\verticalrule{\rule[-.3pt]{.4pt}{5.5pt}}
\NewDocumentCommand\lfuzzy{}{\mathbin{{<} \kern -.3pt \verticalrule \kern .4pt\verticalrule}}
\NewDocumentCommand\gfuzzy{}{\mathbin{\verticalrule \kern .4pt \verticalrule \kern -.3pt {>}}}
\NewDocumentCommand\DeclareGame{m}{ \NewDocumentCommand\DeclareGame{m}{
\expandafter\NewDocumentCommand\csname #1\endcsname{}{\mathrm{#1}} \expandafter\NewDocumentCommand\csname #1\endcsname{}{\mathrm{#1}}

View file

@ -26,17 +26,7 @@ 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 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. \enquote{Unentschieden} eine vorher gewählte der beiden Parteien gewinnt.
\section{Subtraktionsspiel}
\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 Folgendes Spiel scheint recht verbreitet zu sein und hat eine nicht allzu schwere
Gewinnstrategie: Gewinnstrategie:
@ -118,7 +108,7 @@ Man kann das ganze aber auch schwerer gestalten:
\end{proof} \end{proof}
\subsection{DIM} \section{\gm{Dim}}
\begin{game}[\gm{Dim}] \begin{game}[\gm{Dim}]
Ein Spielzustand besteht aus einer natürlichen Zahl $n$. Ein Spielzustand besteht aus einer natürlichen Zahl $n$.
@ -149,7 +139,7 @@ Man kann das ganze aber auch schwerer gestalten:
Insbesondere haben wir damit noch nicht verloren, weil $0$ gerade ist. Insbesondere haben wir damit noch nicht verloren, weil $0$ gerade ist.
\end{proof} \end{proof}
\subsection{\gm{Prim}} \section{\gm{Prim}}
\begin{game}{\gm{Prim}} \begin{game}{\gm{Prim}}
Eine Stellung besteht wieder aus einer natürlichen Zahl $n$. Eine Stellung besteht wieder aus einer natürlichen Zahl $n$.
@ -168,7 +158,7 @@ Man kann das ganze aber auch schwerer gestalten:
und jeder Zug führt somit zu einer ungeraden Zahl. und jeder Zug führt somit zu einer ungeraden Zahl.
\end{proof} \end{proof}
\subsection{Nim} \section{Nim}
\gm{Nim} ist vermutlich eines der bekanntesten Spiele der kombinatorischen Spieltheorie. \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. Auch hier wollen wir zunächst ein bisschen selber spielen und dann eine allgemeine Theorie aufbauen.
@ -239,148 +229,37 @@ Hierzu benötigen wir:
\section{Hackenbush} \section{Hackenbush}
Wir wollen hier ein Spiel betrachten, das nicht mehr neutral ist.
\begin{game}[\gm{Hackenbush (beherrscht)}] \begin{game}[\gm{Hackenbush (beherrscht)}]
Gespielt wird mit einer Anordnung von \vocab{Stäben} (Kanten), Gespielt wird mit einer Anordnung von \vocab{Stäben} (Kanten),
die an ihren Enden miteinander verbunden sein können. die an ihren Enden miteinander verbunden sein können.
Jeder Stab ist (direkt oder indirekt) mit dem \vocab{Boden} verbunden und trägt 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). eine der Farben blau und rot (korrespondierend zu den beiden Spielerinnen).
Ein Zug besteht darin, eine Kante der eigenen Farbe zu entfernen. 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. Alle Kanten, die danach nicht mehr mit dem Boden verbunden sind, werden ebenfalls entfernt.
Wie immer verliert diejenige, die nicht mehr ziehen kann. Wie immer verliert diejenige, die nicht mehr ziehen kann.
\end{game} \end{game}
Wir werden hier (erstmal) nicht das Ziel haben, alle Positionen von Hackenbush zu klassifizieren.
\begin{talk} \begin{talk}
Hier einige erste Positionen diskutieren und natürliche Zahlen motivieren. Hier einige erste Positionen diskutieren und darüber
\begin{itemize}
\item ganze Zahlen motivieren
\item Addition von Hackenbush-Positionen
\item Dyadische Zahlen
\end{itemize}
\end{talk} \end{talk}
\begin{game}[\gm{Hackenbush (Mischmasch)}]
\section{Abstrakte Spiele} Dieses Spiel verhält sich grundsätzlich wie Hackenbush,
allerdings gibt es jetzt auch grüne Stäbe,
\begin{definition} die von beiden Spielerinnen entfernt werden dürfen.
Ein \vocab{Spiel} $G$ besteht aus einer Menge von Positionen \end{game}
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} \begin{talk}
Hier etwas darüber sagen, dass wir hier mengentheoretisch etwas gehackt haben, Jetzt darüber diskutieren, dass wir \enquote{komische} Positionen erhalten werden:
dass das eigentlich formal transfinite Induktion ist, was wir hier brauchen, \begin{itemize}
und dass man etwas vorsichtig sein muss, was das definieren von Spielen angeht, \item $\nimber 1 \fuzzy 0$
weil wir eigentlich darüber reden müssen, dass wir alle Spiele über ihre Geburtstage \end{itemize}
\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} \end{talk}
\subsection{Addition von Spielen}

187
inputs/games.tex Normal file
View file

@ -0,0 +1,187 @@
\section{Ein abstrakter Blickpunkt auf 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}
Wir haben bereits \gm{Hackenbush}-Positionen gesehen, die wir mit natürlichen Zahlen
benannt haben.
Wir stellen fest, dass
\begin{gather*}
0 = \set{ \suchthat }, \quad
1 = \set{ 0 \suchthat }, \quad
2 = \set{ 0, 1 \suchthat }, \quad
n = \set{ 0, 1, \dotsc, n-1 \suchthat }
\\
\frac{1}{2} = \set{ 0 \suchthat 1 }, \quad
\frac{1}{2^n} = \set{ 0 \suchthat \frac{1}{2^{n-1}} }
\end{gather*}
etc.
Wir haben noch nicht definiert, wie Spiele \emph{geordnet} sind,
aber anhand der suggestiven Benennungen können wir schon vermuten,
wie die bisher bekannten Spiele sich verhalten.
\end{example}
\begin{remark}
In den bisherigen Positionen beobachtet man noch Folgendes:
\begin{itemize}
\item Alle Positionen für die linke Spielerin sind stets strikt kleiner als die der rechten
\item Der Name einer neuen Position ist immer zwischen den Werten der Positionen links und rechts
\end{itemize}
Wie wir bald sehen werden, muss dem im Allgemeinen überhaupt nicht so sein.
Spiele, die sich so verhalten, sind allerdings besonders, wir werden später nochmal auf sie
zurückkommen.
\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}
Weil die Notation offensichtlich Redundanz enthält, 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{question}
Welche der bisher angetroffenen Spiele sind neutral?
\end{question}
\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}
\begin{notation}
Schreibe $G \geq 0$ für $G = 0$ oder $G > 0$, analog $G \leq 0$.
Ebenfalls führen wir $G \lfuzzy 0$ für $G < 0$ oder $G \fuzzy 0$ ein,
analog $G \gfuzzy 0$.
\end{notation}
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.
Sei also $G$ beliebig und nimm zunächst an, dass $G^L \geq 0$ für ein $G^L$.
Nimm zunächst an, die linke Spielerin ist am Zug.
Gibt es ein $G^L$ mit $G^L \geq 0$, so kann $L$ gewinnen, indem es diese Position wählt.
Ist $G^L \lfuzzy 0$ für jedes $G^L$, so gewinnt $R$, indem er danach die Gewinnstrategie
in der von links gewählten Position verfolgt.
Analoges gilt für eine Fallunterscheidung nach $G^R \leq 0$,
wenn die rechte Spielerin beginnt.
Damit ergibt sich zusammen folgende Tabelle:
\begin{center}
\begin{tabular}{c | c | c}
& $\exists G^L \geq 0$ & $\forall G^L \geq 0$
\\
\hline
$\exists G^R \leq 0$ & $G \fuzzy 0$ & $G < 0$
\\
\hline
$\forall G^R \gfuzzy 0$ & $G > 0$ & $ G = 0$
\end{tabular}
\end{center}
Das zeigt insbesondere, dass $G$ in einem der vier Fälle liegt.
\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}
\section{Addition von Spielen}
\section{}