Найти максимальный поток в любой сети по заданному алгоритму

Вы можете помочь мне решить следующую проблему?:

Предположим, у нас есть алгоритм для решения проблемы максимального потока в сети потока, в которой степень каждого узла не превышает 2. Мне нужно показать, как использовать этот алгоритм для решения проблемы максимального потока в любой сети.

Если это повторение, пожалуйста, перенаправьте меня на соответствующие ответы.

Спасибо вам всем

1 ответ

Действительно возможно преобразовать график таким образом, чтобы степень выхода каждого узла была не больше 2, а максимальный поток в преобразованном графе был равен максимальному потоку в исходном графе.

Одно из таких преобразований описано ниже. Предположим, что у нас есть узел, степень выхода которого больше 2. Затем мы можем добавить столько промежуточных узлов, сколько выходной степени этого узла, и соединить их так, как показано на следующем рисунке.

Трансформация

Бесконечные ребра емкости гарантируют, что мы можем послать тот же поток, что и изначально, из A в любой из его преемников. Края от X узлы для B узлы гарантируют, что мы не сможем отправить поток больше, чем это было изначально возможно.

Повторяя это преобразование для каждого узла с выходной степенью больше 2, мы получаем график, где у каждого узла есть выходная степень не более 2, и максимальный поток которого равен максимальному потоку исходного графа.

Другие вопросы по тегам