Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

МАКСИМАЛЬНЫЙ ПОТОК В ТРАНСПОРТНОЙ СЕТИ





 

Поток f в транспортной сети N – это функция, которая ставит в соответствие каждой дуге неотрицательное вещественное число так, что удовлетворяются следующие условия:

(2)

(3)

В (3) и далее значком обозначено суммирование по всем номерам j вершин сети N. Дугу, для которой условие (2) выполняется в виде строгого равенства, будем далее называть насыщенной, а дугу, для которой условие выполняется со строгим неравенством, – ненасыщенной.

Транспортная сеть представляет собой модель доставки вещества (энергии, информации) от источника до стока по путям, которые связывают их через промежуточные пункты. При этом пропускная способность показывает, какое максимальное количество вещества может пройти по дуге за единицу времени; значение потока по дуге показывает, какое количество вещества в действительности проходит от вершины i к вершине j за единицу времени. Условие (2) называют ограничением по пропускной способности, условие (3) – условием сохранения. Условие сохранения означает, что в промежуточных вершинах сети N вещество не накапливается и не производится.

Кроме условий (2), (3) полагаем также, что

(4)

Из условия (3) следует, что

(5)

Здесь val (f) – мощность потока на сети. Как видно из (5), мощность потока является линейной функцией потоков по дугам.

Сформулируем задачу о максимальном потоке на сети: найти совокупность потоков всем по дугам сети, которая удовлетворяет условиям (2), (3), (4) и доставляет максимум функции (5). Данная задача может рассматриваться как задача линейного программирования, решение которой можно получить симплекс-методом. Возможно также построение максимального потока с помощью специальных приемов, которые требуют менее громоздких вычислений. Далее будет рассмотрен подход, использующий понятие разреза на сети.

Пусть множество вершин данной сети разбито на два непересекающихся подмножества A и B. Назовем разрезом на сети совокупность {(i, j)} дуг, у которых и . Если и, то говорят, что разрез отделяет источник от стока. Определим пропускную способность разреза и поток через разрез следующими выражениями:

(6)

Известна теорема Форда-Фалкерсона: на любой сети максимальная мощность потока от источника s к стоку t равна минимальной пропускной способности разреза, отделяющего s от t.

Этот теоретический результат лежит в основе следующего алгоритма построения максимального потока.

1. Построить какой-либо начальный набор потоков по дугам, удовлетворяющий условиям (2), (3), (4). Положить k =0.

2. Сформировать подмножество A вершин, достижимых из источника s по ненасыщенным дугам. Если , то поток максимальной мощности уже построен и задача решена – перейти к п.4 алгоритма; иначе перейти к п.3 алгоритма.

3. Построить полупуть P из s в t, состоящий из ненасыщенных дуг; для построения кратчайшего пути использовать алгоритм поиска в ширину [3]. Определить

(7)

где

Сформировать новый поток , определив

(8)

Положить k = k +1 и перейти к пункту 2 алгоритма.

4. Закончить выполнение алгоритма.

Заметим, что в качестве начального можно использовать поток F 0, в котором f 0(i, j)=0 для всех дуг.

При реализации данного алгоритма удобно использовать квадратные матрицы C =[ c (i, j)] для пропускных способностей и F =[ f (i, j)] для потоков.

Рассмотрим пример решения задачи о максимальном потоке.

Пример 1. На рис.1 приведена диаграмма транспортной сети. Пропускные способности дуг проставлены в разрывах линий.

 

 


 

Требуется построить на данной транспортной сети поток максимальной мощности.

Составим матрицу пропускных способностей

 

C s         t
s            
             
             
             
             
t            

 

Построим начальный поток F 0, который представлен на рис.2. В разрывах линий проставлены потоки по дугам.

       
   
 
 

 


Данный поток можно также задать матрицей

F 0 s         t
s            
  -2          
  -1          
    -2        
      -1      
t       -2 -1  

Мощность потока F 0 вычислим, просуммировав элементы данной матрицы в столбце, который соответствует стоку t. Получим val (F 0)=2+1=3.

Далее, чтобы сформировать подмножество A, рассмотрим матрицу

C - F 0 s         t
s            
             
             
             
             
t            

 

Ненулевые элементы этой матрицы соответствуют ненасыщенным дугам. Рассмотрим в матрице C - F 0 строку, которая соответствует источнику s. Ненулевой элемент в строке соответствует дугам (s;2), (s;3). На основании этого составим для источника список:

s ½½2, 3,

и перейдем к строке, которая соответствует вершине 2. Находим ненулевые элементы этой строки. При этом не учитываем вершины, ранее появлявшиеся в списках. В результате для вершины 2 получаем:

2½½4.

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

s ½½2, 3; 2½½4; 3½½5; 4½½ t. (9)

Появление стока t в одном из списков говорит о том, что поток F 0 не является максимальным и его мощность можно увеличить. Восстановим полупуть из ненасыщенных дуг, по которому можно из источника s достичь стока t. Восстанавливается полупуть при просмотре списков вершин от конца (стока) к началу (источнику). В данном примере на основании списков (9) для вершин подмножества A получаем полупуть P: s -2-4- t. В соответствии с правилом (7) определяем

Увеличим мощность потока в сети на величину D. Для этого пропускаем вдоль P дополнительно D единиц вещества. Пользуясь (8), строим поток F 1. Этот поток описывается матрицей


 

F 1 s         t
s            
  -3          
  -1          
    -3        
      -1      
t       -3 -1  

 

Далее строим матрицу

C - F 1 s         t
s            
             
             
             
             
t            

 

 

и повторяем для потока F 1 те действия, которые были проделаны для начального потока. При определении множества A получим:

s ½½2, 3; 2½½Æ; 3½½5; 5½½Æ. (10)

На основании (10) формируем подмножества

A ={ s;2;3;5} и B ={4; t }. (11)

Так как , то F 1 является потоком максимальной мощности в данной транспортной сети. Данный поток представлен диаграммой на рис 3.

 

 

 

 


Вычислим мощность максимального потока F 1. Для этого суммируем в матрице этого потока элементы, расположенные в последнем столбце (данный столбец соответствует стоку t). Получим val (F 1) = 3+1 = 4.

Рассмотрев подмножества (11), определяем разрез минимальной пропускной способности, отделяющий источник от стока:

На основании (6) вычислим

Пропускная способность разреза и вычисленная ранее мощность максимального потока равны между собой. Это соответствует теореме Форда - Фалкерсона.







Дата добавления: 2015-09-06; просмотров: 1565. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Принципы резекции желудка по типу Бильрот 1, Бильрот 2; операция Гофмейстера-Финстерера. Гастрэктомия Резекция желудка – удаление части желудка: а) дистальная – удаляют 2/3 желудка б) проксимальная – удаляют 95% желудка. Показания...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Studopedia.info - Студопедия - 2014-2025 год . (0.009 сек.) русская версия | украинская версия