Перейти до основного вмісту

Реберна зв'язність / Вершинна зв'язність

Означення​

Нехай задано неорієнтований граф GG з nn вершинами та mm ребрами. І реберна зв'язність, і вершинна зв'язність є характеристиками, що описують граф.

Реберна зв'язність​

Реберна зв'язність λ\lambda графа GG — це мінімальна кількість ребер, які потрібно видалити, щоб граф GG став незв'язним.

Наприклад, уже незв'язний граф має реберну зв'язність 00, зв'язний граф щонайменше з одним мостом має реберну зв'язність 11, а зв'язний граф без мостів має реберну зв'язність щонайменше 22.

Ми кажемо, що множина SS ребер розділяє вершини ss і tt, якщо після видалення з графа GG усіх ребер з SS вершини ss і tt опиняються в різних компонентах зв'язності.

Зрозуміло, що реберна зв'язність графа дорівнює мінімальному розміру такої множини, що розділяє дві вершини ss і tt, узятому серед усіх можливих пар (s,t)(s, t).

Вершинна зв'язність​

Вершинна зв'язність κ\kappa графа GG — це мінімальна кількість вершин, які потрібно видалити, щоб граф GG став незв'язним.

Наприклад, уже незв'язний граф має вершинну зв'язність 00, а зв'язний граф із точкою зчленування має вершинну зв'язність 11. Ми вважаємо, що повний граф має вершинну зв'язність n−1n-1. Для всіх інших графів вершинна зв'язність не перевищує n−2n-2, бо можна знайти пару вершин, не з'єднаних ребром, і видалити всі інші n−2n-2 вершини.

Ми кажемо, що множина TT вершин розділяє вершини ss і tt, якщо після видалення з графа GG усіх вершин з TT ці вершини опиняються в різних компонентах зв'язності.

Зрозуміло, що вершинна зв'язність графа дорівнює мінімальному розміру такої множини, що розділяє дві вершини ss і tt, узятому серед усіх можливих пар (s,t)(s, t).

Властивості​

Нерівності Вітні​

Нерівності Вітні (1932) дають зв'язок між реберною зв'язністю λ\lambda, вершинною зв'язністю κ\kappa та мінімальним степенем будь-якої вершини в графі δ\delta:

κ≤λ≤δ\kappa \le \lambda \le \delta

Інтуїтивно, якщо ми маємо множину ребер розміру λ\lambda, яка робить граф незв'язним, ми можемо вибрати по одному з кінців кожного ребра і створити множину вершин, що також робить граф незв'язним. І ця множина має розмір ≤λ\le \lambda.

А якщо ми візьмемо вершину з мінімальним степенем δ\delta і видалимо всі ребра, з нею з'єднані, то ми також отримаємо незв'язний граф. Звідси випливає друга нерівність λ≤δ\lambda \le \delta.

Цікаво зауважити, що нерівності Вітні не можна покращити: тобто для будь-якої трійки чисел, яка задовольняє цю нерівність, існує принаймні один відповідний граф. Один такий граф можна побудувати таким чином: граф складатиметься з 2(δ+1)2(\delta + 1) вершин, перші δ+1\delta + 1 вершин утворюють кліку (усі пари вершин з'єднані ребром), а другі δ+1\delta + 1 вершин утворюють другу кліку. Крім того, ми з'єднуємо дві кліки λ\lambda ребрами так, щоб вони використовували λ\lambda різних вершин у першій кліці й лише κ\kappa вершин у другій кліці. Отриманий граф матиме всі три характеристики.

Теорема Форда — Фалкерсона​

Теорема Форда — Фалкерсона стверджує, що найбільша кількість реберно-неперетинних шляхів, які з'єднують дві вершини, дорівнює найменшій кількості ребер, що розділяють ці вершини.

Обчислення значень​

Реберна зв'язність через максимальний потік​

Цей метод ґрунтується на теоремі Форда — Фалкерсона.

Ми перебираємо всі пари вершин (s,t)(s, t) і для кожної пари знаходимо найбільшу кількість неперетинних шляхів між ними. Це значення можна знайти за допомогою алгоритму максимального потоку: ми використовуємо ss як джерело, tt як стік і призначаємо кожному ребру пропускну здатність 11. Тоді максимальний потік і є кількістю неперетинних шляхів.

Складність алгоритму з використанням Едмондса — Карпа дорівнює O(V2VE2)=O(V3E2)O(V^2 V E^2) = O(V^3 E^2). Але слід зауважити, що сюди входить прихований множник, оскільки практично неможливо побудувати граф такий, щоб алгоритм максимального потоку працював повільно для всіх джерел і стоків. Зокрема, для випадкових графів алгоритм працюватиме доволі швидко.

Спеціальний алгоритм для реберної зв'язності​

Задача знаходження реберної зв'язності рівносильна задачі знаходження глобального мінімального розрізу.

Для цієї задачі розроблено спеціальні алгоритми. Один із них — алгоритм Штера — Вагнера, який працює за час O(V3)O(V^3) або O(VE)O(V E).

Вершинна зв'язність​

Знову ж таки, ми перебираємо всі пари вершин ss і tt і для кожної пари знаходимо мінімальну кількість вершин, що розділяє ss і tt.

Роблячи це, ми можемо застосувати той самий підхід через максимальний потік, описаний у попередніх розділах.

Ми розщеплюємо кожну вершину xx з x≠sx \neq s та x≠tx \neq t на дві вершини x1x_1 і x2x_2. Ми з'єднуємо ці дві вершини орієнтованим ребром (x1,x2)(x_1, x_2) з пропускною здатністю 11 і замінюємо всі ребра (u,v)(u, v) двома орієнтованими ребрами (u2,v1)(u_2, v_1) та (v2,u1)(v_2, u_1), обидва з пропускною здатністю 11. Тоді за побудовою значення максимального потоку дорівнюватиме мінімальній кількості вершин, необхідних для розділення ss і tt.

Цей підхід має ту саму складність, що й потоковий підхід для знаходження реберної зв'язності.

Відеоматеріали​