\documentclass[12pt, a4paper] {ncc}
\usepackage[utf8] {inputenc}
\usepackage[T2A]{fontenc}
\usepackage[english, russian] {babel}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{listings,a4wide,longtable,amsmath,amsfonts,graphicx,tikz}
\usepackage{pgfplots}
\usepackage{indentfirst}
\usepackage{bytefield}

\usetikzlibrary{arrows,shapes,snakes,automata,backgrounds,petri}
\tikzstyle{state}=[circle,thick,draw=blue!75,fill=blue!20,minimum size=6mm]
\tikzstyle{trans}=[rectangle,thick,draw=red!30,fill=lightgray!10]

\begin{document}
\frenchspacing
\pagestyle{empty}
% ============================ ТИТУЛЬНЫЙ ЛИСТ ================================
\begin{center}
     Национальный исследовательский университет информационных технологий,
                              механики и оптики\\
                 Кафедра информатики и прикладной математики\\
                                Теория автоматов
\end{center}
\vspace{\stretch{2}}
\begin{center}
                               Домашняя работа №1\\
                                {\sl Вариант 11}
\end{center}
\vspace{\stretch{3}}
\begin{flushright}
                                          Работу выполнил студент группы P3315\\
                                                         {\it Халанский Дмитрий}
\end{flushright}
\vspace{\stretch{4}}
\begin{center}
                                      2016
\end{center}
\newpage
% ======================== КОНЕЦ ТИТУЛЬНОГО ЛИСТА ============================

% ================================ ОТЧЁТ =====================================
\setcounter{figure}{0}

\section{Цель работы}

Разработать конечные автоматы Мура и Мили для заданной модели.

\section{Исходные данные}

\subsection{Вариант 11}

\begin{table}[ht]
        \begin{center}
                \begin{tabular}{|l|c|c|c|c|c|c|}
                        \hline
                        \bf Число & 1   & 2   & 3   & 4   & 5   & 6   \\
                        \hline
                        \bf Код   & 000 & 001 & 010 & 100 & 101 & 110 \\
                        \hline
                \end{tabular}
        \end{center}
        \caption{Коды символов}
\end{table}

Необходимо разработать конечный автомат, принимающий на вход неограниченную
последовательность символов 0 и 1 и формирующий выходной сигнал в соответствии
с полученной цифрой. Предусмотреть дополнительный выходной сигнал, который
равен нулю, если буква ещё не принята, и единица~--- если ввод цифры прошёл
удачно. В случае получения некорректного кода автомат должен выдать выходной
сигнал, соответствующий ошибке, и перейти в начальное состояние.

\section{Ход работы}

\begin{table}[ht]
        \begin{center}
                \begin{tabular}{|c|c|c|c|}
                        \hline
                        \bf Название & Готовность & Результат
                        & \bf Назначение \\
                        \hline
                        $y_e$ & 0 & 1   & Произошла ошибка при вводе \\
                        $y_0$ & 0 & 0   & Ещё не осуществлён ввод \\
                        $y_n$ & 1 & $n$ & Введено число $n$ \\
                        \hline
                \end{tabular}
        \end{center}
        \caption{Выходные сигналы}
\end{table}

\begin{table}[ht]
        \begin{center}
                \begin{tabular}{|c|c|}
                        \hline
                        \bf Состояние & \bf Принятые символы \\
                        \hline
                        $S_0$ & $\emptyset$ \\
                        $S_1$ & \tt 0 \\
                        $S_2$ & \tt 00 \\
                        $S_3$ & \tt 01 \\
                        $S_4$ & \tt 1 \\
                        $S_5$ & \tt 10 \\
                        $S_6$ & \tt 11 \\
                        \hline
                \end{tabular}
        \end{center}
        \caption{Состояния КА Мили}
\end{table}

\begin{figure}[ht]
\begin{center}
\begin{tikzpicture}[->,semithick,node distance=2.8cm]

\node [state] (s0) {$S_0$};
\node [state] (s1) [left  of=s0] {$S_1$};
\node [state] (s2) [above of=s1] {$S_2$};
\node [state] (s3) [below of=s1] {$S_3$};
\node [state] (s4) [right of=s0] {$S_4$};
\node [state] (s5) [above of=s4] {$S_5$};
\node [state] (s6) [below of=s4] {$S_6$};

