Second version of text
This commit is contained in:
50
text.tex
50
text.tex
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user