Граф блоков-точек сочленения — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показано 12 промежуточных версий 7 участников)
Строка 1: Строка 1:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
Пусть [[Основные определения: граф, ребро, вершина, степень, петля, путь, цикл|граф]] <tex>G</tex> связен. Обозначим <tex>A_1...A_n</tex> - блоки, а <tex>a_1...a_m</tex> - [[Точка сочленения, эквивалентные определения|точки сочленения]] <tex>G</tex>.
+
Пусть [[Основные определения: граф, ребро, вершина, степень, петля, путь, цикл|граф]] <tex>G</tex> связен. Обозначим <tex>A_1...A_n</tex> {{---}} блоки, а <tex>a_1...a_m</tex> {{---}} [[Точка сочленения, эквивалентные определения|точки сочленения]] <tex>G</tex>.
Построим двудольный граф <tex>T</tex>, поместив <tex>A_1...A_n</tex> и <tex>a_1...a_m</tex> в различные его доли. Если точка сочленения принадлежит блоку, проведем между ними ребро. Полученный граф <tex>T</tex> называют '''графом блоков-точек сочленения''' графа <tex>G</tex>.
+
Построим двудольный граф <tex>T</tex>, поместив <tex>A_1...A_n</tex> и <tex>a_1...a_m</tex> в различные его доли. Если точка сочленения принадлежит блоку, проведем между ними ребро. Полученный граф <tex>T</tex> называют '''графом блоков-точек сочленения''' ''(англ. block cutpoint graph)'' графа <tex>G</tex>.
 
}}
 
}}
[[Файл:Граф_блоков.png]]
+
<div class="tleft" style="clear:none">[[Файл:block_cut_vertex_1.png|thumb|250px|Граф <tex>G</tex>]]</div>
 +
<div class="tleft" style="clear:none">[[Файл:block_cut_vertex_2.png|thumb|135px|Граф <tex>T</tex>]]</div>
 
<br>
 
<br>
 
{{Лемма
 
{{Лемма
 
|id=lemma1
 
|id=lemma1
 
|statement=
 
|statement=
В определении, приведенном выше, <tex>T</tex> - дерево.
+
В определении, приведенном выше, <tex>T</tex> {{---}} [[Дерево, эквивалентные определения|дерево]].
 
|proof=
 
|proof=
 
Достаточно показать, что в <tex>T</tex> нет циклов.
 
Достаточно показать, что в <tex>T</tex> нет циклов.
Пусть <tex>A_i, a_k, A_j: a_k \in A_i, A_j</tex> - последовательные вершины <tex>T</tex>, лежащие на цикле. Тогда существует последовательность точек сочленения и блоков, соединяющая <tex>A_i</tex> и <tex>A_j</tex> и не содержащая <tex>a_k</tex>. По ней можно проложить путь в <tex>G</tex> (можем переходить из блока в блок по точке сочленения и из одной части блока в другую) и замкнуть его в вершине <tex>a_k</tex>, получив цикл, что противоречит тому, что <tex>a_k</tex> - точка сочленения.
+
Пусть <tex>A_i, a_k, A_j: a_k \in A_i, A_j</tex> {{---}} последовательные вершины <tex>T</tex>, лежащие на цикле. Тогда существует последовательность точек сочленения и блоков, соединяющая <tex>A_i</tex> и <tex>A_j</tex> и не содержащая <tex>a_k</tex>. По ней можно проложить путь в <tex>G</tex> (можем переходить из блока в блок по точке сочленения и из одной части блока в другую) и замкнуть его в вершине <tex>a_k</tex>, получив цикл. Получается, что некоторые рёбра из <tex>A_i</tex> и <tex>A_j</tex> принадлежат одному и тому же циклу, что противоречит тому, что они находятся в разных блоках.
Пусть аналогично <tex>a_i, A_k, a_j: a_i, a_j \in A_k</tex> - лежащие на цикле последовательные вершины <tex>T</tex>. В этом случае рассуждение такое же, и <tex>a_i</tex> и <tex>a_j</tex> не смогут быть точками сочленения из-за цикла в <tex>G</tex>.
 
 
}}
 
}}
==Литература==
 
М.О.Асанов, В.А.Баранский, В.В.Расин
 
ДИСКРЕТНАЯ МАТЕМАТИКА: ГРАФЫ  МАТРОИДЫ, АЛГОРИТМЫ
 
  
== См. также ==
+
==См. также==
 
* [[Граф компонент реберной двусвязности]]
 
* [[Граф компонент реберной двусвязности]]
 +
 +
==Источники информации==
 +
* Асанов М. О., Баранский В. А., Расин В. В. '''Дискретная математика: графы, матроиды, алгоритмы''' — НИЦ РХД, 2001. — 288 с. — ISBN 5-93972-076-5
 +
 +
[[Категория:Алгоритмы и структуры данных]]
 +
[[Категория:Связность в графах]]

Текущая версия на 19:33, 4 сентября 2022

Определение:
Пусть граф [math]G[/math] связен. Обозначим [math]A_1...A_n[/math] — блоки, а [math]a_1...a_m[/math]точки сочленения [math]G[/math]. Построим двудольный граф [math]T[/math], поместив [math]A_1...A_n[/math] и [math]a_1...a_m[/math] в различные его доли. Если точка сочленения принадлежит блоку, проведем между ними ребро. Полученный граф [math]T[/math] называют графом блоков-точек сочленения (англ. block cutpoint graph) графа [math]G[/math].
Граф [math]G[/math]
Граф [math]T[/math]


Лемма:
В определении, приведенном выше, [math]T[/math]дерево.
Доказательство:
[math]\triangleright[/math]

Достаточно показать, что в [math]T[/math] нет циклов.

Пусть [math]A_i, a_k, A_j: a_k \in A_i, A_j[/math] — последовательные вершины [math]T[/math], лежащие на цикле. Тогда существует последовательность точек сочленения и блоков, соединяющая [math]A_i[/math] и [math]A_j[/math] и не содержащая [math]a_k[/math]. По ней можно проложить путь в [math]G[/math] (можем переходить из блока в блок по точке сочленения и из одной части блока в другую) и замкнуть его в вершине [math]a_k[/math], получив цикл. Получается, что некоторые рёбра из [math]A_i[/math] и [math]A_j[/math] принадлежат одному и тому же циклу, что противоречит тому, что они находятся в разных блоках.
[math]\triangleleft[/math]

См. также

Источники информации

  • Асанов М. О., Баранский В. А., Расин В. В. Дискретная математика: графы, матроиды, алгоритмы — НИЦ РХД, 2001. — 288 с. — ISBN 5-93972-076-5