You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tex/GraphTheoryIntro.tex
+57-34Lines changed: 57 additions & 34 deletions
Original file line number
Diff line number
Diff line change
@@ -6,9 +6,15 @@ \chapter{Некоторые сведения из теории графов}\lab
6
6
\section{Основные определения}
7
7
8
8
\begin{definition}
9
-
\textit{Граф} $\mathcal{G} = \langle V, E, L \rangle$, где $V$ --- конечное множество вершин, $E$ --- конечное множество рёбер, т.ч. $E \subseteq V \times L \times V$, $L$ --- конечное множество меток на рёбрах.
9
+
\textit{Помеченный ориентированный граф} $\mathcal{G} = \langle V, E, L \rangle$, где $V$ --- конечное множество вершин, $E$ --- конечное множество рёбер, т.ч. $E \subseteq V \times L \times V$, $L$ --- конечное множество меток на рёбрах. В некоторых случаях метки называют \textit{весами}\footnote{Весами метки называют ,как правило, тогда, когда они берутся из какого-либо поля, например $\mathbb{R}$ или $\mathbb{N}$.} и тогда говорят о \textit{взвешенном} графе.
10
10
\end{definition}
11
11
12
+
13
+
\begin{definition}
14
+
В случае, если для любого ребра $(u,l,v)$ в графе также содержится ребро $(v,l,u)$, говорят, что граф \textit{неориентированный}.
15
+
\end{definition}
16
+
17
+
12
18
В дальнейшем речь будет идти о конечных ориентированных помеченных графах.
13
19
Мы будем использовать термин \textit{граф} подразумевая именно конечный ориентированный помеченный граф, если только не оговорено противное.
14
20
@@ -29,10 +35,6 @@ \section{Основные определения}
29
35
\end{center}
30
36
\end{example}
31
37
32
-
\begin{definition}
33
-
\textit{Ребро} ориентированного помеченного графа $\mathcal{G} = \langle V, E, L \rangle$ это упорядоченная тройка $e = (v_i,l,v_j) \in V \times L \times V$.
34
-
\end{definition}
35
-
36
38
\begin{example}[Пример рёбер графа]
37
39
$(0,a,1)$ и $(3,b,2)$ --- это рёбра графа $\mathcal{G}_1$. При этом, $(3,b,2)$$(2,b,3)$ --- это разные рёбра.
Отметим, что рефлексивность этого отношения часто зависит от контекста.
66
-
В некоторых задачах по-умолчанию $(v_i,v_i) \notin P$, а чтобы это было верно, требуется явное наличие ребра-петли.
67
+
Отметим, что в некоторых задачах удобно считать по-умолчанию, что $(v_i,v_i) \in P$, однако наше определение такого не допускает. Исправить ситуацию можно явно добавив петли $(v_i,l,v_i)$ для всех вершин.
67
68
68
69
Один из способов задать граф --- это задать его \textit{матрицу смежности}.
69
70
70
71
\begin{definition}
71
-
\textit{Матрица смежности} графа $\mathcal{G}=\langle V,E,L \rangle$ --- это квадратная матрица $M$ размера $n \times n$, где $|V| = n$ и ячейки которой содержат множества.
72
-
При этом $l \in M[i,j] \iff\exists e = (i,l,j) \in E$.
73
-
\end{definition}
72
+
\textit{Матрица смежности} графа $\mathcal{G}=\langle V,E,L \rangle$ --- это квадратная матрица $M$ размера $n \times n$, где $|V| = n$, построенная над алгебраической структурой $\mathbb{G} = (S,\circ\colon S \times S \to S)$, которая конструируется следующим образом.
74
73
75
-
Заметим, что наше определение матрицы смежности отличается от классического, в котором матрица отражает лишь факт наличия хотя бы одного ребра и, соответственно, является булевой. То есть $M[i,j] = 1\iff\exists e = (i,\_,j) \in E$.
74
+
\begin{enumerate}
75
+
\item$L \subseteq S$.
76
+
\item$\circ$ --- коммутативная бинарная операция.
77
+
\item Существует $\mathbb{0} \in (S \setminus L)$ --- нейтральный элемент относительно $\circ$.
78
+
\end{enumerate}
76
79
80
+
При этом $M[i,j] = \bigcirc_{(i,l,j) \in E}l$, где $\bigcirc_\varnothing = \mathbb{0}$.
81
+
\end{definition}
77
82
78
-
Также можно встретить матрицы смежности, в ячейках которых всё же хранится некоторая информация, однако, в единственном экземпляре. То есть запрещены параллельные рёбра.
79
-
Такой подход часто можно встретить в задачах о кратчайших путях: в этом случае в ячейке хранится расстояние между двумя вершинами.
80
-
При этом, так как в качестве весов часто рассматривают произвольные (в том числе отрицательные) числа, то в задачах о кратчайших путях отдельно вводят значение ``бесконечность'' для обозначения ситуации, когда между двумя вершинами нет пути или его длина ещё не известна.
81
-
Всё это приводит к тому, что \textit{матрица смежности} --- это обобщённое понятие, нежели конкретный специальный тип матриц.
82
-
Данная конструкция даёт общее представление о том, как в матричном виде хранить различную информацию о смежности вершин в графе.
83
+
Заметим, что наше определение матрицы смежности отличается от классического, в котором матрица является булевой и отражает лишь факт наличия хотя бы одного ребра и. То есть $M[i,j] = 1\iff\exists e = (i,\_,j) \in E$.
$\mathbb{G} = (S,\circ)$ в этом случае конструируется следующим образом. Во-первых, придётся предположить, что $L$ --- множество с одним элементом, скажем $s$, и считать, что все рёбра помечены им\footnote{А раз все рёбра имеют одинаковый заранее известный вес, то можно его и не писать для каждого ребра при задании графа. Поэтому привычное нам изображение получается достаточно логичным.}. Далее, $S = L \cup{\{n\}} = \{s,n\}$, где $n$ --- нейтральный элемент относительно $\circ$. Тогда $\circ$ можно определить поточечно следующим образом.
92
+
\begin{itemize}
93
+
\item$s \circ s = s$
94
+
\item$s \circ n = n \circ s = s$
95
+
\item$n \circ n = n$
96
+
\end{itemize}
97
+
98
+
Таким образом, матрица смежности данного графа выглядит следующим образом:
99
+
$$
100
+
\begin{pmatrix}
101
+
n & s & s & n \\
102
+
s & n & s & n \\
103
+
s & s & n & s \\
104
+
n & n & s & n
105
+
\end{pmatrix}
106
+
$$
107
+
, что может показаться несколько непривычным. Однако заметим, что построенная нами структура $\mathbb{G} = (\{s,n\}, \circ)$ изоморфна $\mathbb{G}' = (\{1,0\}, \vee)$. При переходе к $\mathbb{G}'$ мы получим привычную нам булеву матрицу смежности:
91
108
$$
92
109
\begin{pmatrix}
93
-
1 & 1 & 1 & 0\\
94
-
1 & 1 & 1 & 0\\
95
-
1 & 1 & 1 & 1\\
96
-
0 & 0 & 1 & 1
110
+
0 & 1 & 1 & 0\\
111
+
1 & 0 & 1 & 0\\
112
+
1 & 1 & 0 & 1\\
113
+
0 & 0 & 1 & 0
97
114
\end{pmatrix}
98
115
$$
116
+
Заметим, что матрица смежности неориентированного графа всегда симметрична относительно главной диагонали.
Построить его булеву матрицу смежности можно применив рассуждения из предыдущего примера (\ref{exmpl:undirectedGraphMatrix}) и выглядеть она будет следующим образом:
Необходимо заметить, что свойства $\mathbb{G}$, а значит и детали её построения, зависят от задачи, в рамках которой рассматривается граф. В примерах выше мф строили $\mathbb{G}$ из некоторых общих соображений, не специфицируя решаемую задачу, стараясь получить ожидаемый результат. Далее мы рассмотрим пример, в котором видно, как решаемая задача влияет на построение $\mathbb{G}$.
И его матрица смежности (для задачи о кратчайших путях):
162
+
Будем считать, что веса берутся из $\mathbb{R}$, а решаемая задача --- поиск кратчайших путей между вершинами. В таком случае естественно предположить, что для любой вершины $v_i$ существует петля $v_i,0,v_i$, хоть она явно и не изображена. Далее, $\mathbb{G} = ( \mathbb{R}\cup\{\infty\} , \min)$, где $\infty$ --- нейтральный элемент относительно операции $\min$.
163
+
164
+
В результате мы получим следующую матрицу смежности:
142
165
$$
143
166
\begin{pmatrix}
144
167
0 & -1.4 & \infty & \infty\\
@@ -365,7 +388,7 @@ \section{APSP и произведение матриц}
0 commit comments