Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
15.04.2015
Размер:
508.93 Кб
Скачать

2.3.4. Определение оптимальной базы графа

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

1. Каждая вершина графа достижима хотя бы из одной вершины множества В.

2. Среди вершин базы В нет вершины, которая достижима из другой вершины множества В.

3. Множество вершин В должно быть наименьшим.

Рассмотрим алгоритм нахождения базы графа.

1. Для графа строится его конденсация (п.2.3.2).

2. Среди вершин Yiграфа конденсации находим такие, в которые не заходит ни одна дуга (Yiявляются сильными компонентами исходного графа). Пусть такими вершинами будутYl, Ym.

3. Для построения базы нужно из каждой выбранной на 2-м шаге сильной компоненты (Yl = {X1l, X2l,…, XNl}, Ym = {X1m, X2m,…, XNm})взять по одной вершине(xil, xjm). Эти вершины и будут определять базу графа. Чтобы определить оптимальную базу, нужно знать длину дуг. Оптимальная база имеет минимальное суммарное расстояние до всех вершин графа. Алгоритм определения длин кратчайших путей между всеми вершинами графа одновременно будет дан в п.3.4.2.

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

2.3.5. Определение оптимальной антибазы графа

Антибазой графа В-1 является такое множество вершин графа, которое удовлетворяет следующим условиям.

1. Из каждой вершины графа можно достичь хотя бы одной вершины множества В-1.

2. Среди множества вершин В-1нет вершины, которая достижима из другой вершины этого множестваВ-1.

3. Множество вершин В-1должно быть минимальным.

Рассмотрим алгоритм нахождения антибазы графа.

1. Для графа строится его конденсация (п.2.3.2).

2. Среди вершин Yiграфа конденсации находим такие, из которых не выходит ни одна дуга. Пусть такими вершинами будутYk, Yf.

3. Для построения антибазы нужно из каждой выбранной на 2-м шаге сильной компоненты (Yk = {x1k, x2k,…, xNk}, Yf = {x1k, x2k,…, xNk})взять по одной вершине(xik, xjk).Эти вершины будут определять антибазу графа. Оптимальная антибаза имеет минимальное суммарное расстояние от всех вершин графа (см. п.3.4.2).

3. Алгоритмы оптимизации на графовых моделях

В данной главе рассматриваются графовые модели [4,5] для оптимизации транспортных сетей и потоков, решения задач календарного планирования, задач о назначениях и других задач дискретной оптимизации. Изложение алгоритмов оптимизации ориентировано на реализацию с помощью цифровых вычислительных машин.

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

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

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

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

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

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

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

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

(3.2)

(3.3)

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

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

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

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

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

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

i Î R и dij < rij; (3.4)

i Î R и dji > 0. (3.5)

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

Изложенное правило формирования меток для наглядности представим графически с помощью рис. 3.1 и 3.2 соответственно для случаев (3.4) и (3.5).

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

i Î R j

ej=min{ ei , rij-dij }

Рис.3.1

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

i Î R j

ej=min{ ei , dji }

Рис.3.2

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

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

Второй шаг. Вершинаtимеет пометку(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. Так поступаем, пока не достигнем источникаS. После этого стираем все пометки и вновь переходим к первому шагу.

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

Соседние файлы в папке ДМ4