Enésimo problema con TikZ y los juegos de formato extensivo

Enésimo problema con TikZ y los juegos de formato extensivo

Me gustaría escribir el árbol a la izquierda de la imagen. Desafortunadamente, TikZ me parece demasiado complicado... Intenté con este código, sin éxito.ingrese la descripción de la imagen aquí

\documentclass{beamer}
\usepackage{tikz} % Game theory packages
\usetikzlibrary{calc}

% Node styles
\tikzset{
% Two node styles for game trees: solid and hollow
solid node/.style={circle,draw,inner sep=1.5,fill=black},
hollow node/.style={circle,draw,inner sep=1.5}
}

\begin{document}

\begin{frame}
    \begin{tikzpicture}[scale=0.7,font=\footnotesize]
        % Specify spacing for each level of the tree
            \tikzstyle{level 1}=[level distance=18mm,sibling distance=27mm]
            \tikzstyle{level 2}=[level distance=18mm,sibling distance=27mm]
        % The Tree
        \node(0)[hollow node,label=above:{$1$}]{}
            child{node(1)[solid node, label=above:{$2$}]{}
                child{node(0-1-1)[solid node, label=above:{$1$}]{} edge from parent node[left]{$E$}}
                child{node(0-1-2)[label=below:{$(3,1)$}]{} edge from parent node[right]{$F$}}                                   
                    child{node(0-1-1-1)[label=below:{$(1,2)$}]{} edge from parent node[right]{$G$}} % The error is here
                edge from parent node[left,xshift=-3]{$C$}          
        }
            child{node(2)[label=below:{$(0,3)$}]{} edge from parent node[right, xshift=3]{$D$}
            };

        \end{tikzpicture}
\end{frame}
\end{document}

También me gustaría preguntarle si existe algo más fácil para la teoría de juegos que Tikz para los árboles.

Respuesta1

Tenga en cuenta que existe un paquete istgameque se especializa en árboles de juego. Para árboles en general, forestes una herramienta muy poderosa. Te permite dibujar tu árbol muy fácilmente.

\documentclass{article}
\usepackage{forest}
\forestset{el/.style={edge label={node [pos=0.7,above,outer sep=3pt] {$#1$} }}}
\begin{document}
\begin{forest}
for tree={circle,fill,inner sep=1pt,calign=fixed edge angles}
[,label=above:1
 [,label=above left:2,el=A
  [,label=above left:1,el=C
   [,label=below:{0,2},el=E ]
   [,label=below:{2,0},el=F ]
  ]
  [,label=below:{1,1},el=D]
 ]
 [,label=below:{3,3},el=B]
]
\end{forest}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Mi código simple de TikZ es un poco largo pero fácil de leer.

ingrese la descripción de la imagen aquí

\documentclass{article}
%\documentclass{beamer}
\usepackage{tikz}
\begin{document}
%\begin{frame}  
\begin{center}
\begin{tikzpicture}[scale=1,
h/.style={circle,draw=magenta,thick,inner sep=1.5},
s/.style={h,fill=magenta}]
\path
(0,0)     node[h] (1)  {} node[above] {1}  
+(1,-1)   node[s] (2b) {} node[below] {3,3}
++(-1,-1) node[s] (2a) {} node[left]  {2}  
+(1,-1)   node[s] (3b) {} node[below] {1,1}
++(-1,-1) node[s] (3a) {} node[left]  {1}  
+(1,-1)   node[s] (4b) {} node[below] {0,2}
+(-1,-1)  node[s] (4a) {} node[below] {2,0};

\draw (1)
--(2a) node[pos=.4,left]{A}
--(3a) node[pos=.4,left]{C}
--(4a) node[pos=.4,left]{E}
(1)--(2b)  node[pos=.4,right]{B}
(2a)--(3b) node[pos=.4,right]{D}
(3a)--(4b) node[pos=.4,right]{F};

\newcommand{\putcolumn}[6]{%
\path #1 node{#2} 
++(-90:1)  node{#3} ++(-90:1) node{#4}
++(-90:1)  node{#5} ++(-90:1) node{#6};
}%
\begin{scope}[shift={(4,0)}]
\draw (0,0) grid (2,-4);
\putcolumn{(.5,.5)}{C}{2,0}{0,2}{3,3}{3,3}
\putcolumn{(1.5,.5)}{D}{1,1}{1,1}{3,3}{3,3}
\putcolumn{(-.5,.5)}{}{AE}{AF}{BE}{BF}
\end{scope}
\end{tikzpicture}
\end{center}
%\end{frame}    
\end{document}

Respuesta3

Propongo este código corto con pstricks– más específicamente pst-tree:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{pst-tree}
\usepackage{auto-pst-pdf}

\begin{document}

\begin{pspicture}
\psset{tnsep=1pt, labelsep=3pt}
\pstree[nodesep=0pt, levelsep=1.5cm, treesep=3cm]{\Tc{2pt}~[ tnpos=a, tnsep=-1pt]{1}} {
        \pstree{\Tdot\nbput{$ A $} \uput[ul](\pssucc){$ 2 $}} {%
                \pstree{\Tdot \nbput{$ C $} \uput[ul](\pssucc){{1}}}{%
                        \pstree{\Tdot \nbput{$ E $} \uput[ul](\pssucc){{2}}}{}%
                        \Tdot\naput{$F$}\uput[d](\pssucc){$0,2$}}%
        \Tdot_{$D$} \uput[d](\pssucc){$1,1$}}%
\Tdot_{$B$} \uput[d](\pssucc){$3,3$}}
    \end{pspicture}%

 \end{document}

ingrese la descripción de la imagen aquí

Respuesta4

Mi intento con tikz-qtree, pero no encontré cómo arreglar los ángulos:

\usepackage{tikz-qtree}

\tikzset{grow'=down}

\begin{document}
    \begin{standalone}
        \begin{tikzpicture}[level distance=30pt,
                            sibling distance=10pt,
                            every tree node/.style={draw,circle,inner sep=0pt,minimum size=3pt},
                            edge from parent path={(\tikzparentnode) -- (\tikzchildnode)},
                            ]
            \Tree   [. \node[label=above:1] {}; 
                        \edge node[auto=left,pos=.6] {$B$};
                            [. \node[fill=black,label=below:{3,3}] {}; ]
                        \edge node[auto=right,pos=.6] {$A$};
                            [.\node[fill=black,label=above left:2] {}; 
                                \edge node[auto=left,pos=.6] {$D$};
                                    [.\node[fill=black,label=below:{1,1}] {}; ]
                                \edge node[auto=right,pos=.6] {$C$};
                                [.\node[fill=black,label=above left:1] {}; 
                                \edge node[auto=left,pos=.6] {$F$};
                                    [.\node[fill=black,label=below:{2,2}] {}; ]
                                \edge node[auto=right,pos=.6] {$E$};
                                    [.\node[fill=black,label=above left:2] {}; ] 
                                ]
                            ]
                    ]     
        \end{tikzpicture}   
    \end{standalone}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada