Skip to content

Commit 4de3655

Browse files
committed
Больше правок в разделе про связь графов и линейной алгебры.
1 parent cffadd0 commit 4de3655

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

tex/FormalLanguageConstrainedReachabilityLectureNotes.bib

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,4 +1437,11 @@ @book{doi:10.1137/1.9780898719918
14371437
edition = {},
14381438
URL = {https://epubs.siam.org/doi/abs/10.1137/1.9780898719918},
14391439
eprint = {https://epubs.siam.org/doi/pdf/10.1137/1.9780898719918}
1440+
}
1441+
1442+
@inproceedings{Baras2010PathPI,
1443+
title={Path Problems in Networks},
1444+
author={J. Baras and George Theodorakopoulos},
1445+
booktitle={Path Problems in Networks},
1446+
year={2010}
14401447
}

tex/GraphTheoryIntro.tex

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ \section{Основные определения}
174174

175175
Таким образом, уже можно заметить, что введение моноида как абстракции позволяет достаточно унифицированным образом смотреть на различные графы и их матрицы смежности. Далее мы увидим, что данный путь позволит решать унифицированным образом достаточно широкий круг задач, связанных с анализом путей в графах. Но сперва мы сформулируем различные варианты задачи поиска путей в графе. Это необходимо для формулировки задач, на решение которых мы в конечном итоге нацелены.
176176

177+
177178
\section{Задачи поиска путей}
178179

179180
Одна из классических задач анализа графов --- это задача поиска путей между вершинами с различными ограничениями.
@@ -207,12 +208,19 @@ \section{Задачи поиска путей}
207208

208209
В итоге, перебирая возможные варианты желаемого результата и способы фиксации стартовых и финальных вершин, мы можем сформулировать достаточно большое количество задач. Например, задачу поиска всех путей между двумя заданными вершинами, задачу поиска одного пути от фиксированной стартовой вершины до каждой вершины в графе, или задачу достижимости между всеми парами вершин.
209210

210-
Часто при поиске путей на них накладывают дополнительные ограничения. Например, можно потребовать, чтобы пути были простыми или не проходили через определённые вершины. Один из естественных способов задавать ограничения --- это формулировать их в терминах той алгебраической структуры, из которой берутся веса рёбер графа.
211+
Часто поиск путей сопровождается изучением их свойств, что далее приводит к формулированию дополнительных ограничений на пути в терминах этих свойств. Например, можно потребовать, чтобы пути были простыми или не проходили через определённые вершины. Один из естественных способов описывать свойства и, как следствие, задавать ограничения --- это использовать ту алгебраическую структуру, из которой берутся веса рёбер графа\footnote{На самом деле здесь наблюдается некоторая двойственность. С одной стороны, действительно, удобно считать, что свойства описываются в терминах некоторой заданной алгебраической структуры. Но, вместе с этим, структура подбирается исходя из решаемой задачи.}.
212+
213+
Предположим, что дан граф $\mathcal{G} = \langle V, E, L\rangle $, где $L = \langle S, \oplus, \otimes \rangle$ --- это полукольцо. Тогда изучение свойств путей можно описать следующим образом: $$ \{(v_i, v_j, c) \mid \exists v_i \pi v_j, c = \bigoplus_{\forall v_i \pi v_j} \bigotimes_{(u,l,v) \in \pi } l \}.$$
214+
215+
Иными словами, для каждой пары вершин, для которой существует хотя бы один путь, их соединяющий, мы агрегируем (с помощью операции $\oplus$ из полукольца) информацию обо всех путях между этими вершинами. При этом информация о пути получается как свёртка меток рёбер пути с использованием операции $\otimes$\footnote{Заметим, что детали свёртки вдоль пути зависят от свойств полукольца (и от решаемой задачи). Так, если полукольцо коммутативно, то нам не обязательно соблюдать порядок рёбер. В дальнейшем мы увидим, что данные особенности полукольца существенно влияют на особенности алгоритмов решения соответствующих задач.}.
216+
217+
Естественным требованием (хотя бы для прикладных задач, решаемых таким способом) является существование и конечность указанной суммы. На данном этапе мы не будем касаться того, какие именно свойства полукольца могут нам обеспечить данное свойство, однако в дальнейшем будем считать, что оно выполняется. Более того, будем стараться приводить частные для конкретной задачи рассуждения, показывающие, почему это свойство выполняется в рассматриваемых в задаче ограничениях.
218+
219+
Описанная выше задача общего вида называется анализом свойств путей алгебраическими методами (Algebraic Path Problem~\cite{Baras2010PathPI}) и предоставляет общий способ для решения широкого класса прикладных задач\footnote{В работе ``Path Problems in Networks''~\cite{Baras2010PathPI}, упомянутой чуть выше, собран действительно большой список прикладных задач с описанием соответствующих полуколец. Сводная таблица на страницах 58--59 содержит 29 различных прикладных задач и соответствующих полуколец.}. Наиболее известными являются такие задачи, как построение транзитивного замыкания графа и поиск кратчайших путей.
211220

212-
Предположим, что дан граф $\mathcal{G} = \langle V, E, L\rangle $, где $L = \langle S, \oplus, \otimes \rangle$ --- это полукольцо. Тогда можно поставить следующую задачу: выяснить, каково наилучшее значение некоторого свойства $$ \{(v_i, v_j, c) \mid \exists v_i \pi v_j, c = \bigoplus_{\forall v_i \pi v_j} \bigotimes_{(u,l,v) \in \pi } l \} $$
221+
%Ограничение, имеющее важное прикладное значение, --- минимальность длины искомого пути.
222+
%Одна из важных задач, имеющих как прикладное, так и теоретическое значение --- \textit{поиск кратчайших путей в графе между всеми парами вершин(англ. APSP --- all-pairs shortest paths)}. Рассмотрим её более подробно. Тем более, что данная задача в определённом смысле близка к задаче, которая будет основной в данной работе, и из алгоритмов для APSP можно почерпнуть идеи для алгоритмов решения задачи поиска путей с ограничениями в терминах формальных языков.
213223

214-
Ограничение, имеющее важное прикладное значение, --- минимальность длины искомого пути.
215-
Одна из важных задач, имеющих как прикладное, так и теоретическое значение --- \textit{поиск кратчайших путей в графе между всеми парами вершин(англ. APSP --- all-pairs shortest paths)}. Рассмотрим её более подробно. Тем более, что данная задача в определённом смысле близка к задаче, которая будет основной в данной работе, и из алгоритмов для APSP можно почерпнуть идеи для алгоритмов решения задачи поиска путей с ограничениями в терминах формальных языков.
216224

217225
\section{Графы и линейная алгебра}
218226

tex/LinearAlgebra.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ \section{Бинарные операции и их свойства}
4040
\begin{example} Рассмотрим несколько примеров коммутативных и некоммутативных операций.
4141
\begin{itemize}
4242
\item Операция сложения на целых числах $+$ является коммутативной: известный ещё со школы перестановочный закон сложения.
43-
\item Операция конкатенации на строках $+$ не является коммутативной: $$``ab" + ``c" \ = ``abc" \neq ``c" + ``ab" \ = ``cab".$$
43+
\item Операция конкатенации на строках $\cdot$ не является коммутативной: $$``ab" \cdot ``c" \ = ``abc" \neq ``c" \cdot ``ab" \ = ``cab".$$
4444
\item Операция умножения на целых числах является коммутативной: известный ещё со школы перестановочный закон умножения.
4545
\item Операция умножения матриц (над целыми числами) $\cdot$ не является коммутативной:
4646
$$\begin{pmatrix}
@@ -78,7 +78,7 @@ \section{Бинарные операции и их свойства}
7878
\begin{itemize}
7979
\item Операция сложения на целых числах $+$ является ассоциативной.
8080
\item Операция умножения на целых числах является ассоциативной.
81-
\item Операция конкатенации на строках $+$ является ассоциативной: $$(``a" + ``b") + ``c" \ = ``a" + (``b" + ``c") = ``abc" .$$
81+
\item Операция конкатенации на строках $\cdot$ является ассоциативной: $$(``a" \cdot ``b") \cdot ``c" \ = ``a" \cdot (``b" \cdot ``c") = ``abc" .$$
8282
\item Операция возведения в степень (над целыми числами) $\hat{\mkern6mu}$ не является ассоциативной:
8383
$$(2\hat{\mkern6mu}2)\hat{\mkern6mu}3 = 4 \hat{\mkern6mu} 3 = 64 \neq 2\hat{\mkern6mu}(2\hat{\mkern6mu}3) = 2 \hat{\mkern6mu} 8 = 256.$$
8484
\end{itemize}
@@ -100,7 +100,7 @@ \section{Бинарные операции и их свойства}
100100

101101
\begin{itemize}
102102
\item Умножение целых чисел дистрибутивно относительно сложения и вычитания: классический \textit{распределительный закон}, знакомый всем со школы.
103-
\item Операция деления (допустим, на действительных числах) не коммутативна. при этом, она дистрибутивна справа относительно сложения и вычитания, но не дистрибутивна слева.
103+
\item Операция деления (допустим, на действительных числах) не коммутативна. При этом, она дистрибутивна справа относительно сложения и вычитания, но не дистрибутивна слева.
104104
$$(a + b) / c = (a / c) + (b / c) $$
105105
но
106106
$$c / (a + b) \neq (c / a) + (c / b)\footnote{Здесь может быть уместно вспомнить правила сложения дробей. Дроби с общим знаминателем складывать проще как раз из-за дистрибутивности справа.}.$$

0 commit comments

Comments
 (0)