Second version of text
This commit is contained in:
50
text.tex
50
text.tex
@@ -2,6 +2,7 @@
|
|||||||
\usepackage[affil-it]{authblk} % для указания ВУЗа
|
\usepackage[affil-it]{authblk} % для указания ВУЗа
|
||||||
\usepackage{fontspec}
|
\usepackage{fontspec}
|
||||||
\usepackage{minted} % для включения исходников
|
\usepackage{minted} % для включения исходников
|
||||||
|
\usemintedstyle{tango}
|
||||||
\defaultfontfeatures{Mapping=tex-text}
|
\defaultfontfeatures{Mapping=tex-text}
|
||||||
\usepackage{xunicode}
|
\usepackage{xunicode}
|
||||||
\usepackage{xltxtra}
|
\usepackage{xltxtra}
|
||||||
@@ -29,7 +30,7 @@
|
|||||||
|
|
||||||
\author{Алексей Лобанов, 318 группа%
|
\author{Алексей Лобанов, 318 группа%
|
||||||
\thanks{E-mail: \texttt{i@likemath.ru}}}
|
\thanks{E-mail: \texttt{i@likemath.ru}}}
|
||||||
\affil{МГУ им. М.В.Ломоносова}
|
\affil{факультет ВМК МГУ им. М.В.Ломоносова}
|
||||||
|
|
||||||
\author{Научный руководитель \\ доцент, д.ф.-м.н. С.Н.Селезнёва%
|
\author{Научный руководитель \\ доцент, д.ф.-м.н. С.Н.Селезнёва%
|
||||||
\thanks{E-mail: \texttt{selezn@cs.msu.ru}}}
|
\thanks{E-mail: \texttt{selezn@cs.msu.ru}}}
|
||||||
@@ -45,11 +46,11 @@
|
|||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\section{Введение}
|
\section{Введение}
|
||||||
По данной теме, для случая трёхзначной логики уже есть результаты \cite{csakany} и \cite{machida}. Для случаё четырёхзначной логики есть работа \cite{scholzel}, однако в данной курсовой работе проверяются только два условия:
|
По данной теме, для случая трёхзначной логики уже есть результаты \cite{csakany} и \cite{machida}. Для случая четырёхзначной логики есть работа \cite{scholzel}, однако в данной курсовой работе проверяются только два условия:
|
||||||
отсутствие функции большинства и полупроекции.
|
отсутствие функции большинства и полупроекции.
|
||||||
|
|
||||||
\section{Постановка задачи}
|
\section{Постановка задачи}
|
||||||
В рамках данной курсовой работы рассмотриваются следующие задачи:
|
В рамках данной курсовой работы рассматриваются следующие задачи:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Написать программу,
|
\item Написать программу,
|
||||||
которая строит все минимальные клоны,
|
которая строит все минимальные клоны,
|
||||||
@@ -68,7 +69,10 @@ $f$ четырехзначной логики, не содержащие фун
|
|||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
\section{Основная часть}
|
\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$ необходим более быстрый алгоритм.
|
Простейшая реализация алгоритма решения данной задачи может не приветси к успеху: для $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{algorithmic}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
Также важной функцией является обработка новых \ref{alg:queue}
|
Также важной функцией является обработка новых множеств \ref{alg:queue}.
|
||||||
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\caption{Обработка расширенных множеств}\label{alg:queue}
|
\caption{Обработка расширенных множеств}\label{alg:queue}
|
||||||
\begin{algorithmic}
|
\begin{algorithmic}
|
||||||
\Function{ProcessSets}{class, max}
|
\Procedure{ProcessSets}{d, bad\_functions}
|
||||||
\State заглушка
|
\While{Не все функции закончены}
|
||||||
|
\State local\_d $\gets$ d
|
||||||
\Return (42)
|
\State d.clear()
|
||||||
\EndFunction
|
\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{algorithmic}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
Для реализации полученных алгоритмов для выполнения на ЭВМ был выбран язык программирования C++14.
|
Для реализации полученных алгоритмов для выполнения на ЭВМ был выбран язык программирования C++14.
|
||||||
|
|||||||
Reference in New Issue
Block a user