
- •2. Основные определения теории графов
- •2.1.1. Задание графа множествами вершин и линий
- •2.1.2. Задание графа с помощью отображения
- •2.1.3. Задание графа с помощью обратного отображения
- •2.1.4. Матричное представление графа
- •2.2. Достижимость и обратная достижимость вершин графа
- •2.2.1. Матрица достижимостей и матрица обратных достижимостей
- •2.2.2. Определение матриц достижимостей и обратных достижимостей с помощью прямых и обратных отображений
- •2.2.3. Определение матриц ограниченных достижимостей
- •2.2.4. Определение матриц достижимостей и обратных
- •2.3. Разбиение графа на подграфы
- •2.3.1. Определение существенных вершин
- •2.3.2. Определение сильных компонент графа
- •2.3.3. Определение сильных компонент графа
- •2.3.4. Определение оптимальной базы графа
- •2.3.5. Определение оптимальной антибазы графа
- •3. Алгоритмы оптимизации на графовых моделях
- •3.1. Решение задачи о максимальном потоке методом расстановки пометок на графе (алгоритм Форда-Фалкерсона)
- •Несколько источников и стоков
- •3.2. Решение задачи о максимальном потоке в табличной форме
- •3.3. Решение задачи о максимальном потоке в графе
- •3.4. Решение задачи о кратчайшем пути в транспортной сети непосредственно по графу
- •3.5. Решение задач о кратчайших путях в табличной форме
- •3.5.1. Определение кратчайшего пути между двумя
- •3.5.2. Определение длин кратчайших путей между
- •3.5.3. Решение задачи о кратчайшем пути в графе
- •3.6. Кратчайший остов графа
- •3.6.1. Понятие дерева
- •3.6.2. Определение числа остовных деревьев графа
- •3.6.3. Алгоритм построения всех остовных деревьев графа
- •3.6.4. Определение кратчайшего остова неориентированного
- •3.6.5. Решение задачи о кратчайшем пути в графе
- •3.7. Задача о назначениях
- •3.7.1. Матричная формулировка задачи
- •3.7.3. Решение задачи о назначениях
- •3.7.4. Модификации задачи о назначениях
- •3.8. Задача о наименьшем покрытии
- •3.8.1. Постановка задачи
- •3.8.2. Алгоритм решения задачи
- •3.8.3 Решение задачи о наименьшем покрытии
- •Библиографический список
- •Оглавление
- •Редактор м.Е. Цветкова Корректор н.А. Орлова
- •390005, Рязань, ул. Гагарина, 59/1.
3.3. Решение задачи о максимальном потоке в графе
на основе линейного программирования
Рассмотрим
сеть (рис. 3.3) с одним истоком (вершина
1) и одним стоком (вершина 4), на которой
заданы пропускные способности дугc1=11,с2=7,
с3=5,
с4=8.
Обозначим величину потока из вершины
1 в вершину 2 черезх1,
из 2 в 4 – черезх2,
из 1 в 3 – черезх3,
из 3 в 4 – черезх4.
Произвольно задаватьхi
(i=1..4)нельзя. Эти числа должны удовлетворять
ряду ограничений.
2 7
11 х1 х2 4
1 х3 х4
5 3 8
Рис. 3.3
1. Поток дуги не может быть больше её пропускной способности:
0£ х1£11, 0£ х2£7, 0£ х3£5, 0£ х4£8.
2. Для любой вершины, не являющейся ни истоком, ни стоком, суммарный поток входящих дуг равен суммарному потоку выходящих дуг:
х1–х2=0, х3–х4=0.
3. Вводится понятие суммарного потока Ф на конечных дугах сети, отличное от понятия потока на дуге xi, i=1..4. Сумма потоков, исходящих из начальной вершины, равен сумме потоков, входящих в конечную вершину:
х1+х3=Ф, х2+х4=Ф.
Возникает задача: определить величину максимального потока в графе при заданных пропускных способностях, т.е. найти хi, i=1..4, удовлетворяющие условиям 1 – 3, максимизирующие целевую функциюFmax=Ф.
Существуют различные методы решения задач линейного программирования. Одним из наиболее распространённых методов решения задачи ЛП является симплексный метод. Он позволяет за конечное число шагов определить область допустимых базисных решений и найти оптимальное решение задачи.
Сначала
необходимо представить задачу в удобном
для программирования виде. Для этого
заменим в уравненияхФнах5,
а часть равенств представим в виде
неравенств (для решения задачи стандартным
симплекс-методом). Получаем задачу ЛП:
Fmax=x5.
В соответствии с этим можно записать начальную симплекс -таблицу.
Таблица 3.1
|
– x1 |
– x2 |
– x3 |
– x4 |
– x5 |
B |
0 |
1 |
0 |
1 |
0 |
–1 |
0 |
0 |
0 |
1 |
0 |
1 |
–1 |
0 |
Y3 |
–1 |
1 |
0 |
0 |
0 |
0 |
Y4 |
1 |
–1 |
0 |
0 |
0 |
0 |
Y5 |
0 |
0 |
–1 |
1 |
0 |
0 |
Y6 |
0 |
0 |
1 |
–1 |
0 |
0 |
Y7 |
1 |
0 |
0 |
0 |
0 |
11 |
Y8 |
0 |
1 |
0 |
0 |
0 |
7 |
Y9 |
0 |
0 |
1 |
0 |
0 |
5 |
Y10 |
0 |
0 |
0 |
1 |
0 |
8 |
Fmax |
0 |
0 |
0 |
0 |
–1 |
0 |
Решая задачу, получим конечную симплекс-таблицу с решением прямой задачи:
Таблица 3.2
|
0 |
0 |
– y9 |
– y4 |
– y8 |
B |
X1 |
0 |
0 |
0 |
1 |
1 |
7 |
X2 |
0 |
0 |
0 |
0 |
1 |
7 |
Y3 |
0 |
0 |
0 |
1 |
0 |
0 |
X4 |
–1 |
1 |
1 |
1 |
0 |
5 |
Y5 |
1 |
–1 |
0 |
–1 |
0 |
0 |
Y6 |
–1 |
1 |
0 |
1 |
0 |
0 |
Y7 |
0 |
0 |
0 |
–1 |
–1 |
4 |
X5 |
–1 |
0 |
1 |
1 |
1 |
12 |
X3 |
0 |
0 |
1 |
0 |
0 |
5 |
Y10 |
1 |
–1 |
–1 |
–1 |
0 |
3 |
Fmax |
–1 |
0 |
1 |
1 |
1 |
12 |
Решение задачи для исходных переменных:
x1=7; x2=7; x3=5; x4=5; x5=12;
при этом Fmax=12.