Разрез означает, что вы определяете разрез между истоком и стоком. Этот срез не обязательно должен быть прямой линией, кривой или любой другой формы.
Например, здесь я выбрал синий разрез таким образом, чтобы края AB, AD и CD проходили через разрез. Теперь, если мы посмотрим на назначенный поток этих ребер и суммируем их, мы получим 4+6+9=19.
Альтернативная огранка, например, зеленого цвета. Здесь у нас есть ребра BT, AD и AC, которые перемещаются «вперед», и ребро DC, которое перемещается « назад». Таким образом, сумма потоков равна 9+6+9-5=19. Таким образом, независимо от того, какой разрез мы делаем, сумма всегда равна 19 (конечно, нам нужно вести надлежащий учет и вычитать потоки в противоположном направлении).
Конечно, вы можете выбрать любой срез (например, срез сразу после истока или непосредственно перед сливом), если алгоритм выполнен правильно, то сумма всех этих срезов всегда равна 19. Это логично, так как если поток одного разреза будет больше (или меньше) 19, тогда существование разреза, который «продвигает» один узел с потоком 19, означает, что в этом узле поток исчез или появился.
Однако считается, что если вы будете перебирать все возможные разрезы, то минимальный разрез — это тот, при котором сумма мощностей максимальна. Так что мы можем, строго говоря, перебрать все возможные разрезы, и каждый раз следить за суммой мощностей, и в конце выбирать тот, с наименьшим расходом. Однако наивный подход, заключающийся в простом повторении всех разрезов, привел бы к алгоритму O(2n), что по сравнению с алгоритмом Форда–Фалкерсона em>, конечно не желательно.
person
Willem Van Onsem
schedule
02.12.2018