Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Задача о максимальном потокеПоиск на нашем сайте Задача о максимальном потоке состоит в нахождении для данной сети стационарного потока максимально возможной величины. Назовем цепь из s в t увеличивающей поток, если на всех ее дугах (x, y) совпадающих по направлению от s к t (прямые дуги), выполняется неравенство Поток является максимальным, тогда и только тогда, когда в сети не существует цепи, увеличивающей поток. Пусть SÌV , Алгоритм Форда-Фалкерсонадля нахождения максимального потока начинает свою работу с произвольного начального потока в сети. Например, нулевого потока. Алгоритм на каждой итерации состоит из двух этапов. Этап 1 (расстановка меток). На этом этапе ищется цепь, увеличивающая поток. Поиск такой цепи осуществляется с помощью расстановки меток. В процессе расстановки меток каждая вершина может находиться в одном из трех состояний: непомеченная, помеченная и непросмотренная, помеченная и просмотренная. В начале все вершины непомечены. Источник s получает метку вида (–, Пусть существует несколько помеченных и непросмотренных вершин. Выберем среди них вершину х. Просматриваем непомеченные вершины yÎO+(x) с проверкой условия Затем просматриваем непомеченные вершины yÎO-(x) и проверяем условие После этого вершина x переходит в состояние «помеченная и просмотренная». Далее выбирается очередная помеченная и непросмотренная вершина, и для нее повторяются все описанные выше действия. Причем придерживаемся правила: «первый помечен − первый просмотрен». Расстановка пометок продолжается до тех пор, пока или будет помечена вершина t, или сток t никоим образом пометить нельзя. В первом случае найден увеличивающий путь. Переходим к этапу 2. Во втором случае алгоритм заканчивает свою работу и это означает, что максимальный поток найден на предыдущей итерации. При этом определяется соответствующий полученному максимальному потоку минимальный разрез сети. Разрез будет состоять из дуг, идущих из помеченных вершин в непомеченные на последней итерации вершины, при этом все дуги минимального разреза насыщены. Этап 2 (увеличение потока). Сток t может получить одну из двух пометок В любом из этих случаев переходим к вершине x, которая указана в пометке вершины t. Эта вершина имеет пометку Стираем у вершин все метки и возвращаемся к этапу 1 с новым увеличенным потоком. В изложенном варианте сложность алгоритма Форда-Фалкерсона равна O(|V | |E |2). Пример.Для следующей сети (на дугах заданы пропускные способности) найти максимальный поток.
Начинаем с нулевого потока. Метки вершин на итерациях приведены в таблице 3. Изменение потока на дугах сети приведены на рисунке 5. Номер итерации, на которой проводится увеличение потока, указан у величины изменения нижним индексом. Таблица 3 № s x1 x2 x3 t n (- , ¥ ) (s+, 2) (s+, 3) (s+, 4) (x1+, 2) 0+2 (- , ¥ )
(s+, 3) (s+, 4) (x2+, 2) 2+2 (- , ¥ )
(s+, 1) (s+, 4) (x3+, 2) 4+2 (- , ¥ )
(s+, 1) (s+, 2)
По последней (четвертой) итерации строим минимальный разрез. Получаем S = {s, x2, x3}. Следовательно, Рис. 5 Алгоритм Форда-Фалкерсона можно применять для решения задачи, при наличия дополнительных условий. 1) Заданы ограничения на пропускные способности вершин. Тогда вершина x c заданной пропускной способностью c (x) > 0 заменяется дугой (x’ , x’’ ), пропускная способность которой полагается равной c (x). При этом каждая дуга исходной сети (у , x), входящая в вершину x, заменяется дугой (у , x’), а каждая дуга (x , y), выходящая из x заменяется дугой (x’’, y). Пропускные способности новых дуг принимаются равными пропускным способностям заменяемых дуг. 2) Сеть имеет несколько источников s1 , … , sk и стоков t1 , … , tr . Необходимо найти максимальный поток из всех источников во все стоки. Вводим фиктивный источник s и фиктивный сток t. В сеть добавляем дуги (s, si), 3) Для дуг заданы нижние и верхние пропускные способности. То есть величина потока по дуге (x, y) не может быть меньше нижней пропускной способности дуги h(x, y) и не может превышать верхнюю пропускную способность c(x, y). В предположении существования потока и найденного какого-либо начального потока, модификация алгоритма Форда-Фалкерсона состоит в вычислении
|
||
|
Последнее изменение этой страницы: 2024-07-06; просмотров: 35; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |