After incorporating the suggestions from TikZ experts, I have achieved the following:
I have used anchors available on the nodes. But the arrows are not merged. I have consulted answers like: Merge arrows with TikZ, but they are not helping me.
How do merge the arrows like this:
My code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{squarenode/.style = {
shape = rectangle,
fill = gray!50,
draw = black,
thick,
minimum height = 1cm,
minimum width = 1cm
}}
\tikzset{circlenode/.style = {
shape = circle,
fill = blue!20,
draw = blue,
thick,
minimum size = 1cm
}}
\tikzset{help lines/.style=very thin}
\tikzset{My Grid/.style={help lines,color=blue!50}}
\begin{document}
\begin{tikzpicture}
%\draw[My Grid] (-5,-5) grid (15,15);
\node (r1) at (-4,4) [squarenode] {r1};
\node[right=4cm of r1] (r2) [squarenode] {r2};
\node[below=3cm of r1] (r3) [squarenode] {r3};
\node[right=4cm of r3] (r4) [squarenode] {r4};
\node[right=1.5cm of r1] (s2) [circlenode] {s2};
\node[above=1cm of s2] (s1) [circlenode] {s1};
\node[below=1cm of s2] (s3) [circlenode] {s3};
\node[right=1.5cm of r3] (s4) [circlenode] {s4};
\node[below=1cm of s4] (s5) [circlenode] {s5};
\draw[fill=black] (s1.center) circle [radius=0.1cm];
\draw[fill=black] (s5.center) circle [radius=0.1cm];
\draw[->] (r1) -- (s2);
\draw[->] (s2) -- (r2);
\draw[->] (r3) -- (s4);
\draw[->] (s4) -- (r4);
\draw[->] (s1) to [out=180,in=90] (r1);
\draw[->] (r1) to [bend right=45] (s3);
\draw[->] (s3) to [bend right=45] (r2);
\draw[->] (r2) to [bend right=45] node[auto,swap] {2} (s1);
\draw[->] (r3) to [out=90,in=180] (s3);
\end{tikzpicture}
\end{document}




stealtharrow – AndréC Mar 04 '19 at 09:03