State Transition Diagram

Can someone please provide me a starting point to draw a diagram like this. I have searched on the web, but couldn't able to find some appropriate link. Regards

• inside a tikzpicture environment \draw[->] (x0,y0)--(x1,y1); gives the arrows from point to point. The circles can be drawn like \draw[fill=gray] (Xcenter,Ycenter) circle {15pt} where 15pt is the radius. The math at a point x,y can be placed there by the command \node at (x,y) {$BM(t)$};. You have all you need. Just give a MWE and we can correct any mistake. Commented Aug 29, 2017 at 21:26
• the points are can start from any number... Start from (0,0) by putting a circle and play around by adding... circles or math. Leave the arrows for the end. Commented Aug 29, 2017 at 21:29

for exercise ...

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, chains, quotes}

\begin{document}
\begin{tikzpicture}[
> = Triangle,
node distance = 8mm and 24mm,
start chain = going below,
C/.style = {shape=circle, draw,
fill=blue!60!gray!30!white,
inner sep=0pt, outer sep=0pt, minimum size=6pt,
node contents={},
},
every edge quotes/.style = {inner sep=2pt, font=\footnotesize, sloped,anchor=south}
]
\foreach \i in {1,...,4}
{
\ifnum\i=1
\node (n1\i)    [C,on chain,label=left:$\mathrm{PM}(t)$];
\node (n2\i)    [C,right=of n11,
label=right:{$\mathrm{PM}(t+1) =\max\bigl(\mathrm{BM}(t), \mathrm{BM}(T)\bigr)$}];
\else
\node (n1\i)    [C,on chain];
\node (n2\i)    [C,right=of n1\i];
\fi
}
\draw   (n11) edge[->,"$\mathrm{BM}(t)$"]   (n21)
(n13) edge[->,"$\mathrm{BM}(t)$"]   (n21);
\end{tikzpicture}
\end{document}

• Ver nice. Is there any reason why the dots are not vertically aligned? Commented Aug 30, 2017 at 11:30
• ups, i didn't notice this before. seems to be to simplified solution. I will investigated what is going on. thank you to pointed me to this. Commented Aug 30, 2017 at 11:35
• @Bernard, i find the cause: wrong use of chains. now corrected. Commented Aug 30, 2017 at 11:40
• thanks for the design, I want to write 0, 1, 2, 3 in front of all left nodes, how can I proceed? Commented Sep 3, 2017 at 16:04
• in nodes? then circle had to be bigger and slightly redesigned (omitted node contents={} and to node adds content like \node (n1\i) [C,on chain] {\j}; where \j is new count. if this is the case, I will add addendum to answer. Commented Sep 3, 2017 at 17:29

The pstricks way:

\documentclass{article}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}

\begin{document}

$\everypsbox{\scriptstyle}% \begin{psmatrix}[emnode=dot, rowsep=0.6cm, dotsize=5pt] %%% Matrix nodes & & \\ & & \\ & & \\ & & %%% Arrows & labels \psset{arrows=->, arrowinset=0.1, arrowsize=3pt, nodesep=0pt, shortput=nab, labelsep=1pt} \ncline{1,1}{1,2}^{BM(t)} \ncline{3,1}{1,2}^[nrot=:U]{BM(t)} \psset{labelsep=1.25em} \everypsbox{\textstyle} \nput{180}{1,1}{PM(t)} \nput{0}{1,2}{PM(t + 1)= \max\bigl(BM(t),BM(T)\bigr)} \end{psmatrix}$%

\end{document}


• Thanks alot for your design, I'm getting that error while compiling above: ! Package auto-pst-pdf Error: "shell escape" (or "write18") is not enabled: auto-pst-pdf will not work! Commented Aug 30, 2017 at 11:02
• @EngrAli: I'm often too lazy to add a word of explanation: pdflatex cannot do the computations required by postscript (because the pdf format, which is a subset of postscript, has not computing engine). So it has to delegate the making of the image, which is then converted to pdf, cropped, and imported back in the file. This requires you add the --enable-write18 switch to the compiler (under MiKTeX), or -shell-escape (TeX Live, MacTeX). Alternatively, you can remove loading auto-pst-pdf and either follow the traditional latex ->dvips -> pstopdf way, or compile with xelatex. Commented Aug 30, 2017 at 11:19