
- •Содержание
- •Глава 1. Постановка транспортных задач 6
- •Глава 2. Определение оптимального плана транспортных задач 28
- •Введение
- •Глава 1.Постановка транспортных задач
- •1.1.Однопродуктовая транспортная модель
- •1.2.Многопродуктовая транспортная модель
- •1.3.Модель производства с запасами
- •1.4. Методы построения опорного плана
- •1.4.1. Метод северо-западного угла
- •1.4.2.Метод минимальной стоимости
- •1.4.3.Метод двойного предпочтения
- •1.4.4.Приближенный метод Фогеля
- •Глава 2.Определение оптимального плана транспортных задач
- •2.1.Решение транспортной задачи методом моди
- •2.2.Дельта-метод решения транспортной задачи
- •2.3.Решение задач закрепления потребителей за поставщиками и клиентуры за автотранспортными предприятиями с учетом дополнительных требований
- •2.3.1.Ограничения в поставках
- •2.3.2.Несбалансированное наличие и потребности
- •2.3.3.Задача закрепления при учете взаимозаменяемости автомобилей
- •2.3.4.Задача на минимизацию времени доставки груза
- •Глава 3.Задача о назначениях
- •3.1.Постановка задачи о назначениях
- •3.2.Венгерский метод решения задачи о назначениях
- •3.3.Применение задачи о назначениях к решению экономических проблем
- •Глава 4.Оптимальное планирование грузооборота
- •4.1.Транспортная сеть и характеристика перевозимых грузов
- •Объёмы потребления грузов
- •Объёмы производства песка
- •4.2.Оптимальное планирование грузоперевозок
- •4.3.Маршрутизация перевозок грузов при помашинных отправках
- •4.4.Составление кольцевых и маятниковых маршрутов
- •Глава 5.Оптимальное планирование работы автобусного парка
- •5.1.Постановка задачи
- •5.2.Двойственная задача линейного программирования
- •5.3. Примеры формулировок двойственных задач
- •5.4. Симметричная и несимметричная двойственные пары. Основы теории двойственности
- •Основная теорема теории двойственности
- •5.5. Условия равновесия в симметричной паре. Экономическая интерпретация
- •5.6.Решение задачи оптимального планирования работы автопарка
- •Глава 6.Область применения сетевых транспортных задач
- •6.1.Примеры применения модели о кратчайшем пути
- •6.2.Алгоритмы нахождения кратчайшего пути
- •6.2.1.Алгоритм для сетей без циклов
- •6.2.2.Алгоритм для сетей с циклами
- •6.2.3.Алгоритм Флойда
- •6.3.Алгоритм нахождения максимального потока в сети
- •6.4.Представление сетевых задач как задач линейного программирования
- •Глава 7.Применение сетевых моделей в транспортировке грузов
- •7.1. Определение кратчайших расстояний между пунктами транспортной сети
- •7.2. Решение задачи коммивояжера методом "ветвей и границ"
- •7.3. Определение развозочных маршрутов для перевозки мелких партий грузов
- •7.3.1. Нахождение кратчайшей связывающей все пункты сети и набор пунктов в маршруты
- •7.3.2. Определение очередности объезда пунктов маршрута
- •Матрица кратчайших расстояний 2-го маршрута
- •7.4. Определение развозочных маршрутов для мелких партий грузов методом Кларка Райта
- •Список литературы
6.3.Алгоритм нахождения максимального потока в сети
В данном разделе рассматривается задача определения максимального потока между двумя выделенными узлами связной сети. Каждая дуга сети обладает пропускными способностями в обоих направлениях, которые определяют максимальное количество потока, проходящего по данной дуге. Ориентированная (односторонняя) дуга соответствует нулевой пропускной способности в запрещённом направлении.
Алгоритм метода:
где
Цепь построить нельзя, если все элементы строки S или все элементы столбца t матрицы D*равны нулю.
|
Пример 6.0:
Рассмотрим сеть на рис. 6.8 с данными пропускными способностями. Соответствующая матрица пропускных способностей D приведена в табл. 95.
Рис. 6.15.
Таблица 95
Матрица
|
S |
1 |
2 |
3 |
4 |
t |
S |
|
10 |
3 |
14 |
4 |
|
1 |
5+ |
|
5 |
9 |
5 |
|
2 |
5 |
6 |
|
15 |
|
10 |
3 |
12 |
7 |
10 |
|
7 |
2 |
4 |
3 |
9+ |
|
8 |
|
13 |
t |
|
|
3 |
4 |
5+ |
|
В качестве исходной цепи можно выбрать s14t . Таким образом, ячейки (S, 1), (1, 4) и (4, t) помечаются знаком «», а ячейки (1, s), (4, 1) и (t, 4) – знаком «+». Для данной цепи максимальный поток определяется как
= min { ds1 , d14 , d41 }= min {10, 5, 13}= 5.
Заметим, что можно выбирать различные исходные цепи. Очевидно, что хороший выбор (вначале и на каждой итерации) должен давать наибольшее значение . Однако при этом, возможно, понадобится перебрать несколько вариантов, что в конечном итоге оказывается малоэффективным. При программировании алгоритма цепь удобно определять непосредственно из матрицы D, начиная с первой строки (S-строки) и выбирая следующий узел среди тех, которые соединены с S положительным потоком. Далее рассматривается строка, соответствующая выбранному узлу, и выбирается следующий узел, соединённый с предыдущим положительной дугой. Процесс продолжается до тех пор, пока не будет достигнут узел t.
Матрица D в табл. 95 корректируется путём вычитания = 5 из всех элементов, помеченных знаком «», и сложения со всеми элементами, имеющими знак «+». Результаты приведены в табл. 96.
Результаты последующих итераций приведены в табл. 97-100. Из табл. 100 следует, что между S и t нельзя построить цепей с положительным потоком, поскольку все элементы в столбце t равны нулю. Таким образом, табл. 100 даёт матрицу D*.
Таблица 96
Матрица
|
S |
1 |
2 |
3 |
4 |
t |
S |
|
5 |
3 |
14 |
4 |
|
1 |
10 |
|
5 |
9 |
0 |
|
2 |
5 |
6 |
|
15+ |
|
10 |
3 |
12+ |
7 |
10 |
|
7 |
2 |
4 |
3 |
14 |
|
8 |
|
8 |
t |
|
|
3+ |
4 |
10 |
|
цепь {S, 3, 2, t}
= min {14, 10, 10}= 10
Таблица 97
Матрица
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Таблица 98
Матрица
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Таблица 99
Матрица
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Таблица 100
Матрица
|
В
табл. 95 (матрица
)
и 100 (матрица
)
приведены данные, характеризующие
оптимальный поток, которые получаются
вычислением X=
и заменой отрицательных величин нулями.
Табл. 101 даёт матрицу X.
Таблица 101
Матрица X
|
S |
1 |
2 |
3 |
4 |
t |
S |
|
10 |
|
12 |
3 |
|
1 |
|
|
|
5 |
5 |
|
2 |
|
|
|
|
|
10 |
3 |
|
|
10 |
|
5 |
2 |
4 |
|
|
|
|
|
13 |
t |
|
|
|
|
|
|
Из табл. 101 видно, что
Сумма
всех
5 + 10 + 5 + 3 + 2 = 25 также даёт максимальный
поток. Графически решение представлено
на рис. 6.9.
Рис. 6.16.
Здесь уместно ввести понятие минимального разреза. Разрез в связанной сети представляет собой такое множество дуг, которое определяет нулевой поток из S в t, если пропускные способности этих дуг полагаются равными нулю. Пропускная способность разреза равна сумме пропускных способностей его дуг. В сети на рис. 6.8 можно выделить разрезы, представленные в табл. 102.
Таблица 102
Разрезы |
Пропускная способность |
(S, 1), (S, 2), (S, 3), (S, 4) (4, t), (3, t), (2, t) (1, 3), (S, 4), (3, 4), (3, t), (2, t) |
10 + 2 + 14 + 4 = 31 13 + 2 + 10 = 25 5 + 4 + 7 + 2 + 10 = 25 |
Интуитивно очевидно, что максимальный поток можно найти, перебирая все разрезы сети. Разрез минимальной пропускной способности даст решение. Это интуитивное соображение на самом деле можно доказать, используя теорему о максимальном потоке– минимальном разрезе, согласно которой максимальный поток в сети равен пропускной способности минимального разреза.