Перколяція Мережі та Гігантська Компонента

У моделі випадкового графа Ердоша-Реньї N вузлів з'єднуються ребрами, що додаються по одному, кожне обрано випадково з усіх можливих пар. Дивовижний фазовий перехід відбувається при середньому ступені ⟨k⟩ = 1 (M = N/2 ребер): нижче цього порогу всі зв'язані компоненти крихітні (O(log N) вузлів), але вище нього виникає єдина гігантська компонента, що охоплює частку S усіх вузлів.

Ця симуляція дозволяє досліджувати цей перехід у реальному часі. Спостерігайте зміну кольорів вузлів при злитті малих кластерів у гігантську компоненту. Права панель показує теоретичне передбачення S = 1 − e−⟨k⟩S разом з поточним станом графа.

Критична точка ⟨k⟩ = 1 позначена на фазовій діаграмі. Спробуйте додавати ребра повільно поблизу порогу, щоб спостерігати драматичне виникнення гігантської компоненти.

Часті запитання

Що таке граф Ердоша-Реньї?

Модель Ердоша-Реньї G(N,p) створює випадковий граф, де N вузлів з'єднуються незалежно з ймовірністю p. Еквівалентна модель G(N,M) розміщує рівно M ребер, обраних випадково. Обидві моделі були введені Палом Ердошем та Альфредом Реньї у 1959–60 рр. і є фундаментальною нульовою моделлю для випадкових мереж. Ключовий параметр — середній ступінь ⟨k⟩ = (N−1)p ≈ Np для великих N, який контролює зв'язність графа.

Що таке гігантська компонента і коли вона з'являється?

Зв'язана компонента — максимальна множина вузлів, досяжних один від одного через ребра. У графах Ердоша-Реньї при ⟨k⟩ < 1 усі компоненти мають розмір O(log N). Коли ⟨k⟩ перетинає 1, виникає гігантська компонента, що містить частку S > 0 усіх N вузлів, де S задовольняє S = 1 − e−⟨k⟩S. Цей різкий перехід — один з найвидатніших результатів комбінаторики та теорії ймовірностей.

Що таке фазовий перехід у контексті мереж?

Фазовий перехід — різка зміна властивості системи при перетині критичного значення параметра керування. При перколяції мережі параметр порядку — S (частка гігантської компоненти), параметр керування — ⟨k⟩. Нижче ⟨k⟩=1: S=0 (невпорядкована фаза). Вище ⟨k⟩=1: S>0 (впорядкована фаза). Поблизу критичної точки S ∝ (⟨k⟩−1)β з показником β=1 — перехід другого роду, аналогічний феромагнетизму у фізиці.

Як працює Union-Find для визначення компонент?

