sprague grundy theory anfangen

This commit is contained in:
Maximilian Keßler 2022-08-19 21:21:20 +02:00
parent 9591a48f3d
commit d3d84a8fcb
Signed by: max
GPG Key ID: BCC5A619923C0BA5
7 changed files with 368 additions and 35 deletions

View File

@ -15,11 +15,20 @@
\input{inputs/themen}
\chapter{Einige Spiele}
\chapter{Einige einführende Spiele}
\input{inputs/einige_spiele}
\chapter{Games}
\input{inputs/games.tex}
\input{inputs/games}
\chapter{Sprague-Grundy Theorie}
\input{inputs/sprague_grundy}
\chapter{Spiele als Zahlen}
\input{inputs/games_rechnen}
\chapter{Surreale Zahlen}
\input{inputs/surreale_zahlen}
\end{document}

View File

@ -11,11 +11,15 @@
\usepackage{mkessler-vocab}
\usepackage{mkessler-math}
\usepackage{mkessler-enumerate}
\usepackage{mkessler-hypersetup}
%%% Environment setup
\usepackage[number in = chapter]{fancythm}
\NewFancyTheorem[style = thmgreenmarginandfill, group = big]{game}
\NewFancyTheorem[style = thmblackmarginandfill, group = big]{talk}
\NewFancyTheorem[style = thmblackmargin, group = big]{sanity-check}
\AddProvidedFancyTheoremToGroup{remark}{big}
%%% Custom macros for this project

View File

