You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
2.0 KiB
45 lines
2.0 KiB
% from this example https://tex.stackexchange.com/questions/305375/how-to-position-labels-at-edges-of-tikz-figures/305391
|
|
|
|
\documentclass{article}
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{arrows,automata,positioning}
|
|
\usepackage{amsmath,amssymb,amsfonts}
|
|
|
|
\begin{document}
|
|
\begin{tikzpicture}[>=stealth',
|
|
shorten > = 3pt,
|
|
node distance = 4cm and 4cm,
|
|
el/.style = {inner sep=2pt, align=left, sloped},
|
|
every label/.append style = {font=\tiny}
|
|
]
|
|
\node (data) [state, label=left:{label:10}] {Data};
|
|
\node (q1) [state,right=of data] {$s_1$};
|
|
\node (q2) [state,below=of q1,
|
|
label=right:{label:20}] {$s_2$};
|
|
\node (q3) [state,below=of data,
|
|
label=left:{label:5}] {$s_3$};
|
|
\path[->]
|
|
(data) edge [in=150,out=90,loop]
|
|
node[el,above] {Runs and re-runs} (data)
|
|
(data) edge [bend right=10] node[el,below] {$a=1$} (q1)
|
|
(q1) edge [bend right=10] node[el,above] {$a=0$} (data)
|
|
(q1) edge [bend right=10] node[el,below] {$a=2$} (q2)
|
|
(q2) edge [bend left=-10] node[el,below] {$a=1$} (q1)
|
|
(data) edge [bend right=10] node[el,below] {$a=3$} (q3)
|
|
(q3) edge [bend left=-10] node[el,below] {$a=0$} (data)
|
|
(data) edge [bend left= 10] node[el,above,pos=0.8] {$a=2$} (q2)
|
|
(q2) edge [bend left= 10] node[el,below,pos=0.8] {$a=0$} (data)
|
|
(q1) edge [bend left= 10] node[el,above,pos=0.75] {$a=3$} (q3)
|
|
(q2) edge [bend left= 10] node[el,below] {$a=3$} (q3)
|
|
(q1) edge [in=30, out=60,loop]
|
|
node[el,above,rotate=45] {$x=1$\\ $x:=x+1$} (q1)
|
|
(q3) edge [bend left=10] node[el,below,pos=0.75] {$a=1$} (q1)
|
|
(q3) edge [bend right=-10] node[el,above] {$a=2$} (q2)
|
|
(q2) edge [in=-30,out=-60, loop]
|
|
node[el,below,rotate=-45] {$a=2$ \\ $x:=x+1$} (q2)
|
|
(q3) edge [in=-150,out=-120, loop]
|
|
node[el,below,rotate=45] {$a=3$ \\ $x:=x+1$} (q3);
|
|
\end{tikzpicture}
|
|
\end{document}
|
|
|