Use tikzset
instead of tikzstyle
, see here: Should \tikzset or \tikzstyle be used to define TikZ styles?.
Use below=... of
instead of below of=
, this way you can also set the distance between the nodes.
To have all the blocks with the same size use text width=10em
or whatever width you prefer.
If you want to shift the line between the two blocks, you could use xshift=...
.
If you want a big arrow, change line width=...
, and, if you want to shorten it, use shorten >=...
for the tip and shorten <=...
for the tail.
As cfr told you, don't use arrows
but arrows.meta
, you can also change the aspect of the arrow tip with [length=..., width=...]
. I've choosen Triangle
because is similar to the image you posted, but you could choose also Stealth
or Latex
.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning}
\tikzset{%
block/.style = {draw=cyan,rectangle,thick,
minimum height=2em, text width=10em, align=center},
line/.style = {draw=cyan, line width=4pt,
-{Triangle[length=10pt, width=10pt]}, shorten >=2pt, shorten <=2pt},
}
\begin{document}
\begin{tikzpicture}[node distance = 2cm, auto]
\node [block] (init) {initialize model};
\node [block, below=30pt of init] (expert) {expert};
\path [line] (init) -- (expert);
\node [block, below=30pt of expert] (third) {third};
\path [line] ([xshift=-1em]expert.south) -- ([xshift=-1em]third.north);
\node [block, below=30pt of third] (fourth) {fourth};
\path [line] ([xshift=1em]third.south) -- ([xshift=1em]fourth.north);
\end{tikzpicture}
\end{document}

\documentclass{}
etc.)