diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2022-04-25 00:47:51 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2022-04-25 00:47:51 +0400 |
| commit | 94db19d6fba27a729154d3473a1ddf005724f006 (patch) | |
| tree | fc84b4a56d9408b0e65f58bc8ad0879203d0ffeb /lab4/report/lab4.tex | |
| parent | a9869f0dab129bd94400c3aa2b0787e3e4a9c62b (diff) | |
Добавил четвёртую лабу
Diffstat (limited to 'lab4/report/lab4.tex')
| -rw-r--r-- | lab4/report/lab4.tex | 472 |
1 files changed, 472 insertions, 0 deletions
diff --git a/lab4/report/lab4.tex b/lab4/report/lab4.tex new file mode 100644 index 0000000..1790900 --- /dev/null +++ b/lab4/report/lab4.tex @@ -0,0 +1,472 @@ +\documentclass[spec, och, labwork2]{SCWorks} +\usepackage{preamble} + +\begin{document} +\include{titlepage.tex} +\tableofcontents + +\section{Постановка задачи} + +Цель работы "--- изучение основных понятий теории полугрупп. Порядок выполнения +работы: +\begin{enumerate} + \item + Рассмотреть понятия полугруппы, подполугруппы и порождающего множества. + Разработать алгоритм построения подполугрупп по таблице Кэли. + \item + Разработать алгоритм построения полугруппы бинарных отношений по заданному + порождающему множеству. + \item + Рассмотреть понятия подгруппы, порождающего множества и определяющих + соотношений. Разработать алгоритм построения полугруппы по порождающему + множеству и определяющим соотношениям. +\end{enumerate} + + +\section{Теоретические сведения} + +\begin{definition} + Полугруппа "--- это алгебра $S = (S, \cdot)$ с одной + ассоциативной бинарной операцией $\cdot$, т.е. выполняется $(x \cdot y) \cdot + z = x \cdot (y \cdot z)$ для $\forall x, y, z \in S$. Если полугрупповая + операция называется умножением (или сложением), то полугруппу называют + мультипликативной (или аддитивной). +\end{definition} +\begin{definition} + Подмножество $X$ полугруппы $S$ называется подполугруппой, если $X$ устойчиво + относительно операции умножения, т.е. $\forall x, y \in X$ выполняется + свойство: $x \cdot y \in X$. В этом случае множество $X$ с ограничением на нем + операции умножения исходной полугруппы $S$ образует полугруппу. +\end{definition} + +В силу общего свойства подалгебр пересечение любого семейства $X_i$ $(i \in I)$ +подполугрупп полугруппы $S$ является подполугруппой $S$ и, значит, множество +$Sub(S)$ всех подполугрупп полугруппы $S$ является системой замыканий. множество +$X$. Такая полугруппа обозначается символом $\langle X \rangle$ и называется +подполугруппой $S$, порождённой множеством $X$. При этом множество $X$ +называется также \textbf{порождающим множеством} подполугруппы $\langle X +\rangle$. В частности, если $\langle X \rangle = S$, то $X$ называется +порождающим множеством полугруппы $S$ и говорят, что множество $X$ порождает +полугруппу $S$. + +Для любой конечной полугруппы $S$ найдется такой конечный алфавит A, что для +некоторого отображения $\phi : A \rightarrow S$ выполняется равенство $\langle +\phi(A) \rangle =S$ и, значит, $S \cong A^+/ \ker \phi$ этом случае множество A +называется множеством порождающих символов полугруппы S (относительно +отображения $\phi : A \rightarrow S$ ). Если при этом для слов $w_1,w_2 \in A$ +выполняется равенство $\phi(w_1) = \phi(w_2)$, т.е. $w_1 \equiv w_2(\ker \phi)$ , +то говорят, что на S выполняется соотношение $w_1 = w_2$ (относительно +отображения $\phi : A \rightarrow S$). + +Очевидно, что в общем случае множество таких соотношений $w_1 = w_2$ для всех +пар $(w_1, w_2) \in \ker \phi$ будет бесконечным и не представляется возможности +эффективно описать полугруппу S в виде полугруппы классов конгруэнции $\ker \phi$ +. Однако в некоторых случаях можно выбрать такое сравнительно простое +подмножество $\rho \subset \ker \phi$ , которое однозначно определяет конгруэнцию +$\ker \phi$ как наименьшую конгруэнцию полугруппы $A^+$ , содержащую отношение +$\rho$, т.е. $\ker \phi = f_{con}(\rho) = f_{eq}(f_{reg}(\rho))$. + +Так как в случае $(w_1, w_2) \in \rho$ по-прежнему выполняется равенство +$\phi(w_1) = \phi(w_2)$, то будем писать $w_1 = w_2$ и называть такие выражения +\textbf{определяющими соотношениями}. Из таких соотношений конгруэнция $\ker \phi$ +строится с помощью применения следующих процедур к словам $u,v \in A^+$: + +\begin{enumerate} + \item + слово $v$ непосредственно выводится из слова $u$, если $v$ получается из $u$ + заменой некоторого подслова $w_1$ на слово $w_2$, удовлетворяющее + определяющему соотношению $w_1 = w_2$, т.е. $(u, v) = (xw_1y, xw_2y)$ для + некоторых $x, y \in A^*$; + \item + слово $v$ выводится из слова $u$, если $v$ получается из $u$ с помощью + конечного числа применения процедуры $1$. +\end{enumerate} + +Если все выполняющиеся на $S$ соотношения выводятся из определяющих соотношений +совокупности $\rho$, то конгруэнция $\ker \phi$ полностью определяется отношением +$\rho$ и выражение $<A: {w_1 = w_2 : (w_1, w_2) \in \rho}>$ называется +\textbf{копредставлением полугруппы $S$}. + + +\section{Алгоритмы} + +% +\subsection{Алгоритм построения построения подполугруппы по заданному порождающему множеству} + +\textit{Вход.} Полугруппа $S$ с таблицей Кэли $A = (a_{ij})$ размерности $N +\times N$ и подмножество $X \subset S$. + +\textit{Выход.} Подполугруппа $\langle X \rangle \subset S$. + +\begin{enumerate} + \item + Положим $i = 0$, $X_0 = X$; + \item + Для $X_i$ вычислим $\overline{X}_l = \{ x \cdot y ~ | ~ x \in X_i \land y + \in X \}$ и положим $X_{i + 1} = X_i \cup \overline{X}_l$ ($x \cdot y = + a_{xy}$); + \item + Вычислим \[ \langle X \rangle = \bigcup^\infty_{i = 0} X_i \] +\end{enumerate} + +Трудоёмкость алгоритма "--- $O(N^3)$. + + +% +\subsection{Алгоритм построения полугруппы бинарных отношений по заданному порождающему множеству} + +\textit{Вход.} Конечное множество $X$ бинарных отношений, заданное булевыми +матрицами размерности $N \times N$. + +\textit{Выход.} Полугруппа $\langle X \rangle$. + +\begin{enumerate} + \item + Пусть каждому бинарному отношению $x_i \in X$ ($0 \leq i < N$) соответствует + матрица $A_i$. Зададим список $L$ так, что $L_i = A_i \, (0 \leq i < N)$. + Полученный список $L$ является полугруппой $\langle X \rangle$. + \item + Создать список $C$, элементы которого будут $c_k \in C$, где $0 \leq k < + (N^1 + N^2 + \dots + N^N)$. То есть этот список является суммой размещений с + повторениями. Каждая комбинация $c_k$ будет определять некоторую + совокупность матрицы, которые будут обрабатываться на следующем шаге. + \item + Возьмём матрицу $A_i$ ($0 \leq i < N$) и поэлементно умножим её на матрицы + $B_0, \dots, B_l$ согласно текущей комбинации $c_k$ ($0 \leq k < (N^1 + N^2 + + \dots + N^N)$), где матрицы $B_1, \dots, B_l$ составляют текущую комбинацию + $c_k$ ($l$ -- количество элементов в $c_k$). Таким образом, получим матрицу + $H = A_i \odot B_1 \odot \dots \odot B_l$, где $\odot$ -- операция + поэлементного умножения. Добавим $H$ в список $L$ в качестве нового + элемента полугруппы $\langle X \rangle$. + \item + Шаг 3 необходимо повторить $k$ раз ($0 \leq k < (N^1 + N^2 + \dots + N^N)$). +\end{enumerate} + +Трудоёмкость алгоритма "--- $O((N^1 + N^2 + \dots + N^N) \cdot l)$, где $l$ "--- +количество элементов в $c_k \in C$. + + +% +\subsection{Алгоритм построения полугруппы по порождающему множеству и определяющим соотношениям} + +\textit{Вход.} Конечное множество символов $A$ мощности $N$ и конечное множество +$R$ определяющих соотношений мощности $M$. + +\textit{Выход.} Полугруппа $\langle A | R \rangle$. + +\begin{enumerate} + \item + Каждому преобразованию $r_i \in R$ ($0 \leq i \leq M - 1$) соответствует + список элементов множества $A$, то есть $a_j \in A$ ($0 \leq j < N$) "--- + элементы, в которые осуществляется переход из исходных элементов множества + $A$. Определим список $T$ как $T_i = \{ a_j \in A \}$ ($0 \leq i \leq N - + 1$), где $a_j$ соответствует некоторому $a'_j \in A$ (из исходного множества + символов). + \item + Создать список $C$, элементы которого будут $c_k \in C$, где $0 \leq k \leq + (M^1 + M^2 + \dots + M^N - 1)$. Этот список "--- сумма размещений с + повторениями, каждая такая комбинация определяет некоторую упорядоченную + совокупность соотношений, которые применяются к исходным элементам множества + $A$. + \item + Инициализировать пустой словарь $D$, где ключом будет являться комбинация + $c_k \in C$ ($0 \leq k \leq (M^1 + M^2 + \dots + M^N) - 1$), а значением + список из элементов $b_j$, где $0 \leq j \leq N - 1$. Этот словарь будет + определять полугруппу $\langle A | R \rangle$ (копредставление). Каждый + элемент $b_j$ находится по списку $T$: $b_j = T_{ij}$, где $i$ -- индекс + элемента $r_i \in R$ ($0 \leq i < M$), $j$ -- индекс элемента $a_j \in A$ + ($0 \leq j \leq N - 1$) (Например, последовательность определяющих + соотношений $abc$ по сути определяет элемент, который задан как $T_{ip}$, + где $p = T_{iv}$, где $v = T_{ij}$ при некоторых $0 \leq i, j, v, p \leq N - + 1$). Далее добавить в словарь по ключу $c_k$ список из элементов $b_j$ при + $0 \leq j \leq N - 1$, т.е. $D[c_k] = [b_0, \dots, b_j, \dots, b_{N - 1}]$ + (где каждый элемент $b_j$ соответствует результату преобразований после + применения определяющих соотношений к исходному элементу $a_j$ множества + $A$), где $0 \leq j \leq N - 1$, $0 \leq k \leq (M^1 + M^2 + \dots + M^N) - + 1$. +\end{enumerate} + +Трудоёмкость алгоритма "--- $O((M^1 + M^2 + \dots + M^n) \cdot n^2 \cdot M)$. + + +\section{Программная реализация} + +\inputminted[fontsize=\small, breaklines=true, style=bw, linenos]{c}{../lab4.py} + + +\section{Результаты тестирования} + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{test1.png} + \caption{Проверка построения подполугруппы по таблице Кэли} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{test2.png} + \caption{Проверка построения полугруппы бинарных отношений порождающему множеству} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{test3_1.png} + \caption{Проверка построения полугруппы по порождающему множеству и определяющим соотношениям (часть 1)} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{test3_2.png} + \caption{Проверка построения полугруппы по порождающему множеству и определяющим соотношениям (часть 2)} +\end{figure} + + +\section{Решение задач} + +\subsection*{Задание 1} + +Найдите полугруппу S = $\langle f, g \rangle$ преобразований множества $X = {1, +2, 3}$, порожденную следующими преобразованиями $f, g$ в симметрической +полугруппе $T(X)$ преобразований множества $X$: + +\begin{equation*} + f = \begin{pmatrix} + 1 & 2 & 3 \\ + 1 & 1 & 1 + \end{pmatrix}, + g = \begin{pmatrix} + 1 & 2 & 3 \\ + 2 & 3 & 2 + \end{pmatrix} +\end{equation*} + +Известно, что множество преобразований $f, g$ порождает полугруппу S = $\langle +f, g \rangle$ преобразований множества X, которая состоит из элементов $f, g, +f^2, f g, gf, g^2, \dots$ и является подполугруппой конечной полугруппы $T(X)$. + +$f^2 = +\begin{pmatrix} + 1 & 2 & 3 \\ + 1 & 1 & 1 +\end{pmatrix} \cdot +\begin{pmatrix} + 1 & 2 & 3 \\ + 1 & 1 & 1 +\end{pmatrix} = +\begin{tabular}{c c c c} +& 1 & 2 & 3 \\ +f & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 1 & 1 & 1 \\ +f & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 1 & 1 & 1 \\ +\end{tabular} = +\begin{pmatrix} +1 & 2 & 3 \\ +1 & 1 & 1 +\end{pmatrix}$ + +$fg = +\begin{pmatrix} + 1 & 2 & 3 \\ + 1 & 1 & 1 +\end{pmatrix} \cdot +\begin{pmatrix} + 1 & 2 & 3 \\ + 2 & 3 & 2 +\end{pmatrix} = +\begin{tabular}{c c c c} +& 1 & 2 & 3 \\ +f & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 1 & 1 & 1 \\ +g & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 2 & 2 & 2 \\ +\end{tabular} = +\begin{pmatrix} +1 & 2 & 3 \\ +2 & 2 & 2 +\end{pmatrix}$ + +$gf = +\begin{pmatrix} + 1 & 2 & 3 \\ + 2 & 3 & 2 +\end{pmatrix} \cdot +\begin{pmatrix} + 1 & 2 & 3 \\ + 1 & 1 & 1 +\end{pmatrix} = +\begin{tabular}{c c c c} +& 1 & 2 & 3 \\ +g & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 2 & 3 & 2 \\ +f & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 1 & 1 & 1 \\ +\end{tabular} = +\begin{pmatrix} +1 & 2 & 3 \\ +1 & 1 & 1 +\end{pmatrix}$ + +$g^2 = +\begin{pmatrix} + 1 & 2 & 3 \\ + 2 & 3 & 2 +\end{pmatrix} \cdot +\begin{pmatrix} + 1 & 2 & 3 \\ + 2 & 3 & 2 +\end{pmatrix} = +\begin{tabular}{c c c c} +& 1 & 2 & 3 \\ +g & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 2 & 3 & 2 \\ +g & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ +& 3 & 2 & 3 \\ +\end{tabular} = +\begin{pmatrix} +1 & 2 & 3 \\ +3 & 2 & 3 +\end{pmatrix}$ + + +\subsection*{Задание 2} + +Найдите индекс и период следующих элементов $a$ полугруппы преобразований +множества $X = \{ 1, 2, 3, 4, 5 \}$: + +\begin{equation*} + a = \begin{pmatrix} + 1 & 2 & 3 & 4 & 5 \\ + 2 & 4 & 1 & 2 & 1 + \end{pmatrix} +\end{equation*} + +Вычислим $aa$: + +\begin{equation*} + aa = + \begin{tabular}{c c c c c c} + & 1 & 2 & 3 & 4 & 5\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 2 & 4 & 1 & 2 & 1\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 4 & 2 & 2 & 4 & 2\\ + \end{tabular} = + \begin{pmatrix} + 1 & 2 & 3 & 4 & 5\\ + 4 & 2 & 2 & 4 & 2 + \end{pmatrix} +\end{equation*} + +Вычислим $aaa$: + +\begin{equation*} + aaa = + \begin{tabular}{c c c c c c} + & 1 & 2 & 3 & 4 & 5\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 2 & 4 & 1 & 2 & 1\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 4 & 2 & 2 & 4 & 2\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 2 & 4 & 4 & 2 & 4\\ + \end{tabular} = + \begin{pmatrix} + 1 & 2 & 3 & 4 & 5\\ + 2 & 4 & 4 & 2 & 4 + \end{pmatrix} +\end{equation*} + + Вычислим $aaaa$: +\begin{equation*} + aaaa = + \begin{tabular}{c c c c c c} + & 1 & 2 & 3 & 4 & 5\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 2 & 4 & 1 & 2 & 1\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 4 & 2 & 2 & 4 & 2\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 2 & 4 & 4 & 2 & 4\\ + a & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ & $\downarrow$ \\ + & 4 & 2 & 2 & 4 & 2\\ + \end{tabular} = + \begin{pmatrix} + 1 & 2 & 3 & 4 & 5\\ + 4 & 2 & 2 & 4 & 2\\ + \end{pmatrix} +\end{equation*} + +Можно заметить, что $aaaa \to aa$. Получаем, что каждый $2k$"=й элемент ($k \in +\mathbb{N}$) полугруппы будет иметь преобразование + +\begin{equation*} + \begin{pmatrix} + 1 & 2 & 3 & 4 & 5 \\ + 2 & 3 & 1 & 1 & 2 + \end{pmatrix} +\end{equation*} + +Таким образом, период равен 2. + + +\subsection*{Задание 3} + +Найдите полугруппу $S$ по следующему её копредставлению: +\begin{equation*} + S = \langle x,y : xy = yx, x^2 = y, y^3 = x \rangle +\end{equation*} + +Выделим полную систему представителей классов конгруэнции $\epsilon$, которая +определяется соотношениями данного копредставления. Для этого последовательно +рассмотрим слова фиксированной длины и выделим те, которые не будут эквивалентны +между собой относительно конгруэнции $\epsilon$. + +Рассмотрим слова длины 1: $x$, $y$ –- эти слова не эквивалентны между собой +относительно конгруэнции $\epsilon$. + +Рассмотрим слова длины 2, которые получаются из слов длины 1 путем +последовательного умножения их справа на буквы $x$ и $y$: $x^2 = y, xy, yx = xy, +y^2$ -- из этих слов только слова $xy$, $y^2$ не эквивалентны относительно +конгруэнции $\epsilon$ другим ранее выделенным словам. + +Теперь рассмотрим слова длины $3$, которые получаются из выделенных слов длины +$2$ путем последовательного умножения их справа на буквы $x$ и $y$: $xyx = y^2$, +$xy^2$, $y^2x = x^2y$, $y^3 = x$ –- из этих слов только слово $xy^2$ не +эквивалентно относительно конгруэнции $\varepsilon$ другим ранее выделенным +словам. + +Наконец рассмотрим слова длины $4$, которые получаются из выделенного слова +длины $3$ путем последовательного умножения его справа на буквы $x$ и $y$: +$xy^2x = x^2y^2 = y^3 = x$, $xy^3 = x^2 = y$ - все эти слова эквивалентны +относительно конгруэнции $\varepsilon$ ранее выделенным словам. + +Значит, $S = \{x, y, xy, y^2, xy^2 \}$ "--- полная система представителей +классов конгруэнции $\varepsilon$. Операция умножения $\cdot$ таких слов +определяется с точностью до конгруэнции $\varepsilon$ по следующей таблице Кэли: + +\begin{table}[H] + \centering + \begin{tabular}{c|c|c|c|c|c} + & $x$ & $y$ & $xy$ & $y^2$ & $xy^2$ \\ \hline + $x$ & $x$ & $xy$ & $xy$ & $xy^2$ & $xy^2$ \\ \hline + $y$ & $xy$ & $y^2$ & $xy^2$ & $y$ & $xy$ \\ \hline + $xy$ & $xy$ & $xy^2$ & $xy^2$ & $xy$ & $xy$ \\ \hline + $y^2$ & $xy^2$ & $y$ & $xy$ & $y^2$ & $xy^2$ \\ \hline + $xy^2$ & $xy^2$ & $xy$ & $xy$ & $xy^2$ & $xy^2$ \\ + \end{tabular} +\end{table} + + +\conclusion + +В ходе выполнения данной лабораторной работы были рассмотрены понятия +полугруппы, подполугруппы, порождающего множества, подгруппы и определяющих +соотношений. С использованием данных определений были разработаны алгоритмы +построения подполугрупп по таблице Кэли, построения полугруппы бинарных +отношений по заданному порождающему множеству, построения полугруппы по +порождающему множеству и определяющим соотношениям, а также была произведена +оценка сложности данных алгоритмов. Программная реализация на языке Python с +библиотекой numpy успешно прошла тестирование. + +\end{document} |