\usepackage{tikz}
\usetikzlibrary{automata, positioning, arrows}
La creación de un diagrama se describe a continuación.
Estados
\node[state,opciones,posición] (nombre) {etiqueta de texto};
Las opciones para el tipo de estado contexto de las FSM son:
- initial : Estado inicial
- accepting: Estado de aceptación
- Vacío para un estado genérico
- of= estado : right, left, above, below (o una combinación, ejem: above right ). Ejemplo:
\node[state, right of=q1] (q2) {$q_2$};
- xshift=x, yshift=y : Da control manual de la posición relativa a un estado. Ejemplo:
\node[state, right of=q1, xshift=1cm] (q2) {$q_2$};
- at (x,y) : Coloca la figura del estado en una posición especifica en la figura. Ejemplo:
\node[state] (q) at (2, 3) {$q$};
Flechas de transición
\draw (nodo origen) edge[opciones] node{etiqueta de flecha} (nodo destino);
- El nodo de origen debe llevar el nombre y no la etiqueta del estado.
- Las flechas por defecto rectas. Se pueden curvar con la opción bend left/right.
- Los loops se crean con la opción loop above/below/left/right.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[10pt,a4paper]{report} | |
\usepackage[spanish]{babel} | |
\deactivatequoting | |
\usepackage[utf8]{inputenc} | |
\usepackage{amsmath} | |
\usepackage{amsfonts} | |
\usepackage{amssymb} | |
\usepackage{tikz} | |
\usetikzlibrary{automata,positioning,arrows} | |
\begin{document} | |
\begin{figure}[ht] | |
\centering | |
\begin{tikzpicture}[->, %Líneas direccionadas | |
>=stealth', %Puntas de flecha rellenas | |
shorten >=1pt, | |
auto, | |
node distance=2cm,] %distancia mínima entre nodos | |
\node[state, initial] (q0) {$q_0$}; | |
\node[state, right of=q0] (q1) {$q_1$}; | |
\node[state, accepting] at (4, 1) (q2) {$q_2$}; | |
\draw (q0) edge[loop above] node{0} (q0) | |
(q0) edge[above] node{1} (q1) | |
(q1) edge[loop above] node{1} (q1) | |
(q1) edge[bend left, above] node{0} (q2) | |
(q2) edge[bend left, below] node{0, 1} (q1); | |
\end{tikzpicture} | |
\caption{Descripción de la FSM} | |
\end{figure} | |
\end{document} |