\documentclass[tikz,border=5pt]{standalone}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[fill,circle,inner sep=2pt, label=west:$n_s$] (0) at (0,0.5) {};
\node[fill,circle,inner sep=2pt, label=east:$\tilde n_s$] (1) at (10,0.5) {};
\foreach \i in {1,...,9}
{
\foreach \l [evaluate={\y = \l/2}] in {0,2}
{
\node[fill,circle,inner sep=2pt] (\l\i) at (\i,\y) {};
}
}
\node at (0.5,-0.2) {$n_{l_2,0}$};
\node at (0.5,1.2) {$n_{l_1,0}$};
\node at (9.65,-0.2) {$n_{l_2,|\mathcal{I}|}$};
\node at (9.65,1.1) {$n_{l_1,|\mathcal{I}|}$};
\foreach \i [evaluate={\j = int(\i+1)}] in {1,2,3,4,6,7,8}
{
\draw[->,line width=0.5pt] (0\i) to (2\j);
}
\foreach \i [evaluate={\j = int(\i+1)}] in {1,3,4,...,8}
{
\draw[->,line width=0.5pt] (2\i) to (0\j);
}
\foreach \i [evaluate={\j = int(\i+1)}] in {1,...,6}
{
\draw[->,line width=0.5pt] (2\i) to (2\j);
}
\foreach \i [evaluate={\j = int(\i+1)}, evaluate={\x = \i + 0.5}] in {2,3}
{
\draw[->,line width=0.5pt, bend left = 90, looseness = 1.5] (2\i) to (2\j) node [fill=white, inner sep=1pt] at (\x,1.5) {\scriptsize ${\uparrow}r_1$};
}
\foreach \i [evaluate={\j = int(\i+1)}, evaluate={\x = \i + 0.5}] in {1,2,7,8}
{
\draw[->,line width=0.5pt, bend right = 90, looseness = 1.5] (0\i) to (0\j) node [fill=white, inner sep=1pt] at (\x,-0.55) {\scriptsize ${\downarrow}r_1$};
}
\foreach \i [evaluate={\j = int(\i+1)}, evaluate={\x = \i + 0.5}] in {5,6}
{
\draw[->,line width=0.5pt, bend right = 90, looseness = 1.5] (0\i) to (0\j) node [fill=white, inner sep=1pt] at (\x,-0.55) {\scriptsize ${\uparrow}r_2$};
}
\foreach \i [evaluate={\j = int(\i+1)}, evaluate={\x = \i + 0.5}] in {4,5}
{
\draw[->,line width=0.5pt, bend left = 90, looseness = 1.5] (2\i) to (2\j) node [fill=white, inner sep=1pt] at (\x,1.5) {\scriptsize ${\downarrow}r_2$};
}
\draw[line width=0.5mm, orange, ->] (0) to (21);
\draw[->,line width=0.5mm, bend left = 90, looseness = 1.5, orange] (21) to (22) node [fill=white, inner sep=1pt] at (1.5,1.5) {\scriptsize ${\uparrow}r_1$};
\draw[line width=0.5mm, orange, ->] (22) to (03);
\draw[->,line width=0.5mm, bend right = 90, looseness = 1.5, orange] (03) to (04) node [fill=white, inner sep=1pt] at (3.5,-0.55) {\scriptsize ${\downarrow}r_1$};
\draw[line width=0.5mm, orange, ->] (04) to (05);
\draw[line width=0.5mm, orange, ->] (05) to (06);
\draw[line width=0.5mm, orange, ->] (06) to (07);
\draw[line width=0.5mm, orange, ->] (07) to (08);
\draw[line width=0.5mm, orange, ->] (08) to (09);
\draw[line width=0.5mm, orange, ->] (09) to (1);
\draw[line width=0.5mm, cyan, ->] (0) to (01);
\draw[line width=0.5mm, cyan, ->] (01) to (02);
\draw[line width=0.5mm, cyan, ->] (02) to (03);
\draw[line width=0.5mm, cyan, ->] (03) to (04);
\draw[->,line width=0.5mm, bend right = 90, looseness = 1.5, cyan] (04) to (05) node [fill=white, inner sep=1pt] at (4.5,-0.55) {\scriptsize ${\uparrow}r_2$};
\draw[line width=0.5mm, cyan, ->] (05) to (26);
\draw[->,line width=0.5mm, bend left = 90, looseness = 1.5, cyan] (26) to (27) node [fill=white, inner sep=1pt] at (6.5,1.5) {\scriptsize ${\downarrow}r_2$};
\draw[line width=0.5mm, cyan, ->] (27) to (28);
\draw[line width=0.5mm, cyan, ->] (28) to (29);
\draw[line width=0.5mm, cyan, ->] (29) to (1);
\end{tikzpicture}
\end{document}