@ -7,6 +7,7 @@ Etwas informell meinen wir mit \vocab{Spiel} im Folgenden immer Folgendes:
\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.
@ -26,7 +27,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
\enquote{Unentschieden} eine vorher gewählte der beiden Parteien gewinnt.
\section{Subtraktionsspiel}
\section{\gm{Subtraktionsspiel}}
Folgendes Spiel scheint recht verbreitet zu sein und hat eine nicht allzu schwere
Gewinnstrategie:
@ -158,7 +159,8 @@ Man kann das ganze aber auch schwerer gestalten:
und jeder Zug führt somit zu einer ungeraden Zahl.
\end{proof}
\section{Nim}
\section{\gm{Nim}}
\label{sec:nim-einfuehrung}
\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.
@ -227,7 +229,7 @@ Hierzu benötigen wir:
Damit ist $x \nimsum a_i < a_i$ wie gewünscht.
\end{proof}
\section{Hackenbush}
\section{\gm{Hackenbush}}
\begin{game}[\gm{Hackenbush (beherrscht)}]
Gespielt wird mit einer Anordnung von \vocab{Stäben} (Kanten),
@ -241,17 +243,184 @@ Hierzu benötigen wir:
Wir werden hier (erstmal) nicht das Ziel haben, alle Positionen von Hackenbush zu klassifizieren.
\begin{talk}
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}
\begin{example}
Positionen $0$, $1$.
\end{example}
\begin{definition}
Das Negative einer Hackenbush-Position entsteht durch Vertauschen der Farben
aller Stäbe.
\end{definition}
\begin{example}
$-1 = -(1)$.
Das mag erstmal sehr verwirrend aussehen, ist aber dem Fakt geschuldet,
dass wir das Negativ der Position \enquote{$1$} bereits mit $-1$ benannt haben,
wobei hier das \enquote{$-$} ein \emph{Vorzeichen} ist,
wohingegen bei $-(1)$ tatsächlich das \emph{Negative} des Spiels $1$ gemeint ist.
Unsere Notation ist also so suggestiv, dass wir nicht mehr zwischen den beiden
Dingen unterscheiden müssen/\allowbreak{}wollen/\allowbreak{}können.
\end{example}
\begin{definition}
\label{def:spiele-vorzeichen-0-fuzzy}
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}
Wir schreiben $\equiv $ für die Übereinstimmung von Spielen.
Das heißt, $G \equiv H$ bedeutet,
dass die legalen Züge von $G$ und $H$ in Bijektion stehen.
\end{notation}
\begin{remark}
Noch haben wir keine genaue Definition von Spiel gesehen, mehr dazu später.
\end{remark}
\begin{example}
Wir können also feststellen, dass $-1 < 0$ und $0 < 1$.
Beachte, dass die \enquote{$0$}, die in dieser Schreibweise auftaucht,
erstmal rein formal ist, und nicht das Nullspiel, das wir auch definiert hatten.
\end{example}
\begin{definition}
Die Summe von zwei Hackenbush-Positionen entsteht durch deren Vereinigung.
\end{definition}
\begin{example}
$G + 0 \equiv 0$, denn das Nullspiel hat keine legalen Züge.
In $G + 0$ wird also letztendlich auch nur in der Position von $G$ gezogen,
das Spiel läuft also gleich ab.
\end{example}
\begin{lemma}
\label{lm:addition-respektiert-groessergleich-null}
Ist $G \geq 0$ und $H \geq 0$, dann ist auch $G + H \geq 0$.
\end{lemma}
\begin{proof}
Fängt die rechte Spielerin an,
so kann die linke beide Spiele gewinnen, indem sie immer in dem Teilspiel mit einem
Zug antwortet, in dem die rechte Spielerin gerade gezogen hat.
Weil sie beide Teilspiele gewinnt, hat sie dadurch immer einen legalen Zug und gewinnt
somit letztendlich auch die Summe.
Fängt die linke Spielerin an, so gibt es nichts zu zeigen.
\end{proof}
\begin{definition}
Wir sagen, dass zwei Hackenbush Positionen \vocab{gleich} sind,
wenn sie sich spieltechnisch gleich verhalten.
Das heißt, $G = H$ steht für $G + (-H) = 0$
im Sinne von
\autoref{def:spiele-vorzeichen-0-fuzzy}.
\end{definition}
\begin{example}
$ 1 + (-1) = 0$
\end{example}
\begin{abuse}
Wir können jetzt außerdem feststellen,
dass wir die \enquote{$0$} in $G < 0$ jetzt sowohl als die formale Null
als auch das Nullspiel verstehen können.
Denn $G + (-0) \equiv G$, und damit ist $G < 0$ (mit Nullspiel) genau als $G < 0$
(mit formaler Null) definiert.
In Zukunft werden wir also nicht mehr zwischen den beiden unterscheiden.
\end{abuse}
\begin{proposition}
\label{prop:hackenbush-kleinergleich-respektiert-gleichheit}
Die Relation \enquote{$=$} ist eine Äquivalenzrelation auf den \gm{Hackenbush}-Spielen,
das heißt:
\begin{enumerate}[p]
\item $G = G$ für jedes Spiel $G$
\item Ist $G = H$, so ist auch $H = G$
\item Ist $G = H$ und $H = I$, so auch $G = I$
\end{enumerate}
\end{proposition}
\begin{proof}
TODO
\end{proof}
Außerdem können wir jetzt unsere Definition von $<$ ausweiten:
\begin{definition}
Sind $G$ und $H$ zwei Hackenbush Spiele, so schreiben wir $G < H$ für $G - H < 0$,
wenn also die rechte Spielerin eine Gewinnstrategie in $G - H$ hat.
\end{definition}
An dieser Stelle sollten wir uns davon überzeugen,
dass sich $\leq $ mit Addition und Subtraktion so verhält,
wie man es erwarten würde:
\begin{game}[\gm{Hackenbush (Mischmasch)}]
\begin{proposition}
\label{prop:hackenbush-bildet-geordnete-abelsche-gruppe}
Die \gm{Hackenbush}-Spiele bilden mittels \enquote{$+$} und \enquote{$\leq $}
eine (partiell) geordnete, abelsche Gruppe.
Das heißt:
\begin{enumerate}[p]
\item \enquote{$+$} ist kommutativ und assoziativ
\item Jede Position $P$ hat eine negative Position $-P$ mit $P + (-P) = 0$.
\item Aus $G \leq H$ und $H \leq G$ folgt $G = H$.
\item Die Ordnung ist mit $\leq $ verträglich, d.h.
\[
G_1 \leq G_2 \qquad \iff \qquad G_1 + H \leq G_2 + H
\]
\end{enumerate}
\end{proposition}
\begin{proof}
Dass die Addition kommutativ und assoziativ ist, ist bildlich sofort klar.
Wir zeigen als nächstes, dass $P + (-P)$ ein Nullspiel ist,
als Gewinnstrategie für die zweite Spielerin kann sie einfach die Züge der ersten
Spielerin im jeweils anderen Spiel kopieren:
Zieht die erste Spielerin in $P$, so zieht die zweite in $-P$ und umgekehrt.
Damit garantiert sie, dass nach ihrem Zug immer wieder zwei zueinander negative Positionen
vorhanden sind, und sie diese Strategie fortsetzen kann.
Die zweite Spielerin verliert also nicht, und gewinnt somit, weil das Spiel endlich%
\footnotemark
ist.
Ist $G \leq H$, so gilt $G = H$ (und wir sind fertig) oder $G < H$.
Analog sind wir fertig oder es gilt $H < G$.
$H < G$ und $G < H$ können aber nicht gleichzeitig eintreten,
denn es können natürlich nicht beide Spielerinnen eine Gewinnstrategie haben.
Zunächst wollen wir nun zeigen, dass die Ordnung überhaupt \enquote{$=$} respektiert.
Sei hierzu $G \leq H$ und $G = G'$, Dann ist $G - H \geq 0$ und $G ' - G = 0$,
also nach \autoref{lm:addition-respektiert-groessergleich-null} $G' - H \geq 0$,
also $G' \geq H$.
Jetzt ist $G_1 + H \leq G_2 + H$ nach Definition äquivalent zu $G_1 + H - (G_2 + H) \leq 0$,
also wegen (i) zu $G_1 - G_2 \leq 0$, was genau $G_1 \leq G_2$ entspricht.
\end{proof}
\footnotetext{Mehr dazu später, momentan wollen wir das einfach annehmen}
\begin{remark}
Wir behaupten an dieser Stelle nur, dass die Ordnung partiell ist.
In der Tat handelt es sich hier um eine Totalordnung, aber das ist nicht trivial
und liegt am konkreten Spiel, lässt sich also nicht wie unsere allgemeinen Ergebnisse
später verallgemeinern, wie wir noch sehen werden.
\end{remark}
\section{\gm{Hackenbush Mischmasch}}
\begin{game}[\gm{Hackenbush Mischmasch}]
Dieses Spiel verhält sich grundsätzlich wie Hackenbush,
allerdings gibt es jetzt auch grüne Stäbe,
die von beiden Spielerinnen entfernt werden dürfen.
@ -260,6 +429,8 @@ Wir werden hier (erstmal) nicht das Ziel haben, alle Positionen von Hackenbush z
\begin{talk}
Jetzt darüber diskutieren, dass wir \enquote{komische} Positionen erhalten werden:
\begin{itemize}
\item Nim ist eine Teilmenge von Hackenbush geworden
\item $\nimber 1 \fuzzy 0$
\item up, down schon einführen?
\end{itemize}
\end{talk}

