Обчисліть максимум потоку від мінімального розрізу


16

Ми знаємо, що обчислення максимального потоку, відповідно. мінімальний розріз мережі з ємністю еквівалентний; пор. теорема про максимальний потік min-cut .

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

Але як щодо реверсу? З огляду на мінімальний розріз, як ми можемо визначити максимальний потік? Не вирішуючи Max-Flow з нуля, звичайно, і бажано швидше, ніж це.

Деякі думки:

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

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

  • Чи знає значення максимальної швидкості потоку прискорення вирішення Max-Flow LP, можливо, завдяки додатковим умовам розрідження?


Супутнє запитання: чи відомі нам алгоритми для обчислення міні-скорочень (які не використовують алгоритми максимального потоку)?
Рафаель

3
Ми, безумовно, так, рандомізований алгоритм Каргера дуже популярний, і для цього вам потрібні нульові знання про максимальні потоки.
Juho

2
Якщо ви не хочете рандомізованих алгоритмів, алгоритм Stoer-Wagner є дуже простим, але також не має методів потоку.
Juho

2
Хороший матеріал! Тут є ще один виклик. Знаючи, що міні-розріз передає лише біти інформації (щонайбільше), так як кожен зріз ізоморфна підгрупі V . Однак для максимального потоку може знадобитися набагато більше, ніж | V | шматочки інформації для представлення (особливо якщо ємність велика). Отже, теоретично інформаційно, ви не можете сподіватися на алгоритм, який дивиться лише на зріз і виплюває потік; також потрібно було б переглянути графік і зробити додаткові обчислення. (Я усвідомлюю, що це не сильний бар'єр.)|V|V|V|
DW

Відповіді:


6

Г=(V,Е)с,тшГс'(с',с)шс',т(с',с)шст

Ефективно мінімальний розріз вказує вам на значення потоку, але не про те, як досягти цього потоку. Це означає, що пізнання мінімального розрізу може пришвидшити пошук потоку максимум логарифмічним фактором, оскільки ми можемо виконати двійковий пошук, щоб знайти значення розрізу.


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

-2

Звичайно, існують алгоритми, які дозволяють вам обчислити мінімальну різкість перед обчисленням maxflow. Два таких алгоритми - натискний релебел та алгоритми псевдопоглинання, які тісно пов'язані. Останнє є більш ефективним. Обидва ці алгоритми використовують спеціальні властивості залишкового графіка, які вони ітеративно вдосконалюють, щоб отримати максимальний потік із мінімуму розрізу. Для детальної інформації настійно рекомендую прочитати код та документи.

Щоб детальніше розібратися з випадком натискання реле, коли алгоритм не може подати більше потоку до раковини, гарантовано буде обчислено мінімальне скорочення. Ця частина алгоритму називається фазою 1 за відсутністю кращого імені. Фаза 2 - це більш ефективна стадія, на якій вона перетворює міні-розріз у максимальний потік шляхом ітераційного скасування циклів у залишковому графіку, використовуючи спочатку пошук по одній глибині та відсуваючи надлишки назад до джерела. Я вважаю, що фаза 2 може бути безсимптомно ефективнішою, ніж фаза 1.


4
Будь ласка, перечитайте питання; це не той, на який ти відповів.
Рафаель

Приклад PR, який я наводив, передбачає, що ви обчислювали іншу інформацію по дорозі, поки ви обчислювали міні-скорочення. У вашому початковому запитанні не було вказано, чи дозволяли вам зберігати іншу інформацію разом із мінімальним розрізом, щоб спростити наступний розрахунок максимального потоку. Чи справедливо викласти своє первісне запитання як "З огляду на мінімальний розріз та відсутність іншої інформації , як ми можемо визначити максимальний потік?".
ldog

2
Я заявив, "дано A, обчислити B". Єдине обґрунтоване припущення полягає в тому, що вам дано лише А, інакше говорити про обчислювальні проблеми було б дуже нечіткою справою.
Рафаель

Дозволю собі не погодитися. З практичної точки зору, ви ніколи не обчислюєте міні-розріз без обчислень додаткової інформації (наприклад, в алгоритмі PR.) З теоретичної точки зору, було б непогано розглянути речі окремо, як ви говорите. Контекст тут ключовий.
ldog
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.