Second version of text

This commit is contained in:
2018-05-27 19:43:49 +03:00
parent 7f70839df2
commit c304e43ba9

View File

@@ -2,6 +2,7 @@
\usepackage[affil-it]{authblk} % для указания ВУЗа
\usepackage{fontspec}
\usepackage{minted} % для включения исходников
\usemintedstyle{tango}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{xunicode}
\usepackage{xltxtra}
@@ -29,7 +30,7 @@
\author{Алексей Лобанов, 318 группа%
\thanks{E-mail: \texttt{i@likemath.ru}}}
\affil{МГУ им. М.В.Ломоносова}
\affil{факультет ВМК МГУ им. М.В.Ломоносова}
\author{Научный руководитель \\ доцент, д.ф.-м.н. С.Н.Селезнёва%
\thanks{E-mail: \texttt{selezn@cs.msu.ru}}}
@@ -45,11 +46,11 @@
\newpage
\section{Введение}
По данной теме, для случая трёхзначной логики уже есть результаты \cite{csakany} и \cite{machida}. Для случаё четырёхзначной логики есть работа \cite{scholzel}, однако в данной курсовой работе проверяются только два условия:
По данной теме, для случая трёхзначной логики уже есть результаты \cite{csakany} и \cite{machida}. Для случая четырёхзначной логики есть работа \cite{scholzel}, однако в данной курсовой работе проверяются только два условия:
отсутствие функции большинства и полупроекции.
\section{Постановка задачи}
В рамках данной курсовой работы рассмотриваются следующие задачи:
В рамках данной курсовой работы рассматриваются следующие задачи:
\begin{enumerate}
\item Написать программу,
которая строит все минимальные клоны,
@@ -68,7 +69,10 @@ $f$ четырехзначной логики, не содержащие фун
\end{enumerate}
\section{Основная часть}
Введём некоторые обозначения: $I_k^2$ -- все идемпотентные функции k-значной логики, $f_k^x$, $f_k^y$ -- функции k-значной логики, тождественно равные своему первому и второму аргументу соответсвенно
Введём некоторые обозначения:
$I_k^2$ -- все идемпотентные функции k-значной логики,
$f_k^x$, $f_k^y$ -- функции k-значной логики, тождественно равные своему первому и второму аргументу соответственно.
Назовём "плохими" функции $f\left( x, y\right)$ из $I_k^2$, которые точно не смогут породить минимальные классы.
Простейшая реализация алгоритма решения данной задачи может не приветси к успеху: для $k=4$ количество функций в $I_4^2 = 4^{4\cdot4 - 4} = 4^{12} = 16777216$. Построение класса по каждой из них слишком трудоёмко, если знать, что некоторая часть этих классов по размеру сопоставимы с самим $I_4^2$. Таким образом, уже для $k=4$ необходим более быстрый алгоритм.
@@ -147,15 +151,41 @@ $f$ четырехзначной логики, не содержащие фун
\end{algorithmic}
\end{algorithm}
Также важной функцией является обработка новых \ref{alg:queue}
Также важной функцией является обработка новых множеств \ref{alg:queue}.
\begin{algorithm}
\caption{Обработка расширенных множеств}\label{alg:queue}
\begin{algorithmic}
\Function{ProcessSets}{class, max}
\State заглушка
\Return (42)
\EndFunction
\Procedure{ProcessSets}{d, bad\_functions}
\While{Не все функции закончены}
\State local\_d $\gets$ d
\State d.clear()
\State local\_d сортируем по размеру множества
\State cur\_size $\gets \lambda^n$
\ForAll{task $\in$ local\_d}
\If {size(task) $>$ cur\_size}
\State \textbf{break}
\Comment{Текущие множетсва слишком большие, могут быть незаконченные}
\EndIf
\If {task не закончен}
\If {в нём есть хотя бы одна "плохая" функция}
\State completed $\gets$ completed + 1
\Comment{Текущий класс точно не минимальный}
\Else
\State d.add(task)
\Comment{Класс надо ещё расширить}
\EndIf
\Else
\State completed $\gets$ completed + 1
\If {в нём нет "плохих" функций}
\State положим класс в список минимальных классов
\EndIf
\State все функции task сделаем "плохими"
\Comment Ни одна из этих функций уже не сможем породить минимальный класс
\EndIf
\EndFor
\EndWhile
\EndProcedure
\end{algorithmic}
\end{algorithm}
Для реализации полученных алгоритмов для выполнения на ЭВМ был выбран язык программирования C++14.