Skip to content

Commit 66d7b09

Browse files
committed
Ещё немного про связь графов и линейной алгебры.
Что-то как-то не придумать хороший переход. А приплетать линейные операторы не хочется.
1 parent 10809cf commit 66d7b09

File tree

1 file changed

+42
-6
lines changed

1 file changed

+42
-6
lines changed

tex/GraphTheoryIntro.tex

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
\chapter{Общие сведения теории графов}\label{chpt:GraphTheoryIntro}
1+
\chapter{Некоторые сведения из теории графов}\label{chpt:GraphTheoryIntro}
22

3-
В данном разделе мы дадим определения базовым понятиям из теории графов, рассмотрим несколько классических задач из области анализа графов и алгоритмы их решения.
3+
В данном разделе мы дадим определения базовым понятиям из теории графов, рассмотрим несколько классических задач из области анализа графов и алгоритмы их решения. Кроме этого, поговорим о связи между линейной алгеброй и неокторыми задачами анализа графов.
44
Всё это понадобится нам при последующей работе.
55

66
\section{Основные определения}
@@ -87,7 +87,7 @@ \section{Основные определения}
8787
$$
8888
\end{example}
8989

90-
\begin{example}[Пример матрицы смежности ориентированного графа]
90+
\begin{example}[Пример матрицы смежности ориентированного графа]\label{example:diGraph}
9191
Ориентированный граф:
9292
\begin{center}
9393
\input{figures/graph/graph2.tex}
@@ -121,7 +121,7 @@ \section{Основные определения}
121121
$$
122122
\end{example}
123123

124-
\begin{example}[Пример матрицы смежности взвешенного графа]
124+
\begin{example}[Пример матрицы смежности взвешенного графа]\label{example:apspGraph}
125125
Взвешенный граф для задачи о кратчайших путях:
126126
\begin{center}
127127
\input{figures/graph/graph4.tex}
@@ -145,10 +145,46 @@ \section{Графы и линейная алгебра}
145145

