\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{units}
\usepackage{ifthen}
\usepackage{tikz}
\usetikzlibrary{calc} 

\begin{document}
\tikzstyle{vertex}=[draw,black,fill=blue,circle,minimum size=10pt,inner sep=0pt]
\tikzstyle{edge}=[very thick]
\begin{tikzpicture}[scale=2.5]
    \node (a)[vertex,fill=gray!10,align=left] at (0,0) {first};
    \node (b)[vertex,fill=gray!10,align=left] at (1,0) {middle};
    \node (c)[vertex,fill=gray!10,align=left] at (2,0)  {last};

    \node (a1) at (0,-1)  {$(x(t), y(t))$};
    \node (b1) at (1,-1)  {$(x(t), y(t))$};
    \node (c1) at (2,-1)  {$(x(t), y(t))$};

    \path[thick,->] (a)    edge node [anchor=center,above,sloped] {$p_{1,2}$} (b);
    \path[thick,->] (b)    edge node [anchor=center,above,sloped] {$p_{2,3}$} (c);
    \path[thick,->] (a)    edge[loop above, looseness=5] node [anchor=center,above,sloped] {$p_1$} (a);
    \path[thick,->] (b)    edge[loop above, looseness=5] node [anchor=center,above,sloped] {$p_2$} (b);
    \path[thick,->] (c)    edge[loop above, looseness=5] node [anchor=center,above,sloped] {$p_3$} (c);

    \path[thick,->] (a)    edge node [anchor=center,above,sloped] {} (a1);
    \path[thick,->] (b)    edge node [anchor=center,above,sloped] {} (b1);
    \path[thick,->] (c)    edge node [anchor=center,above,sloped] {} (c1);
\end{tikzpicture}
\end{document}
