Возможно ли нарисовать дерево разрешения в бимере?

Возможно ли нарисовать дерево разрешения в бимере?

Как нарисовать дерево решений, напримерпример здесь

введите описание изображения здесь

решение1

Дерево можно легко сделать с помощьюTikZ:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,fit,trees}

\begin{document}

\begin{tikzpicture}[
  grow'=up,
  level 1/.style={sibling distance=14em},
  level 2/.style={sibling distance=6em}]
\node (f) {False} 
child { node (1l) {$p(a)$}
  child {node (2ll) {$\neg p(a)$}}
  child {node (2lr) {$p(a)\vee p(b)$}}
}
child {node (1r) {$\neg p(a)$}
child {node (2rl) {$p(X)\vee r(X)$}}
child {node (2rr) {$\neg r(b)$}}
};
\end{tikzpicture}

\end{document}

введите описание изображения здесь

Единственное, что может оказаться нетривиальным, — это нарисовать замкнутые контуры, окружающие некоторые группы формул; одним из возможных подходов здесь было бы использованиеJake's answerкпроложенная граница выпуклой оболочки:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,fit,trees}

\newcommand{\convexpath}[2]{
[   
    create hullnodes/.code={
        \global\edef\namelist{#1}
        \foreach [count=\counter] \nodename in \namelist {
            \global\edef\numberofnodes{\counter}
            \node at (\nodename) [draw=none,name=hullnode\counter] {};
        }
        \node at (hullnode\numberofnodes) [name=hullnode0,draw=none] {};
        \pgfmathtruncatemacro\lastnumber{\numberofnodes+1}
        \node at (hullnode1) [name=hullnode\lastnumber,draw=none] {};
    },
    create hullnodes
]
($(hullnode1)!#2!-90:(hullnode0)$)
\foreach [
    evaluate=\currentnode as \previousnode using \currentnode-1,
    evaluate=\currentnode as \nextnode using \currentnode+1
    ] \currentnode in {1,...,\numberofnodes} {
-- ($(hullnode\currentnode)!#2!-90:(hullnode\previousnode)$)
  let \p1 = ($(hullnode\currentnode)!#2!-90:(hullnode\previousnode) - (hullnode\currentnode)$),
    \n1 = {atan2(\x1,\y1)},
    \p2 = ($(hullnode\currentnode)!#2!90:(hullnode\nextnode) - (hullnode\currentnode)$),
    \n2 = {atan2(\x2,\y2)},
    \n{delta} = {-Mod(\n1-\n2,360)}
  in 
    {arc [start angle=\n1, delta angle=\n{delta}, radius=#2]}
}
-- cycle
}

\begin{document}

\begin{tikzpicture}[
  grow'=up,
  level 1/.style={sibling distance=14em},
  level 2/.style={sibling distance=6em}]
\node (f) {False} 
child { node (1l) {$p(a)$}
  child {node (2ll) {$\neg p(a)$}}
  child {node (2lr) {$p(a)\vee p(b)$}}
}
child {node (1r) {$\neg p(a)$}
child {node (2rl) {$p(X)\vee r(X)$}}
child {node (2rr) {$\neg r(b)$}}
};
\draw[cyan!70!black] \convexpath{f,1l.west,1r.east}{13pt};
\draw[red!70!black] \convexpath{1r,2rl.west,2rr.east}{12pt};
\end{tikzpicture}

\end{document}

введите описание изображения здесь

У вас есть доступ ко многим ресурсам, связанным с TikZ:

Связанный контент