Wie zeichnet man ein so kompliziertes Markow-Ketten-Diagramm?

Wie zeichnet man ein so kompliziertes Markow-Ketten-Diagramm?

Ich arbeite an einem Aufsatz, für den ich ein Diagramm wie das folgende Bild brauche. Es scheint aber sehr kompliziert zu sein und ich habe keine Ahnung, wie ich es einfach zeichnen soll. Mein Betreuer hat mir gesagt, dass man Inkscape oder xfig verwenden kann, obwohl ich mit diesen beiden Tools nicht vertraut bin. Der Abgabetermin für meinen Aufsatz ist bald, also muss ich meinen Aufsatzentwurf bald fertigstellen. Ich bin Ihnen für Ihre Hilfe bei meiner Zeichnung wirklich dankbar.

Bildbeschreibung hier eingeben

Antwort1

Hier ist ein Trick, der Ihnen helfen kann, Ihr Ziel zu erreichen. Verwenden Sie ein , matrixdas automatisch ausgefüllt wird. Dies ist die große Matrix, in der überall, wo Sie ein einfügen, |[o]|automatisch ein Knoten mit dem richtigen Inhalt ausgefüllt wird. Dies ist möglich, weil TikZ verfolgt die Zeilen- und Spaltenindizes, daher können wir verwenden

execute at begin node={\the\numexpr17-\pgfmatrixcurrentrow},

um die entsprechende Nummer einzutragen.

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[circ/.style={circle,draw,text width=1.2em,align=center,inner
  sep=1pt,font=\sffamily},
  o/.style={circ,
  execute at begin node={\the\numexpr17-\pgfmatrixcurrentrow},
  alias=o-\the\pgfmatrixcurrentcolumn-\the\numexpr17-\pgfmatrixcurrentrow},
  >=latex]
\matrix[matrix of nodes,column sep=3em,row sep=1em,
column 5/.style={nodes={thick}}] (big mat) {
|[o]| & |[o]| & |[o]| & |[o]| &  \\
 & |[o]| & |[o]| & |[o]| &  \\
 & & & & \\
 & & & & \\
 & & & & \\
 & & & & \\
 & |[o]| & |[o]| & |[o]| &  \\
 & |[o]| & |[o]| & |[o]| &  \\
|[o]| & |[o]| & |[o]| & |[o]| &  |[o]|\\
 &  & |[o]| & |[o]| &  |[o]|\\
 &  & |[o]| & |[o]| &  |[o]|\\
 &  & |[o]| & |[o]| &  |[o]|\\
|[o]| & |[o]| &  & |[o]| &  |[o]|\\
 &  &  & |[o]| &  |[o]|\\
|[o,yshift=-2em]| & |[o,yshift=-2em]| & |[o]|  & |[o]| &  |[o]|\\
& |[o,yshift=-2em]| & |[o]|  & |[o]| & \\
$W_t=16$ & $W_t=8$ & $W_t=4$ & $W_t=2$ &  \\
};
\path ([yshift=2.5em,xshift=2em]big mat.south east) 
    node[matrix of nodes,nodes={circ,thick},column sep=1em]
 (small mat) {0 & 0 & 0 & 0 & 0 & 0\\};
\foreach \X in {2,...,8} 
 {\draw[->] (o-5-\X) -- (o-4-\X);}
\foreach \X in {1,...,6} 
{\draw[->] (small mat-1-\X) to[out=90,in=0] (o-4-1.north);} 
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Wie Sie sehen, sind die meisten Knoten des Diagramms vorhanden, ohne dass eine Nummer angegeben werden muss. Fügen Sie einfach |[o]|hier und da einige ein.

Um Ihre Aufgabe abzuschließen, möchten Sie wahrscheinlich die Bibliothek laden backgroundsund die Verbindungen auf der Hintergrundebene zeichnen (und fill=whitezur Definition von hinzufügen circ). Ich habe nicht einmal versucht, dies zu starten. Die Antwort besteht lediglich darin, den Trick zu erwähnen, um die meisten Knoten automatisch hinzuzufügen.

Antwort2

Tikz kann solche komplizierten Diagramme erstellen

Einfaches Beispiel aus den Dokumenten:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata,positioning}
\begin{document}
\begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto]
  \draw[help lines] (0,0) grid (3,2);


\node[state,initial] (q_0) {$q_0$}; 
\node[state] (q_1) [above right=of q_0] {$q_1$}; 
\node[state] (q_2) [below right=of q_0] {$q_2$};
\node[state,accepting](q_3) [below right=of q_1] {$q_3$};

\path[->] (q_0) edge node {0} (q_1)
                edge node [swap] {1} (q_2)
          (q_1) edge node        {1} (q_3)
                edge [loop above] node        {0} ()
          (q_2) edge              node [swap] {0} (q_3)
                edge [loop below] node {1} (); 
\end{tikzpicture}

\end{document}

verwandte Informationen