Graphs_dart/tex/example-work.tex

562 lines
22 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[bachelor, och, coursework]{SCWorks}
% параметр - тип обучения - одно из значений:
% spec - специальность
% bachelor - бакалавриат (по умолчанию)
% master - магистратура
% параметр - форма обучения - одно из значений:
% och - очное (по умолчанию)
% zaoch - заочное
% параметр - тип работы - одно из значений:
% referat - реферат
% coursework - курсовая работа (по умолчанию)
% diploma - дипломная работа
% pract - отчет по практике
% pract - отчет о научно-исследовательской работе
% autoref - автореферат выпускной работы
% assignment - задание на выпускную квалификационную работу
% review - отзыв руководителя
% critique - рецензия на выпускную работу
% параметр - включение шрифта
% times - включение шрифта Times New Roman (если установлен)
% по умолчанию выключен
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage{graphicx}
\usepackage{minted}
\usepackage{spverbatim}
\usepackage{float}
\usepackage[sort,compress]{cite}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{fancyvrb}
\usepackage{longtable}
\usepackage{array}
\usepackage[english,russian]{babel}
\usepackage[colorlinks=true]{hyperref}
\newcommand{\eqdef}{\stackrel {\rm def}{=}}
\newtheorem{lem}{Лемма}
\begin{document}
% Кафедра (в родительном падеже)
\chair{математической кибернетики и компьютерных наук}
% Тема работы
\title{Создание приложения для отрисовки графов и алгоритмов для работы с ними}
% Курс
\course{2}
% Группа
\group{211}
% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ")
%\department{факультета КНиИТ}
% Специальность/направление код - наименование
\napravlenie{02.03.02 "--- Фундаментальная информатика и информационные технологии}
%\napravlenie{02.03.01 "--- Математическое обеспечение и администрирование информационных систем}
%\napravlenie{09.03.01 "--- Информатика и вычислительная техника}
%\napravlenie{09.03.04 "--- Программная инженерия}
%\napravlenie{10.05.01 "--- Компьютерная безопасность}
% Для студентки. Для работы студента следующая команда не нужна.
%\studenttitle{Студентки}
% Фамилия, имя, отчество в родительном падеже
\author{Морозова Андрея Денисовича}
% Заведующий кафедрой
\chtitle{к.\,ф.-м.\,н., доцент} % степень, звание
\chname{А.\,С.\,Иванов}
%Научный руководитель (для реферата преподаватель проверяющий работу)
\satitle{ст. преподаватель} %должность, степень, звание
\saname{М.\,И.\,Сафрончик}
% Семестр (только для практики, для остальных
% типов работ не используется)
\term{2}
% Год выполнения отчета
\date{2021}
\maketitle
% Включение нумерации рисунков, формул и таблиц по разделам
% (по умолчанию - нумерация сквозная)
% (допускается оба вида нумерации)
%\secNumbering
\tableofcontents
% Раздел "Обозначения и сокращения". Может отсутствовать в работе
%\abbreviations
%\begin{description}
% \item SQL "--- англ. structured query language — «язык структурированных запросов;
% \item $\det B$ "--- определитель матрицы $B$;
% \item ИНС "--- Искусственная нейронная сеть;
% \item FANN "--- Feedforward Artifitial Neural Network
%\end{description}
% Раздел "Определения". Может отсутствовать в работе
%\definitions
% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе.
% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения"
%\defabbr
% Раздел "Введение"
\intro
Целью настоящей работы является изучение работы фреймворка для кроссплатформенной разработки "Flutter", и разработка приложения для создания графов и взаимодействия с ними.
Поставлены задачи:
\begin{itemize}
\item разбор алгоритмов на графах
\item разбор работы с Flutter
\item построение приложения
\end{itemize}
\section{Введение}
\subsection{Графы}
Граф --- математический объект, состоящий из двух множеств. Одно из
них --- любое конечное множество, его элементы называются \textit{вершинами}
графа. Другое множество состоит из пар вершин, эти пары называются
\textit{ребрами} графа.~\cite{IITMMM_2017}
\textbf{Ориентированный граф} определяется как пара \textit{(V, E)}, где \textit{V} --- конечное множество, а \textit{E} --- бинарное отношение на \textit{V}, т.~е. подмножество множества ${V \times V}$. Ориентированный граф для краткости называют \textbf{орграфом}. Множетсво $V$ называют \textbf{множеством вершин графа}, а его элемент называют \textbf{вершиной} графа. Множество $E$ называют \textbf{множеством рёбер}, а его элементы называют \textbf{рёбрами}. Граф может содержать \textbf{рёбра-циклы}, соединяющие вершину с собой. На рисунке~\ref{fig:orgrapf_example} изображен оринетированный граф с множеством вершин \{0, 1, 2, 3, 4\}.~\citenum{Algo_2013}
\begin{figure}[!ht]
\centering
\includegraphics[width=9cm]{./pic/orgraph.png}
\caption{\label{fig:orgrapf_example}
Пример орграфа}
\end{figure}
В \textbf{неориентированном} графе $G = (V, E)$ множество ребер состоит из \textbf{неупорядоченных} пар вершин: парами являются множества $\{u, v\}$, где $u, v \in V$ и $u \neq v$. Для неориентированного графа $\{u, v\}$ и $\{v, u\}$ обозначают одно и то же ребро. Неориентированный граф не может содержать рёбер-циклов, и каждое ребро состоит из двух различных вершин. На рисунке~\ref{fig:grapf_example} изображен неориентированный граф с множеством вершин \{0, 1, 2, 2, 4\}
\begin{figure}[!ht]
\centering
\includegraphics[width=9cm]{./pic/graph.png}
\caption{\label{fig:grapf_example}
Пример неориентированного графа}
\end{figure}
\section{История создания языка SQL}
\subsection{Создатели}
Создателями языка SQL являются Реймонд Боус (англ. Ray Boyce) и Дональд Чемберлин (англ. Donald Chamberlin)
\subsection{Еще элементы математического текста}
Нейрон является составной частью нейронной сети. Он состоит из
элементов трех типов: умножителей (синапсов), сумматора и
нелинейного преобразователя. Синапсы осуществляют связь между
нейронами, умножают входной сигнал на число, характеризующее силу
связи (вес синапса). Сумматор выполняет сложение сигналов,
поступающих по синаптическим связям от других нейронов, и внешних
входных сигналов. Нелинейный преобразователь реализует нелинейную
функцию одного аргумента "--- выхода сумматора. Эта функция
называется функцией активации или передаточной функцией. На рисунке~\ref{neuron} приведено строение одного нейрона.
Нейрон в целом реализует скалярную функцию векторного аргумента.
Математическая модель нейрона:
\[
s = \sum\limits_{i = 1}^n w_i x_i + b,
\]
\[
y = f(s),
\]
где $w_i $ "--- вес синапса; $i = 1,\ldots ,n$; $b$ "--- значение
смещения; $s$ "--- результат суммирования; $x_i $ "--- $i$-тый
компонент входного вектора (входной сигнал), \linebreak $i = 1,\ldots, n$;
$y$ "--- выходной сигнал нейрона; $n$ "--- число входов нейрона;
$f(s)$ "--- нелинейное преобразование (функция активации).
\begin{figure}[ht]
\centering
%\includegraphics{Neuron}
\caption{Нейрон}\label{neuron}
\end{figure}
В качестве функции активации нейронов берут обычно одну из
следующих:
\begin{itemize}
\item пороговая функция активации;
\item экспоненциальная сигмоида;
\item рациональная сигмоида;
\item гиперболический тангенс.
\end{itemize}
Данные функции активации обладают таким важным свойством как
нелинейность. Нелинейность функции активации принципиальна для
построения нейронных сетей. Если бы нейроны были линейными
элементами, то любая последовательность нейронов также производила
бы линейное преобразование и вся нейронная сеть была бы
эквивалентна одному нейрону (или одному слою нейронов в случае
нескольких выходов). Нелинейность разрушает суперпозицию и
приводит к тому, что возможности нейросети существенно выше
возможностей отдельных нейронов.
\subsection{Снова математический текст}
Опишем самую популярную архитектуру
"--- многослойный персептрон с последовательными связями и
сигмоидальной функцией активации (\foreignlanguage{english}{Feedforward Artifitial Neural
Network, FANN}).
В многослойных нейронных сетях с последовательными связями нейроны
делятся на группы с общим входным сигналом "--- слои. Стандартная
сеть состоит из $L$ слоев, пронумерованных слева направо. Каждый
слой содержит совокупность нейронов с едиными входными сигналами.
Внешние входные сигналы подаются на входы нейронов входного слоя
(его часто нумеруют как нулевой), а выходами сети являются
выходные сигналы последнего слоя. Кроме входного и выходного слоев
в многослойной нейронной сети есть один или несколько скрытых
слоев, соединенных последовательно в прямом направлении и не
содержащих связей между элементами внутри слоя и обратных связей
между слоями. Число нейронов в слое может быть любым и не зависит
от количества нейронов в других слоях. Архитектура нейронной сети
прямого распространения сигнала приведена на рисунке~\ref{net1}.
На каждый нейрон первого слоя подаются все элементы внешнего
входного сигнала. Все выходы нейронов $i$-го слоя подаются на
каждый нейрон слоя $i+1$.
Нейроны выполняют взвешенное суммирование элементов входных
сигналов. К сумме прибавляется смещение нейрона. Над результатом
суммирования выполняется нелинейное преобразование "--- функция
активации (передаточная функция). Значение функции активации есть
выход нейрона. Приведем схему многослойного персептрона. Нейроны
представлены кружками, связи между нейронами "--- линиями со
стрелками.
\begin{figure}[ht]
\centering
%\includegraphics{NN-Scheme}
\caption{Архитектура многослойной сети прямого
распространения}\label{net1}
\end{figure}
Функционирование сети выполняется в соответствии с формулами:
\[
s_j^{\left[ k \right]} = \sum\limits_{i = 1}^{N_{k - 1} }
{w_{ji}^{\left[ k \right]} y_i^{\left[ {k - 1} \right]} +
b_j^{[k]} ,\ \ j = 1,\ldots ,N_k ,\ \ k = 1,\ldots ,L;}
\]
\[
y_j^{\left[ k \right]} = f(s_j^{\left[ k \right]} ),\ \ j =
1,\ldots ,N_k ,\ \ k = 1,\ldots ,L-1,
\]
\[
y_j^{\left[ L \right]} = s_j^{\left[ L \right]} ,
\]
где
\begin{itemize}
\item
$y_i^{\left[ {k - 1} \right]}$ "--- выходной сигнал $i$-го нейрона
$(k - 1)$-го слоя; \item $w_{ji}^{\left[ k \right]}$ "--- вес связи
между $j$-м нейроном слоя $(k-1)$ и $i$-м нейроном $k$-го
слоя;
\item
$b_j^{\left[ k \right]}$ "--- значение смещения $j$-го
нейрона $k$-го слоя;
\item
$y = f(s)$ "--- функция активации;
\item
$y_j^{\left[ k \right]}$ "--- выходной сигнал $j$-го
нейрона $k$-го слоя;
\item
$N_k$ "--- число узлов слоя $k$;
\item
$L$ "--- общее число основных слоев;
\item
$n = N_0$ "--- размерность входного вектора;
\item
$m = N_L$ "---
размерность выходного вектора сети.
\end{itemize}
На рисунке~\ref{net2} представлена сеть прямого распространения
сигнала с 5 входами, 3 нейронами в скрытом слое и 2 нейронами в
выходном слое.
\begin{figure}[hb]
\centering
%\includegraphics{NN-Persep}
\caption{Пример нейронной сети}\label{net2}
\end{figure}
\section{Раздел с подразделами}
\subsection{Текст с формулами и леммой}
Обозначим $[y_0,y_1,\ldots,y_p;f]$ разделенную разность порядка $p$ функции $f$ по узлам $y_0<y_1<\ldots<y_p$.
Обозначим $L_pf(x;y_0,y_1,\ldots,y_p)$ интерполяционный полином Ньютона функции $f$ по узлам $y_0,y_1,\ldots,y_p$:
\begin{equation} \label{eq:ex01}
L_pf(x;y_0,y_1,\ldots,y_p)=\sum_{j=0}^p[y_0, \ldots,y_{j};f]
\cdot \prod_{i=0}^{j-1}(x-y_i), \ \ x-y_{-1}\eqdef 1
\end{equation}
\begin{lem} \label{lem:1}
Если $0\leqslant x_0<x_1<\ldots <x_p\leqslant 1$ и
$f\in C[0,1]$ удовлетворяет условиям
\begin{enumerate}
\item
\label{it:1lem1}$f(x)\geqslant 0, \ x\in [0,1]$;
\item
\label{it:2lem1}
$[y_0,\ldots,y_{p+1};f]\geqslant 0$
для всех $y_i \in [0,1], \
i=0,\ldots,p+1,$
\end{enumerate}
тогда
\begin{equation}\label{eq:ex02}
L_pf(x;x_0,\ldots,x_p)\geqslant 0
\end{equation}
для всех $x\in [x_{p-(2k+1)},x_{p-2k}]$,
$k=0,\ldots,\left[p/2\right]$,
$x_{-1} \eqdef -\infty$.
\end{lem}
\begin{proof}
Возьмем $x \in [x_{p-(2k+1)},x_{p-2k}]$,\ \ $k=0,\ldots,\left[p/2
\right]$.
Из условия \ref{lem:1} леммы следует, что
\begin{displaymath}
[x_0,\ldots,x_{p-(2k+1)},x,x_{p-2k},\ldots,x_p;f] \geqslant
0,
\end{displaymath}
т.~е.
\begin{multline}\label{eq:ex03}
\Delta_pf(x;x_0,\ldots,x_p)\eqdef
\\ \eqdef
\begin{vmatrix}
1 & x_0 & x_0^2 & \cdots & x_0^p & f(x_0) \\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\
1 & x_{p-(2k+1)} & x_{p-(2k+1)}^2 & \cdots & x_{p-(2k+1)}^p & f(x_{p-(2k+1)}) \\
1 & x & x^2 & \cdots & x^p & f(x) \\
1 & x_{p-2k} & x_{p-2k}^2 & \cdots & x_{p-2k}^p & f(x_{p-2k}) \\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\
1 & x_p & x_p^2 & \cdots & x_p^p & f(x_p) \\
\end{vmatrix}
\geqslant 0
\end{multline}
Из равенства
\begin{equation*}
\Delta_p f(x;x_0,\ldots,x_p)=(L_pf(x;x_0,\ldots,x_p)-f(x))
\prod_{0\leqslant i<j\leqslant p}(x_j-x_i).
\end{equation*}
и \eqref{eq:ex03} следует, что
\begin{displaymath}
L_pf(x;x_0,\ldots,x_p)\geqslant f(x).
\end{displaymath}
С учетом условия \ref{it:1lem1} леммы мы получаем утверждение \eqref{eq:ex02}.
\end{proof}
\subsection{Название другого подраздела}
\subsubsection{Более мелкий подраздел}
Если разность энергий электронно"=дырочных уровней $E_2-E_1$ близка к энергии предельного оптического фонона $\hbar\Omega_{LO}$, то в разложении волновых функций полного гамильтониана можно ограничиться нулевым приближением для всех состояний, за исключением близких по значению к $E_2$.
\subsubsection{Текст с таблицей}
В таблице~\ref{table-1} представлены результаты сокращения словарей неисправностей для схем из каталога ISCAS'89.
\begin{table}[!ht]
\small
\caption{Результат сокращения словарей неисправностей при помощи масок} \label{table-1}
\begin{tabular}{|l|c|c|c|c|r|r|r|}
\hline 1 & 2& 3& 4& 5& 6& 7& 8\\
\hline S298 & 177 & 1932 & 341964 & 61 & 10797 & 3,16\% & 0,61\\
\hline S344 & 240 & 1397 & 335280 & 59 & 14160 & 4,22\% & 0,53\\
\hline S349 & 243 & 1474 & 358182 & 62 & 15066 & 4,21\% & 0,60\\
\hline S382 & 190 & 12444 & 2364360 & 55 & 10450 & 0,44\% & 3,78\\
\hline S386 & 274 & 2002 & 548548 & 91 & 24934 & 4,55\% & 1,40\\
\hline S400 & 194 & 13284 & 2577096 & 58 & 11252 & 0,44\% & 4,28\\
\hline S444 & 191 & 13440 & 2567040 & 60 & 11460 & 0,45\% & 4,26\\
\hline S510 & 446 & 700 & 312200 & 70 & 31220 & 10,00\% & 0,63\\
\hline S526 & 138 & 13548 & 1869624 & 38 & 5244 & 0,28\% & 2,41\\
\hline S641 & 345 & 5016 & 1730520 & 132 & 45540 & 2,63\% & 7,06\\
\hline S713 & 343 & 3979 & 1364797 & 131 & 44933 & 3,29\% & 5,61\\
\hline S820 & 712 & 21185 & 15083720 & 244 & 173728 & 1,15\% & 126,99\\
\hline S832 & 719 & 21603 & 15532557 & 253 & 181907 & 1,17\% & 135,18\\
\hline S953 & 326 & 322 & 104972 & 91 & 29666 & 28,26\% & 0,27\\
\hline S1423 & 293 & 750 & 219750 & 93 & 27249 & 12,40\% & 0,57\\
\hline S1488 & 1359 & 22230 & 30210570 & 384 & 521856 & 1,73\% & 541,69\\
\hline
\end{tabular}
\end{table}
\subsubsection{Текст с кодом программы}
Термин <<разреженная матрица>> впервые был предложен Гарри Марковицем. В 1989 он был награжден премией имени Джона фон Неймана в том числе и за вклад в теорию методов для разреженных матриц.
В большинстве источников, разреженной матрицей называется матрица, в которой мало ненулевых элементов. Это нельзя назвать определением из-за слова <<мало>>. В понятие разреженной матрицы определяется так: <<Мы можем называть матрицу разреженной, если применение к ней методов, описываемых в книге, экономит память и/или время>>. Таким образом, следует дать определение алгоритму для разреженных матриц. Алгоритмом для разреженных матриц будем называть алгоритм, у которого время работы и необходимый объем памяти зависят от количества ненулевых элементов в матрице.
Размерность квадратной матрицы $A$ будем обозначать $n$, а количество ненулевых элементов в ней $|A|$.
Плотные матрицы обычно хранятся в качестве двумерного массива $n\times n$. Будем обозначать такой массив a. Разреженные матрицы не стоит хранить таким способом из-за слишком большого потребления памяти, которая будет занята в основном нулевыми элементами.
Один из вариантов представления разреженных матриц в памяти компьютера "--- в виде трех массивов: \verb"column", \verb"value" и \verb"rowIndex". Размеры массивов \verb"column" и \verb"value" равны $|A|$. Размер \verb"rowIndex" равен $n+1$. Ненулевые элементы матрицы $A$ хранятся последовательно по строкам в этих массивах. Элемент \verb"column[i]" содержит номер столбца, в котором содержится \verb"i"-й ненулевой элемент, а \verb"value[i]" "--- его величину. Массив \verb"rowIndex[i]" содержит в себе индекс первого ненулевого элемента \verb"i"-й строки. Все ненулевые элементы \verb"i"-й строки содержатся в массивах \verb"column" и \verb"value" в элементах с индексами от \verb"rowIndex[i]" по \verb"rowIndex[i + 1]-1". Для удобства полагают \verb"rowIndex["$n$\verb"]"$=|A|$.
Для примера рассмотрим следующую матрицу:
\[
\left(
\begin{matrix}
1 & 0 & 5 & 0 & 0 \\
0 & 2 & 7 & 4 & 0 \\
0 & 0 & 1 & 0 & 0 \\
9 & 6 & 0 & 3 & 0 \\
0 & 0 & 3 & 0 & 5
\end{matrix}
\right)
\]
Массивы \verb"column", \verb"value" и \verb"rowIndex" для этой матрицы представлены в таблице~\ref{tab:mat-arrays}.
\begin{table}[ht]\small
\caption{Массивы \texttt{column}, \texttt{value} и \texttt{rowIndex}}\label{tab:mat-arrays}
\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|} \cline{2-13}
\multicolumn{1}{c|}{} & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{2-13}\hline
\verb"column" & 0 & 2 & 1 & 2 & 3 & 2 & 0 & 1 & 3 & 2 & 4 & \\ \hline\hline
\verb"value" & 1 & 5 & 2 & 7 & 4 & 1 & 9 & 6 & 3 & 3 & 5 & \\ \hline\hline
\verb"rowIndex" & 0 & 2 & 5 & 6 & 9 & 11 & & & & & & \\ \hline
\end{tabular}
\end{table}
Неизвестный вектор и вектор правой части хранятся в виде массивов размера $n$. Массив неизвестного вектора обозначают \verb"x", а массив правой части "--- \verb"rhs".
Рассмотрим пример алгоритма для разреженных матриц. Алгоритм решения СЛАУ, представленной нижнетреугольной матрицей \verb"a", можно реализовать двумя вложенными циклами по \verb"n":
\begin{Verbatim}[fontsize=\small, numbers=left]
for(int i = 0; i $<$ n; ++i){
x[i] = rhs[i];
for(int j = 0; j $<$ i; ++j)
x[i] -= a[i][j] * x[j];
x[i] /= a[i][i];
}
\end{Verbatim}
Но, если матрица \verb"a" хранится в разреженном виде, то в данном алгоритме можно проходить только по ненулевым элементам \verb"a":
\begin{Verbatim}[fontsize=\small, numbers=left]
for(int i = 0; i $<$ n; ++i){
x[i] = rhs[i];
for(int j = rowIndex[i]; j $<$ rowIndex[i + 1] - 1; ++j)
x[i] -= value[j] * x[column[j]];
x[i] /= value[rowIndex[i + 1] - 1];
}
\end{Verbatim}
В первом случае оценка времени работы будет $O(n^{2})$, а во втором $O(|A|)$.
Методы для разреженных матриц основаны на следующих главных принципах
% Раздел "Заключение"
\conclusion
В настоящей работы приведен пример оформления студенческой работы средствами системы \LaTeX.
Показано, как можно оформить документ в соответствии:
\begin{itemize}
\item с правилами оформления курсовых и выпускных квалификационных работ, принятых в Саратовском государственном университете в 2012 году;
\item с правилами оформления титульного листа отчета о прохождении практики в соответствии со стандартом.
\end{itemize}
%Библиографический список, составленный вручную, без использования BibTeX
%
%\begin{thebibliography}{99}
% \bibitem{Ione} Источник 1.
% \bibitem{Itwo} Источник 2
%\end{thebibliography}
%Библиографический список, составленный с помощью BibTeX
%
\bibliographystyle{gost780uv}
\bibliography{thesis}
% Окончание основного документа и начало приложений
% Каждая последующая секция документа будет являться приложением
\appendix
\section{Нумеруемые объекты в приложении}
\begin{table}[!ht]
\footnotesize
\caption{Results of pass-fail dictionary reduction with the help
of masks} \label{table-2}
\begin{tabular}{|p{1.5cm}|
p{1.5cm}|
p{1.5cm}|
p{1.5cm}|
p{1cm}|
p{1.5cm}|
p{1.5cm}|
p{1cm}|}
\hline \centering Circuit & Number of modelled faults & Number of test
vectors in the test set & The volume of pass-fail dictionary,
\linebreak bit & The volume of found mask & The volume of
masked dictionary, \linebreak bit & \raggedright \% of pass-fail dictionary
& CPU running time, \linebreak min
\\
\hline S298 & 177 & 322 & 56994 & 30 & 5310 & 9,32\% & 0,07\\
\hline S344 & 240 & 127 & 30480 & 29 & 6960 & 22,83\% & 0,04\\
\hline S349 & 243 & 134 & 32562 & 35 & 8505 & 26,12\% & 0,05\\
\hline S382 & 190 & 2074 & 394060 & 28 & 5320 & 1,35\% & 0,43\\
\hline S386 & 274 & 286 & 78364 & 65 & 17810 & 22,73\% & 0,26\\
\hline S400 & 194 & 2214 & 429516 & 32 & 6208 & 1,45\% & 0,99\\
\hline S444 & 191 & 2240 & 427840 & 30 & 5730 & 1,34\% & 0,98\\
\hline S526 & 138 & 2258 & 311604 & 28 & 3864 & 1,24\% & 0,61\\
\hline S641 & 345 & 209 & 72105 & 58 & 20010 & 27,75\% & 0,24\\
\hline S713 & 343 & 173 & 59339 & 58 & 19894 & 33,53\% & 0,19\\
\hline S820 & 712 & 1115 & 793880 & 147 & 104664 & 13,18\% & 9,09\\
\hline S832 & 719 & 1137 & 817503 & 151 & 108569 & 13,28\% & 9,20\\
\hline S953 & 326 & 14 & 4564 & 13 & 4238 & 92,86\% & 0,01\\
\hline S1423 & 293 & 150 & 43950 & 58 & 16994 & 38,67\% & 0,15\\
\hline S1488 & 1359 & 1170 & 1590030 & 158 & 214722 & 13,50\% & 26,69\\
\hline
\end{tabular}
\end{table}
\begin{equation}
F(x)=\int\limits_a^bf(x)\,dx.
\end{equation}
\begin{figure}[!ht]
\centering
\includegraphics[width=6cm]{fig2.png}
\caption{\label{fig:f3}%
Подпись к рисунку}
\end{figure}
\begin{table}[!ht]
\caption{}
\begin{tabular}{|c|c|}
\hline
0 & 1\cr
\hline
1 & 0\cr
\hline
\end{tabular}
\end{table}
\section{Листинг программы}\label{pril-1}
Код приложения \verb"task.pl".
\VerbatimInput[fontsize=\small, numbers=left, numbersep=2pt]{task.pl}
\section{Многостраничная таблица}
\noindent
\end{document}