146146
В данной главе мы рассмотрим некоторые связи\footnote{Связь между графами и линейной алгеброй --- обширная область, в которой можно даже выделить отдельные направления, такие как спектральная теория графов. С точки зрения практики данная связь также подмечена давно и более полно с ней сожно ознакомиться, например, в работах~\cite{doi:10.1137/1.9780898719918, Davis2018Algorithm9S}. Кроме этого, много полезной информации можно найти на сайте \url{https://graphblas.github.io/GraphBLAS-Pointers/}.} между графами и операциями над ними и матрицами и операциями над матрицами.
147147

148-
Матрицы --- рёбра. Операции над матрицами --- операции над рёбрами.
148+
Как мы видели в пердыдущем разделе, достаточно естественное представление графа --- это его матрица смежности. Заметим, что говоря о графе, как о графе с весами из некоторого множества на рёбрах, и о его матрице смежности, как о матрице над некоторой структурой, нужно быть аккуратным.
149149

150+
С одной стороны, когда мы говорим о весах на рёбрах, мы, как правило, ожидаем, что множество из которого берутся веса снабжено и некоторыми операциями. Например, если мы хотим трактовать веса как расстояния, то мы ожидаем, что веса можно складывать. Таким образом, веса, очевидно должны рассматриваться не просто как элементы какого-то множества, но как элементы носителья некоторой алгебраической структуры.
150151

151-
Носитель структуры для матриц сложно связан с тем, откуда веса на рёбрах графа.
152+
С другой стороны, алгебраическая структура, задающая веса в графе, и алгебраическая структура, над которой строится матрица смежности данного графа --- не одно и то же. Проще всего это заметить в примере~\ref{example:apspGraph}. Веса на рёбрах в данном случае из $\mathbb{R}$\footnote{В некоторых случаях логично даже требовать, чтобы веса были из $\mathbb{R} \setminus \{0\}$.}, в то время как носитель структуры, над которой построена матрица, содержит ещё и элеиент $\infty$, то есть носитель уже $\mathbb{R}\cup\{\infty\}$. Ещё более запутанная ситуация с примером~\ref{example:diGraph}. Матрица смежности содержит булевы значения, в то время как граф, вообще говоря, весов не рёбрах не имеет.
153+
154+
Так как же связаны алгебраическая структура, над которой строится матрица смежности, и структура, определяющая веса на рёбрах?
155+
156+
Первое, что необходимо уяснить --- это то, что обе структуры зависят от того, в каком контексте мы рассматриваем граф, какую задачу мы собираемся решать. Это естественным образом накладывает ограничения и на носитель и на операции. Например, если мы собираемся обсуждать задачу поиска кратчайших путей, то один из логичных вопросов, которые надо решить, допускаем ли мы отрицательные веса? Далее, раз речь идет о поиске кратчайшего (наиментшего) пути, то нам нобходима операция взятия минимума. Далее, нам необходимо уметь получать длину пути на основе длин его состовляющих, а значит нам нужна операция сложения весов.
157+
158+
Интуитивно мы ожидаем, что в алгебраической структуре будут те же самые операции (по крайней мере по своему смыслу), что и в структуре для весов. Действительно, задачу мы решаем одну и ту же. Однако аккуратное рассмотрение данного вопроса приводит нас к тому, что формально операции будут всё же разные. Произойдёт это по следующей причине. В графе информация об отсутсвии ребра представдена (в каком-то смысле) неявно, однако в матрице смежности все ячейки должны содержать какие-то явные значения. Логичное решение --- расширить множество весов каким-то специальным значением. Так обычно и поступают. Но после этого надо доопределить действие операций над весами до действия на новом множестве (фактически, задать поведение для нового элемента).
159+
160+
В большинстве задач нам будут требоваться две опреации, появляющиеся из следующих соображений. Во-первых, изначально у нас есть только рёбра, а дальше мы будем ``собирать'' путь из частей: сперва из рёбер, затем и из других путей. Элементарный шаг здесь --- это соединить две часть пути с общей вершиной в новый путь. При этом неодходимо по весам двух подпутей получить вес нового пути. За это будет отвечать операция $\otimes$ на множестве весов\footnote{При первом рассмотрении такой выбор кажется контринтуитивным. Действительно, ведь при соединении путей мы как бы ``складываем'' их веса. Но при более детальном анализе поведения этой опреации, в частности, относительно нейтрального элемента, становится понятно, что она ведёт себя очень похоже на умножение. Вероятно, стоит обратить внимение на операцию конкатенации, которая, с одной стороны, ``делает то, что нам нужно'', а с другой, (и неспроста) часто обозначается $\cdot$.}. Во-вторых, нам необходимо как-то обрабатывать ситуации, когда между двумя вершинами существует несколько различных путей. Иными словами, необходимо уметь агрегировать информацию по множеству путей. И за это будет отвечать операция $\oplus$. Таким образом, когда мы говорим о графе, достаточно естественным образом появляется структура $R=(S,\oplus,\otimes)$.
161+
162+
\begin{example} Построим такую структуру для ориентированного графа без весов и задачи достижисмости. В качестве $S$ можно взять множество с одним элементом, скажем $s$, и считать, что все рёбра помечены им\footnote{А раз все рёбра имеют одинаковый заранее известный вес, то можно его и не писать для каждого ребра при задании графа. Поэтому привычное нам изображение получается достаточно логичным.}.
163+
164+
Какое поведение мы ожидаем от $\otimes$? Нас интересует только факт наличия пути, а наличие метки $s$ ровно это обозначает. Таким образом, если мы собираем путь из двух рёбер, то мы получаем путь с весом $s$. Иными словами, $s \otimes s = s$.
165+
166+
Из аналогичных соображений зададим поведение операции $\otimes$. Сколько бы путей не существовало между двумя вершинами, на важно знать, существует ли хотя бы один или не существует ниодного. То есть $s \oplus s = s$.
167+
168+
В результате получаем, что $R=(\{s\}, \oplus, \otimes)$, где $s \oplus s = s, s \otimes s = s$.
169+
170+
Теперь перейдём к матрице смежности. Так как нам необходмо обозначать факт отсутствия пути, то нам потребуется ещё один элемент. Скажем, $n$. Таким образом, носитель у нас теперь состоит из двух элементов: $S' = \{s,n\}$. Посмотрим, как можно доопределить поведение операий для того, чтобы они корректно обрабатывали новое значение на входе.
171+
172+
Вот этот переход не очевиден.
173+
174+
Умножение должно обрабатывать
175+
\begin{itemize}
176+
\item $s \otimes s = s$ : если существует путь $i \pi j$ и путь $j \pi k$, то существует путь $i \pi k$.
177+
\item $s \otimes n = n$ : если существует путь $i \pi j$ и не существует пути $j \pi k$, то не существует и пути $i \pi k$.
178+
\item $n \otimes s = n$ : если не существует пути $i \pi j$ и существует путь $j \pi k$, то не существует и пути $i \pi k$.
179+
\item $n \otimes n = n$ : если не существует пути $i \pi j$ и не существует пути $j \pi k$, то не существует и пути $i \pi k$.
180+
\end{itemize}
181+
Предположим, что мы решаем задачу достижимости, а заначит нас интересует только ф
182+
183+
Нам просто повезло, что получившаяся структура изоморфна булеву полукольцу.
184+
185+
\end{example}
186+
187+
Матрицы --- рёбра. Операции над матрицами --- операции над рёбрами.
152188

153189
Про умножение. Конкатенация рёбер, выбор из нескольких возможных вариантов: как раз две операции в полукольце. Красивая картинка про то, как умножение матриц работает с рёбрами.
154190

0 commit comments

Comments
 (0)