Skip to content

Commit baa8b49

Browse files
committed
В теории графов добавлена булева декомпозиция и фраза про индексированное множество для вершин.
1 parent 867b117 commit baa8b49

2 files changed

Lines changed: 56 additions & 7 deletions

File tree

tex/part_01_Prep/chapter_02_SetTheory/01_BasicDefinitions.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ \section{Основные определения}
1010
\end{definition}
1111

1212
\begin{definition}[Индексация множества]
13+
\label{def:SetIndexing}
1314
Пусть дано множество $M$, такое что $|M| = n$.
1415
Будем говорить, что множество $M$ \emph{проиндексировано} если задано биективное отображение $g$ между отрезком натурального ряда $[0 \ldots n-1]$ и $M$.
1516
Если $g(i) = m$, то $i$ будем называть \emph{индексом} или \emph{номером} $m$.

tex/part_01_Prep/chapter_03_GraphTheoryIntro/01_BasicDefinitions.tex

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ \section{Основные определения}
3535
В дальнейшем речь будет идти о конечных ориентированных помеченных графах.
3636
Мы будем использовать термин \emph{граф} подразумевая именно конечный ориентированный помеченный граф, если только не оговорено противное.
3737

38-
Также мы будем считать, что все вершины занумерованы подряд с нуля.
39-
То есть можно считать, что $V$~--- это отрезок $[0 \rng |V| - 1]$, где $|V|$~--- мощность множества $V$.
38+
Также мы будем считать, что множество вершин $V$ проиндексировано\sidenote{Более того, часто мы будем считать, что множество врешин~--- это просто отрезок $[0 \rng |V|-1]$} (см. определение~\ref{def:SetIndexing}).
4039

4140
\begin{definition}[Путь]
4241
\label{def:path}
@@ -127,6 +126,7 @@ \section{Основные определения}
127126
\label{gr:graph3}
128127
\end{marginfigure}
129128
\begin{example}[Пример матрицы смежности помеченного графа]
129+
\label{exmpl:matrix_for_labelled_graph}
130130
Пусть дан помеченный граф (см. рисунок \ref{gr:graph3}).
131131
В данном случае $L = \{a,b\}$.
132132
Так как мы не будем в данном примере запрещать параллельные рёбра, то ячейки матрицы будут содержать множества меток: метки для всех параллельных рёбер между парой вершин.
@@ -190,28 +190,76 @@ \section{Основные определения}
190190

191191
Во-вторых, матрица смежности редко нужна <<сама по себе>>.
192192
Как правило, над ней необходимо выполнять какие-либо операции в рамках решения какой-то задачи.
193-
Более того, часто операции над элементами матрицы нужны просто для того, чтобы аккуратно определить, как именно сохраняется информация о метках параллельных рёбер.
193+
Более того, часто операции над элементами матрицы нужны просто для того, чтобы аккуратно определить, как именно сохраняется информация о метках параллельных рёбер\sidenote{В примере~\ref{exmpl:matrix_for_labelled_graph} мы решили эту проблему используя множества, но это не всегда уместно.}.
194194
Дабы обеспечить эту возможность, мы будем либо сразу говорить, что матрица определена над какой-либо алгебраической структурой\sidenote{
195195
Конкретный тип структуры будет зависеть от решаемой задачи. Где-то хватит моноида, где-то потребуется полукольцо, а где-то ещё более сложная структура.
196196
}, использующей в качестве носителя $\Opt{L}$, либо определять соответствующую структуру отдельно\sidenote{
197197
Такой подход может быть удобен с точки рения разделения данных и операций над ними.
198198
В частности, мы можем опеределить несколько структур с одинаковым носителем и разными операциями.
199199
}.
200200

201-
Нам будет удобно пользоваться первым вариантом, так как он позволяет естественным образом получить представление для параллельных рёбер.
202-
В итоге мы получим следующее определение.
201+
Для определения обобщённой матрицы смежности нам будет удобно пользоваться первым вариантом, так как он позволяет естественным образом получить представление для параллельных рёбер\sidenote{Хотя при решении прикладных задач чаще используется второй, так как во многих языках программирования удобнее разделить стуктуру данных и функции работы с ней.}.
203202

204203
\begin{definition}[Матрица смежности]
205-
\emph{Матрица смежности} графа $\mbfscrG = \langle V, E, L \rangle$~--- это квадратная матрица $M$ размера $n \times n$, где $|V| = n$, построенная над коммутативным моноидом $\BbbG = (\Opt{L}, \circ)$.
204+
\emph{Матрица смежности} графа $\mbfscrG = \langle V, E, L \rangle$~--- это квадратная матрица $M$ размера $n \times n$, где $|V| = n$, построенная над коммутативным\sidenote{Коммутативность нам нужна для того, чтобы при построении матрицы не думать, в каком порядке добавлять параллельные рёбра.} моноидом $\BbbG = (\Opt{L}, \circ)$.
206205
При этом \[M[i,j] = \underset{{(i, l, j) \in E}}{\bigcirc} l\], где $\underset{\varnothing}{\bigcirc} = \Bbbzero$ и $\Bbbzero$~--- нейтральный элемент относительно $\circ$.
207206
\end{definition}
208207