\path
      (s0) edge              node[trans] {\scriptsize $(0, y_0)$} (s1)
      (s1) edge              node[trans] {\scriptsize $(0, y_0)$} (s2)
      (s1) edge              node[trans] {\scriptsize $(1, y_0)$} (s3)
      (s2) edge [bend left]  node[trans] {\scriptsize $(0, y_1)$} (s0)
      (s2) edge [bend right] node[trans] {\scriptsize $(1, y_2)$} (s0)
      (s3) edge [bend left]  node[trans] {\scriptsize $(0, y_3)$} (s0)
      (s3) edge [bend right] node[trans] {\scriptsize $(1, y_e)$} (s0)
      (s0) edge              node[trans] {\scriptsize $(1, y_0)$} (s4)
      (s4) edge              node[trans] {\scriptsize $(0, y_0)$} (s5)
      (s4) edge              node[trans] {\scriptsize $(1, y_0)$} (s6)
      (s5) edge [bend left]  node[trans] {\scriptsize $(0, y_4)$} (s0)
      (s5) edge [bend right] node[trans] {\scriptsize $(1, y_5)$} (s0)
      (s6) edge [bend left]  node[trans] {\scriptsize $(0, y_6)$} (s0)
      (s6) edge [bend right] node[trans] {\scriptsize $(1, y_e)$} (s0)
;

\end{tikzpicture}
\end{center}
\caption{Графическое представление КА Мили}
\end{figure}

\begin{table}[ht]
        \begin{center}
                \begin{tabular}{|c|c|c|}
                        \hline
                        \bf Состояние & \bf Описание & \bf Выходной сигнал \\
                        \hline
                        $S_e$    & Ошибка      & $y_e$ \\
                        $S_0$    & $\emptyset$ & $y_0$ \\
                        $S_1$    & \tt 0       & $y_0$ \\
                        $S_2$    & \tt 00      & $y_0$ \\
                        $S_3$    & \tt 01      & $y_0$ \\
                        $S_4$    & \tt 1       & $y_0$ \\
                        $S_5$    & \tt 10      & $y_0$ \\
                        $S_6$    & \tt 11      & $y_0$ \\
                        $S_7$    & \tt 000     & $y_1$ \\
                        $S_8$    & \tt 001     & $y_2$ \\
                        $S_9$    & \tt 010     & $y_3$ \\
                        $S_{10}$ & \tt 100     & $y_4$ \\
                        $S_{11}$ & \tt 101     & $y_5$ \\
                        $S_{12}$ & \tt 110     & $y_6$ \\
                        \hline
                \end{tabular}
        \end{center}
        \caption{Состояния КА Мура}
\end{table}

\begin{figure}[ht]
\begin{center}
\begin{tikzpicture}[->,semithick,node distance=2.8cm]

\node [state] (s0)                       {$S_0$   };
\node [state] (s1)  [left        of=s0 ] {$S_1$   };
\node [state] (s2)  [above left  of=s1 ] {$S_2$   };
\node [state] (s3)  [below left  of=s1 ] {$S_3$   };
\node [state] (s4)  [right       of=s0 ] {$S_4$   };
\node [state] (s5)  [above right of=s4 ] {$S_5$   };
\node [state] (s6)  [below right of=s4 ] {$S_6$   };
\node [state] (s7)  [above       of=s2 ] {$S_7$   };
\node [state] (s8)  [right       of=s7 ] {$S_8$   };
\node [state] (s9)  [below       of=s3 ] {$S_9$   };
\node [state] (s10) [above       of=s5 ] {$S_{10}$};
\node [state] (s11) [left        of=s10] {$S_{11}$};
\node [state] (s12) [below       of=s6 ] {$S_{12}$};
\node [state] (se)  [below       of=s0 ] {$S_{e}$};

\foreach \s in {0, e, 7, 8, 9, 10, 11, 12}
{
        \path (s\s) edge node [trans] {\scriptsize $0$} (s1)
              (s\s) edge node [trans] {\scriptsize $1$} (s4);
}

\path
      (s1) edge node[trans] {\scriptsize $0$} (s2)
      (s1) edge node[trans] {\scriptsize $1$} (s3)
      (s2) edge node[trans] {\scriptsize $0$} (s7)
      (s2) edge node[trans] {\scriptsize $1$} (s8)
      (s5) edge node[trans] {\scriptsize $0$} (s10)
      (s5) edge node[trans] {\scriptsize $1$} (s11)
      (s4) edge node[trans] {\scriptsize $0$} (s5)
      (s4) edge node[trans] {\scriptsize $1$} (s6)
      (s3) edge node[trans] {\scriptsize $0$} (s9)
      (s6) edge node[trans] {\scriptsize $0$} (s12)
      (s3) edge node[trans] {\scriptsize $1$} (se)
      (s6) edge node[trans] {\scriptsize $1$} (se)
;

\end{tikzpicture}
\end{center}
\caption{Графическое представление КА Мура}
\end{figure}

\end{document}
