Основные определения теории графов — различия между версиями
(→Ориентированные графы) |
Gfv (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Ориентированным графом''' (directed graph) <tex>G</tex> называется пара <tex>G = (V, E)</tex>, где <tex>V</tex> {{---}} | + | '''Ориентированным графом''' (directed graph) <tex>G</tex> называется пара <tex>G = (V, E)</tex>, где <tex>V</tex> {{---}} множество вершин (vertices), а <tex> E \subset V \times V </tex> {{---}} множество рёбер (edges, дуг (arcs), линий (lines)). |
+ | }} | ||
+ | |||
+ | {{Определение | ||
+ | |definition = | ||
+ | '''Конечным графом''' (finite graph) <tex>G</tex> называется граф, в котором множества <tex>V</tex> и <tex>E</tex> {{---}} конечны. Следует заметить, что большинство рассматриваевых нами графов {{---}} конечны. | ||
}} | }} | ||
Строка 11: | Строка 16: | ||
}} | }} | ||
− | В графе ребро, концы которого совпадают, то есть <tex>e=(v,v)</tex>, называется <b>петлей</b> | + | В графе ребро, концы которого совпадают, то есть <tex>e=(v,v)</tex>, называется <b>петлей</b> (loop). |
Если имеется ребро <tex> (v, u) \in E </tex>, то говорят: | Если имеется ребро <tex> (v, u) \in E </tex>, то говорят: | ||
− | * <tex> v </tex> {{---}} '''предок''' <tex> u </tex>. | + | * <tex> v </tex> {{---}} '''предок''' (direct predecessor) <tex> u </tex>. |
− | * <tex> u </tex> и <tex> v </tex> {{---}} '''смежные''' | + | * <tex> u </tex> и <tex> v </tex> {{---}} '''смежные''' (adjacent) |
* Вершина <tex> u </tex> '''инцидентна''' ребру <tex> (v, u) </tex> | * Вершина <tex> u </tex> '''инцидентна''' ребру <tex> (v, u) </tex> | ||
* Вершина <tex> v </tex> '''инцидентна''' ребру <tex> (v, u) </tex> | * Вершина <tex> v </tex> '''инцидентна''' ребру <tex> (v, u) </tex> | ||
Строка 28: | Строка 33: | ||
|id = def1 | |id = def1 | ||
|definition = | |definition = | ||
− | '''Ориентированным графом''' <tex>G</tex> называется четверка <tex>G = (V, E, beg, end)</tex> , где <tex>beg, end : E \rightarrow V </tex>, а <tex>V</tex> и <tex>E</tex> {{---}} некоторые | + | '''Ориентированным графом''' <tex>G</tex> называется четверка <tex>G = (V, E, \operatorname{beg}, \operatorname{end})</tex> , где <tex>\operatorname{beg}, \operatorname{end} : E \rightarrow V </tex>, а <tex>V</tex> и <tex>E</tex> {{---}} некоторые множества. |
}} | }} | ||
− | Иногда граф, построенный таким образом, называют '''мультиграфом'''. В мультиграфе | + | Иногда граф, построенный таким образом, называют '''мультиграфом''' (multigraph). В мультиграфе допускается соединять вершины более чем одним ребром. Такие ребра называются '''кратными''' (иначе {{---}} '''параллельные''', multi-edge, parallel edge). Мультиграф с петлями принято называть '''псевдографом''' ([http://mathworld.wolfram.com/Pseudograph.html pseudograph]). |
{|border="0" cellpadding="5" width=30% align=center | {|border="0" cellpadding="5" width=30% align=center | ||
|[[Файл: Graph_definition_1.png|thumb|210px|center|<font color=#ff2a2a>Красным</font> выделено кратное ребро (6, 2)<br><font color=#3771c8>Синим</font> обозначена петля (6, 6)]] | |[[Файл: Graph_definition_1.png|thumb|210px|center|<font color=#ff2a2a>Красным</font> выделено кратное ребро (6, 2)<br><font color=#3771c8>Синим</font> обозначена петля (6, 6)]] | ||
Строка 40: | Строка 45: | ||
− | Также для ориентированных графов определяют '''полустепень исхода вершины''' <tex>deg^ | + | Также для ориентированных графов определяют '''полустепень исхода вершины''' (outdegree) <tex>\operatorname{deg}^+v_i = |\{e~|~\operatorname{beg}~e = v_i\}|</tex> и '''полустепень захода вершины''' (indegree) <tex>\operatorname{deg}^-v_i = |\{e~|~\operatorname{end}~e = v_i\}|</tex>. |
Стоит отметить, что для ориентированного графа справедлива [[Лемма о рукопожатиях|лемма о рукопожатиях]], связывающая количество ребер с суммой [[Основные определения теории графов#Степень вершины|степеней вершин]]. | Стоит отметить, что для ориентированного графа справедлива [[Лемма о рукопожатиях|лемма о рукопожатиях]], связывающая количество ребер с суммой [[Основные определения теории графов#Степень вершины|степеней вершин]]. | ||
Строка 47: | Строка 52: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Путём''' (маршрутом) в графе называется последовательность вида <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> {{---}} '''длина''' пути. | + | '''Путём''' (маршрутом, 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 = | |definition = | ||
− | '''Циклическим путём''' называется путь, в котором <tex>v_0 = v_k</tex>. | + | '''Циклическим путём''' (closed walk) называется путь, в котором <tex>v_0 = v_k</tex>. |
}} | }} | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Цикл''' {{---}} это класс эквивалентности циклических путей на отношении эквивалентности таком, что два пути эквивалентны, если <tex> \exists j : \forall i \Rightarrow e_{(i \mod k)} = e'_{(i + j) \mod k}</tex>; где <tex>e</tex> и <tex>e'</tex> {{---}} это две последовательности ребер в циклическом пути. | + | '''Цикл''' (integral cycle) {{---}} это класс эквивалентности циклических путей на отношении эквивалентности таком, что два пути эквивалентны, если <tex> \exists j : \forall i \Rightarrow e_{(i \mod k)} = e'_{(i + j) \mod k}</tex>; где <tex>e</tex> и <tex>e'</tex> {{---}} это две последовательности ребер в циклическом пути. |
}} | }} | ||
Строка 61: | Строка 66: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Неориентированным графом''' (undirected graph) <tex>G</tex> называется пара <tex>G = (V, E)</tex>, где <tex>V</tex> {{---}} | + | '''Неориентированным графом''' (undirected graph) <tex>G</tex> называется пара <tex>G = (V, E)</tex>, где <tex>V</tex> {{---}} множество вершин, а <tex> E \subset \{v_1, v_2 \in V\})</tex> {{---}} множество рёбер. |
}} | }} | ||
{{Определение | {{Определение | ||
Строка 72: | Строка 77: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Неориентированным графом''' <tex>G</tex> называется тройка <tex>G = (V, E, ends)</tex> , где <tex>ends : E \rightarrow V \times V</tex>, а <tex>V</tex> и <tex>E</tex> {{---}} некоторые | + | '''Неориентированным графом''' <tex>G</tex> называется тройка <tex>G = (V, E, \operatorname{ends})</tex> , где <tex>\operatorname{ends} : E \rightarrow V \times V</tex>, а <tex>V</tex> и <tex>E</tex> {{---}} некоторые множества, причем <tex>\forall v_1, v_2 \in E: \operatorname{ends}(v_1, v_2) \implies \operatorname{ends}(v_2, v_1)</tex> |
}} | }} | ||
− | Две вершины называются '''смежными''', если между ними есть ребро. | + | Две вершины называются '''смежными''' (adjacent), если между ними есть ребро. |
− | '''Степенью''' вершины <tex>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>. |
{{Определение | {{Определение | ||
Строка 90: | Строка 95: | ||
=== Матрица и списки смежности === | === Матрица и списки смежности === | ||
− | Граф можно представить в виде [[Матрица смежности графа|матрицы смежности]], где <tex>graph[v][u] = true \Leftrightarrow (v, u) \in E</tex>. Также в ячейке матрицы можно хранить вес ребра или их количество (если в графе разрешены паралелльные ребра). | + | Граф можно представить в виде [[Матрица смежности графа|матрицы смежности]] (adjacency matrix), где <tex>graph[v][u] = true \Leftrightarrow (v, u) \in E</tex>. Также в ячейке матрицы можно хранить вес ребра или их количество (если в графе разрешены паралелльные ребра). |
Для матрицы смежности существует [[Связь степени матрицы смежности и количества путей|теорема]], позволяющая связать степень матрицы и количество путей из вершины <tex>v</tex> в вершину <tex>u</tex>. | Для матрицы смежности существует [[Связь степени матрицы смежности и количества путей|теорема]], позволяющая связать степень матрицы и количество путей из вершины <tex>v</tex> в вершину <tex>u</tex>. | ||
− | Если граф разрежен (<tex>|E| < |V^2|</tex>), его лучше представить в виде списков смежности, где список для вершины <tex>v</tex> будет содержать вершины <tex>u: (v, u) \in E</tex>. Данный способ позволит сэкономить память, т.к. не придется хранить много нулей. | + | Если граф разрежен (sparse graph, <tex>|E| < |V^2|</tex>), его лучше представить в виде списков смежности, где список для вершины <tex>v</tex> будет содержать вершины <tex>u: (v, u) \in E</tex>. Данный способ позволит сэкономить память, т.к. не придется хранить много нулей. |
=== Матрица инцидентности === | === Матрица инцидентности === |
Версия 02:25, 23 октября 2013
Содержание
Ориентированные графы
Определение: |
Ориентированным графом (directed graph) | называется пара , где — множество вершин (vertices), а — множество рёбер (edges, дуг (arcs), линий (lines)).
Определение: |
Конечным графом (finite graph) | называется граф, в котором множества и — конечны. Следует заметить, что большинство рассматриваевых нами графов — конечны.
Определение: |
Ребром (edge, дугой (arc), линией (line)) ориентированного графа называют упорядоченную пару вершин | .
В графе ребро, концы которого совпадают, то есть , называется петлей (loop).
Если имеется ребро
, то говорят:- — предок (direct predecessor) .
- и — смежные (adjacent)
- Вершина инцидентна ребру
- Вершина инцидентна ребру
Инцидентность — понятие, используемое только в отношении ребра и вершины. Две вершины или два ребра не могут быть инцидентны.
Граф с
вершинами и ребрами называют - графом. -граф называют тривиальным.Заметим, что по определению ориентированного графа, данному выше, любые две вершины
нельзя соединить более чем одним ребром . Поэтому часто используют другое определение.Определение: |
Ориентированным графом | называется четверка , где , а и — некоторые множества.
Иногда граф, построенный таким образом, называют мультиграфом (multigraph). В мультиграфе допускается соединять вершины более чем одним ребром. Такие ребра называются кратными (иначе — параллельные, multi-edge, parallel edge). Мультиграф с петлями принято называть псевдографом (pseudograph).
Также для ориентированных графов определяют полустепень исхода вершины (outdegree)
и полустепень захода вершины (indegree) .Стоит отметить, что для ориентированного графа справедлива лемма о рукопожатиях, связывающая количество ребер с суммой степеней вершин.
Определение: |
Путём (маршрутом, path) в графе называется последовательность вида | , где ; — длина пути.
Определение: |
Циклическим путём (closed walk) называется путь, в котором | .
Определение: |
Цикл (integral cycle) — это класс эквивалентности циклических путей на отношении эквивалентности таком, что два пути эквивалентны, если | ; где и — это две последовательности ребер в циклическом пути.
Неориентированные графы
Определение: |
Неориентированным графом (undirected graph) | называется пара , где — множество вершин, а — множество рёбер.
Определение: |
Ребром в неориентированном графе называют неупорядоченную пару вершин | .
Иное определение:
Определение: |
Неориентированным графом | называется тройка , где , а и — некоторые множества, причем
Две вершины называются смежными (adjacent), если между ними есть ребро.
Степенью (degree, valency) вершины
в неориентированном графе называют число ребер, инцидентных . Будем считать, что петли добавляют к степени вершины .
Определение: |
Циклическим путём в неориентированном графе называется путь, в котором | , а так же .
Остальные определения в неориентированном графе совпадают с аналогичными определениями в ориентированном графе.
Представление графов
Матрица и списки смежности
Граф можно представить в виде матрицы смежности (adjacency matrix), где . Также в ячейке матрицы можно хранить вес ребра или их количество (если в графе разрешены паралелльные ребра). Для матрицы смежности существует теорема, позволяющая связать степень матрицы и количество путей из вершины в вершину .
Если граф разрежен (sparse graph,
), его лучше представить в виде списков смежности, где список для вершины будет содержать вершины . Данный способ позволит сэкономить память, т.к. не придется хранить много нулей.Матрица инцидентности
Имеет место и другое представление графа - матрица инцидентности, которая сопоставляет множество вершин множеству ребер. То есть:
- , в случае ориентированного графа.
- инцидентна ребру , в случае неориентированного графа.
- Во всех остальных случаях ячейки матрицы равны 0.
См. также
Литература
- Харари Фрэнк Теория графов = 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 (рус.)