209208
Заметим, что наше определение матрицы смежности требует некоторой аккуратности при соотнесении с ним данных выше примеров.
210209
Во-первых, в нашем определении присутствует моноид, который в примерах не фигурировал вовсе.
211-
Во-вторых, выбор специального значения и способ представления информации о параллельных рёбрах в примерах выбирался исходя из некоторой интуитивной <<естественности>>, но в реальности нам необходимо аккуратно согласовывать даный выбор с решаемой задачей и соответствующими алгебраическими структурами.
210+
Во-вторых, выбор специального значения и способ представления информации о параллельных рёбрах в примерах выбирался исходя из некоторой интуитивной <<естественности>>, но в реальности нам необходимо аккуратно согласовывать данный выбор с решаемой задачей и соответствующими алгебраическими структурами.
212211
Таким образом, свойства структуры $\BbbG$, а значит и детали её построения, зависят от задачи, в рамках которой рассматривается граф.
213212
А значит, и матрица смежности конструируется исходя из задачи.
214213

214+
В ряде случаев граф удобно представлять не одной матрицей смежности, а набором матриц.
215+
Рассмотрим частный случай, в котором матрица смежности строится над моноидом $\BbbG = (\mathcal{P}(L), \cup)$, где $\mathcal{P}(L)$~--- множество всех подмножеств $L$, операция $\cup$~--- объединение множеств, а $\Bbbzero = \varnothing$.
216+
Иными словами, ячейка $M[i,j]$ содержит множество всех меток рёбер, соединяющих вершину $i$ с вершиной $j$.
217+
Именно такую матрицу мы построили в примере~\ref{exmpl:matrix_for_labelled_graph}.
218+
219+
Далее, для каждого элемента $l \in L$ можно построить отдельную булеву матрицу, несущую информацию о том, существует ли в графе ребро с меткой $l$.
220+
221+
\begin{definition}[Булева декомпозиция матрицы смежности]
222+
\label{def:BoolDecomposition}
223+
\emph{Булевой декомпозицией} матрицы смежности $M$ графа $\mbfscrG = \langle V, E, L \rangle$ (построенной над $\mathcal{P}(L)$) называется семейство булевых матриц $\mathcal{M} = \{M_l \mid l \in L \}$, где каждая $M_l$ размера $|V| \times |V|$ определена как
224+
\[ M_l[i,j] = \begin{cases}
225+
1, & \text{если } l \in M[i,j] \\
226+
0, & \text{иначе}.
227+
\end{cases} \]
228+
\end{definition}
229+
230+
Иными словами, $M_l[i,j] = 1$ тогда и только тогда, когда в исходном графе существует ребро $(i,l,j)$.
231+
232+
\begin{example}[Булева декомпозиция для матрицы из примера~\ref{exmpl:matrix_for_labelled_graph}]
233+
\label{exmpl:bool_decomposition}
234+
Напомним матрицу смежности $M$ из примера~\ref{exmpl:matrix_for_labelled_graph}:
235+
\[
236+
\begin{pmatrix}
237+
\varnothing & \{a\} & \varnothing & \varnothing \\
238+
\varnothing & \varnothing & \{a\} & \varnothing \\
239+
\{a\} & \varnothing & \varnothing & \{a,b\} \\
240+
\varnothing & \varnothing & \{b\} & \varnothing
241+
\end{pmatrix}.
242+
\]
243+
244+
Так как $L = \{a, b\}$, булева декомпозиция состоит из двух матриц~--- $M_a$ и $M_b$:
245+
\[
246+
M_a = \begin{pmatrix}
247+
0 & 1 & 0 & 0 \\
248+
0 & 0 & 1 & 0 \\
249+
1 & 0 & 0 & 1 \\
250+
0 & 0 & 0 & 0
251+
\end{pmatrix},
252+
\quad
253+
M_b = \begin{pmatrix}
254+
0 & 0 & 0 & 0 \\
255+
0 & 0 & 0 & 0 \\
256+
0 & 0 & 0 & 1 \\
257+
0 & 0 & 1 & 0
258+
\end{pmatrix}.
259+
\]
260+
То есть $\mathcal{M}_G = \{M_a, M_b\}$.
261+
\end{example}
262+
215263
Как итог, уже можно заметить, что введение алгебраических структур как абстракции позволяет достаточно унифицированным образом смотреть на различные графы и их матрицы смежности.
216264
Далее мы увидим, что данный путь позволит решать унифицированным образом достаточно широкий круг задач, связанных с анализом путей в графах.
217265
Но сперва мы рассмотрим некоторые классические задачи анализа графов, которые понадобятся нам далее, и покажем их связь с линейной алгеброй.

0 commit comments

Comments
 (0)