n-Kaffee-Problem/main.tex
2014-11-29 16:36:36 +01:00

462 lines
16 KiB
TeX

\documentclass[10pt,a4paper,oneside]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{gensymb}
\usepackage{amsthm}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{todonotes}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Tolle Definitionen
\newcommand{\naturals}{\mathbb{N}}
\newcommand{\integers}{\mathbb{Z}}
\newtheorem{defi}{Definition}
\newcommand{\defiautorefname}{Definition}
\newtheorem{koro}{Korollar}
\newcommand{\koroautorefname}{Korollar}
\newtheorem{lemma}{Lemma}
\newcommand{\lemmaautorefname}{Lemma}
\newtheorem{satz}{Satz}
\newcommand{\satzautorefname}{Satz}
\newtheorem{beob}{Beobachtung}
\newcommand{\beobautorefname}{Beobachtung}
\newtheorem*{beis}{Beispiel}
\newcommand{\beisautorefname}{Beispiel}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Dokumentinformationen
\title{Vom Kaffee-Problem}
\author{Christoph Daniel Schulze \and Nis Börge Wechselberg}
\date{September 2014}
\begin{document}
\maketitle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Abstract
\begin{abstract}
Das n-Kaffee-Problem
beschreibt die Guthaben-Schulden-Verhältnisse
in einer Gruppe von \(n\in\naturals\) Personen.
Die Verhältnisse werden hierbei in ausgegebenen Kaffees notiert.
In dieser Arbeit definieren wir das Problem
und betrachten Visualisierungen mit dem Ziel,
Änderungen in den Verhältnissen
möglichst aufwandsminimiert notieren zu können.
\end{abstract}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Einleitung
\section{Einleitung}
\label{sec:einleitung}
Der normale universitäre Lehrstuhlbetrieb
wird durch Studenten, Doktoranden und Professoren,
also allgemein durch \emph{Wissenschaftler},
aufrecht erhalten.
Frei nach Paul Erdős sind Wissenschaftler Geräte,
welche Kaffee in Theoreme verstoffwechseln.
Heißer, schwarzer Kaffee\footnote{%
Wenn man da Milch reintut ist er nicht mehr schwarz, Junge!}
kann also völlig zu Recht als das Fundament
des Fortschritts der Menschheit
angesehen werden.
Um die immer wieder notwendigen und erholsamen Unterbrechungen
im von ausufernden Denkprozessen gekennzeichneten Alltag herbeizuführen,
ist das gemeinsame, rudelhafte Beschaffen von heißem Kaffee üblich.
Dabei kommt es immer wieder vor,
dass einer der Wissenschaftler kein Geld dabei hat.
Ein anderer Wissenschaftler gibt ihm dann üblicherweise einen Kaffee aus
in der optimistischen Hoffnung,
den Gefallen irgendwann zurückgezahlt zu bekommen.
Während die Schuldenverhältnisse
bei zwei Personen noch einfach zu handhaben sind,
ändert sich das bei größer werdenden Gruppen zunehmend.\footnote{%
Zunahme bei größer werdenden Gruppen
ist auch ein von den \emph{Weight Watchers} behandeltes Problem,
ist für uns aber nicht weiter von Relevanz.}
In dieser durch die Einleitung eingeleiteten Arbeit
definieren wir zu Beginn in \autoref{sec:kaffeeproblem}
das \(n\)-Kaffee-Problem,
welches die Frage der Schuldenverhältnisse
zwischen zwei Mitgliedern
einer \(n\) Personen großen Gruppe stellt.
Wir entwickeln zunächst eine analytische Lösung
bevor wir in \autoref{sec:visualisierung}
einfache Visualisierungen für \(n \leq 3\) einführen.
Wir schließen die Arbeit mit dem Schluss in \autoref{sec:zusammenfassung}
und liefern Ansatzpunkte für zukünftige Überlegungen.
\paragraph{Verwandte Arbeiten}
Bla.
\todo[inline]{Verwandte Arbeiten recherchieren.}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Kaffeekränzchen und das Kaffeeproblem
\section{Kaffeekränzchen und das Kaffeeproblem}
\label{sec:kaffeeproblem}
Um das Kaffee-Problem betrachten zu können,
müssen wir zunächst eine geeignete Menge von Personen definieren,
die das Problem überhaupt interessiert.\footnote{%
Hierzu gehört offenbar der Leser,
sonst würde er diesen Stuss ja nicht lesen}
\begin{defi}[Kaffeekränzchen]
\label{def:kaffeekraenzchen}
Eine Menge \(K=\{p_1,\ldots,p_n\}\)
für \(n\in\naturals_{\geq 2}\)
bezeichnen wir als \emph{Kaffeekränzchen über \(n\) Personen}
oder kurz \emph{\(n\)-Kaffeekränzchen}.\footnote{%
Man könnte in der Definition des Kaffeekränzchens sicherlich auch \(n=1\) zulassen,
aber das ist uns zu traurig.}
\end{defi}
Bei einem Kaffekränzchen ist für diese Arbeit unerheblich,
ob lediglich Kaffee oder auch Kuchen serviert wird.
Wichtig ist lediglich,
dass die beteiligten Personen
sich gegenseitig Kaffee ausgeben.
Zusätzlich zu dem Kaffeekränzchen benötigen wir noch eine Möglichkeit,
die Kaffeeschulden innerhalb der Gruppe zu dokumentieren.
\begin{defi}[Kaffeekasse]
\label{def:kaffeekasse}
Sei \(n\in\naturals_{\geq 2}\)
und \(K\) ein \(n\)-Kaffeekränzchen.
Eine \emph{\(K\)-Kaffeekasse} ist ein Tupel \(k\in\integers^n\),
\(k = (\Delta_1,\ldots,\Delta_n)\),
für das gilt:
\[ \sum_{i=1}^n \Delta_i = 0. \]
Für \(1 \leq i \leq n\)
bezeichnet \(\Delta_i\) die Differenz
der von \(p_i\) getrunkenen und ausgegebenen Kaffees.
\end{defi}
Aus der Definition der \(\Delta_i\) ergibt sich:
\begin{align*}
\Delta_i < 0 &: \enspace p_i \text{ bekommt noch } |\Delta_i| \text{ Kaffees} \\
\Delta_i > 0 &: \enspace p_i \text{ schuldet noch } \Delta_i \text{ Kaffees}
\end{align*}
Gibt eine Person einer anderen nun einen Kaffee aus,
müssen wir die Kaffeekasse entsprechend weiterentwickeln.
% \begin{defi}[kaffeekassentransitionition]
\begin{defi}[Kaffeekassensturz]
\label{def:kaffeekassentransition}
Sei \(n\in\naturals_{\geq 2}\),
\(K\) ein \(n\)-Kaffeekränzchen,
\(k\) eine \(K\)-Kaffeekasse
sowie \(i \neq j \in {[n]}\) so,
dass \(p_i\) \(p_j\) einen Kaffee ausgibt.
% Die Kaffeekassentransition
Der Kaffeekassensturz
liefert zu \(k\)
eine neue Kaffeekasse \(k' = (\Delta_1',\ldots,\Delta_n')\) mit
\[ \Delta_x' = \left\{
\begin{array}{ll}
\Delta_x - 1 & \text{, falls } x=i \\
\Delta_x + 1 & \text{, falls } x=j \\
\Delta_x & \text{, sonst}
\end{array} \right.
\]
für \(x \in {[n]}\).
\end{defi}
Zieht nun eine Teilmenge des Kaffeekränzchens los,
um sich gegenseitig Kaffess auszugeben,
ist immer wieder die Frage zu klären,
wer gerade mit Bezahlen an der Reihe ist.
Das allgemeine \(n\)-Kaffee-Problem
formalisiert exakt diese Fragestellung.
\begin{defi}[\(n\)-Kaffee-Problem]
\label{def:kaffee_problem}
Sei \(n\in\naturals_{\geq 2}\)
und \(k\) eine Kaffeekasse
über dem \(n\)-Kaffeekränzchen \(K\).
Gegeben zwei Personen \(p_i,p_j \in K\),
die einen Kaffee zusammen trinken wollen.
Das \(n\)-Kaffee-Problem besteht darin,
zu entscheiden,
ob \(p_i\) \(p_j\) einen Kaffee ausgeben muss
oder umgekehrt.
\end{defi}
Betrachten wir das Beispiel \(n=2\).
\begin{beis}[2-Kaffee-Problem]
\label{beis:2-kaffee-problem}
Sei \(K\) ein 2-Kaffeekränzchen und
\(k\) eine K-Kaffeekasse.
Nehmen wir an, dass bisher \(p_1\) zweimal
einen Kaffee für \(p_2\) bezahlt hat,
dann ergibt sich der Zustand \(k = (-2,2)\).
Es lässt sich leicht erkennen,
dass stets $\Delta_1 = - \Delta_2$ gelten muss.
Somit können wir ohne Informationsverlust die
zweite Komponente der Kaffekasse vernachlässigen
und nur noch $\Delta_1$ betrachten. Hierbei gilt:
\begin{align*}
\Delta_1 < 0 &: \enspace p_2 \text{ schuldet } p_1 \text{ noch } |\Delta_1| \text{ Kaffees.} \\
\Delta_1 = 0 &: \enspace \text{Die Kaffeekasse ist ausgeglichen, niemand hat Kaffeeschulden.} \\
\Delta_1 > 0 &: \enspace p_1 \text{ schuldet } p_2 \text{ noch } \Delta_1 \text{ Kaffees.}
\end{align*}
\end{beis}
Die im Beispiel angedeutete Vereinfachungsmöglichkeit
funktioniert nicht nur für \(n=2\),
sondern für beliebige \(n\in\naturals_{\geq 2}\).
Das ist die Aussage des folgenden Satzes.
\begin{satz}[Kaffeesatz]
\label{satz:kaffeesatz}
Sei \(n\in\naturals_{\geq 2}\)
und \(k\) eine Kaffeekasse
über dem \(n\)-Kaffeekränzchen \(K\).
Um das \(n\)-Kaffee-Problem zu lösen
genügt eine \((n-1)\)-Kaffeekasse.
\end{satz}
\begin{proof}
Nach \autoref{def:kaffeekasse} gilt:
\[
\begin{array}{lll}
& \Delta_1 + \ldots + \Delta_{n-1} + \Delta_n &= 0 \\
\Leftrightarrow & \Delta_1 + \ldots + \Delta_{n-1} &= {-\Delta_n}
\end{array}
\]
Das Kaffeedelta \(\Delta_n\)
lässt sich also aus den übrigen Kaffeedeltas direkt berechnen
und braucht daher nicht explizit in der Kaffeekasse geführt zu werden.
\end{proof}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Explizite Kaffeekassen und das Kaffee-Paradoxon
\subsection{Explizite Kaffeekassen und das Kaffee-Paradoxon}
\label{sub:kaffeeparadoxon}
Die in \autoref{def:kaffeekasse} definierte Kaffeekasse
modelliert einen gemeinsamen Kaffeepool innerhalb des Kaffeekränzchens.
Diese Kaffeekasse kann auch als \emph{bilanzierende Kaffeekasse} bezeichnet werden.
Als alternative Notation könnte auch eine explizite Kaffeekasse vorgehalten werden,
in der alle Kaffeeschulden innerhalb des Kaffeekränzchens einzeln ausgewiesen werden.
\begin{defi}[Explizite Kaffeekasse]
\label{def:explizitekaffeekasse}
Sei \(n \in \naturals_{\geq2}\) und \(K\) ein \(n\)-Kaffeekränzchen.
Eine \emph{explizite K-Kaffeekasse} ist die Matrix
\( \kappa \in \naturals^{n\times n} \) wobei gilt:
\begin{enumerate}
\item \( \delta_{i,i} = 0 \) für alle \( i \in \naturals_{\leq n} \)
\item \( \delta_{i,j} = -\delta_{j,i} \) für alle \( i,j \in \naturals_{\leq n} \)
\end{enumerate}
Hierbei verhalten sich die einzelnen Kaffeedeltas $\delta_{i, j}$ wie folgt:
\begin{align*}
\delta_{i,j} < 0 &: \enspace p_j \text{ schuldet } p_i \text{ noch } |\delta_{ij}| \text{ Kaffees.} \\
\delta_{i,j} = 0 &: \enspace \text{Die Kaffeebilanz zwischen }p_i\text{ und }p_j\text{ ist ausgeglichen.} \\
\delta_{i,j} > 0 &: \enspace p_i \text{ schuldet } p_j \text{ noch } \delta_{ij} \text{ Kaffees.}
\end{align*}
\end{defi}
Für die Verwaltung der expliziten Kaffeekasse definieren wir
% die Transition
den Kassensturz
analog zu \autoref{def:kaffeekassentransition}.
% \begin{defi}[Explizite Kaffeekassentransition]
\begin{defi}[Expliziter Kaffeekassensturz]
\label{def:explizitekaffeekassentransition}
Sei \(n \in \naturals_{\geq 2}\),
\(K\) ein Kaffeekränzchen über \(n\),
\(\kappa\) eine explizite \(K\)-Kaffeekasse
sowie \(i \neq j \in {[n]}\) so,
dass \(p_i\) \(p_j\) einen Kaffee ausgibt.
% Die explizite Kaffeekassentransition
Der explizite Kaffeekassensturz
liefert zu \(\kappa\)
eine neue explizite Kaffeekasse \( \kappa' \in \integers^{n\times n} \) mit
\[ \delta_{k,l}' = \left\{
\begin{array}{ll}
\delta_{k,l} - 1 & \text{, falls } k=i \text{ und } l=j \\
\delta_{k,l} + 1 & \text{, falls } k=j \text{ und } l=i \\
\delta_{k,l} & \text{, sonst}
\end{array} \right.
\]
für \(k,l \in \naturals_{\leq n}\).
\end{defi}
\begin{satz}
Sei \(n \in \naturals\), \(K\) ein \(n\)-Kaffeekränzchen
und \( \kappa \) eine explizite \(K\)-Kaffeekasse. Dann existiert eine entsprechende,
bilanzierende \(K\)-Kaffeekasse.
\end{satz}
\begin{proof}
Sei \(n \in \naturals\), \(K\) ein \(n\)-Kaffeekränzchen
und \(\kappa\) eine explizite \(K\)-Kaffeekasse.
Dann existieren laut \autoref{def:explizitekaffeekasse} \(\delta_{i,j} \in \integers\)
für alle \(i,j \in \naturals_{\leq n}\) als Einträge in \(\kappa\). Setze nun
\[ \Delta_i = \sum_{l=1}^{n} \delta_{i,l} . \]
Dann ergibt sich die bilanzierende Kaffeekasse als
\( k = (\Delta_1,\ldots,\Delta_n) \).
\end{proof}
\begin{beob}[Kaffeeparadoxon]
\label{beob:kaffeparadoxon}
Betrachten wir das 3-Kaffeekränzchen \( K = {p_1, p_2, p_3} \)
und ihre explizite Kaffeekasse \(\kappa\).
Nehmen wir an \(p_2\) hat bisher
jeweils einen Kaffee für \(p_1\) und \(p_3\) bezahlt.
Weiter hat \(p_3\) \(p_1\) einen Kaffee ausgegeben.
Somit ergibt sich
\[\kappa = \left(
\begin{array}{rrr}
0 & 1 & 1 \\
-1 & 0 & -1 \\
-1 & 1 & 0
\end{array} \right).
\]
Wie aus \autoref{def:explizitekaffeekassentransition} zu erkennen ist,
werden stets zwei symmetrische Komponenten der Matrix modifiziert, wenn
ein Kaffee ausgegeben wird. Somit müssen mindestens 3 Kaffees getrunken werden,
damit die Kaffeekasse wieder im schuldenfreien Zustand ist.
Bilden wir zu \(\kappa\) nun die bilanzierende Kaffeekasse \(k\),
so ergibt sich \(k = (2,-2,0) \).
Hierbei ist unmittelbar zu erkennen,
das nur 2 Kaffees benötigt werden,
um die Kaffeeschulden auszugleichen.
Dieses Phänomen, welches wir als \emph{Kaffeeparadoxon} bezeichnen, lässt sich
in dem Auftreten von \emph{transitiven Kaffeeschulden} begründen.
Die bilanzierende Kaffeekasse vermeidet derartige Kaffeeschulden direkt,
während sie bei der expliziten Kaffeekasse manuell aufgelöst werden müssen.
\end{beob}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Visualisierung des Kaffeeproblems
\section{Visualisierung des Kaffeeproblems}
\label{sec:visualisierung}
Im folgenden stellen wir Möglichkeiten vor,
das Kaffeeproblem für Gruppen aus 2 oder 3 Personen
grafisch darzustellen bzw. zu lösen.
\subsection{Darstellung des 2-Kaffee-Problems}
\label{ssec:2-kaffee-problem}
Wie bereits in \autoref{beis:2-kaffee-problem} angesprochen,
wird nur eine einzelne Komponente der Kaffeekasse benötigt.
Somit stellen wir die Kaffeekasse wie in \autoref{fig:2-kaffee-problem} dar.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{2KaffeeProblem}
\caption{%
Visualisierung des \(2\)-Kaffee-Problems.
In diesem Fall schuldet \(p_1\) \(p_2\)
noch \(2\) Kaffees.
}
\label{fig:2-kaffee-problem}
\end{figure}
In der Abbildung lässt sich durch Verschieben
des Punktes der Zustand aktualisieren.
Hierzu wird der Punkt immer ``mit dem Kaffee''
bewegt, also von der ausgebenden Person weg
und auf die empfangende Person zu.
\subsection{Darstellungen des 3-Kaffee-Problems}
Analog zu \autoref{ssec:2-kaffee-problem} kann
für die Darstellung des 3-Kaffee-Problems ein
kartesisches Koordinatensystem verwendet werden,
in dem die Werte von \(\Delta_1\) und \(\Delta_2\)
als Koordinaten eingetragen werden.
\begin{figure}[htbp]
\centering
\includegraphics[scale=.6]{3KaffeeKartesisch}
\caption{%
Visualisierung des \(3\)-Kaffee-Problems mit kartesischen Koordianten.
}
\label{fig:3-kaffee-kartesisch}
\end{figure}
In \autoref{fig:3-kaffee-kartesisch} ist eine
kartesische Darstellung für die Kaffeekasse
\(k = (2,-1,-1) \) gegeben.
Die Aktualisierung der Kaffeekasse,
und das Ablesen der Lösung des 3-Kaffee-Problems,
ist hier allerdings relativ kompliziert.
Gibt zum Beispiel \(p_1\) nun \(p_2\) einen Kaffee
aus, so muss zunächst im Kopf die
neue Kaffeekasse gebildet werden,
und anschliessend die neuen Werte
für \(\Delta_1\) und \(\Delta_2\)
eingetragen werden.
Zusätzlich ist der Wert von \(\Delta_3\)
nur indirekt zu erkennen.
Dieser ergibt sich aus dem negativen Achensabschnittes
der fallenden Diagonalen, auf der der Punkt
zur Zeit liegt.
\begin{figure}[htbp]
\centering
\includegraphics[scale=.6]{3KaffeeProblem}
\caption{%
Visualisierung des \(3\)-Kaffee-Problems mit schiefen Koordianten
}
\label{fig:3-kaffee-schief}
\end{figure}
Als alternative Darstellung kann ein
geradliniges, nichtorthgonales Koordiantensystem
gewählt werden. In \autoref{fig:3-kaffee-schief}
schneiden sich die Achsen
mit einem Winkel von 60\degree.
Bei dieser Art des Koordinatensystems
können die selben Koordinaten verwendet werden,
die bereits im kartesischen Koordinatensystem berechnet wurden.
Allerdings können hier die Namen der Personen an den Seiten
plaziert werden, um eine einfacher Transition
zu ermöglichen.
Nun kann hier auch die Markierung wieder
``mit dem Kaffee'', von der ausgebenden Person weg
und auf die empfangende Person zu, verschoben werden.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Zusammenfassung
\section{Zusammenfassung}
\label{sec:zusammenfassung}
Zusammenfassung des Papers.
Mögliche Future Work:
\begin{itemize}
\item Kaffeeproblem für \(n>3\) visualisieren
\item Wir haben noch keinen Beweis dafür, dass die Visualisierung in einem Dreieck unmöglich oder zumindest blöd ist.
\end{itemize}
\end{document}