% ------------------------------------------------------------------------------
% Copyright (c) 2010, 2021 Contributors to the Eclipse Foundation
%
% See the NOTICE file(s) distributed with this work for additional
% information regarding copyright ownership.
%
% This program and the accompanying materials are made available under the terms
% of the MIT License which is available at https://opensource.org/licenses/MIT
%
% SPDX-License-Identifier: MIT
% ------------------------------------------------------------------------------
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim}

\usepackage[paperwidth=40in, paperheight=20in]{geometry}

\usetikzlibrary{arrows, automata, positioning, shapes.geometric}
\begin{document}
\pagestyle{empty}

\definecolor{se-blue}{HTML}{D0D5FF}

\newcommand{\state}[2]{\begin{tabular}{@{}c@{}}#1\\#2\end{tabular}}

\begin{tikzpicture}[
  ->,>=stealth',auto,node distance=2.5cm,thick,
  every node/.style={font=\sffamily\small},
  every state/.style={draw=se-blue,thick,top color=white,ellipse,
                      bottom color=se-blue!75,initial text=},
  accepting/.style={accepting by arrow,accepting text=\ldots},
  every edge/.style={draw=black!50}]

  \node[state, initial]   (s01) [            ] {0/-1};
  \node[state]            (s02) [right of=s01] {1/-1};
  \node[state]            (s03) [right of=s02] {2/-1};
  \node[state]            (s04) [right of=s03] {3/-1};
  \node[state]            (s05) [right of=s04] {4/-1};
  \node[state]            (s06) [right of=s05] {0/4};
  \node[state]            (s07) [right of=s06] {1/5};
  \node[state]            (s08) [right of=s07] {2/6};
  \node[state]            (s09) [right of=s08] {3/7};
  \node[state]            (s10) [right of=s09] {4/7};

  \path[every node/.style={font=\sffamily\normalsize,outer sep=0pt}]
    (s01) edge[             ] node[                   ] {move   } (s02)
    (s02) edge[             ] node[                   ] {move   } (s03)
    (s03) edge[             ] node[                   ] {move   } (s04)
    (s04) edge[             ] node[                   ] {move   } (s05)
    (s05) edge[             ] node[                   ] {exit1  } (s06)
    (s06) edge[             ] node[                   ] {move   } (s07)
    (s07) edge[             ] node[                   ] {move   } (s08)
    (s08) edge[             ] node[                   ] {move   } (s09)
    (s09) edge[             ] node[                   ] {move   } (s10)

    (s05) edge[loop below   ] node[                   ] {move   } (s05)
    (s10) edge[loop below   ] node[                   ] {move   } (s10)

    (s09) edge[bend right   ] node[sloped,anchor=south] {exit2  } (s04)
    (s10) edge[bend right   ] node[sloped,anchor=south] {exit2  } (s05)
  ;

\end{tikzpicture}
\end{document}
