LaTeX Extra > LaTeX Pakete > istgame


Das istgame Paket ermöglicht es, basierend auf dem tikz Paket, auf einfache Art und Weise Spielbäume zu zeichnen. [1] Bei Spielbäumen handelt es sich um die graphische Darstellung von extensiven Spielen aus der Spieltheorie.

Spielbaum

Der Spielbaum besteht aus Knoten (nodes) und Zweigen (branches). Es gibt drei verschiedene Arten von Knoten den Startknoten (initialnode beziehungsweise rootnode), die Entscheidungsknoten (decisionnode) und die Endknoten (terminalnode).

istgame

Das istgame Paket stellt eine neue Umgebung istgame bereit innerhalb derer der Spielbaum gezeichnet wird.

istroot

Mit dem Befehl \istroot(Name des neuen Knoten)(Wurzel des Knotens)<Winkel>{Bezeichner} werden der Start- und die Entscheidungsknoten eingefügt. Dabei ist nur der Name verpflichtend, die anderen Angaben sind optional. Die Wurzel des Knotens wird benötigt um den Knoten an den gewünschten Zweig zu legen. Angenommen der Knoten hat den Namen 0 und hat zwei Zweige, dann ist (0-1) die Wurzel des Entscheidungsknoten der am ersten Zweig liegt und (0-2) ist die Wurzel des Entscheidungsknoten der am zweiten Zweig liegt.
Der Winkel legt fest wo die Bezeichnung im Bezug auf den Knoten platziert wird. Standard ist 90 Grad das bedeutet der Name wird direkt über dem Knoten angezeigt. Bei 0 steht es rechts daneben, 30 rechts oben, 90 darüber, 120 links oben, 180 links, 210 links unten, 270 darunter und bei 300 rechts unten. Jeder (Teil-) Baum der mit dem Befehl \istroot(...){Bezeichner} gestartet wird muss mit dem Kommando \endist beendet werden.

istb

Die Zweige (branches) werden mit dem Befehl \istb{Bezeichnung Handlung / Aktion}[Position Beschriftung]{Payoff}[Positon Payoff] eingefügt. Die Positionierung erfolgt hier über Wörter beziehungsweise deren Abkürzungen. Die folgenden acht stehen dabei zur Verfügung, der Übersichtlichkeit halber in Form der nachfolgenden Tabelle dargestellt.
Position der Beschriftung
LangformAbkürzungBedeutung
above aoben
below bunten
left llinks
right rrechts
above left allinks oben
above right arrechts oben
below left bllinks unten
below right brrechts unten

xtdistance

Mit \xtdistance{Abstand der Ebenen}{Abstand zwischen den Knoten einer Ebene} kann der Abstand der Knoten untereinander verändert werden. Die Einstellung gilt bis zur nächsten Änderung von \xtdistance{...}{...} beziehungsweise bis zum Ende des jeweiligen Spielbaums innerhalb der Befehl gesetzt wurde. Bezeichner / Texte mit Umlauten entweder vermeiden oder in \text{Umlaute} beziehungsweise \textrm{Umlaute} packen.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{istgame}
%...
\begin{document}
%...
\begin{istgame}
\xtdistance{20mm}{50mm}
\istroot(0)(0,0){Spieler 1}
\istb{schweigen}[above left]
\istb{gestehen}[above right]
\endist
\xtdistance{10mm}{20mm}
\istroot(1)(0-1)<120>{Spieler 2} 
\istb{schweigen}[above left]{(-1,-1)}
\istb{gestehen}[above right]{(-6,0)}
\endist
\istroot(2)(0-2)<30>{Spieler 2}
\istb{schweigen}[above left]{(0,-6)}
\istb{gestehen}[above right]{(-5,-5)}
\endist
\end{istgame}
%...
\end{document}
Gefangenendilemma als extensiver Spielbaum dargestellt.

Wie man erkennt wird der Text der innerhalb des \istb Befehl gesetzt wurde kursiv dargestellt, da innerhalb dieses Befehls standardmäßig Mathematik Modus verwendet wird. Über den Befehl \setistmathTF lässt sich auf Text Modus umstellen. Wobei die Null für Text Modus und die 1 für Mathematik Modus steht.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{istgame}
%...
\begin{document}
%...
\begin{istgame}
\xtdistance{20mm}{50mm}
\setistmathTF000 % mode: text,text,text
\istroot(0)(0,0){Spieler 1}
\istb{schweigen}[above left]%{(0,2)}
\istb{gestehen}[above right]
\endist
\xtdistance{10mm}{20mm}
\setistmathTF001 % mode: text,text,math
\istroot(1)(0-1)<120>{Spieler 2} 
% Am Subbaum 1 von Baum 0 daher (0-1)
\istb{schweigen}[above left]{(-1,-1)}
\istb{gestehen}[above right]{(-6,0)}
\endist
\istroot(2)(0-2)<30>{Spieler 2}
% Am Subbaum 2 von Baum 0 daher (0-2)
\istb{schweigen}[above left]{(0,-6)}
\istb{gestehen}[above right]{(-5,-5)}
\endist
\end{istgame}
%...
\end{document}
Gefangenendilemma als extensiver Spielbaum dargestellt. Diesmal mit serifen freier Schrift.
Knoten hervorheben

