Основные определения теории графов — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 49: Строка 49:
  
 
Стоит отметить, что для ориентированного графа справедлива [[Лемма о рукопожатиях|лемма о рукопожатиях]], связывающая количество ребер с суммой [[Основные определения теории графов#Степень вершины|степеней вершин]].
 
Стоит отметить, что для ориентированного графа справедлива [[Лемма о рукопожатиях|лемма о рукопожатиях]], связывающая количество ребер с суммой [[Основные определения теории графов#Степень вершины|степеней вершин]].
 
 
{{Определение
 
|definition =
 
'''Путём''' (маршрутом, path) в графе называется последовательность вида <tex>v_0 e_1 v_1 ... e_k v_k</tex>,  где <tex>e_i \in E,~e_i = (v_{i-1}, v_i)</tex>; <tex>k</tex> {{---}} '''длина''' пути.
 
}}
 
{{Определение
 
|definition =
 
'''Циклическим путём''' (closed walk) называется путь, в котором <tex>v_0 = v_k</tex>.
 
}}
 
{{Определение
 
|definition =
 
'''Цикл''' (integral cycle) {{---}} это [[Отношение эквивалентности#Классы эквивалентности|класс эквивалентности]] циклических путей на отношении эквивалентности таком, что два пути эквивалентны, если <tex> \exists  j \forall i : e_{(i \mod k)} = e'_{(i + j) \mod k}</tex>; где <tex>e</tex> и <tex>e'</tex> {{---}} это две последовательности ребер в циклическом пути.
 
}}
 
  
 
==Неориентированные графы==
 
==Неориентированные графы==
Строка 85: Строка 71:
 
'''Степенью''' (degree, valency) вершины <tex>\operatorname{deg} v_i</tex> в неориентированном графе называют число ребер, инцидентных <tex>v_i</tex>. Будем считать, что петли добавляют к степени вершины <tex>2</tex>.
 
'''Степенью''' (degree, valency) вершины <tex>\operatorname{deg} v_i</tex> в неориентированном графе называют число ребер, инцидентных <tex>v_i</tex>. Будем считать, что петли добавляют к степени вершины <tex>2</tex>.
  
{{Определение
+
 
|definition =
 
'''Циклическим путём''' в неориентированном графе называется путь, в котором <tex>v_0 = v_k</tex>, а так же <tex> e_i \ne e_{(i+1) \mod k}</tex>.
 
}}
 
  
 
Остальные определения в неориентированном графе совпадают с аналогичными определениями в ориентированном графе.
 
Остальные определения в неориентированном графе совпадают с аналогичными определениями в ориентированном графе.
Строка 101: Строка 84:
 
Если граф разрежен (sparse graph, <tex>|E| \ll |V^2|</tex>, то есть, неформально говоря, в нем не очень много ребер. Формально говорить не получается, потому что везде разреженные графы определяются по-разному), его лучше представить в виде списков смежности, где список для вершины <tex>v</tex> будет содержать вершины <tex>u: (v, u) \in E</tex>. Данный способ позволит сэкономить память, т.к. не придется хранить много нулей.
 
Если граф разрежен (sparse graph, <tex>|E| \ll |V^2|</tex>, то есть, неформально говоря, в нем не очень много ребер. Формально говорить не получается, потому что везде разреженные графы определяются по-разному), его лучше представить в виде списков смежности, где список для вершины <tex>v</tex> будет содержать вершины <tex>u: (v, u) \in E</tex>. Данный способ позволит сэкономить память, т.к. не придется хранить много нулей.
  
=== Матрица инцидентности ===
+
=== Пути в графах ===
 +
{{Определение
 +
|definition =
 +
'''Путём''' (маршрутом, path) в графе называется последовательность вида <tex>v_0 e_1 v_1 ... e_k v_k</tex>,  где <tex>e_i \in E,~e_i = (v_{i-1}, v_i)</tex>; <tex>k</tex> {{---}} '''длина''' пути.
 +
}}
 +
 
 +
{{Определение
 +
|definition =
 +
'''Циклическим путём''' (closed walk) в ориентированном графе называется путь, в котором <tex>v_0 = v_k</tex>.
 +
}}
  
Имеет место и другое представление графа -  [[Матрица инцидентности графа|матрица инцидентности]], которая сопоставляет множество вершин множеству ребер. То есть:
+
{{Определение
# <tex>graph[v][j] = 1 \wedge graph[u][j] = -1 \Leftrightarrow v = begin (e_j) \wedge u = end (e_j)</tex>, в случае ориентированного графа.
+
|definition =
# <tex>graph[v][j] = 1 \Leftrightarrow v</tex> инцидентна ребру <tex>e_j</tex>, в случае неориентированного графа.
+
'''Циклическим путём''' в неориентированном графе называется путь, в котором <tex>v_0 = v_k</tex>, а так же <tex> e_i \ne e_{(i+1) \mod k}</tex>.
# Во всех остальных случаях ячейки матрицы равны 0.
+
}}
  
 +
{{Определение
 +
|definition =
 +
'''Цикл''' (integral cycle) {{---}} это [[Отношение эквивалентности#Классы эквивалентности|класс эквивалентности]] циклических путей на отношении эквивалентности таком, что два пути эквивалентны, если <tex> \exists  j \forall i : e_{(i \mod k)} = e'_{(i + j) \mod k}</tex>; где <tex>e</tex> и <tex>e'</tex> {{---}} это две последовательности ребер в циклическом пути.
 +
}}
 +
 +
{{Определение
 +
|definition=
 +
'''Простой (вершинно-простой) путь''' {{---}} путь, в котором каждая из вершин графа встречается не более одного раза.
 +
}}
 +
{{Определение
 +
|definition=
 +
'''Реберно-простой путь''' {{---}} путь, в котором каждое из ребер графа встречается не более одного раза.
 +
}}
 +
 +
{{Определение
 +
|definition=
 +
'''Длина пути''' {{---}} количество [[Основные определения теории графов|рёбер]], входящих в последовательность, задающую этот путь.
 +
}}
 
==См. также==
 
==См. также==
 
* [[Лемма о рукопожатиях]]
 
* [[Лемма о рукопожатиях]]

Версия 01:56, 23 декабря 2013

Ориентированные графы

Определение:
Ориентированным графом (directed graph) [math]G[/math] называется пара [math]G = (V, E)[/math], где [math]V[/math] — множество вершин (vertices), а [math] E \subset V \times V [/math] — множество рёбер (edges, дуг (arcs), линий (lines)).


Определение:
Конечным графом (finite graph) [math]G[/math] называется граф, в котором множества [math]V[/math] и [math]E[/math] — конечны. Следует заметить, что большинство рассматриваевых нами графов — конечны.


Определение:
Ребром (edge, дугой (arc), линией (line)) ориентированного графа называют упорядоченную пару вершин [math] (v, u) \in E [/math].


В графе ребро, концы которого совпадают, то есть [math]e=(v,v)[/math], называется петлей (loop).

Если имеется ребро [math] (v, u) \in E [/math], то говорят:

  • [math] v [/math]предок (direct predecessor) [math] u [/math].
  • [math] u [/math] и [math] v [/math]смежные (adjacent)
  • Вершина [math] u [/math] инцидентна ребру [math] (v, u) [/math]
  • Вершина [math] v [/math] инцидентна ребру [math] (v, u) [/math]

Инцидентность — понятие, используемое только в отношении ребра и вершины. Две вершины или два ребра не могут быть инцидентны.

Граф с [math] p [/math] вершинами и [math] q [/math] ребрами называют [math] (p, q) [/math] - графом. [math] (1, 0) [/math]-граф называют тривиальным.

Заметим, что по определению ориентированного графа, данному выше, любые две вершины [math]u,~v[/math] нельзя соединить более чем одним ребром [math](u, v)[/math]. Поэтому часто используют другое определение.

Определение:
Ориентированным графом [math]G[/math] называется четверка [math]G = (V, E, \operatorname{beg}, \operatorname{end})[/math] , где [math]V[/math] и [math]E[/math] — некоторые множества, а [math]\operatorname{beg}, \operatorname{end} : E \rightarrow V[/math].


Иногда граф, построенный таким образом, называют псевдографом (pseudograph). В псевдографе допускается соединять вершины более чем одним ребром. Такие ребра называются кратными (иначе — параллельные, multi-edge, parallel edge). Псевдограф без петель принято называть мультиграфом.

Красным выделено кратное ребро (6, 2)
Синим обозначена петля (6, 6)
Мультиграф
Псевдограф


Также для ориентированных графов определяют полустепень исхода вершины (outdegree) [math]\operatorname{deg}^+v_i = |\{e~|~\operatorname{beg}~e = v_i\}|[/math] и полустепень захода вершины (indegree) [math]\operatorname{deg}^-v_i = |\{e~|~\operatorname{end}~e = v_i\}|[/math].

Стоит отметить, что для ориентированного графа справедлива лемма о рукопожатиях, связывающая количество ребер с суммой степеней вершин.

Неориентированные графы

Определение:
Неориентированным графом (undirected graph) [math]G[/math] называется пара [math]G = (V, E)[/math], где [math]V[/math] — множество вершин, а [math] E \subset \{\{v, u\}: v, u \in V\}[/math] — множество рёбер.


Определение:
Ребром в неориентированном графе называют неупорядоченную пару вершин [math] \{v, u\} \in E [/math].
Неориентированный граф

Иное определение:


Определение:
Неориентированным графом [math]G[/math] называется тройка [math]G = (V, E, \operatorname{ends})[/math] , где [math]V[/math] — множество вершин, [math]E[/math] — множество ребер, а [math]\operatorname{ends} : E \to \{\{u, v\}, u, v \in V\}[/math]. Обратите внимание, что это определение позволяет задавать графы с кратными ребрами.


Две вершины называются смежными (adjacent), если между ними есть ребро.

Степенью (degree, valency) вершины [math]\operatorname{deg} v_i[/math] в неориентированном графе называют число ребер, инцидентных [math]v_i[/math]. Будем считать, что петли добавляют к степени вершины [math]2[/math].


Остальные определения в неориентированном графе совпадают с аналогичными определениями в ориентированном графе.

Представление графов

Матрица и списки смежности

Граф можно представить в виде матрицы смежности (adjacency matrix), где [math]graph[v][u] = true \Leftrightarrow (v, u) \in E[/math]. Также в ячейке матрицы можно хранить вес ребра или их количество (если в графе разрешены паралелльные ребра). Для матрицы смежности существует теорема, позволяющая связать степень матрицы и количество путей из вершины [math]v[/math] в вершину [math]u[/math].

Если граф разрежен (sparse graph, [math]|E| \ll |V^2|[/math], то есть, неформально говоря, в нем не очень много ребер. Формально говорить не получается, потому что везде разреженные графы определяются по-разному), его лучше представить в виде списков смежности, где список для вершины [math]v[/math] будет содержать вершины [math]u: (v, u) \in E[/math]. Данный способ позволит сэкономить память, т.к. не придется хранить много нулей.

Пути в графах

Определение:
Путём (маршрутом, path) в графе называется последовательность вида [math]v_0 e_1 v_1 ... e_k v_k[/math], где [math]e_i \in E,~e_i = (v_{i-1}, v_i)[/math]; [math]k[/math]длина пути.


Определение:
Циклическим путём (closed walk) в ориентированном графе называется путь, в котором [math]v_0 = v_k[/math].


Определение:
Циклическим путём в неориентированном графе называется путь, в котором [math]v_0 = v_k[/math], а так же [math] e_i \ne e_{(i+1) \mod k}[/math].


Определение:
Цикл (integral cycle) — это класс эквивалентности циклических путей на отношении эквивалентности таком, что два пути эквивалентны, если [math] \exists j \forall i : e_{(i \mod k)} = e'_{(i + j) \mod k}[/math]; где [math]e[/math] и [math]e'[/math] — это две последовательности ребер в циклическом пути.


Определение:
Простой (вершинно-простой) путь — путь, в котором каждая из вершин графа встречается не более одного раза.


Определение:
Реберно-простой путь — путь, в котором каждое из ребер графа встречается не более одного раза.


Определение:
Длина пути — количество рёбер, входящих в последовательность, задающую этот путь.

См. также

Литература

  • Харари Фрэнк Теория графов = Graph theory/Пер. с англ. и предисл. В. П. Козырева. Под ред. Г.П.Гаврилова. Изд. 2-е. — М.: Едиториал УРСС, 2003. — 296 с. — ISBN 5-354-00301-6
  • Асанов М. О., Баранский В. А., Расин В. В. Дискретная математика: графы, матроиды, алгоритмы — НИЦ РХД, 2001. — 288 с. — ISBN 5-93972-076-5
  • Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн Клиффорд Алгоритмы: построение и анализ, 2-е издание. Пер. с англ. — М.:Издательский дом "Вильямс", 2010. — 1296 с.: ил. — Парал. тит. англ. — ISBN 978-5-8459-0857-5 (рус.)
  • Wolfram Mathworld: Graph