Wie kann man Zweige in einem Spielbaum parallelisieren?

Wie kann man Zweige in einem Spielbaum parallelisieren?

Ich habe den folgenden Spielbaum erstellt: Bildbeschreibung hier eingeben Hier ist mein Code:

\documentclass[leqno, oneside, 12pt]{book}
\usepackage{amsmath}
\usepackage{istgame}
\usepackage{caption}
\usepackage{makecell}
\begin{document}
\begin{figure}[ht]
    \centering
    \begin{istgame}[font=\footnotesize]
        \xtdistance{30mm}{90mm}
        \setxtinfosetstyle{dashed}
        \xtShowEndPoints
        \istroot[right](0)<above>{0}
            \istbA{0.95}[above,sloped]
            \istbA{0.05}[above,sloped]
        \endist
        \xtdistance{30mm}{30mm}
        \istroot[right](1)(0-2)<above>{1.1}
            \istbA{g_1\quad(\beta)}[above,sloped]
            \istbA{f_1\quad(1-\beta)}[above,sloped]{0,0}
        \endist
        \xtOwner(1){\makecell{$\langle\alpha\rangle$}}[below]
        \istroot[right](2)(0-1)<above>{1.1}
            \istbA(2){g_1\quad(\beta)}[above,sloped]
            \istbA{f_1\quad(1-\beta)}[above,sloped]{0,0}
        \endist
        \xtOwner(2){\makecell{$\langle1-\alpha\rangle$}}[below]
        \istroot[right](3)(1-1)<above>{2.2}
            \istbA{g_2\quad(\gamma)}[above,sloped]
            \istbA{f_2\quad(1-\gamma)}[above,sloped]{-1,5}
        \endist
        \xtOwner(3){\makecell{$\langle1\rangle$}}[below]
        \istroot[right](4)(3-1)<above>{1.3}
            \istbA{g_3\quad(\epsilon)}[above,sloped]
            \istbA{f_3\quad(1-\epsilon)}[above,sloped]{4,4}
        \endist
        \xtOwner(4){\makecell{$\langle\delta\rangle$}}[below]
        \istroot[right](5)(2-1)<above>{1.3}
            \istbA(2){g_3\quad(\epsilon)}[above,sloped]{8,8}
            \istbA{f_3\quad(1-\epsilon)}[above,sloped]{4,4}
        \endist
        \xtOwner(5){\makecell{$\langle1-\delta\rangle$}}[below]
        \istroot[right](6)(4-1)<above>{2.4}
            \istbA{g_4\quad(\zeta)}[above,sloped]{8,8}
            \istbA{f_4\quad(1-\zeta)}[above,sloped]{3,9}
        \endist
        \xtOwner(6){\makecell{$\langle1\rangle$}}[below]
        \xtInfosetO(1)(2)(1.2cm)
        \xtInfosetO(3)(3)(1.2cm)
        \xtInfosetO(4)(5)(1.2cm)
        \xtInfosetO(6)(6)(1.2cm)
    \end{istgame}
    \caption{}
\end{figure}
\end{document}

Ich möchte, dass alle aufwärtsführenden Zweige parallel zueinander verlaufen und alle abwärtsführenden Zweige ebenfalls parallel zueinander verlaufen. (Wie Sie sehen, sind die abwärtsführenden Linien derzeit nicht parallel.) In der Zwischenzeit müssen die beiden 1.1-Knoten ausgerichtet werden und die beiden 1.3-Knoten müssen ebenfalls ausgerichtet werden. Wie soll ich das machen? Ich bin für jede Hilfe wirklich dankbar!

Antwort1

Ich bin mit diesem Paket nicht sehr vertraut, habe aber die Dokumentation durchgesehen und es scheint keine Möglichkeit zu geben, den Winkel der Alternative (oder des Bogens) anzugeben. \istbAEs gibt lediglich, wie Sie es getan haben, eine Möglichkeit, die Streuung der untergeordneten Elemente anzugeben.

Zu Diagnosezwecken habe ich das folgende Diagramm erstellt: Originalbaum, entrindet

\documentclass[tikz,margin=10pt]{standalone}
\usepackage{istgame}
\usepackage{makecell}

\begin{document}
    \begin{istgame}
        \xtdistance{30mm}{90mm}
        \setxtinfosetstyle{dashed}
        \xtShowEndPoints

        \setistgrowdirection'{east}
        
        \istroot(0)<above>{0}
            \istbA{to:0-1}[above,sloped]
            \istbA{to:0-2}[above,sloped]
        \endist
        
        \xtdistance{30mm}{30mm}
        
        \istroot(1)(0-1)<above>{1}
            \istbA{to:1-1}[above,sloped]{end}
            \istbA{to:1-2}[above,sloped]
        \endist
        \xtOwner(1){\makecell{1label}}[below]
        
        \istroot(2)(0-2)<above>{2}
            \istbA{to:2-1}[above,sloped]{end}
            \istbA(2){to:2-2}[above,sloped]
        \endist
        \xtOwner(2){\makecell{2label}}[below]
        
        \istroot(3)(1-2)<above>{3}
            \istbA{to:3-1}[above,sloped]{end}
            \istbA{to:3-2}[above,sloped]
        \endist
        \xtOwner(3){\makecell{3label}}[below]
        
        \istroot(4)(3-2)<above>{4}
            \istbA{to:4-1}[above,sloped]{end}
            \istbA{to:4-2}[above,sloped]
        \endist
        \xtOwner(4){\makecell{4label}}[below]
        
        \istroot(5)(2-2)<above>{5}
            \istbA{to:5-1}[above,sloped]{end}
            \istbA(2){to:5-2}[above,sloped]{end}
        \endist
        \xtOwner(5){\makecell{5label}}[below]
        
        \istroot(6)(4-2)<above>{6}
            \istbA{to:6-1}[above,sloped]{end}
            \istbA{to:6-2}[above,sloped]{end}
        \endist
        \xtOwner(6){\makecell{6label}}[below]
        
        \xtInfosetO(1)(2)(1.2cm)
        \xtInfosetO(3)(3)(1.2cm)
        \xtInfosetO(4)(5)(1.2cm)
        \xtInfosetO(6)(6)(1.2cm)
    \end{istgame}
\end{document}

Es gibt eine Möglichkeit, „fehlende“ untergeordnete Elemente hinzuzufügen, indem Sie kurz \istb<missing>oder verwenden. Leider ist es schwierig zu erkennen, wie der Winkel berechnet wird. Daher erwies sich der Versuch, die untere Reihe durch Hinzufügen dieser fehlenden untergeordneten Elemente auszurichten, selbst mit diesem abgespeckten Modell als zu mühsam.\istbm\istbA(<level>)

Wenn Sie stattdessen bereit sind, Kompromisse bei der Symmetrie einzugehen, biete ich folgende Lösung an: alternativer Baum, entrindet

\documentclass[tikz,margin=10pt]{standalone}
\usepackage{istgame}
\usepackage{makecell}

\begin{document}
    \begin{istgame}
        \xtdistance{30mm}{60mm}
        \setxtinfosetstyle{dashed}
        \xtShowEndPoints

        \setistgrowdirection'{east}
        
        \istroot(0)<above>{0}
            \istbA{to:0-1}[above,sloped]
            \istbA{to:0-2}[above,sloped]
        \endist
        
        \xtdistance{30mm}{30mm}
        
        \istroot(1)(0-1)<above>{1}
            \istbA{to:1-1}[above,sloped]{end}
            \istbA{to:1-2}[above,sloped]
            \istbm
        \endist
        \xtOwner(1){\makecell{1label}}[below]
        
        \istroot(2)(0-2)<above>{2}
            \istbA{to:2-1}[above,sloped]{end}
            \istbA(2){to:2-2}[above,sloped]
            \istbm
        \endist
        \xtOwner(2){\makecell{2label}}[below]
        
        \istroot(3)(1-2)<above>{3}
            \istbA{to:3-1}[above,sloped]{end}
            \istbA{to:3-2}[above,sloped]
            \istbm
        \endist
        \xtOwner(3){\makecell{3label}}[below]
        
        \istroot(4)(3-2)<above>{4}
            \istbA{to:4-1}[above,sloped]{end}
            \istbA{to:4-2}[above,sloped]
            \istbm
        \endist
        \xtOwner(4){\makecell{4label}}[below]
        
        \istroot(5)(2-2)<above>{5}
            \istbA{to:5-1}[above,sloped]{end}
            \istbA(2){to:5-2}[above,sloped]{end}
            \istbm
        \endist
        \xtOwner(5){\makecell{5label}}[below]
        
        \istroot(6)(4-2)<above>{6}
            \istbA{to:6-1}[above,sloped]{end}
            \istbA{to:6-2}[above,sloped]{end}
            \istbm
        \endist
        \xtOwner(6){\makecell{6label}}[below]
        
        \xtInfosetO(1)(2)(1.2cm)
        \xtInfosetO(3)(3)(1.2cm)
        \xtInfosetO(4)(5)(1.2cm)
        \xtInfosetO(6)(6)(1.2cm)
    \end{istgame}