View File

@ -1,5 +1,9 @@
\section{Ein abstrakter Blickpunkt auf Spiele}
Ziel dieses Kapitels soll es sein, einen formalen Standpunkt auf Spiele zu entwickeln
und unsere Beobachtungen über die bisherigen Spiele, insbesondere Hackenbush,
auf standfesten Boden zu bekommen.
\begin{definition}
Ein \vocab{Spiel} $G$ besteht aus einer Menge von Positionen
und einer ausgezeichneten Startposition.
@ -61,9 +65,6 @@
\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}
@ -108,19 +109,6 @@ Weil die Notation offensichtlich Redundanz enthält, stellen wir Folgendes fest:
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$.
@ -131,6 +119,7 @@ Wir wollen nun erste Schritte unternehmen, um Spiele ganz \emph{formal} zu klass
Relevant ist nun Folgendes:
\begin{theorem}
\label{thm:vergleichbarkeit-von-spielen}
Für jedes Spiel $G$ gilt genau eines von $G>0$, $G<0$, $G = 0$ und $G \fuzzy 0$.
\end{theorem}
@ -138,8 +127,8 @@ Relevant ist nun Folgendes:
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.
Sei also $G$ beliebig und 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.
@ -149,7 +138,7 @@ Relevant ist nun Folgendes:
\begin{center}
\begin{tabular}{c | c | c}
& $\exists G^L \geq 0$ & $\forall G^L \geq 0$
& $\exists G^L \geq 0$ & $\forall G^L \lfuzzy 0$
\\
\hline
$\exists G^R \leq 0$ & $G \fuzzy 0$ & $G < 0$
@ -182,6 +171,71 @@ Relevant ist nun Folgendes:
\end{talk}
\section{Addition von Spielen}
\section{Addition und Negative von Spielen}
\section{}
Wir wollen uns jetzt in etwas allgemeinerem Kontext nochmal ansehen,
wie wir Spiele addieren und negieren konnten,
so wie wir das bei Hackenbush getan haben.
\begin{definition}[Addition von Spielen]
Seien $G$ und $H$ zwei Spiele.
Die (disjunkte) \vocab{Summe} von $G$ und $H$ entsteht als neues Spiel wie folgt:
Eine Position von $G + H$ ist ein Paar von Positionen aus $G$ und $H$.
Ein Zug besteht nun daraus, eine der beiden Positionen zu wählen und in ihr
einen (für die entsprechende Spielerin) legalen Zug zu machen.
In jedem Zug ändert sich also nur eine der beiden Positionen des Paars.
Verloren hat (wie immer), wer keinen Zug mehr machen kann,
wer also in \emph{beiden} Positionen des Paares keinen Zug mehr machen kann.
\end{definition}
\begin{sanity-check}
Überzeuge dich, dass das mit unserer bisherigen Definition im Falle von Hackenbush übereinstimmt.
\end{sanity-check}
\begin{remark}
Es kann jetzt vorkommen,
dass in $G + H$ in der Position von $G$ zweimal hintereinander die gleiche Spielerin zieht.
\end{remark}
\begin{definition}[Negatives eines Spiels]
Ist $G$ ein Spiel, so ist das Negative von $G$,
notiert $-G$ dasjenige Spiel $G$, in dem die legalen Züge der beiden Spielerinnen
vertauscht werden.
\end{definition}
\begin{sanity-check}
Überzeuge dich auch hier, dass das mit der bisherigen Position übereinstimmt.
\end{sanity-check}
Wir können nun
\autoref{prop:hackenbush-kleinergleich-respektiert-gleichheit}
und
\autoref{prop:hackenbush-bildet-geordnete-abelsche-gruppe}
unmittelbar verallgemeinern.
\begin{proposition}
\label{prop:kleinergleich-respektiert-gleichheit}
Die Relation \enquote{$=$} ist eine Äquivalenzrelation auf der Klasse der Spiele,
das heißt:
\begin{enumerate}[p]
\item $G = G$ für jedes Spiel $G$
\item Ist $G = H$, so ist auch $H = G$
\item Ist $G = H$ und $H = I$, so auch $G = I$
\end{enumerate}
\end{proposition}
\begin{proposition}
\label{prop:games-bildet-geordnete-abelsche-gruppe}
Die Klasse der Spiele bildet mittels \enquote{$+$} und \enquote{$\leq $}
eine (partiell) geordnete, abelsche Gruppe.
Das heißt:
\begin{enumerate}[p]
\item \enquote{$+$} ist kommutativ und assoziativ
\item Jede Position $P$ hat eine negative Position $-P$ mit $P + (-P) = 0$.
\item Aus $G \leq H$ und $H \leq G$ folgt $G = H$.
\item Die Ordnung ist mit $\leq $ verträglich, d.h.
\[
G_1 \leq G_2 \qquad \iff \qquad G_1 + H \leq G_2 + H
\]
\end{enumerate}
\end{proposition}

