Алгоритмы на графах. Задача о максимальном потоке в сетях Требуется от источника к стоку передать максимальное количество энергии. В условиях задачи о.

Презентация:



Advertisements
Похожие презентации
Транспортные сети ХНУРЭ, кафедра ПО ЭВМ, Тел , Лекция 15 Н.В. Белоус Факультет компьютерных наук Кафедра ПО ЭВМ,
Advertisements

Задача о максимальном потоке в сети Алгоритм Фалкерсона-Форда.
ПОТОКИ В СЕТЯХ. Определения Сеть - связный ориентированный граф G = (V, A) без петель и мультидуг, с 1 источником s V и 1 стоком t V. (Запретим одновременное.
Потоки в сетях Теорема о максимальном потоке и минимальном разрезе Лекция 6.
Теория графов Основные определения. Задание графов Графический способ – Привести пример графического задания графа, состоящего из вершин А, В и С, связанных.
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Задача о наибольшем паросочетании в двудольном графе Автор: Воробьева Елена 2002 год.
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
РЕШЕНИЕ ЗАДАЧИ О МАКСИМАЛЬНОМ ПОТОКЕ В СЕТИ Автор: Черников Антон Владимирович Серпуховский технический колледж, 4 курс НАУЧНАЯ РАБОТА.
Теория графов Алгоритмы на графах. Медиана графа Медиана вершина графа, у которой сумма кратчайших расстояний от неё до вершин графа минимальная возможная.
Двусвязность Лекция 14. Связность компонент Граф G называется k-связным (k 1), если не существует набора из k-1 или меньшего числа узлов V` V, такого,
Введение в теорию сетевого планированияВведение в теорию сетевого планирования.
ХНУРЭ, кафедра ПО ЭВМ, Тел , Лекции Н.В. Белоус Факультет компьютерных наук Кафедра ПО ЭВМ, ХНУРЭ Компьютерная.
Раскраски графов Раскраска вершин Пусть Г (V,E,Ф) – граф, раскраска вершин Г в n цветов – отображение f : V {1,2,…,n } Правильная раскраска вершин графа.
Максимальный поток Лекци и 20 – 21. Максимальный поток Рассмотрим ориентированный граф. Будем рассматривать его как сеть труб, по которым некоторое вещество.
Графы Волновой метод. Задание графов Пусть граф задан графически. Составить матрицу смежности и матрицу инцидентности для этого графа
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ ПУТЕЙ НА ГРАФАХ..
Введение в теорию графов. ЗАДАЧА ПРОКЛАДКИ КОММУНИКАЦИЙ
Транксрипт:

Алгоритмы на графах

Задача о максимальном потоке в сетях Требуется от источника к стоку передать максимальное количество энергии. В условиях задачи о максимальном потоке вес дуги называется ее пропускной способностью C(e). Определим поток через рассматриваемую сеть N как функцию J, сопоставляющую каждой дуге e неотрицательное действительное число J(e), называемое потоком через ребро е, причем J(e)C(e). Другими словами, поток через любую дугу не должен превосходить ее пропускной способности, и величина потока, входящего в любую вершину (сумма потоков входящих дуг), отличную от S и t, равно величине потока, исходящего из этой вершины. Дуга, для которой справедливо равенство J(e)=C(e), называется насыщенной, в противном случае, ненасыщенной.

Пропускная способность разреза Разрезом W в сети называется любое множество вершин, обязательно содержащее выход и не содержащее вход. Пропускной способностью C(W) разреза W называется сумма пропускных способностей дуг, заходящих в разрез. Полным называется такой поток, для которого любой ориентированный путь содержит насыщенную дугу. Если поток не полный, то существует путь из источника в сток, все дуги которого не насыщены. Теорема. Во всякой сети величина любого максимального потока равна пропускной способности любого минимального разреза.

Алгоритм Форда-Фалкерсона 1. Перенумеровать все вершины сети произвольным образом, кроме истока и стока. 2. Задать некоторый начальный поток в сети (например, нулевой). 3. Вершинам сети присвоить целочисленные метки, а дугам - знаки + и - по следующим правилам:

Алгоритм Форда-Фалкерсона a) вершине-истоку присвоить метку 0; b) находим непомеченную вершину W, смежную помеченной вершине V. Если поток по соединяющей вершины V-W дуге меньше пропускной способности этой дуги, то происходит помечивание, иначе переходим к рассмотрению следующей вершины. Если вершина W является образом помеченной вершины V, то происходит прямое помечивание: вершина W получает метку, равную номеру вершины V, соединяющая вершины V-W дуга получает метку + и мы переходим к рассмотрению следующей вершины. Если вершина W не имеет ни одного помеченного прообраза, то происходит обратное помечивание: вершина W получает метку, равную номеру вершины V (являющейся в данном случае её образом), соединяющая вершины W-V дуга получает метку - и мы переходим к рассмотрению следующей вершины. Процесс помешивания продолжается до тех пор, пока все удовлетворяющие этим условиям вершины не получат метку.

Алгоритм Форда-Фалкерсона 4. Если в результате процедуры помешивания вершина-сток метки не получила, то текущий поток - максимальный, задача решена. В противном случае, перейти к пункту Рассмотреть последовательность вершин L = ( U 0,..., v 0 ), метка каждой из которых равна номеру следующей за ней вершины, и множество дуг М, соединяющих соседние вершины из L. Построить новый поток по схеме: a) Если дуга принадлежит множеству М и имеет знак +, то новый поток по этой дуге = старый поток по этой дуге + К b) Если дуга принадлежит множеству М и имеет знак -, то новый поток по этой дуге = старый поток по этой дуге - К c) Если дуга не принадлежит множеству М, то новый поток по дуге = старый поток по этой дуге. 6. Перейти к п.3

Алгоритм Форда-Фалкерсона Схема нахождения К: К = min{ К 1 ; К 2 }, где Для нахождения К 1 рассматриваются все дуги, принадлежащие множеству М и имеющие знак + и для каждой такой дуги вычисляется разность между пропускной способностью дуги и потоком по этой дуге. Затем из этих значений разностей выбирается минимальное значение и присваивается К 1. Для нахождения К 2 рассматриваются все дуги, принадлежащие множеству М и имеющие знак -. Затем из этих дуг выбирается дуга с минимальным потоком и значение потока по этой дуге присваивается К 2.

Пример

Этап 1

Этап 2

Этап 3.1

Этап 3.2

Этап 4

Этап 5

Этап 3.1. Вторая итерация

Этап 3.2. Вторая итерация

Этап 4. Вторая итерация

Этап 5. Вторая итерация

Этап 3.1. Третья итерация

Этап 3.2. Третья итерация

Этап 4. Третья итерация

Этап 5. Третья итерация

Этап 3.1. Четвертая итерация

Этап 3.2. Четвертая итерация

Этап 4. Четвертая итерация

Задание Найти максимальный поток в сети

Задание Найти максимальный поток в сети

Задание Найти максимальный поток в сети