Я хочу найти среди всех минимальных разрезов в сети потоков G с целыми пропускными способностями тот, который содержит наименьшее количество ребер. Как мы можем изменить пропускную способность G, чтобы создать новую сеть потоков G', в которой любой минимальный разрез в G' является минимальным разрезом с наименьшим количеством ребер в G. Источник - Кормен
Модификация метода Форда-Фалкерсона
Ответы (1)
Допустим, граф G
имеет n
вершин.
Определим пропускную способность дуги e'
в G'
, которая соответствует дуге e
в G
, как c(e') = c(e) * n + 1
.
Следовательно, значение разреза в G'
ровно в n
раз превышает значение разреза в G
+ количество ребер в разрезе.
Допустим, теперь у нас есть минимальное сокращение G'
со значением n * x + a
. Это означает, что значение разреза в G
равно x. Если бы существовал разрез в G
с меньшим значением y < x
, этот разрез имел бы значение n * y + b <= n * (y+1) <= n * x < n * x + a
, что противоречит тому факту, что разрез со значением n * x + a
был минимальным в G'
. Мы только что доказали, что каждый минимальный разрез в G'
также является минимальным разрезом в G
. Но тогда следует, что минимальный разрез в G'
является минимальным разрезом в G
и имеет минимальное количество ребер из всех минимальных разрезов в G
.