Вершинная, рёберная связность, связь между ними и минимальной степенью вершины — различия между версиями
Vsklamm (обсуждение | вклад) (→См. также) |
Vsklamm (обсуждение | вклад) (< >) |
||
Строка 13: | Строка 13: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Для любого графа <tex>G</tex> справедливо следующее неравенство: <tex>\kappa \ | + | Для любого графа <tex>G</tex> справедливо следующее неравенство: <tex>\kappa \leqslant \lambda \leqslant \delta </tex> |
|proof= | |proof= | ||
[[Файл:Ver_ed_coh_1.png|thumb|right|150px|Полный граф. <tex> \lambda = \delta = \kappa = 4</tex>]] | [[Файл:Ver_ed_coh_1.png|thumb|right|150px|Полный граф. <tex> \lambda = \delta = \kappa = 4</tex>]] | ||
− | # Проверим второе неравенство. Если в графе <tex>G</tex> нет ребер, то <tex> \lambda = 0 </tex>. Если ребра есть, то несвязный граф получаем из данного, удаляя все ребра, инцидентные вершине с наименьшей степенью. В любом случае <tex> \lambda \ | + | # Проверим второе неравенство. Если в графе <tex>G</tex> нет ребер, то <tex> \lambda = 0 </tex>. Если ребра есть, то несвязный граф получаем из данного, удаляя все ребра, инцидентные вершине с наименьшей степенью. В любом случае <tex> \lambda \leqslant \delta </tex>. |
# Чтобы проверить первое неравенство нужно рассмотреть несколько случаев. | # Чтобы проверить первое неравенство нужно рассмотреть несколько случаев. | ||
##Если <tex>G</tex> - несвязный или тривиальный граф, то <tex> \kappa = \lambda = 0 </tex>. | ##Если <tex>G</tex> - несвязный или тривиальный граф, то <tex> \kappa = \lambda = 0 </tex>. | ||
##Если <tex>G</tex> связен и имеет мост <tex>x</tex>, то <tex>\lambda = 1 </tex>. В последнем случае <tex> \kappa = 1 </tex>, поскольку или граф <tex>G</tex> имеет точку сочленения, инцидентную ребру <tex>x</tex>, или же <tex>G=K_2</tex>. | ##Если <tex>G</tex> связен и имеет мост <tex>x</tex>, то <tex>\lambda = 1 </tex>. В последнем случае <tex> \kappa = 1 </tex>, поскольку или граф <tex>G</tex> имеет точку сочленения, инцидентную ребру <tex>x</tex>, или же <tex>G=K_2</tex>. | ||
− | ##Наконец, предположим, что граф <tex>G</tex> содержит множество из <tex> \lambda \ | + | ##Наконец, предположим, что граф <tex>G</tex> содержит множество из <tex> \lambda \geqslant 2 </tex> ребер, удаление которых делает его несвязным. Ясно, что удаляя <tex>\lambda - 1 </tex> ребер из этого множества получаем граф, имеющий мост <tex>x = uv</tex>. Для каждого из этих <tex>\lambda - 1 </tex> ребер выберем какую-либо инцидентную с ним вершину отличную от <tex>u</tex> и <tex>v</tex>. Удаление выбранных вершин приводит к удалению <tex>\lambda - 1 </tex> (а возможно, и большего числа) ребер. Если получаемый после такого удаления граф не связен, то <tex>\kappa \lt \lambda</tex>; если же он связен, то в нем есть мост <tex>x</tex>, и поэтому удаление вершины <tex>u</tex> или <tex>v</tex> приводит либо к несвязному, либо к тривиальному графу. В любом случае <tex> \kappa \leqslant \lambda</tex>. |
}} | }} | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Для любых натуральных чисел <tex>a, b, c</tex>, таких что <tex>a \ | + | Для любых натуральных чисел <tex>a, b, c</tex>, таких что <tex>a \leqslant b \leqslant c</tex>, существует граф <tex>G</tex>, у которого <tex>\kappa = a, \lambda = b</tex> и <tex>\delta = c </tex> |
|proof=[[Файл:Ver_ed_coh_2.png|thumb|right|335px|Граф, в котором <tex> \delta = 4</tex>, <tex>\lambda = 3</tex>, <tex>\kappa = 2</tex>.]] | |proof=[[Файл:Ver_ed_coh_2.png|thumb|right|335px|Граф, в котором <tex> \delta = 4</tex>, <tex>\lambda = 3</tex>, <tex>\kappa = 2</tex>.]] | ||
Рассмотрим граф <tex>G</tex>, являющийся объединением двух полных графов <tex>G_1</tex> и <tex>G_2</tex>, содержащих <tex>c + 1</tex> вершину. Отметим <tex>b</tex> вершин, принадлежащих подграфу <tex>G_1</tex> и <tex>a</tex> вершин, принадлежащих подграфу <tex>G_2</tex>. Добавим в граф <tex>G</tex> <tex>b</tex> ребер так, чтобы каждое ребро было инцидентно помеченной вершине, лежащей в подграфе <tex>G_1</tex> и помеченной вершине, лежащей в подграфе <tex>G_2</tex>, причем не осталось ни одной помеченной вершины, у которой не появилось хотя бы одно новое ребро, инцидентное ей. | Рассмотрим граф <tex>G</tex>, являющийся объединением двух полных графов <tex>G_1</tex> и <tex>G_2</tex>, содержащих <tex>c + 1</tex> вершину. Отметим <tex>b</tex> вершин, принадлежащих подграфу <tex>G_1</tex> и <tex>a</tex> вершин, принадлежащих подграфу <tex>G_2</tex>. Добавим в граф <tex>G</tex> <tex>b</tex> ребер так, чтобы каждое ребро было инцидентно помеченной вершине, лежащей в подграфе <tex>G_1</tex> и помеченной вершине, лежащей в подграфе <tex>G_2</tex>, причем не осталось ни одной помеченной вершины, у которой не появилось хотя бы одно новое ребро, инцидентное ей. | ||
Тогда: | Тогда: | ||
− | # Поскольку <tex>b \ | + | # Поскольку <tex>b \leqslant c</tex>, то было как минимум две непомеченные вершины, поэтому <tex> \delta = c</tex>, так как минимальные степени вершин графов <tex>G_1</tex> и <tex>G_2</tex> были равны <tex>c</tex>, а степени их вершин не уменьшались. |
− | # Заметим, что между двумя вершинами графа <tex>G</tex> существует не меньше <tex>a</tex> вершинно-непересекающихся простых цепей, следовательно по [[теорема Менгера|теореме Менгера]] <tex>\kappa \ | + | # Заметим, что между двумя вершинами графа <tex>G</tex> существует не меньше <tex>a</tex> вершинно-непересекающихся простых цепей, следовательно по [[теорема Менгера|теореме Менгера]] <tex>\kappa \geqslant a</tex>. Однако если удалить из графа <tex>G</tex> помеченные вершины его подграфа <tex>G_2</tex>, то граф <tex>G</tex> потеряет связность. Значит, <tex>\kappa = a</tex>. |
# Аналогично рассуждению пункта 2, легко убедится, что <tex>\lambda = b</tex>. | # Аналогично рассуждению пункта 2, легко убедится, что <tex>\lambda = b</tex>. | ||
}} | }} |
Версия 23:37, 16 октября 2018
Определение: |
Вершинной связностью | графа называется наименьшее число вершин, удаление которых приводит к несвязному или тривиальному графу.
Определение: |
Реберной связностью | графа называется наименьшее количество ребер, удаление которых приводит к несвязному или тривиальному графу.
Содержание
Связь между вершинной, реберной связностью и минимальной степенью вершины
Пускай минимальная степень вершины графа
обозначается буквой . Тогда:Теорема: |
Для любого графа справедливо следующее неравенство: |
Доказательство: |
|
Теорема: |
Для любых натуральных чисел , таких что , существует граф , у которого и |
Доказательство: |
Рассмотрим граф , являющийся объединением двух полных графов и , содержащих вершину. Отметим вершин, принадлежащих подграфу и вершин, принадлежащих подграфу . Добавим в граф ребер так, чтобы каждое ребро было инцидентно помеченной вершине, лежащей в подграфе и помеченной вершине, лежащей в подграфе , причем не осталось ни одной помеченной вершины, у которой не появилось хотя бы одно новое ребро, инцидентное ей. Тогда:
|
Нахождение реберной связности
В статье про k-связность было сформулировано следующее утверждение:
Утверждение: |
Граф является реберно -связным любая пара его вершин соединена по крайней мере - реберно непересекающимися путями. |
Там же было дано определение реберной связности через
-связность:Определение: |
Реберной связностью графа называется реберно - связен , для тривиального графа считаем . |
Для нахождения реберной связности нужно перебрать все пары вершин и , найти количество непересекающихся путей из в и выбрать минимум.
Пусть он равен . По утверждению, граф является -связным, причем такое - максимально (ведь мы явно нашли количество путей). А значит, по определению, реберная связность равна .
Для нахождения количества непересекающихся путей из
в воспользуемся алгоритмом нахождения максимального потока. Сопоставим каждому ребру пропускную способность, равную и найдем максимальный поток. Он и будет равен количеству путей. Действительно, если провести декомпозицию потока, то получим набор реберно непересекающихся путей из в , по которым поток неотрицателен и равен (т.к. пропускная способность всех ребер равна ). А значит, если поток равен , то и количество путей равно .Псевдокод алгоритма
ans = INF forfor flow = find_flow(s, t) // максимальный поток - количество путей из s в t ans = min(ans, flow)
Оценка работы
Время работы равно алгоритма Эдмондса-Карпа время равно или
. При использованииНахождение вершинной связности
Используя аналогичные утверждения и определения для вершинной связности придем к такому же алгоритму с тем отличием, что понадобится искать вершинно-непересекающиеся пути. Искать их можно тем же способом, если сопоставить каждой вершине пропускную способность, равную
. Для этого воспользуемся известным трюком:Разобьем каждую вершину
графа на две вершины и . Все ребра, которые входили в будут входить в . Все ребра, которые выходили из будут выходить из . Так же добавим ребро с пропускной способностью .
После этого для нахождения количества вершинно непересекающихся путей в исходном графе будем искать количество реберно непересекающихся в новом графе.
Тем самым сведя задачу к нахождению реберной связности.
См. также
Источники информации
- Харари Ф. Теория графов: Пер. с англ. / Предисл. В. П. Козырева; Под ред. Г.П.Гаврилова. Изд. 4-е. — М.: Книжный дом "ЛИБРОКОМ", 2009. — 60 с.