Коли мінімальне прольотове дерево для графа не є унікальним


22

З огляду на зважений, непрямий графік G: Які умови повинні виконуватися, щоб існувало декілька мінімум дерев, що охоплюють G?

Я знаю, що MST є унікальним, коли всі ваги є різними, але ви не можете змінити це твердження. Якщо на графіку є багаторівневі ребра з однаковою вагою, може бути декілька MST, але може бути лише один:

введіть тут опис зображення

У цьому прикладі графік зліва має унікальний MST, але правий - ні.

Найближчим, до якого я міг знайти умови для не унікальності MST, було це:

Розглянемо всі безкоректні цикли (цикли, які не містять інших циклів) у графі G. Якщо в будь-якому з цих циклів максимально зважений край існує кілька разів, то на графіку немає унікального мінімального дерева, що охоплює.

Моя ідея полягала в тому, що для такого циклу

введіть тут опис зображення

з n вершин, ви можете залишити рівно один з ребер і все ще з'єднати всі вершини. Таким чином, у вас є кілька варіантів, щоб видалити край з найбільшою вагою, щоб отримати MST, тому MST не є унікальним.

Однак я придумав такий приклад:

введіть тут опис зображення

Ви можете бачити, що на цьому графіку є цикл, який відповідає моїй умові: (E, F, G, H), але, наскільки я бачу, мінімальне простягається дерево унікальне:

введіть тут опис зображення

Тож здається, що мій стан не правильний (а може просто не зовсім правильний). Я б дуже вдячний за будь-яку допомогу у пошуку необхідних та достатніх умов для не унікальності дерева, що має мінімальний розмір.


1
Ваші найменші цикли відомі як беззвучні цикли (більш-менш).
Yuval Filmus

Відповіді:


10

на першому малюнку: правий графік має унікальний MST, приймаючи ребра та ( F , G ) загальною вагою 2.(F,H)(F,G)

Дано графік G=(V,E) і нехай бути як мінімум сполучного дерева (MST) в G .M=(V,F)G

Якщо існує ребро з вагою w ( e ) = m таким, що додавання e до нашого MST дає цикл C , і нехай m також є найнижчою вагою ребра від F C , тоді ми можемо створити другий MST, поміняючи край з Fe={v,w}EFw(e)=meCmFC на вагу ребра m з e . Таким чином, ми не маємо унікальності.FCme


Ви маєте рацію, я виправив цей графік у питанні зараз. Чи знаєте ви, чи це найзагальніший стан, щоб MST не був унікальним? Або це також можна якось визначити без необхідності спочатку знайти MST?
Keiwan

1
@Keiwan Я вважаю, що якщо взяти до уваги це питання, то умова, викладена в цій відповіді, також є необхідною умовою наявності декількох MST. Іншими словами: графік має декілька MST, якщо і тільки тоді, якщо можна здійснити побудову, окреслену HueHang. G
Бакуріу

1
я не повинен бути найнижчою вагою кромки від F∩C. Насправді це може бути лише найвища вага кромки, інакше M не була б мінімальною в першу чергу. Припустимо, у F∩C було ребро e 'з w (e') = m '> m = w (e). Тоді заміна e на e 'залишить розсічене дерево загальною вагою менше М, що суперечить мінімальності М.
Чад

2

Попередній відповідь вказує алгоритм , щоб визначити , чи є кілька MSTS, які, для кожного ребра не в G , знайти цикл , створений шляхом додавання е до передвичесленням MST і перевірити , якщо адреса не єдиний важкий край в цьому циклі. Цей алгоритм, ймовірно, працює в O ( | E | | V | ) час.eGeeO(|E||V|)

