答案1
作为起点:
\documentclass[border=3.14152]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
chains,
decorations.markings,
positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 5mm,
start chain = going below,
> = {Stealth[scale=0.8]},
C/.style = {circle, draw, minimum size=1.2em, on chain},
->-/.style = {decoration={markings, mark=at position .25 with {\arrow{>}}},
->, postaction={decorate}}
]
\node (x1) [C] {$x_1$};
\node (x2) [C] {$x_2$};
\node (x3) [C] {$x_3$};
\node [on chain] {$\vdots$};
\node (xn) [C] {$x_n$};
%
\draw[->-] (x1) -- ++ (3,0);
\draw[->-] (x2) -- ++ (3,0);
\draw[->-] (x3) -- ++ (3,0);
\draw[->-] (xn) -- ++ (3,0);
%
\coordinate[right=12mm of x1] (xr1);
\coordinate[right=14mm of x2] (xr2);
\coordinate[right=16mm of x3] (xr3);
\coordinate[right=18mm of xn] (xrn);
\coordinate[above left=12mm of x1] (xl1);
\coordinate[above left=14mm of x1] (xl2);
\coordinate[above left=16mm of x1] (xl3);
\coordinate[above left=18mm of x1] (xln);
%
\draw[->] (xr1) |- (xl1) |- (xn.160);
\draw[->] (xr2) |- (xl2) |- (xn);
\draw[->] (xr3) |- (xl3) |- (xn.200);
\draw[->] (xrn) |- (xln) |- (x3.200);
\draw[->] (xl1 |- x2.160) -- (x2.160);
\draw[->] (xl1 |- x3) -- (x3);
\draw[->] (xl2 |- x1.160) -- (x1.160);
\draw[->] (xl2 |- x3.160) -- (x3.160);
\draw[->] (xl3 |- x1) -- (x1);
\draw[->] (xl3 |- x2) -- (x2);
\draw[->] (xln |- x1.210) -- (x1.210);
\draw[->] (xln |- x2.210) -- (x2.210);
\end{tikzpicture}
\end{document}