xypic bounding box

If you add \fbox{...} around the \xymatrix construction, you'll see that the bounding box is determined by the nodes “a, b, c, d, begin, end”.

enter image description here

(I made a few changes: first of all I added the cmtip option to xy that makes for decent arrow tips, then typed \txt{begin} and \txt{end} for the textual nodes.)

Curved arrows are never taken into consideration by Xy-pic for determining the bounding box. You can adjust it by hand with a rule:

\documentclass{article}
\usepackage{lipsum}
\usepackage[all,cmtip]{xy}

\begin{document}

\lipsum[1]

\begin{figure}[htp]
\[
\fboxsep=0pt
\fbox{%
\vrule height 7ex depth 24.5ex width 0pt
\xymatrix{
 & a \ar@(ul,ur) \ar@/^/[rr] \ar@/^/[dd] \ar@/^/[ddrr] \ar@/^4pc/[rrrd]
 &
 & b \ar@(ul,ur) \ar@/^/[ll] \ar@/^/[dd] \ar@/^/[ddll] \ar[dr]
 \\
 \txt{begin} \ar[ur] \ar[dr] \ar@/^4pc/[urrr]\ar@/_4pc/[drrr]
 &
 &
 &
 & \txt{end}
 \\
 & c \ar@(dr,dl) \ar@/^/[rr] \ar@/^/[uu] \ar@/^/[uurr] \ar@/_4pc/[rrru]
 &
 & d \ar@(dr,dl) \ar@/^/[ll] \ar@/^/[uu] \ar@/^/[uull] \ar[ur]
}}
\]
\caption{Exemplo de uma cadeia de Markov\label{mkv1}}
\end{figure}

\lipsum[1]
\end{document}

enter image description here

Adjust the height and depth until satisfied and then remove the \fbox part:

\documentclass{article}
\usepackage{lipsum}
\usepackage[all,cmtip]{xy}

\begin{document}

\lipsum[1]

\begin{figure}[htp]
\[
\vrule height 7ex depth 24.5ex width 0pt
\xymatrix{
 & a \ar@(ul,ur) \ar@/^/[rr] \ar@/^/[dd] \ar@/^/[ddrr] \ar@/^4pc/[rrrd]
 &
 & b \ar@(ul,ur) \ar@/^/[ll] \ar@/^/[dd] \ar@/^/[ddll] \ar[dr]
 \\
 \txt{begin} \ar[ur] \ar[dr] \ar@/^4pc/[urrr]\ar@/_4pc/[drrr]
 &
 &
 &
 & \txt{end}
 \\
 & c \ar@(dr,dl) \ar@/^/[rr] \ar@/^/[uu] \ar@/^/[uurr] \ar@/_4pc/[rrru]
 &
 & d \ar@(dr,dl) \ar@/^/[ll] \ar@/^/[uu] \ar@/^/[uull] \ar[ur]
}
\]
\caption{Exemplo de uma cadeia de Markov\label{mkv1}}
\end{figure}

\lipsum[1]
\end{document}

enter image description here


Too long for a comment. Here is a version in tikz. This has the oposite problem, here the bounding box is actually too large.

\documentclass{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
  {} & a\mathstrut
  \arrow[loop above]
  \ar[dd,bend left=10]
  \ar[rr,bend left=10]
  \ar[rrdd,bend left=10]
  \ar[rrrd,out=45,in=95,looseness=1.5]
 & 
 & b\mathstrut
 \arrow[loop above]
  \ar[dd,bend left=10]
  \ar[ll,bend left=10]
  \ar[lldd,bend left=10]
  \ar[rd]
 \\
 begin\mathstrut
 \ar[ru]
 \ar[rd]
 \arrow[rrru,out=85,in=135,looseness=1.5]
 \ar[rrrd,out=-85,in=-135,looseness=1.5] 
 & 
 & 
 & 
 & end\mathstrut
 \\
 {} & c\mathstrut
 \ar[uu,bend left=10]
 \ar[rr,bend left=10]
 \ar[uurr,bend left=10]
 \arrow[loop below]
 \ar[rrru,out=-45,in=-95,looseness=1.5]
 & 
 & d\mathstrut
 \ar[uu,bend left=10]
 \ar[ll,bend left=10]
 \ar[uull,bend left=10]
 \arrow[loop below]
 \ar[ru]
  \\
\end{tikzcd}
\end{document}

enter image description here

You can easily play with the arrow heads

\usetikzlibrary{arrows,arrows.meta}
\tikzcdset{
  arrow style=tikz,
  diagrams={>=Latex[round]}
}

Credit: https://tex.stackexchange.com/a/361751/3929