Знаходження мінімального розрізу ненаправленого графіка


25

Ось питання минулого іспиту, який я намагаюся вирішити:

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


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

Ви намагаєтесь знайти міні-розріз для заданого джерела та вузлів потоку або міні-розріз графіка?
Пітер

@Peter: Хвилинний зріз графіка.
Юзеф

Відповіді:


13

Існує безліч алгоритмів для знаходження міні-розрізу ненаправленого графіка. Алгоритм Каргера - простий, але ефективний рандомізований алгоритм.

Коротше кажучи, алгоритм працює, вибираючи ребра рівномірно і стискаючи їх з вилученими самокрутками. Процес зупиняється, коли залишилися два вузли, а два вузли являють собою зріз. Для збільшення ймовірності успіху рандомізований алгоритм запускається кілька разів. Виконуючи пробіжки, слідкуйте за найменшим розрізом, знайденим досі.

Докладніше див. У Вікіпедії. Для, можливо, кращого вступу, ознайомтеся з першою главою ймовірності та обчислення: рандомізовані алгоритми та ймовірнісний аналіз Майкла Міценмахера та Елі Упффала.


Це алгоритм наближення?
Стрин

@Strin Це рандомізований алгоритм, який знаходить мінімальний зріз з високою ймовірністю.
Джухо

1
Я не думаю, що Каргер підходить для пошуку мінімальної ваги. Визначення ймовірності того, що він знайде мінімальний розріз, залежить від того, щоб знайти розріз мінімальної кардинальності; У Karger's навряд чи знайдеться мінімальний зріз з багатьма легкими краями.
Сумуду Фернандо

8

Для кожного непрямого краю створіть два спрямовані краї та .(у,v,шеiггодт)(у,v,шеiггодт)(v,у,шеiггодт)

... але тоді, яка вершина буде джерелом, а яка вершина - раковиною?

Не має значення.


1
Чому це не має значення?
Кодування Wombat

1

Алгоритм Ford-Fulkerson повинен працювати для вас. Ви можете створити дві підроблені вершини саме. джерело і раковина.

Подивіться також на алгоритм Едмондса-Карпа . Існує дві його варіанти:

  1. Одна версія вибирає найкоротший шлях
  2. Інші вибирають шлях з максимальною місткістю

, на відміну від Ford-Fulkerson, який вибирає довільний шлях.

Це хороший ресурс.


Ласкаво просимо до cs.stackexchange! Це може допомогти ОП, якщо ви могли б далі пояснити, як підроблені вершини підключаються до наявного графіка. А якими будуть крайові ваги нових країв.
Пареш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.