Содержание
Содержание
Введение3
1.Теория и основные понятия4
2.Поток в транспортной сети6
3.Постановка задачи9
4.Сети, потоки в сетях. Теорема Форда – Фалкерсона10
5.Реализация14
6.Постановка задачи16
Заключение18
Список литературы19
Выдержка из текста работы
В задаче, которую я рассматриваю, да и вообще в задачах на данную тему фундаментальную роль играет изучение поперечных сечений сети (то есть множеств дуг, которые соединяют вершины двух не пересекающихся множеств вершин) и нахождение ограниченного поперечного сечения, которое является самым узким местом. Эти узкие места определяют пропускную способность системы в целом.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ:
Транспортной сетью называется конечный Связный орграф G(V, E) без петель, каждой дуге которого поставлено в соответствие некоторое неотрицательное число c(), называемое пропускной способностью дуги, и существует:
1) ровно одна вершина , в которую не заходит ни одна дуга, называемая источником или началом сети;
2) ровно одна вершина , из которой не выходит ни одной дуги; эта вершина называется стоком или концом сети.
Потоком сети называется неотрицательная функция f(1) такая, что f(e) меньше или равно c(e). (Поток не может превышать пропускную способность дуги.)
Дуга называется насыщенной потоком f, если (Поток называется полным, если содержит насыщенную дугу f(e)=c(e).)
Разрезом L сети G(V,E) называется множество насыщенных дуг, отделяющих источник s от стока t.
Теорема Форда-Фалкерсона.
Пусть D – транспортная сеть, — допустимый поток в этой сети, — множество вершин таких, что длина минимального пути из в в орграфе приращений равна нулю. Тогда, если , то — максимальный поток, величина которого равна .
Пусть . Тогда выполняется равенство
(1)
Если , так как в противном случае, используя имеем , а следовательно, в силу существует путь нулевой длины из в , что противоречит условию . Но тогда из (1) получаем
Следствие 1. Используя теорему Форда-Фалкерсона получаем, что величина максимального потока в транспортной сети равна пропускной способности минимального разреза.
Следствие 2. Пусть — допустимый поток в транспортной сети D. Тогда, если длина минимального пути из v1 в vn в орграфе приращений равна бесконечности, то — максимальный поток.
Алгоритм решения.
Сначала будем строить полный поток, затем проверим, можно ли его увеличить. Если нет, то этот поток является максимальным. Если же его можно увеличить, то будем строить другой полный поток и т.д. Решать задачу будем с помощью метода расстановки пометок.
Две основные процедуры (операции алгоритма):
· операция расстановки пометок;
· операция изменения потока.
Рассмотрим первую процедуру. Для каждой вершины данной сети нужно приписать пометку, которая имеет следующий вид: или где , а – натуральное число или бесконечность. Вообще возможны три состояния вершины:
1) не помечена;
2) помечена, но не просмотрена;
3) помечена и просмотрена.
Расставлять пометки начнем с источника S. Он получит пометку Источник помечен, но не просмотрен. Остальные вершины не помечены. Чтобы источник S был помечен и просмотрен, надо поместить все вершины, смежные с S.
Вершина получит пометку , где .
Теперь все вершины смежные с S, помечены, но не просмотрены. А вершина S помечена и просмотрена. Начнём просматривать ту из вершин , которая имеет наименьший индекс. Для этого нужно расставить пометки вершинам, смежным с . Если для вершины выполняется следующее условие , то она получит метку , где . Если же для вершины выполняется условие , то получает метку , где . Далее просматриваем следующую вершину, и так до тех пор, пока не пометим сток t или же пока нельзя будет больше пометить ни одной вершины, сток при этом останется не помеченным. Если сток окажется не помеченным, то процесс нахождения максимального потока в сети можно считать законченным, а если сток помечен, то нужно переходить к
процедуре 2.
Рассмотрим процедуру изменения потока. Если вершина имеет пометку , то заменяем на , если же вершина имеет пометку , то заменяем на
Переходим к следующей вершине и так до тех пор, пока не достигнем источника S. Здесь изменение потока прекращается. Далее переходим к процедуре 1 и так до тех пор, пока величину потока уже нельзя изменить.
Рассмотрим конкретную задачу о нахождении максимального потока в сети.
Дана сеть G(V,E) (рис. 11) с источником S и стоком t. Пропускные способности дуг указаны. Найти максимальный поток из S в t.
Поток в транспортной сети.
Функция , определенная на множестве X дуг транспортной сети D и принимающая целочисленные значения, называется допустимым потоком (или просто потоком) в транспортной сети D, если:
•для любой дуги величина , называемая потоком по дуге , удовлетворяет условию ;
•для любой промежуточной вершины v выполняется равенство
т.е. сумма потоков по дугам, заходящим в v, равна сумме потоков по дугам, исходящим из v.
Пример. На рисунке показан допустимый поток в транспортной сети. При каждой дуге указана величина потока по ней. Очевидно, что выполняются все условия, перечисленные в определении допустимого потока (проверяем выполнение второго условия для промежуточных вершин ).
Для любого допустимого потока в транспортной сети D выполняется равенство:
По определению допустимого потока имеем:
Заметим, что для каждой дуги где , величина входит в левую часть равенства лишь один раз и при этом со знаком плюс. Аналогично для каждой дуги , величина входит в левую часть равенства (2) лишь один раз и при этом со знаком минус. С другой стороны, для каждой дуги величина входит в левую часть равенства (2) один раз со знаком плюс (при ) и один раз со знаком минус (при ), что в сумме даёт нулевой вклад в левую часть равенства (2). Учитывая сказанное, заключаем, что из равенства (2) следует справедливость равенства (1).
Величиной потока в транспортной сети D называется величина , равная сумме потоков по всем дугам, заходящим в , или, что то же самое – величина, равная сумме потоков по всем дугам, исходящим из
Пусть — допустимый поток в транспортной сети D. Дуга называется насыщенной, если поток по ней равен её пропускной способности, т.е. если . Поток называется полным, если любой путь в D из содержит, по крайней мере, одну насыщенную дугу.
Поток называется максимальным, если его величина принимает максимальное значение по сравнению с другими допустимыми потоками в транспортной сети D.
Очевидно, что максимальный поток обязательно является полным (т.к. в противном случае в D существует некоторая простая цепь из V1 в Vn, не содержащая насыщенных дуг, а следовательно, можно увеличить на единицу потоки по всем дугам из и тем самым увеличить на единицу , что противоречит условию максимальности потока). Обратная же, вообще говоря, неверно. Существуют полные потоки, не являющиеся максимальными. Тем на менее полный поток можно рассматривать как некоторое приближение к максимальному потоку.
Орграф приращений.
Введем для заданной транспортной сети D и допустимого потока в этой сети орграф приращений , имеющий те же вершины, что и сеть D. Каждой дуге транспортной сети D в орграфе приращений соответствует две дуги: и — дуга, противоположная по направлению дуге . Припишем дугам орграфа приращений длину :
т.е. орграф является нагруженным. При этом очевидно, что длина любого пути из в в орграфе равна либо 0, либо бесконечности.
Алгоритм построения максимального потока в транспортной сети.
Важным следствием теоремы Форда-Фалкерсона является Алгоритм построения максимального потока в транспортной сети.
Алгоритм:
Шаг 1. Полагаем i=0. Пусть — любой допустимый поток в транспортной сети D (например, полный, можно начинать с нулевого потока: ).
Шаг 2. По сети D и потоку строим орграф приращений .
Шаг 3. Находим простую цепь , являющуюся минимальным путем из в в нагруженном орграфе . Если длина этой цепи равна бесконечности, то поток максимален, и работа алгоритма закончена. В противном случае увеличиваем поток ввдоль цепи на максимально допустимую величину , такую, что при этом сохраняется условие 1 допустимого потока (для любой дуги величина , называемая потоком по дуге х, удовлетворяет условию ). В силу , используя и , получаем, что указанная величина существует. В результате меняется поток в транспортной сети D, т.е. от потока мы перешли к потоку , и при этом . Присваеваем и переходим к шагу 2.
ПРАКТИЧЕСКАЯ ЧАСТЬ:
Для заданной транспортной сети определить величину максимального потока грузов, которые можно доставить в течение заданного времени из города S в город t. Пропускные способности всех участков дорог считаются известными.
Этап 1.
Начнём с процедуры расстановки пометок. Пометка источника S Далее рассмотрим те вершины, которые соединены с источником дугой. Это V, V, V . Пропустим по всей сети первоначальный нулевой поток Припишем около каждой дуги после значения пропускной способности значение первоначального потока.
Просмотрим вершину S, для этого пометим вершиныV , V , V .
Просмотрим вершину V , ставим метки . Просмотрим , ставим метки .
Изменение потока:
Поэтому заменим величину первоначального потока:
на
на ,
Этап 2.
Просмотрим вершину V1, вершины V4 и V2 получают метки и Просмотрим V3, V2 уже просмотрена, . Просмотрим V2, V4 уже помечена,
Изменение потока:
Вносим изменения потока. Дуга (V2, t) стала насыщенной.
Этап 3.
Просмотрим вершину V1. Вершины V4 и V2 получают метки
Просмотрим V3, V2 уже помечена, Просмотрим V2, V4 уже помечена, Просмотрим V4,
Изменение потока:
Вносим изменения потока. Дуга (V3,V2) стала насыщенной.
Этап 4.
Просмотрим вершину V3. Вершины V2 и V3 получают метки
Просмотрим V2. Вершины V4, V5 и t получают метки
Изменение потока:
Вносим изменения потока. Дуга (V3, V2) стала насыщенной.
Этап 5.
Просмотрим вершину V3. Вершина V6 получает метку
Просмотрим V6
Изменение потока:
Вносим изменения потока. Дуга (S,V3) стала насыщенной.
Поток f=21 является максимальным, а множество дуг составляют минимальный разрез сети. Минимальный разрез на рисунке обозначен волнистой линией.
Заключение.
Бурное развитие дискретной математики обусловлено прогрессом компьютерной техники, необходимостью создания средств обработки и передачи информации, а также представления различных моделей на компьютерах, являющихся по своей природе конечными структурами.
Транспортной сетью называется конечный Связный орграф G(V, E) без петель, каждой дуге которого поставлено в соответствие некоторое неотрицательное число c(), называемое пропускной способностью дуги, и существует:
1) ровно одна вершина , в которую не заходит ни одна дуга, называемая источником или началом сети;
2) ровно одна вершина , из которой не выходит ни одной дуги; эта вершина называется стоком или концом сети.
Список используемой литературы
1. А.М. Аллавердиев, И.В. Платонова «Прикладная математика. Элементы теории графов» М.2000
2. Лекции по прикладной математике И.В. Платоновой
3. В.Н. Нефедов, В.А. Осипова «Курс дискретной математики» М. 1992
4. С.В. Судоплатов, Е.В. Овчинникова «Элементы дискретной математики» М. 2002