\end{document}

Das sieht, wenn es ausgefüllt ist, so aus: Bildbeschreibung hier eingeben

Auch dies ist nicht ideal, aber wenn Ihr Ziel unbedingt parallel ist, ist dies das Richtige. Ich empfehle, zur Skalierung [scale=1.2]Folgendes hinzuzufügen oder Ähnliches , aber das ist eine persönliche Vorliebe. Im MWE unten werden Sie feststellen, dass ich die Tags entfernt und stattdessen Folgendes hinzugefügt habe, wodurch die Knoten im Code von oben nach unten sinnvoll angeordnet bleiben, zumindest meiner Meinung nach.\begin{istgame}[right]\setistgrowdirection'{east}

Hoffentlich hilft das ein wenig!

MWE:

\documentclass[tikz,margin=10pt]{standalone}
\usepackage{istgame}
\usepackage{makecell}

\begin{document}
    \begin{istgame}
        \xtdistance{30mm}{60mm}
        \setxtinfosetstyle{dashed}
        \xtShowEndPoints

        \setistgrowdirection'{east}
        
        \istroot(0)<above>{0}
            \istbA{0.05}[above,sloped]
            \istbA{0.95}[above,sloped]
        \endist
        
        \xtdistance{30mm}{30mm}
        
        \istroot(1)(0-1)<above>{1.1}
            \istbA{f_1\quad(1-\beta)}[above,sloped]{0,0}
            \istbA{g_1\quad(\beta)}[above,sloped]
            \istbm
        \endist
        \xtOwner(1){\makecell{$\langle\alpha\rangle$}}[below]
        
        \istroot(2)(0-2)<above>{1.1}
            \istbA{f_1\quad(1-\beta)}[above,sloped]{0,0}
            \istbA(2){g_1\quad(\beta)}[above,sloped]
            \istbm
        \endist
        \xtOwner(2){\makecell{$\langle1-\alpha\rangle$}}[below]
        
        \istroot(3)(1-2)<above>{2.2}
            \istbA{f_2\quad(1-\gamma)}[above,sloped]{-1,5}
            \istbA{g_2\quad(\gamma)}[above,sloped]
            \istbm
        \endist
        \xtOwner(3){\makecell{$\langle1\rangle$}}[below]
        
        \istroot(4)(3-2)<above>{1.3}
            \istbA{f_3\quad(1-\epsilon)}[above,sloped]{4,4}
            \istbA{g_3\quad(\epsilon)}[above,sloped]
            \istbm
        \endist
        \xtOwner(4){\makecell{$\langle\delta\rangle$}}[below]
        
        \istroot(5)(2-2)<above>{1.3}
            \istbA{f_3\quad(1-\epsilon)}[above,sloped]{4,4}
            \istbA(2){g_3\quad(\epsilon)}[above,sloped]{8,8}
            \istbm
        \endist
        \xtOwner(5){\makecell{$\langle1-\delta\rangle$}}[below]
        
        \istroot(6)(4-2)<above>{2.4}
            \istbA{f_4\quad(1-\zeta)}[above,sloped]{3,9}
            \istbA{g_4\quad(\zeta)}[above,sloped]{8,8}
            \istbm
        \endist
        \xtOwner(6){\makecell{$\langle1\rangle$}}[below]
        
        \xtInfosetO(1)(2)(1.2cm)
        \xtInfosetO(3)(3)(1.2cm)
        \xtInfosetO(4)(5)(1.2cm)
        \xtInfosetO(6)(6)(1.2cm)
    \end{istgame}
