Skip to content

Commit 10809cf

Browse files
committed
Графы и линейная алгебра. В процессе.
1 parent 906f162 commit 10809cf

File tree

4 files changed

+32
-57
lines changed

4 files changed

+32
-57
lines changed

tex/FormalLanguageConstrainedReachabilityLectureNotes.bib

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,3 +1427,14 @@ @article{ArlDinKro70
14271427
url = {http://mi.mathnet.ru/dan35675}
14281428
}
14291429

1430+
@book{doi:10.1137/1.9780898719918,
1431+
author = {Kepner, Jeremy and Gilbert, John},editor = {Jeremy Kepner and John Gilbert},
1432+
title = {Graph Algorithms in the Language of Linear Algebra},
1433+
publisher = {Society for Industrial and Applied Mathematics},
1434+
year = {2011},
1435+
doi = {10.1137/1.9780898719918},
1436+
address = {},
1437+
edition = {},
1438+
URL = {https://epubs.siam.org/doi/abs/10.1137/1.9780898719918},
1439+
eprint = {https://epubs.siam.org/doi/pdf/10.1137/1.9780898719918}
1440+
}

tex/GraphTheoryIntro.tex

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,19 @@ \section{Основные определения}
141141
Мы ввели лишь общие понятия.
142142
Специальные понятия, необходимые для изложения конкретного материала, будут даны в соответствующих главах.
143143

144+
\section{Графы и линейная алгебра}
145+
146+
В данной главе мы рассмотрим некоторые связи\footnote{Связь между графами и линейной алгеброй --- обширная область, в которой можно даже выделить отдельные направления, такие как спектральная теория графов. С точки зрения практики данная связь также подмечена давно и более полно с ней сожно ознакомиться, например, в работах~\cite{doi:10.1137/1.9780898719918, Davis2018Algorithm9S}. Кроме этого, много полезной информации можно найти на сайте \url{https://graphblas.github.io/GraphBLAS-Pointers/}.} между графами и операциями над ними и матрицами и операциями над матрицами.
147+
148+
Матрицы --- рёбра. Операции над матрицами --- операции над рёбрами.
149+
150+
151+
Носитель структуры для матриц сложно связан с тем, откуда веса на рёбрах графа.
152+
153+
Про умножение. Конкатенация рёбер, выбор из нескольких возможных вариантов: как раз две операции в полукольце. Красивая картинка про то, как умножение матриц работает с рёбрами.
154+
155+
Про Кронекера и произведение графов.
156+
144157
\section{Задачи поиска путей}
145158

146159
Одна из классических задач анализа графов --- это задача поиска путей между вершинами с различными ограничениями.

tex/LinearAlgebra.tex

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ \section{Полукольцо}
219219
\end{definition}
220220

221221
\begin{example}\label{exmpl:semiring}
222-
Рассмотрим пример полукольца, а заодно покажем, что левая и правая дистрибутивность могут существовать независимо для некоммутативного умножения\footnote{Хороший пример того, почему левую и правую дистрибутивнойть в случае некоммутативного умножения нужно проверять независимо (правда, для колец), приведён Николаем Александровичем Вавмловым в книге ``Конкретная теория колец'' на странице 6~\cite{VavilovRings}.}.
222+
Рассмотрим пример полукольца, а заодно покажем, что левая и правая дистрибутивность могут существовать независимо для некоммутативного умножения\footnote{Хороший пример того, почему левую и правую дистрибутивнойть в случае некоммутативного умножения нужно проверять независимо (правда, для колец), приведён Николаем Александровичем Вавиловым в книге ``Конкретная теория колец'' на странице 6~\cite{VavilovRings}.}.
223223

224224
В качестве $R$ возьмём множество множеств строк конечной длины над некоторым алфавитом $\Sigma$. В качестве сложения возьмём теоретико-множественное объединение: $\oplus \equiv \cup$. Нейтральный элемент по сложению --- это пустое множество ($\varnothing$).
225225
В качесве умножения возьмём конкатенацию множеств ($\otimes \equiv \odot$) и оперделим её следующим образом:
@@ -558,6 +558,12 @@ \section{Матрицы и вектора}
558558

559559
\end{definition}
560560

561+
\begin{note}\label{note:KronIsNotCommutative}
562+
Отметим, что произведение Кронекера не является коммутативным.
563+
При этом всегда существуют две матрицы перестоновок $P$ и $Q$ такие, что $A \otimes B = P(B \otimes A)Q$.
564+
Это свойство потребуется нам в дальнейшем.
565+
\end{note}
566+
561567
\newcommand{\examplemtrx}
562568
{
563569
\begin{pmatrix}

tex/TensorProduct.tex

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -60,61 +60,6 @@ \section{Рекурсивные автоматы и сети}
6060
\section{Тензорное произведение}
6161
\label{section2}
6262

63-
Тензорное произведение матриц или произведение Кронекера --- это бинарная операция, обозначаемая $\otimes$ и определяемая следующим образом.
64-
65-
\begin{definition}
66-
Пусть даны две матрицы: $A$ размера $m\times n$ и $B$ размера $p\times q$.
67-
Произведение Кронекера или тензорное произведение матриц $A$ и $B$ --- это блочная матрица $C$ размера $mp \times nq$, вычисляемая следующим образом:
68-
$$
69-
C = A \otimes B =
70-
\begin{pmatrix}
71-
A_{0,0}B & \cdots & A_{0,n-1}B \\
72-
\vdots & \ddots & \vdots \\
73-
A_{m-1,0}B & \cdots & A_{m-1,n-1}B
74-
\end{pmatrix}
75-
$$
76-
\end{definition}
77-
78-
%\newcommand{\examplemtrx}
79-
%{
80-
%\begin{pmatrix}
81-
%5 & 6 & 7 & 8 \\
82-
%9 & 10 & 11 & 12 \\
83-
%13 & 14 & 15 & 16
84-
%\end{pmatrix}
85-
%}
86-
87-
\begin{example}
88-
\begin{align}
89-
\begin{pmatrix}
90-
1 & 2 \\
91-
3 & 4
92-
\end{pmatrix}
93-
\otimes
94-
\examplemtrx &=
95-
\begin{pmatrix}
96-
1\examplemtrx & 2\examplemtrx \\
97-
3\examplemtrx & 4\examplemtrx
98-
\end{pmatrix}
99-
=\notag \\
100-
&=
101-
\left(\begin{array}{c c c c | c c c c}
102-
5 & 6 & 7 & 8 & 10 & 12 & 14 & 16 \\
103-
9 & 10 & 11 & 12 & 18 & 20 & 22 & 24 \\
104-
13 & 14 & 15 & 16 & 26 & 28 & 30 & 32 \\
105-
\hline
106-
15 & 18 & 21 & 24 & 20 & 24 & 28 & 32 \\
107-
27 & 30 & 33 & 36 & 36 & 40 & 44 & 48 \\
108-
39 & 42 & 45 & 48 & 52 & 56 & 60 & 64
109-
\end{array}\right)
110-
\end{align}
111-
\end{example}
112-
113-
Заметим, что для определения тензорного произведения матриц достаточно определить операцию умножения на элементах исходных матриц.
114-
Также отметим, что произведение Кронекера не является коммутативным.
115-
При этом всегда существуют две матрицы перестоновок $P$ и $Q$ такие, что $A \otimes B = P(B \otimes A)Q$.
116-
Это свойство потребуется нам в дальнейшем.
117-
11863
Теперь перейдём к графам.
11964
Сперва дадим классическое определение тензорного произведения двух неориентированных графов.
12065

@@ -221,7 +166,7 @@ \section{Алгоритм}
221166
Идея алгоритма основана на обобщении пересечения двух конечных автоматов до пересечения рекурсивного автомата, построенного по грамматике, со входным графом.
222167

223168
Пересечение двух конечных автоматов --- тензорное произведение соответствующих графов.
224-
Пересечение языков коммутативно, тензорное произведение нет, но, как было сказано в разделе~\ref{section2}, существует решение этой проблемы.
169+
Пересечение языков коммутативно, тензорное произведение нет, но, как было сказано в замечании~\ref{note:KronIsNotCommutative}, существует решение этой проблемы.
225170

226171
Будем рассматривать два конечных автомата: одни получан из входного графа, второй из грамматики.
227172
Можно найти их пересечение, вычислив тензорное произведение матриц смежности соответствующих графов.

0 commit comments

Comments
 (0)