Union-Find (Об'єднання-Пошук, або Disjoint Set Union) — структура даних для ефективного відстеження зв'язних компонент при додаванні ребер. Кожен вузол спочатку є власною компонентою. При додаванні ребра (a,b) функція union(a,b) об'єднує компоненти: корінь меншого дерева прикріплюється до кореня більшого. Зі стисненням шляху та об'єднанням за рангом обидві операції виконуються за O(α(N)) — практично O(1) — що дозволяє обробляти мільйони ребер ефективно.

Що таке перколяція зв'язків і як вона пов'язана з випадковими графами?

Перколяція зв'язків на ґратці питає: якщо кожне ребро незалежно присутнє з ймовірністю p, при якому p_c вперше з'являється охоплюючий шлях? На нескінченній d-вимірній ґратці p_c — нетривіальне значення між 0 і 1. Граф Ердоша-Реньї — це перколяція зв'язків на повному графі K_N, що дає p_c = 1/N (або ⟨k⟩_c = 1). Обидві задачі мають однакові критичні показники та належать до одного класу універсальності.

Що відбувається точно в критичній точці ⟨k⟩=1?

В критичній точці ⟨k⟩=1 (M=N/2 ребер) найбільша компонента має розмір O(N2/3) — значно більший за O(log N) докритичних компонент, але менший за O(N) надкритичної гігантської. Розподіл розмірів компонент слідує степеневому закону P(s) ∝ s−3/2 для розмірів s до O(N2/3). Цей критичний режим зі флуктуаціями максимального масштабу — ознака переходу другого роду.

Як перколяція мережі застосовується в реальних системах?

Перколяція має прямі застосування до надійності мереж: при якому p_c мережа фрагментується при випадкових відмовах? Маршрутизатори Інтернету, енергосистеми та соціальні мережі мають пороги перколяції. Реальні мережі з вузлами-хабами мають відмінні властивості від Ердоша-Реньї: вони стійкі до випадкових відмов, але вразливі до цільового видалення хабів. Епідемії також підпорядковуються динаміці перколяції: R₀=1 відповідає порогу гігантської компоненти.

Що таке парадокс дружби і чи він проявляється тут?

Парадокс дружби: ваші друзі мають більше друзів, ніж ви в середньому. У графах Ердоша-Реньї парадокс слабкий — ступені приблизно однакові. Але в реальних соціальних мережах з важким хвостом розподілу ступенів парадокс сильний. Це важливо для перколяції: стратегії вакцинації через парадокс дружби (вакцинуй друга, а не особу) ефективніші за випадкову вакцинацію.

У чому різниця між перколяцією вузлів і перколяцією зв'язків?

При перколяції зв'язків ребра випадково присутні або відсутні (ця симуляція). При перколяції вузлів вузли випадково присутні або відсутні, і два присутніх вузли з'єднані, якщо були суміжними. Обидва мають фазові переходи при різних критичних порогах. На квадратній ґратці p_c ≈ 0.5 для зв'язків та p_c ≈ 0.593 для вузлів. На повному графі обидва пороги відповідають ⟨k⟩=1.

Чому частка гігантської компоненти задовольняє S=1−e^(−⟨k⟩S)?

Це рівняння самоузгодженості виникає з деревоподібної локальної структури графів Ердоша-Реньї. Вузол належить до гігантської компоненти, якщо хоча б один з його ⟨k⟩ випадкових сусідів також належить до неї. Ймовірність того, що сусід не з'єднується з гігантом, дорівнює (1−S). Якщо всі ⟨k⟩ Пуассонівські сусіди уникають гіганта з ймовірністю e−⟨k⟩S, то вузол поза гігантом. Тому S = 1 − e−⟨k⟩S — рівняння нерухомої точки.

Про цю симуляцію

Ця симуляція будує випадковий граф Ердоша-Реньї на N вузлах, додаючи ребра по одному — кожне вибирається випадково з перемішаного списку всіх можливих пар вузлів. Структура Union-Find (Disjoint Set Union) зі стисненням шляху та об'єднанням за рангом відстежує зв'язані компоненти за майже сталий час у міру появи нових ребер. Жива фазова діаграма показує частку гігантської компоненти S відносно середнього ступеня ⟨k⟩ = 2M/N, накладаючи поточний стан вашої симуляції на теоретичну криву S = 1 − e^(−⟨k⟩S). Критичний поріг лежить точно при ⟨k⟩ = 1 — саме тут характер зростання найбільшої компоненти різко змінюється.

🔬 Що показує симуляція

N вузлів (50–300), з'єднаних випадково обраними ребрами, що додаються по одному, по десять або безперервно через кнопку "Старт". Кожен вузол пофарбований відповідно до тієї компоненти, до якої належить; найбільша компонента (та сама "гігантська компонента", щойно вона сформується) виділена синім. Бічна панель показує залежність S від ⟨k⟩ на тлі теоретичної кривої та позначає критичну точку ⟨k⟩ = 1 пунктирною лінією, тож фазовий перехід можна спостерігати наживо.

🎮 Як користуватися

Задайте кількість вузлів N і цільовий середній ступінь ⟨k⟩ повзунками — переміщення ⟨k⟩ вгору одразу додає ребра, переміщення вниз запускає повне скидання. Використовуйте "Крок +1 ребро" або "+10 ребер" для точного контролю, або натисніть "Старт", щоб ребра додавалися безперервно з обраною швидкістю. Спостерігайте, як у реальному часі оновлюються кількість ребер M, середній ступінь ⟨k⟩, частка гігантської компоненти S та кількість компонент у міру злиття малих кластерів.

💡 Чи знали ви?

Модель Ердоша-Реньї, запропонована Палом Ердошем та Альфредом Реньї у 1959–60 роках, стала одним із перших строгих доведень того, що випадкові структури здатні зазнавати різкого фазового переходу: нижче ⟨k⟩ = 1 кожна компонента логарифмічно мала, але щойно ⟨k⟩ перетинає 1, одна-єдина компонента раптово охоплює скінченну частку всього графа — і жодної подібної компоненти не існувало навіть трохи нижче порогу.

Поширені запитання

Що саме рандомізується в цій симуляції?

Симуляція заздалегідь перемішує повний список усіх можливих пар вузлів (за допомогою перетасування Фішера-Єйтса), а потім розкриває їх по одній як ребра. Це еквівалентно моделі Ердоша-Реньї G(N,M), де рівно M ребер обираються рівномірно випадково з N(N−1)/2 можливих пар, замість того щоб включати кожне ребро незалежно з ймовірністю p — обидва формулювання збігаються для великих N.

Як симуляція так швидко визначає гігантську компоненту?

Вона використовує структуру даних Union-Find (Disjoint Set Union). Спочатку кожен вузол — окрема компонента; додавання ребра викликає union(a,b), яка об'єднує дві компоненти, прикріплюючи корінь меншого дерева до кореня більшого. Завдяки стисненню шляху (сплощення дерева під час find) та об'єднанню за рангом обидві операції виконуються за майже сталий час, тож відстеження компонент для сотень вузлів і тисяч ребер лишається швидким навіть у реальному часі.

Що саме контролює повзунок середнього ступеня ⟨k⟩?

⟨k⟩ — це середня кількість ребер на вузол, обчислена як 2M/N, де M — поточна кількість ребер. Повзунок задає цільове значення ⟨k⟩; симуляція обчислює цільову кількість ребер M = round(⟨k⟩·N/2) і або додає ребра, щоб досягти її (якщо ви збільшуєте ⟨k⟩), або виконує повне скидання й перебудовує граф з нуля (якщо зменшуєте, оскільки ребра не можна прибрати поступово).

Чому гігантська компонента з'являється так раптово поблизу ⟨k⟩ = 1?

Нижче ⟨k⟩ = 1 випадковий граф — це ліс дрібних деревоподібних кластерів розміром O(log N), жоден з яких не може вирости до скінченної частки графа. Коли ⟨k⟩ перетинає 1, гіллястий процес, що описує зростання кластера, стає надкритичним: у середньому кластеру тепер є більш ніж один новий вузол для розширення на кожному кроці, тож зростання одного кластера накопичується, доки він не поглине частку S усіх N вузлів, задовольняючи S = 1 − e^(−⟨k⟩S). Це справжній фазовий перехід другого роду, а не просто плавна тенденція.

Чи впливає візуальне розташування вузлів на те, які з них потраплять до гігантської компоненти?

Ні. Позиції на екрані суто косметичні — вони генеруються простим силовим (force-directed) алгоритмом відштовхування (або сітковим розташуванням для великих N) виключно для того, щоб вузли не накладалися один на одного візуально. Те, які вузли приєднаються до гігантської компоненти, визначається виключно випадковим порядком ребер і зв'язністю графа — позиція на екрані не несе жодної інформації про ступінь вузла чи належність до компоненти.