Більш простий алгоритм , щоб визначити , чи є кілька MSTS з G в час складністьO(|E|log(|V|)) .

 1. Запустіть алгоритм Крускала на щоб знайти MST m .Gm

 2. Спробуйте запустити алгоритм Kruskal на ще раз. Під час цього виконання, коли ми маємо вибір серед ребер рівної ваги, спершу спробуємо ребра не в m , після чого спробуємо ребра в m . Кожного разу, коли ми знайшли ребро, не в m, з'єднує два різних дерева, ми стверджуємо, що існує кілька MST, що припиняють алгоритм.Gmmm

 3. Якщо ми досягли тут, то ми стверджуємо, що має унікальний MST.G

Звичайний запуск алгоритму Крускала займає час . Додатковий вибір ребер не в m може бути здійснений за O ( | E | ) час. Так алгоритм досягає часової складності O ( | E | log ( | V | ) ) .O(|E|log(|V|))mO(|E|)O(|E|log(|V|))

Чому цей алгоритм може визначити, чи існує кілька MST?

Припустимо, у нас є MST що не збігається з m . Досить показати, що алгоритм, що працює на G , не досягне кроку 3, оскільки край, знайдений в кінці кроку 2, який не знаходиться в m, і з'єднує два різні дерева, був би включений в отриманий MST, якби ми запускали Крускал алгоритм до завершення. Нехай w - найбільша вага такої, що для будь-якого ребра, що важить менше w , він знаходиться в m, якщо і тільки якщо він знаходиться в m . Тому що m і m w, які знаходяться в m ′, але не в mmmGmwwmmmm мають однакову кількість ребер ваги w , існують краї вагиwmm . Якщо алгоритм завершився обробкою країв цих ребер, ми закінчили. В іншому випадку, припустимо, що алгоритм зараз обробляє перший край серед цих ребер. Нехай S - сукупність усіх ребер, які збереглися до цього часу, для включення в отриманий MST. S м . Оскільки алгоритм не закінчив обробку краю ваги w не в m, такому як e ' , він, мабуть, не почав обробку країв вагою w в м . Так ребра в SeSSmwmewmSважать менше, ніж . Це означає S m . Нагадаємо, що e повинно з'єднати два різних дерева в S, і алгоритм виходить у цій точці.wSm. Є в m . Оскільки { e } S m , де m - дерево, e em{e}SmmeS

Примітка щодо подальшої розробки.
Крок 1 і крок 2 можна переплести, щоб ми могли якомога швидше скасувати алгоритм без обробки країв більшої ваги.
Якщо ви хочете обчислити кількість MST, ви можете перевірити відповідь на те, як обчислити кількість MST .


1

Нехай G - (простий кінцевий) вібро-зважений непрямоз'єднаний графік з принаймні двома вершинами. Нехай ST означає дерево, що пролягає, і MST - мінімальне мінімальне дерево. Дозвольте спочатку визначити деякі менш поширені терміни.

  • Край є найважчим у циклі, якщо це унікальний найважчий край у певному циклі.
  • Край не важкий за цикл, якщо він ніколи не є найважчим краєм у будь-якому циклі.
  • Край унікальний-найлегший, якщо це унікальний найлегший край, щоб перетнути деякий зріз.
  • Край не вирізається найлегшим, якщо він ніколи не є найлегшим краєм для перетину будь-якого зрізу.
  • Два ST є суміжними, якщо кожен ST має рівно один край, який не знаходиться в іншому ST.
  • MST є ізольованим MST, якщо він не примикає до іншого MST (коли обидва MST розглядаються як ST).

Коли існує більше одного мінімального дерева, що охоплює?

Щоб відповісти на питання ОП, ось п’ять характеристик які мають більше одного MSTG .

  • Є два сусідніх MST.
  • Не існує ізольованого MST.
  • Існує СТ, який такий же легкий або легший, ніж усі сусідні СТ, і такий же легкий, як і один сусідній НТ.
  • Є край, який не є ні унікальним, ні найважчим, ні циклом.
  • Є край, який не є ні унікальним, найлегшим, ні найрізким

