Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кабан.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.17 Mб
Скачать

Министерство образования и науки российской федерации Государственное образовательное учреждение высшего профессионального образования рязанский государственный радиотехнический университет

Кафедра автоматизированных систем управления

Контрольная работа

по дисциплине:

«Многомерные графы»

Выполнила: студентка гр. 1034

Коротина Л.В.

Проверил: Кабанов А.Н.

Рязань 2013

Оглавление

Несколько источников и стоков 6

1. Решение задачи о максимальном потоке методом расстановки пометок на графе (алгоритм Форда-Фалкерсона)

Граф, элементам которого поставлены в соответствие некоторые параметры, называется сетью. В зависимости от приложений различают транспортные, электрические, информационные и т.п. сети.

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

Каждая вершина I характеризуется интенсивностью d(i). Те вершины, для которых D(i) > 0, называются источниками, вершины, для которых D(i) < 0 – стоками, остальные – нейтральными. Так, для транспортной сети источниками являются пункты-поставщики, стоками – пункты-получатели, нейтральными – пункты, где отсутствует как производство, так и потребление данного продукта.

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

Если в сети с одним источником S и одним стоком t задана функция пропускной способности {rij}, то в ней может быть задана также функция, называемая потоком.

Потоком в сети называется функция, сопоставляющая с каждой дугой целое число dij и обладающая свойствами:

0 £ dij £ rij, {xi, xj} Î X; (1.1)

(1.2)

(1.3)

Для транспортной сети величина dij характеризует интенсивность потока по дуге . Эта величина означает количество вещества, проходящего через дугу в единицу времени.

Таким образом, потоком в сети или просто потоком называется совокупность {aij} по всем дугам сети.

Условия (1.1) означают, что поток по каждой дуге неотрицателен и не превышает ее пропускной способности; условия (1.2) показывают, что количество вещества, протекающего в любую нейтральную вершину, равно количеству вещества, вытекающего из нее. Следовательно, общее количество вещества, вытекающего из источника, совпадает с общим количеством вещества, притекающего в сток, что и отражается в условии (1.3).

Линейная форма V в (1.3) есть величина потока в сети. Одна из основных задач на сетях состоит в определении величины наибольшего потока, допустимого в сети при заданных ограничениях на интенсивности потоков дуг. Математически она формулируется так: найти значения переменных dij, максимизирующие линейную форму (1.3) при ограничениях (1.1)-(1.2).

Рассмотрим решение поставленной задачи методом расстановки пометок непосредственно на графе (алгоритм Форда-Фалкерсона). Решение проводится путем многократного повторения двух шагов алгоритма.

Рисунок 1 – Исходный граф

Первый шаг. Пометим вершину-исток K меткой (0,¥) и отнесем вершину K к множеству R, а остальные вершины графа к множеству . Далее расстановка меток осуществляется последовательно. Рассмотрим правило формирования меток. Выберем любую помеченную вершину i (первоначально это единственная вершина K) (в дальнейшем для упрощения записи формул, относящихся к одному графу, вместо «вершина xi» будем писать просто номер вершины «i». Отмеченные вершины относятся к множеству R, непомеченные к множеству . Рассмотрим все непомеченные вершины j, связанные дугами с вершиной i. Вершину j относят к множеству R, если выполняется одно из условий:

i Î R и dij < rij; (1.4)

i Î R и dji > 0. (1.5)

Тем вершинам j, для которых выполняется условие (1.4), припишем метку (i+, ej), где ej = min{ei, rij – dij}. Тем вершинам j, для которых выполняется условие (1.5), припишем метку (i-, ej), где ej = min{ei, dji}.

Изложенное правило формирования меток для наглядности представим графически с помощью рисунков 2 и 3 соответственно для случаев (1.4) и (1.5).

(K,ei) rij>dij ( ,ej)

i Î R j

ej=min{ ei , rij-dij }

Рисунок 2 - Правило формирования меток

(K,ei) dji>0 ( ,ej)

i Î R j

ej=min{ ei , dji }

Рисунок 3 - Правило формирования меток

После помечивания вершины j, ближайшей к K, аналогично производим помечивание других вершин. Эту процедуру помечивания повторяем до тех пор, пока не пометим вершину H, или до тех пор, пока нельзя будет сделать новых пометок.

В первом случае (помечена вершина H) перейдем ко второму шагу, во втором случае исходный поток максимален.

Второй шаг. Вершина H имеет пометку (j+, et) или (j-, et). Если пометка вида (j+, et), заменяем djt на (djt + et), если пометка вида (j-, et), то заменяем dtj на (dtj - et). Затем в любом случае переходим к вершине j. В отношении любой вершины j поступаем аналогично: если ее пометка вида (i+, ej), то заменяем dij на (djt + et), если ее пометка вида (j-, ej), то заменяем dji на (dji - et) и переходим к вершине i. Так поступаем, пока не достигнем источника K. После этого стираем все пометки и вновь переходим к первому шагу.

Таким образом, процесс расстановки пометок представляет собой систематический поиск цепи из K в H, на которой поток может быть увеличен. Если в результате первого шага сток оказался непомеченным, то вдоль найденной цепи можно увеличить поток. Если, с другой стороны, первый шаг закончился, а сток остался непомеченным, то достигнутый поток максимален. Изложенный алгоритм может использоваться для решения задачи и в более общем случае.