\end{document}

Antwort2

Ich würde gerne \istbanstelle von verwenden \istbA.

Sie können ersetzen \istbA(2)durch

\istbA(2)<grow=-27,level distance=67mm>

oder einfach zu verwenden

\istb<grow=-27,level distance=67mm>.

Diese Änderung führt zu dem (ungefähren) gewünschten Ergebnis.

Bildbeschreibung hier eingeben

\documentclass[leqno, oneside, 12pt]{book}
\usepackage{amsmath}
\usepackage{istgame}
\usepackage{caption}
\usepackage{makecell}

\begin{document}
\begin{figure}[ht]
\centering
\begin{istgame}[font=\footnotesize]
    %%% some calculation:
    \pgfmathparse{90-atan(30/15)}  
        \node(0,0)[draw,yshift=10mm]{\pgfmathresult};
    \pgfmathparse{sqrt(30^2+15^2)} 
        \node(0,0)[draw,yshift=15mm]{\pgfmathresult};
    %%% tree direction
    \setistgrowdirection{east}     %%% instead of using [right] in \istroot
    %\setistgrowdirection'{east}   %%% (swap version) looks more convenient

    %%% \istb (instead of \istbA)
    \xtdistance{30mm}{90mm}
    \setxtinfosetstyle{dashed}
    \xtShowEndPoints
    \istroot(0)<above>{0}
        \istb{0.95}[above,sloped]
        \istb{0.05}[above,sloped]
    \endist
    \xtdistance{30mm}{30mm}
    \istroot(1)(0-2)<above>{1.1}
        \istb{g_1\quad(\beta)}[above,sloped]
        \istb{f_1\quad(1-\beta)}[above,sloped]{0,0}
    \endist
    \xtOwner(1){\makecell{$\langle\alpha\rangle$}}[below]
    \istroot(2)(0-1)<above>{1.1}
        \istb<grow=-27,level distance=67mm>[blue,thick]  %%% CHANGED
             {g_1\quad(\beta)}[above,sloped]
        \istb{f_1\quad(1-\beta)}[above,sloped]{0,0}
    \endist
    \xtOwner(2){\makecell{$\langle1-\alpha\rangle$}}[below]
    \istroot(3)(1-1)<above>{2.2}
        \istb{g_2\quad(\gamma)}[above,sloped]
        \istb{f_2\quad(1-\gamma)}[above,sloped]{-1,5}
    \endist
    \xtOwner(3){\makecell{$\langle1\rangle$}}[below]
    \istroot(4)(3-1)<above>{1.3}
        \istb{g_3\quad(\epsilon)}[above,sloped]
        \istb{f_3\quad(1-\epsilon)}[above,sloped]{4,4}
    \endist
    \xtOwner(4){\makecell{$\langle\delta\rangle$}}[below]
    \istroot(5)(2-1)<above>{1.3}
        \istb<grow=-27,level distance=67mm>[blue,thick]  %%% CHANGED
             {g_3\quad(\epsilon)}[above,sloped]{8,8}
        \istb{f_3\quad(1-\epsilon)}[above,sloped]{4,4}
    \endist
    \xtOwner(5){\makecell{$\langle1-\delta\rangle$}}[below]
    \istroot(6)(4-1)<above>{2.4}
        \istb{g_4\quad(\zeta)}[above,sloped]{8,8}
        \istb{f_4\quad(1-\zeta)}[above,sloped]{3,9}
    \endist
    \xtOwner(6){\makecell{$\langle1\rangle$}}[below]
    \xtInfosetO(1)(2)(1.2cm)
    \xtInfosetO(3)(3)(1.2cm)
    \xtInfosetO(4)(5)(1.2cm)
    \xtInfosetO(6)(6)(1.2cm)
\end{istgame}
\caption{}
\end{figure}
\end{document}

verwandte Informationen