Новизна цієї відповіді - це переважно дві останні характеристики. Другий з останньої характеристики можна розглядати як наступний крок підходу ОП . Перші три характеристики разом можна розглядати як дещо вдосконалену версію відповіді dtt .

Простіше думати протилежним терміном, чи G має унікальний MST. Далі йде протилежна та рівнозначна версія вищезазначених характеристик.

Коли унікальний мінімальну кількість дерев?

Теорема: наступні властивості еквівалентні.G

  • Унікальність MST : Є унікальний MST.
  • Немає суміжних MST : сусідніх MST немає.
  • Один ізольований MST : є ізольований MST.
  • Один локальний мінімум ST : є ST, який легший за всі сусідні ST.
  • Крайній край циклу : кожен край або унікальний цикл - найважчий, або не найвищий цикл.
  • Надзвичайна обрізана грань : кожен край або унікальний-найлегший, або нерізаний-найлегший

Ось мій доказ.

"Унікальність MST" => "Без суміжних MST": очевидно.

"Без суміжних MST" => "Один ізольований MST": очевидно.

"Один ізольований MST" => "Один локальний мінімум ST": Ізольований MST легший за всі сусідні ST.

"Один локальний мінімум ST" => "Крайній край циклу": Нехай - ST, який легший за всі сусідні ST.m

  • Кожен край у повинен бути найважчим за циклом. Ось доказ. Нехай я - край у м . Якщо l не належить до жодного циклу, ми закінчили. Тепер припустимо, що l належить до циклу c . Якщо ми видалимо l з m , m розколоться на два дерева, які будуть названі m 1 і m 2 . Як цикл, який з'єднує m 1 і m 2 з l , c повинен мати інший край, який з'єднує m 1 і mmlmllclmmm1m2m1m2lcm1 . Назвіть цей край l ' . Нехай т ' об'єднання м 1 , м 2 і л ' , який повинен бути кістяк із G , а також. Оскільки m і m суміжні, m легше m . Це означає, що l легше l ' . Тож l - не найважчий цикл.m2lmm1m2lGmmmmlll
  • Кожен край не в повинен бути найважчим у циклі. Ось доказ. Нехай h ' є ребром не в m . Якщо додати h ' до m , створимо цикл c . Нехай h - ребро в c, яке не h . Розглянемо розкидне дерево m ', виготовлене з m на h, замінене на h ' . Оскільки m і m ' є суміжними, m легше m ' . Це означає,mhmhmchchmmhhmmmm легше, ніж h ' . Тож h ' - це унікальний найважчий край c . Тобто, h ' є найважчим у циклі.hhhch

"Локальний мінімум ST" => "Крайній край": Доказ залишається як вправа.

"Крайній край циклу" => "Унікальність MST": Нехай є MST. Нехай e довільна грань. Якщо e не найважчий цикл, m повинен містити його. Якщо край e є найважчим у циклі, m не може його містити. (Ці дві пропозиції можна довести стандартними міркуваннями про MST за допомогою циклу та обміну ребрами, аналогічно тому, що було зроблено трохи вище). Отже, m - це саме безліч найважчих ребер без циклу.meememm

"Extreme cut edge" => "Унікальність MST": Доказ залишається як вправа.

Вищенаведені ланцюги наслідків доводить теорему.

Знову ж таки, новизною цих відповідей є властивість "крайнього краю циклу" та властивість "крайнього перерізу краю", в якому використовуються поняття, найважчі та найрізноманітніші. Я не бачив цих концепцій деінде, хоча вони цілком природні.


Ось два пов'язані цікаві спостереження.

  • Для будь-якого ребра , е не є циклом важкого е є унікальною огранювання-легкого е в кожному MSTee e e
  • Для будь-якого краю , e є унікальним найважчим циклом e не вирізаним-легшим e не існує в будь-якому MSTee e e

Дві достатні, але не потрібні умови для унікального MST

ab1,bc1,cd1,da2,ac2

1,1,2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.