Als zusätzliche Option in der Option bezüglich der Positionierung des Payoffs ist es möglich die farbliche und figürliche Darstellung eines Knotens zu verändern um diesen zum Beispiel weil er ein Nash Gleichgewicht oder ähnliches darstellt hervorzuheben.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{istgame}
%...
\begin{document}
%...
\begin{istgame}
\xtdistance{15mm}{30mm}
\istroot(0){Eindringling}
\istb{Wegbleiben}[above left]{(0,2)}
\istb{Eindringen}[above right]
\endist
\istroot(1)(0-2)<30>{Platzhirsch}
\istb{\textrm{Kämpfen}}[al]{(-3,-1)}
\istb{Anpassen}[ar]{(2,1)}[[draw,circle,double,fill=green]below]
\endist
\end{istgame}
%...
\end{document}
Spielbaum Eintritt eines neuen Konkurrenten auf einen bereits vergebenen Markt.

Information Sets

Informationssets können mit Hilfe des Befehls \xtInfoset(Knoten 1 <der Name davon>) (Knoten 2 <der Name davon>){Spieler/Bezeichner}[Position der Bezeichnung] eingefügt werden. Die Koordinaten sind verpflichtende Angaben. Wie man dem nachfolgenden Beispiel entnehmen kann ist es auch hier möglich die Form und die Farbe zu verändern.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{istgame}
%...
\begin{document}
%...
\begin{istgame}
\xtdistance{15mm}{40mm}
\istroot(0){R}
\istb{Kopf}[l]
\istb{Zahl}[r]
\endist 
\xtdistance{15mm}{20mm}
\istroot(1)(0-1){C}
\istb{Kopf}[l]{(1,-1)}
\istb{Zahl}[r]{(-1,1)}
\endist
\istroot(2)(0-2){C}
\istb{Kopf}[l]{(1,-1)}
\istb{Zahl}[r]{(-1,1)}
\endist
\end{istgame}

\begin{istgame}
\xtdistance{15mm}{40mm}
\istroot(0){R}
\istb{Kopf}[l]
\istb{Zahl}[r]
\endist 
\xtdistance{15mm}{20mm}
\istroot(1)(0-1){C}
\istb{Kopf}[l]{(1,-1)}
\istb{Zahl}[r]{(-1,1)}
\endist
\istroot(2)(0-2){C}
\istb{Kopf}[l]{(1,-1)}
\istb{Zahl}[r]{(-1,1)}
\endist
\xtInfoset(1)(2){Hidden Action}
\end{istgame}


\begin{istgame}
\xtdistance{15mm}{40mm}
\istroot(0){R}
\istb{Kopf}[l]
\istb{Zahl}[r]
\endist 
\xtdistance{15mm}{20mm}
\istroot(1)(0-1){C}
\istb{Kopf}[l]{(1,-1)}
\istb{Zahl}[r]{(-1,1)}
\endist
\istroot(2)(0-2){C}
\istb{Kopf}[l]{(1,-1)}
\istb{Zahl}[r]{(-1,1)}
\endist
\xtInfosetO[fill=blue!20](1)(2){Hidden Action}
\end{istgame}
%...
\end{document}
Spielbaum für Kopf oder Zahl inklusive der hidden action.

Branches

Die Richtung der Zweige lässt sich über \istb<Richtung>{Aktion}[Pos. Beschriftung]{Payoff}[Pos. Payoff] festlegt. Dazu wird \istb<grow=Richtung>... die Richtung festgelegt in die der Zweig zeigen soll. Zur Verfügung stehen dabei north (oben), south (unten), east (rechts) und west (links). Daneben gibt es noch die Möglichkeit die gewünschte Richtung in Grad anzugeben. Wobei 0 für rechts, 180 für links, 90 für oben, 270 für unten, 45 für rechts oben, 315 für rechts unten, 135 für links oben und 225 für links unten steht.

istb*

Die Variante des \istb* des Befehls \istb{Bezeichnung Handlung / Aktion}[Position Beschriftung]{Payoff}[Positon Payoff] sorgt dafür das am Ende des Zweiges auch ein Knoten eingefügt wird.

Signal Game

Das nachfolgen Beispiel demonstriert die Vielfalt der Gestaltung die bei Zweigen möglich ist.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{istgame}
%...
\begin{document}
%...
\begin{istgame}
\xtdistance{20mm}{20mm}
\istroot(0)<0>{Natur}
\istb{\frac{1}{2}}[l]
\istb{\frac{1}{2}}[r]
\endist
\istroot(1)(0-1)<90>{$\theta_{1}$}
\istb{R}[b]
\istb{L}[b]
\endist
\istroot(2)(0-2)<270>{$\theta_{2}$}
\istb{R}[b]
\istb{L}[b]
\endist
%rechter Teil
\istroot(3)(1-1)<120>{[q]}[a]
\istb*{u}[l]{2,1}[r]
\istb*{d}[l]{0,0}[r]
\endist
\istroot(4)(2-1)<120>{[1-q]}
\istb*{u}[l]{1,0}[r]
\istb*{d}[l]{1,2}[r]
\endist
%linker Teil
\istroot(5)(1-2)<30>{[p]}[a]
\istb*{u}[l]{1,3}[l]
\istb*{d}[l]{4,0}[l]
\endist
\istroot(6)(2-2)<30>{[1-p]}
\istb*{u}[l]{2,4}[l]
\istb*{d}[l]{0,1}[l]
\endist
%infosets
\xtInfoset(3)(4){II}[r]
\xtInfoset(5)(6){II}[l]

\end{istgame}
%...
\end{document}
Beispiel Spielbaum für ein sogenanntes Signal Game.

Literatur

[1]
Draw Game Trees with TikZ, version 2.0 In-Sung Cho, Januar 29, 2019, Online:https://ctan.org/pkg/istgame