Desenhando hiperarestas direcionadas com TikZ

Desenhando hiperarestas direcionadas com TikZ

Atualmente estou trabalhando com verificação de modelo de gráficos de dependência simbólica para meu projeto semestral em Ciência da Computação e preciso urgentemente de uma maneira fácil de desenhar gráficos de dependência, de preferência usando TikZ.

Meu problema está um pouco relacionado aesse, mas preciso que os arcos sejam direcionados.

Uma hiperborda eé uma tupla e = (v, T)onde vestá um nó de origem e Té o conjunto de destino. Cada elemento Té uma tupla t = (w, t)onde wé um número inteiro não negativo ou um parâmetro e té um nó de destino.

O exemplo a seguir (encontradoaqui) faz exatamente o que eu preciso, exceto que preciso que os arcos sejam direcionados.

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\hyperedge}[4][180]{
     \draw (#2.#1) ++(#1:.5)  edge (#2) edge (#3) edge (#4);    
}

\begin{document}
\begin{tikzpicture}[
    y=.7cm, x=1cm,
    every edge/.append style={thick}
]

\node (c) at (0,0) {c};
\node (a) at (1,1) {d};
\node (b) at (1,-1) {e};


\hyperedge[0]{c}{b}{a}
\end{tikzpicture}
\end{document}

Eu tentei adicionar ->como uma opção aoimagem tikz, mas isso resultou em setas não apenas para o conjunto de destino, mas também para o nó de origem.

Responder1

Para este caso específico você pode modificar o \hypergraphcomando para ler

\newcommand{\hyperedge}[4][180]{
     \draw (#2.#1) ++(#1:.5)  edge (#2) edge[->] (#3) edge[->] (#4);    
}

que adicionará setas a dois dos edges, aqueles que levam aos nós de destino.

insira a descrição da imagem aqui

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\hyperedge}[4][180]{
     \draw (#2.#1) ++(#1:.5)  edge (#2) edge[->] (#3) edge[->] (#4);    
}

\begin{document}
\begin{tikzpicture}[
    y=.7cm, x=1cm,
    every edge/.append style={thick}
]

\node (c) at (0,0) {c};
\node (a) at (1,1) {d};
\node (b) at (1,-1) {e};


\hyperedge[0]{c}{b}{a}
\end{tikzpicture}
\end{document}

informação relacionada