37
inputs/games_rechnen.tex Normal file
View File

@ -0,0 +1,37 @@
Ziel dieses Kapitels soll es werden, mit Spielen noch formeller umzugehen
und sie vielmehr als Zahlen zu behandeln.
Wir spielen also nicht mehr wirklich, sondern rechnen vor allem.
Einerseits müssen wir jetzt zum dritten Mal über unsere Definitionen von Addition und Gleichheit
etc.~nachdenken und viele formale Methoden verwenden.
Allerdings werden wir letztendlich auch einige verblüffende Erkenntnisse erreichen,
wenn wir uns darauf einlassen.
\begin{definition}[Summe von Spielen]
Seien $G$ und $H$ zwei Spiele.
Dann definiere ihre \vocab{Summe} als
\[
G + H \coloneqq \set{ G^L + H, G + H^L \suchthat G^R + H, G + H^R }
\]
.
\end{definition}
\begin{notation}
Wir schreiben hier als linke Position $G^L + H$.
Damit meinen wir eigentlich die Menge aller Position $G^L + H$,
wobei $G^L$ eine linke Position von $G$ ist, also
\[
G^L + H = \set{ P + H \suchthat \text{$P$ ist linke Position von $G$} }
\]
Die linken Positionen von $G + H$
sind also die Vereinigungen der beiden aufgelisteten Mengen.
\end{notation}
\begin{example}
Auch diese Definition ist wieder äußerst rekursiv und bedarf einiger Beispiele.
Zunächst ist $0 + 0 = 0$, weil $G^L$ etc~gar nicht existieren, also leere Mengen auf
beiden Seiten entstehen.
Damit können wir nun induktiv $G + 0 = G$ für jedes Spiel $G$ zeigen.
Das macht auch Sinn, denn im Nullspiel kann ja keine der beiden Parteien ziehen,
$G$ und ein leeres Spiel gleichzeitig zu spielen, sollte also wieder $G$ selbst sein.
\end{example}

58
inputs/sprague_grundy.tex Normal file
View File

@ -0,0 +1,58 @@
Wir wollen uns in diesem Kapitel der Theorie von neutralen Spielen widmen.
Die Theorie ist im wesentlichen \enquote{komplett}:
Wir kennen bis auf Gleichheit alle neutralen Spiele und wissen,
wie diese sich unter Addition verhalten.
Eine andere Frage ist es natürlich, zu einem gegebenen Spiel zu entscheiden,
welches (der bekannten) es denn nun ist.
Diese werden wir im Allgemeinen nicht beantworten können.
Zunächst stellen wir fest:
\begin{proposition}
\label{prop:neutrale-spiele-fuzzy-oder-0}
Sei $G$ ein neutrales Spiel.
Dann gilt:
\begin{enumerate}[h]
\item $G + G = 0$, also $ G = -G$.
\item $G = 0$ oder $G \fuzzy 0$.
\end{enumerate}
\end{proposition}
\begin{proof}
Der erste Punkt folgt sofort aus der Neutralität von $G$.
In $-G$ sind ja die Züge vertauscht. Da sie aber gleich sind, ändert sich natürlich nichts.
$G + G = 0$ ist dann einfach eine Umformulierung dessen.
Nimm für $2)$ an, es wäre $G < 0$.
Addition von $G$ auf beiden Seiten liefert dann wegen $1)$, dass $0 = G + G < G$,
ein Widerspruch zu $G < 0$.
Analog führt natürlich $G > 0$ zum Widerspruch.
Also folgt mit
\autoref{thm:vergleichbarkeit-von-spielen},
dass $G = 0$ oder $G \fuzzy 0$ ist wie gewünscht.
\end{proof}
\section{\gm{Nim}}
Wir haben in
\autoref{sec:nim-einfuehrung}
bereits die Gewinn- und Verluststellungen von \gm{Nim} analysiert.
Eine Gewinnstellung ist in formaler Sprache eine Stellung $G$ mit $G \fuzzy 0$,
eine Verluststellung eine mit $G = 0$.
Weitere Möglichkeiten gibt es nach \autoref{prop:neutrale-spiele-fuzzy-oder-0} nicht.
Aber nicht jede Gewinnstellung ist gleich!
Wir wissen zum Beispiel, dass ein einzelner Münzstapel (mit einer positiven Anzahl an Münzen)
immer eine Gewinnstellung ist (indem wir den Stapel einfach wegnehmen).
Aber Stapel mit unterschiedlicher Höhe verhalten sich nicht gleich,
wenn man sie nebeneinander stellt.
Unter Spieladdition müssen wir also, um mehr zu verstehen, noch feiner unterscheiden als nur in
$G = 0$ und $ G \fuzzy 0 $.
Definiere hierzu zunächst $\nimber n$ (sprich: \enquote{nimber})
als dasjenige Nim-Spiel, das aus einem Münzstapel mit $n$
Münzen besteht.
Jedes Nim-Spiel ist also also Spielsumme von einzelnen nimbers, nämlich den vorkommenden Stapeln.

View File