Як показали коментар Рафаеля і коментар j_random_hacker в відповідь позитивна. Насправді, будь-який MST доступний будь-яким алгоритмом MST за деякими незначними винятками.
Для графіка дві вагові функції на всіх ребрах (до реальних чисел) визначаються як (слабко) сумісні порівняння (один з одним), якщо ми можемо розширити суворий слабкий упорядкування на ребрах, викликаний будь-якою ваговою функцією, до тієї ж суворої загальний порядок. Тобто, ми можемо розробити послідовні правила розриву зв’язків з кожною ваговою функцією, щоб результат порівняння будь-яких двох ребер за однією ваговою функцією та правилами її розриву був таким самим, як результат за іншою ваговою функцією та її зв'язанням, порушення правил.Г
Лема 1 : Нехай і w 2 - дві вагові функції. Наступні п'ять тверджень рівнозначні один одному.ш1ш2
- і w 2 порівняно сумісні.ш1ш2
- У будь-якому наборі ребер є спільне найлегше ребро на та w 2 .ш1ш2
- У будь-якому наборі ребер є загальний найважчий край на та w 2 .ш1w2
- Існує функція ваги яка присвоює чіткі ваги окремим ребрам, таким чином, що w 3 може бути порівняно сумісний для w 1 і w 2 .w3w3w1w2
- e1e2e1e2e1e2
Доведення леми 1 залишається легкою вправою.
w1w2e1<w1e2e1<w2e2
w2w1
G
GG
Алгоритм MST, сумісний із порівнянням, може знайти всі MST.
mGw1mw2e1e2w1e1e2w2w1w2mw2w2mw1w2mw2mw1
Кожен алгоритм MST сумісний із порівнянням
Вищенаведена пропозиція звучить за кордоном. Ну, під кожним алгоритмом MST я маю на увазі будь-який алгоритм MST, заснований на загальному порівнянні, який я бачив, виключаючи такі, мабуть, патологічні, як неправильні або непотрібні кроки. Оскільки алгоритм MST, сумісний із порівнянням, може знайти всі MST, кожен алгоритм MST може знайти всі MST. Зокрема, кожен із чотирьох класичних алгоритмів MST , а саме алгоритми Borůvka, Prim, Kruskal та зворотного видалення, можуть знайти всі MST.
Ось ще три порівняльні сумісні алгоритми MST.
- алгоритм delete-heavy-edge. Почніть з усіх країв. Неодноразово знайдіть цикл і видаліть один з найважчих його країв, поки жодного циклу не залишиться.
- алгоритм додавання не важких кромки Почніть з порожнього набору. Перебирайте всі краї. Кожен край додається і, якщо утворюється цикл, видаліть один з них найважчих країв.
- TTeTtetTeTT
Наступний алгоритм MST не сумісний із порівнянням.
- S{ab,bc,cd}a,b,cab1bc,cd,db2
Зверніть увагу, що всі вісім алгоритмів MST, згадані вище, ґрунтуються на порівнянні.
Як показати алгоритм, який сумісний із порівнянням?
G
w1w2GSw1w2
Алгоритм є сумісним порівняння, якщо, у розрізненому вигляді, його можна описати в трьох типах етапів.
- робити щось, що не передбачає ваги.
- виберіть край із мінімальною вагою для заданого набору ребер
- виберіть край із максимальною вагою для заданого набору ребер
Ця достатня умова охоплює алгоритм Borůvka, Prim, Kruskal, зворотне видалення, delete-heavy-edge та add-non-heavy-edge алгоритм. Зауважимо, що для відповідності цій достатній умові нам, можливо, доведеться змінити певні описи алгоритму, не впливаючи на набір доступних MST. Зважаючи на виняток алгоритму Крускала, який зміщений за ступенем, є сумісним для порівняння, дозвольте мені підкреслити, що ця достатня умова описується нескінченно