
- •Учреждение образования белорусский государственный университет информатики и электроники
- •Рабочая программа
- •Тема 9. Применение нелинейного программирования в задачах организации и планирования связи.
- •Тема 10. Динамическое программирование в электросвязи.
- •Тема 11. Сетевые методы планирования и управления.
- •I. Основы оптимизации управленческих решений
- •II. Использование методов линейного программирования в задачах связи
- •III. Транспортная задача линейного программирования в задачах связи
- •IV. Использование методов линейного программирования дня построения графиков работы на предприятиях связи
- •V. Нелинейное програмирование. Одномерный поиск.
- •VI. Методы многомерного поиска
- •VII динамическое программирование
- •Лабораторная работа n 4
- •Метод равномерного поиска
- •Метод поразрядного приближения
- •Метод последовательного перебора
- •Поиск минимума функции одной переменной методом квадратичной параболы
- •Минимизация функции методом Квадратичной интерполяции-экстраполяции
- •Метод пауэлла
- •Литература.
- •3.Построение опорного плана
- •3.1. Метод северо-западного угла.
- •3. 2. Метод наименьшей стоимости.
- •3.3. Метод Фогеля.
- •4.Оптимизация задачи методом потенциалов.
- •Для всех пустых клеток проверим критерий оптимальности:
- •Литература.
III. Транспортная задача линейного программирования в задачах связи
3.1. Определение транспортной задачи
Транспортная задача линейного программирования формулируется следующим образом.
Имеется m пунктов отправления (ПО): A1, A2, …, Am, в которых сосредоточены запасы какого-то однородного груза в количестве соответственно a1, a2, …, am единиц. Кроме того, имеется пунктов назначения (ПН): B1, B2, …, Bn подавших заявки соответственно на b1, b2, …, bn, единиц груза.
Предполагается, что сумма всех заявок равна сумме всех запасов:
ai
=
bj
(3.1)
Известна стоимость Сij перевозки единицы груза от каждого пункта отправления Ai до каждого пункта назначения Вj. Таблица (матрица) стоимостей перевозки Сij задана:
Требуется составить такой план перевозок, при котором все заявки были бы выполнены, и при этом общая стоимость всех перевозок была минимальна.
При такой постановке задачи показателем эффективности плана перевозок является стоимость; поэтому поставленную задачу точнее называют транспортной задачей по критерию стоимости.
Дадим этой задаче математическую формулировку. Обозначим xij- количество груза, отправляемого из i-го пункта отправления в j-й пункт назначения Bj .
Неотрицательные переменные, число которых равно m*n, должны удовлетворять следующим условиям.
I. Суммарное количество груза, направляемое из каждого пункта отправления во все пункты назначения, должно быть равно запасу груза в данном пункте. Это дает т условий-равенств:
x1j =a1,
x2j =a2, (3.2)
………….
xmj =am,
2. Суммарное количество груза, доставляемое в каждый пункт назначения изо всех пунктов отправления, должно быть равно заявке, поданной данным пунктом. Это дает n условий-равенств:
xi1=b1,
xi2=b2, (3.3)
…………
xin=bn,
Условия (3.2), (3.3) называются "балансовыми условиями".
3. Суммарная стоимость всех перевозок, т.е. сумма величин xij, умноженных на соответствующие стоимости Сij, должна быть минимальной:
L= Сij xij = min (3.4)
Функции (3.4), являющаяся целевой функцией линейна, ограничения-равенства (3.2), (3.3) также линейны. Перед нами – типичная задача линейного программирования с ограничениями - равенствами, называемая основной задачей линейного программирования (ОЗЛП).
Данная задача имеет некоторые особенности, позволяющие ре шить ее вручную простыми табличными методами. Во-первых, все коэффициенты при переменных в уравнениях (3.2), (3.3) равны единице. Во-вторых, не все m+n уравнений задачи являются независимыми. Действительно, складывая между собой все уравнения (3.2) и все уравнения (3.3), мы должны получить одно и то же в силу условия (3.1). Таким образом, условия (3.2), (3.3) связаны одной линейной зависимостью и фактически из этих уравнений только m , а не n являются линейно независимыми. Значит, ранг r системы уравнений (3.2), (3.3) равен
r=m+n-1
а, следовательно, можно разрешить эти уравнения относительно m+n-1 базисных переменных, выразив их через остальные, свободные, количество которых равно
K=mn-(m+n-1) = (m-1) (n-1)
Как известно, в задаче линейного программирования оптимальное решение достигается в одной из вершин области допустимых решений (ОДР), где, по крайней мере, K переменных обращаются в нуль. Значит, в нашем случае для оптимального плана перевозок, по крайней мере (m-1)(n-1) значений xij должны быть равны нулю.
Условимся о терминологии. Значения xij количества единиц груза, направляемых из пункта Ai в пункт Bj, будем называть перевозками.
Любую совокупность значений xij (i=1,m; j=1,k) будем называть планом перевозок или просто планом.
План xij будем называть допустимым, если он удовлетворяет условиям (3.2), (3.3): все заявки удовлетворены, все запасы исчерпаны.
Допустимый план будем называть опорным, если в нем отличны от нуля не более r=m+n-1 базисных перевозок xij, а остальные перевозки равны нулю.
План xij будем называть оптимальным, если он, среди всех допустимых планов, приводит к наименьшей стоимости всех перевозок.
Перейдем к изложению табличных методов решения транспортной задачи (ТЗ), которые сводятся к более простым операциям с так называемой транспортной таблицей, где в определенном порядке записаны все исходные условия ТЗ.
Образец транспортной таблицы дан в табл. 3.1, где стоимости перевозок единицы груза из ПО Ai в ПН Bj помещаются в правом верхнем углу каждой клетки таблицы, о тем, чтобы в самой клетке при составлении плана помещать перевозки xij.
Таблица 3.1
ПО ПН |
B1 |
B2 |
… |
Bn |
Запасы |
A1 |
C11 |
C12 |
… |
C1n |
a1 |
A2 |
C21 |
C22 |
… |
C2n |
a2 |
|
… |
… |
… |
… |
|
Am |
Cm1 |
Cm2 |
… |
Cmn |
a |
заявки |
b1 |
b2 |
… |
bn |
|
В правом столбце помещены запасы товара в каждом ПО, в нижней строке - заявки, поданные каждым ПН. В правой нижней клетке таблицы записывается сумма запасов, равная сумме заявок.
Как показано выше, в каждом опорном плане, включая оптимальный, будут отличны от нуля не более чем m+n-1 перевозок. Клетки таблицы, в которых записываются эти отличные от нуля перевозки, условимся называть базисными, а остальные (пустые) - свободными.
Таким образом, решение ТЗ свелось к следующему. Найти такие значения положительных перевозок, которые, будучи проставлены в базисных клетках транспортной таблицы, удовлетворяли бы следующим условиям:
- сумма перевозок в каждой отроке таблицы должна быть равна запасу данного ПО;
- сумма перевозок в каждом столбце должна быть равна заявке данного ПН;
- общая стоимость перевозок - минимальная.
В дальнейшем все действия по нахождению решения ТЗ будут сводиться к преобразованию транспортной табл. 3.1. При описании этих преобразований будем пользоваться нумерацией клеток таблицы, подобной нумерации клеток шахматной доски. Клеткой AiBj или, короче, клеткой (i, j) будем называть клетку, стоящую в i-й строке и j-м столбце транспортной таблицы.
Решение транспортной задачи, как и воякой задачи линейного программирования, начинается о нахождения опорного решения (опорного плана). Существуют различные способы построения опорного плана, из которых мы остановимся на простейшем, так называемом "способе северо-западного угла". Пояснить его проще всего будет на конкретном примере.
Пример 1. Условия ТЗ заданы транспортной табл. 3.2.
2. Требуется найти опорное решение ТЗ (построить опорный план).
Решение. Будем заполнять табл.3.2 перевозками постепенно, начиная с левой верхней клетки (1,1) ("северо-западного угла" таблицы). Будем рассуждать при этом следующим образом. Пункт подал заявку на 18 единиц груза. Удовлетворим эту заявку за счет запаса 48, имеющегося в пункте A1, и запишем перевозку 18 в клетке (1,1). После этого заявка пункта В1, удовлетворена, а в пункте A1 осталось еще 30 единиц груза. Удовлетворим за счет их заявку пункта В2 (27 единиц), запишем 27 в клетку (1,2); оставшиеся 3 единицы груза пункта A1 назначим пункту B3. В составе заявки пункта B3 остались неудовлетворенными 39 единиц. Из них 30 покроем за счет пункта A2, чем его запас будет исчерпан, и еще 9 возьмем из пункта А3.
Таблица 3.2
ПО ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
A1 |
10 |
8 |
5 |
6 |
9 |
48 |
A2 |
6 |
7 |
8 |
6 |
5 |
30 |
A3 |
8 |
7 |
10 |
8 |
7 |
27 |
A4 |
9 |
5 |
4 |
6 |
8 |
20 |
Заявки bj |
18 |
27 |
42 |
12 |
26 |
125 |
Из оставшихся 18 единиц пункта A3 12 выделим пункту B4; оставшиеся 6 единиц назначим пункту B5, что вместе со всеми 20 единицами пункта A4 покроет его заявку (табл.3.3).
Таблица 3.3
ПО ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
A1 |
18 10 |
27 8 |
3 5 |
6 |
9 |
48 |
A2 |
6 |
7 |
30 8 |
6 |
5 |
30 |
A3 |
8 |
7 |
9 10 |
12 8 |
6 7 |
27 |
A4 |
9 |
5 |
4 |
6 |
20 8 |
20 |
Заявки bj |
18 |
27 |
42 |
12 |
26 |
125 |
На этом распределение запасов закончено: каждый пункт назначения получил груз согласно своей заявке. Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце - заявке.
Таким образом, нами сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение является не только допустимым; но и опорным решением транспортной задачи. Действительно, число базисных клеток таблицы, в которых стоят ненулевые перевозки, удовлетворяет условию m+n-1=8. Остальные клетки - свободные (пустые), в них стоят нулевые перевозки и их число равно 12. Значит, наш план - опорный и поставленная задача построения опорного плана решена.
Однако полученный опорный план не является оптимальным, поскольку при его построении мы совсем не учитывали стоимостей перевозок Сij. Стоимость этого плана, которая найдется, если умножить каждую перевозку на соответствующую стоимость, равна
18.10+ 27.8 + 3.5 + 30.8 + 9.10 + 12.8 + 6.7 + 20.8 = 1039.
Прежде чем рассматривать способы улучшения опорного плана и обеспечения его оптимальности, опишем еще один способ нахождения опорного плана называемый способом "минимальных стоимостей перевозок". В этом случае в матрице стоимостей перевозки (матрице затрат) отыскиваем минимальный элемент и в первую очередь включаем в план самую дешевую перевозку, притом в максимально возможном объеме. Обращаясь к исходным данным табл.3.2, в план включаем перевозку 20 единиц груза из ПО А4 в ПН B4 со стоимостью 4, что полностью исчерпывает запас ПО A4. Следующий по величине элемент матрицы затрат (5), расположенный в нескольких клетках таблицы, определяет включение в план перевозки между пунктами A2 и B5 , где объем перевозки наибольший (26), и затем перевозки между пунктами A1 и В3 объемом 22 единицы, что удовлетворяет заявки пунктов B3, и В5. Далее планируются перевозки со стоимостью 6 между пунктами A1 и B4 объемом 15 единиц и пунктами A2 и B1 объемом 4 единицы. Продолжая действовать аналогичным образом и дальше, придем к плану перевозок табл.3.4.
В том, что полученный план перевозок допустимый, легко убедиться, проверив, что суммы элементов в каждой отроке табл. 3.4 равны соответствующим запасам, а суммы по столбцам - заявкам. Поскольку число базисных (ненулевых) клеток равно m+n-1=8, а число свободных (нулевых) равно (n-1)(m-1)=12, где m=4, n=5, построенный план перевозок является не только допустимым, но и опорным. Затраты на реализацию этого плана составляют
11.10 + 4.6 + 3.8 + 24.7 + 22.5 + 2074 + 26.5 = 736.
Таблица 3.4
ПО ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
A1 |
11 10 |
8 |
22 5 |
15 6 |
9 |
48 |
A2 |
4 6 |
7 |
8 |
6 |
26 5 |
30 |
A3 |
3 8 |
24 7 |
10 |
8 |
7 |
27 |
A4 |
9 |
5 |
20 4 |
6 |
8 |
20 |
Заявки bj |
18 |
24 |
42 |
15 |
26 |
125 |
Рассмотренный способ построения опорного плана прост, но в ряде случаев приводит к опорному" решению, которое значительно отличается от оптимального. Лучшего результата можно добиться c помощью метода наименьшей стоимости. Из всех цен за единицу перевозки выбираем наименьшую – 4 (A4-B3). В эту клетку включаем максимально возможную перевозку из пункта A4- 20. Во всех остальных клетках этой отроки будут нули, т.к. в пункте A4 ничего не осталось. Пункт B3 нуждается в 42 ед., 20 он уже получил. В этом столбце следующая минимальная стоимость перевозки – 5(A1-B3). В это место нужно поставить недостающее количество груза (22), поставив в остальных клетках этого столбца нули. Продолжая в этом же духе, получим следующую таблицу.
Таблица 3.5
ПО ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
A1 |
0 |
14 |
22 |
12 |
0 |
48 |
A2 |
4 |
0 |
0 |
0 |
26 |
30 |
A3 |
14 |
13 |
0 |
0 |
0 |
27 |
A4 |
0 |
0 |
20 |
0 |
0 |
20 |
Заявки bj |
18 |
27 |
42 |
12 |
26 |
125 |
3.2. Решение транспортной задачи методом потенциалов
Описанный выше распределительный метод решений транспортной задачи обладает одним недостатком: нужно отыскивать циклы для всех свободных клеток и находить их цены. Существует, однако, специальный метод решения, который позволяет автоматически, без размышления выделять свободные клетки с отрицательной ценой цикла и определять их цены. Это так называемый метод потенциалов. В соответствии c этим методом критерий оптимальности плана формулируется следующим образом.
Допустимый план перевозок тогда и только тогда является оптимальным, когда каждому пункту отправления и назначения можно сопоставить величину, характеризующую уровень оценки груза в нем (потенциал) так, что множество этих потенциалов удовлетворяет следующим условиям.
1. Разность потенциалов пунктов назначения и отправления, между которыми запланированы перевозки, равна затратам по транспортировке единицы груза между этими пунктами.
2. Аналогичные разности для всех остальных пар пунктов, между которыми не запланированы перевозки, не превосходят затрат по транспортировке.
Иначе говоря, если обозначить через Ui потенциал для i-го пункта отправления, а через Vj - для j-го пункта назначения, то эти условия запишутся так:
Vj- Ui ≤ Сij
причем Vj- Ui ≤ Сij, если перевозка из пункта Ai в пункт Bj предусмотрена в плане (xij>0).
В транспортной задаче оценки (потенциалы) имеют прозрачный экономический смысл. Они выступают здесь как локальные (поясные) цены (или наценки к единой цене), создающие заинтересованность в правильном направлении перевозок. При такой интерпретации признак оптимальности плана представляет собой, по сути, математическое выражение здравого смысла: если какая-то перевозка осуществляется, то цена в пункте потребления равна цене в пункте производства плюс транспортные затраты; в остальных случаях цена Vj не может быть больше, чем Ui +Сij, так как продукт в пункте Bj по такой цене можно было бы получить, привезя его с затратами из пункта Ai. Следовательно, Vj≤Ui +Сij , т.е. в обоих указанных случаях разность цен не превышает затрат по перевозке.
С помощью критерия оптимальности можно не только проверить на оптимальность любой план, но и, в случае его неоптимальности, указать способ улучшения этого плана. Приведем пример построения оптимального плана о помощью последовательного улучшения, исходя из некоторого исходного допустимого плана, например, приведенного в табл. 3.4 опорного плана. Для того чтобы проверить план табл.3.4 на оптимальность, прежде всего, вычисляем систему потенциалов (оценок единицы продукта) в пунктах отправления и пунктах назначения. Так как потенциалы определяются c точностью до постоянного слагаемого (важно соотношение между потенциалами, а не их абсолютная величина), какой-нибудь из них можем ведать заранее. Пусть, например, U1=10, причем через U обозначим потенциалы пунктов отправления, а через V - назначения. Используя тот факт, что разность потенциалов между пунктами назначения и отправления, ввязанными в плане перевозками (см. табл. 3.4), равны соответствующим транспортным затратам, один за другим находим остальные потенциалы:
U1=10,
V1= U1+C11=10+10=20, U3= V1-C31=20-8=12,
V3= U1+C13=10+5=15, U4= V3-C43=15-4=11,
V4= U1+C14=10+6=16, V2= U3+C32=12+7=19,
U2= V1-C21= 20-6= 14 V5= U2+C25=14+5=19
Теперь проверим выполнение признака оптимальности. Для этого нужно согласно условию 2 подсчитать величины Vj- Ui -Сij. Если они все ≤0, то план оптимален, иначе план может быть улучшен.
Находим:
V1-U4-C41=10-11-7=-8; V4-U2-C24=16-14-6=-4;
V2-U1-C12=19-10-8=1; V4-U3-C34=16-12-8=-4;
V2-U2-C22=19-14-7=-2; V4-U4-C44=16-11-6=-1;
V2-U4-C42=19-11-5=3; V5-U1-C15=19-10-9=0;
V3-U2-C23=15-14-8=-7; V5-U3-C35=19-12-7=0;
V3-U3-C33=15-12-10=-7; V5-U4-C45=19-11-8=0.
Для пунктов, между которыми предусмотрены перевозки, эти разности, очевидно, равны нулю и поэтому не выписываются. Так как некоторые из найденных значений разностей положительны, то план не оптимален. Что бы его улучшить, введем в план перевозку в объеме K между пунктами А4 и В2, для которых соответствующая разность положительна и максимальна по величине. Однако введение добавочной перевозки нарушает сбалансированность плана (объем ввоза в пункт В2, не соответствует его заявке или объем вывоза из пункта А4 - его запасу), поэтому необходимо одновременно изменить объемы перевозок и между некоторыми другими пунктами.
В табл.3.6 приведен план, содержащий все необходимые изменения в объемах перевозок.
Таблица 3.6
ПО ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
A1 |
11-K 10 |
8 |
22+K 5 |
15 6 |
9 |
48 |
A2 |
4 6 |
7 |
8 |
6 |
26 5 |
30 |
A3 |
3+K 8 |
24-K 7 |
10 |
8 |
7 |
27 |
A4 |
9 |
K 5 |
20-K 4 |
6 |
8 |
20 |
Заявки bj |
18 |
24 |
42 |
15 |
26 |
125 |
Нетрудно проверить, что этот план сбалансирован - из каждого пункта вывозится столько, сколько в нем запасено, а каждый пункт назначения получает столько, какова его заявка. Легко убедиться, что затраты по реализации этого плана перевозок меньше первоначальных на величину
(V2-U4-C42 )K=3K. Действительно, эти затраты равны
L= (11-K)C11+(22+K)C13+15C14+4C21+26C25+(3+K)C31+(24-K)C32+KC42+
+ (20-K) C43=Lпп- (C11-C13+C32-C31+C43-C42
где Lпп - стоимость прежнего плана. С другой стороны, из соотношений
V2= U3+C32, U3= V1-C31, V1= U1+C11, U4= V3-C43, V3= U1+C13 следует, что
(V2-U4-C42) =C11-C13+C32-C31+C43-C42, что и доказывает вышеприведенное утверждение. Следовательно, выгодно К выбрать как можно большим. Поскольку объемы перевозок не могут быть отрицательными, наибольшее возможное значение К равно 11. Полагая К=11, находим новый допустимый и опорный экономически более выгодный план, приведенный в табл.3.7.
Таблица 3.7
ПО ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
A1 |
10 |
8 |
33 5 |
15 6 |
9 |
48 |
A2 |
4 6 |
7 |
8 |
6 |
26 5 |
30 |
A3 |
14 8 |
13 7 |
10 |
8 |
7 |
27 |
A4 |
9 |
11 5 |
9 4 |
6 |
8 |
20 |
Заявки bj |
18 |
24 |
42 |
15 |
26 |
125 |
Нахождением нового опорного плана заканчивается первое приближение. Дальше проведенные операции повторяются снова, но уже для нового плана. Прежде всего, вычисляются потенциалы и проверяются условия оптимальности. Если они выполнены, то решение закончено. Если нет, то снова производится переход к лучшему плану и т.д.
3.3. Частные случаи транспортной задачи
В рассмотренных выше случаях число заявок равнялось числу запасов. Чаще всего бывает не так.
1) Число запасов превышает число заявок. В этом случае необходимо ввести дополнительный фиктивный пункт потребления с нулевыми стоимостями перевозок (т.е. везти никуда не надо). Далее задача решается обычным способом, но часть запасов окажется не востребованной.
2) Число заявок превышает число запасов. В этом случае вводится фиктивный пункт производства с нулевыми стоимостями перевозки. Задача решается также обычно, только некоторые пункты потребления не дополучат требуемое, но стоимость всей операции все равно получится минимальной.
3.4. Случаи вырождения и способы их преодоления
Выше отмечалось, что число занятых мест в таблице должно быть равно m+n-1. Однако на практике встречаются случаи, когда в процессе решения оно сокращается. Это явление называется вырождением. Рассмотрим это на примере, в табл. 3.8 имеется свободное место 12. Воспользуемся им для улучшения решениям.
Таблица 3.8
ПО |
ПН |
|||
1 |
2 |
3 |
4 |
|
I |
30 1 |
+
-
|
0 1.2 |
3 |
II |
0.8 |
3
-
+ 50 |
90 1.3 |
20 0.9 |
III
|
4 |
2.6 |
1.8 |
30 1.3 |
При вычитании 50 из клеток П.2 и 1.3 значения их превращаются в 0. В результате сокращается число занятых клеток и невозможно воспользоваться методом потенциалов.
Для преодоления этого в одну из освободившихся клеток поставим 0 и будем считать эту клетку занятой (табл. 3.9). Число занятых мест в таблице равно 6 (т.е. m+n-1).
Иногда приходится встречаться о вырождением уже при составлении исходного решения. Вырождения в этом случае можно избежать, переставляя местами столбцы или строки.
Транспортная задача может использоваться в различных сферах хозяйства связи. Ниже приведены два примера.
Таблица 3.8
ПО |
ПН |
|||
1 |
2 |
3 |
4 |
|
I |
3
-
+
|
5
+
- |
0 1.2 |
3 |
II |
0.8 |
3
|
90 1.3 |
20 0.9 |
III
|
4 |
2.6 |
1.8 |
30 1.3 |
Пример 1. Газеты поступают на четыре вокзала города в количествах a1, a2, a3, a4. Нужно развести их по 4 отделениям связи в количествах b1, b2, b3, b4:
a1=120, a2=144, a3=168, a4=192,
b1= 96, b2=168, b3=120, b4=192.
Расстояние от вокзалов до отделений связи приведены в таблице. Оставшиеся Газеты реализуют на вокзале. Составить оптимальный план перевозок.
Таблица 3.10
bj ai |
b1 |
b2 |
b3 |
b4 |
a1 |
7.2 |
11.7 |
10.8 |
17.1 |
a2 |
9.9 |
6.3 |
5.4 |
12.6 |
a3 |
8.1 |
11.7 |
3.6 |
9.9 |
a4 |
14.4 |
15.3 |
16.2 |
2.7 |
Пример 2. Распределить емкость трех АТС (5000, 7000, 10000) между четырьмя районами с потребностями 7000, 7000, 6000, 5000 так, чтобы обеспечить минимальный расход кабеля. Расстояние между районами и АТС приведены в таблице.
Таблица 3.11
р-ны АТС |
1 |
2 |
3 |
4 |
1 |
1.2 |
0.8 |
1.3 |
1.0 |
2 |
0.7 |
0.9 |
1.1 |
0.8 |
3 |
0.5 |
1.0 |
0.8 |
0.6 |
3.5. Метод Фогеля
Метод Фогеля применяется для построения опорного плана. В большинстве случаев этот способ дает опорный план, наиболее близкий к оптимальному. Использовать этот метод рекомендуется при расчетах вручную.
В основе метода лежит концепция штрафов, взимаемых за выбор не самого оптимального с точки зрения транспортных расходов маршрута.
Алгоритм метода включает следующие основные этапы.
Таблица 3.12
|
B1 |
B2 |
B3 |
B4 |
ai |
Столбцы разностей |
||||
A1 |
70 |
38 |
14 24 |
92 |
14 |
14 |
- |
- |
- |
- |
A2 |
58 |
20 18 |
56 |
72 |
20 |
38 |
- |
- |
- |
- |
A3 |
23 19 |
2 10 |
1 100 |
30 |
26 |
9 |
9 |
9 |
11 |
81 |
A4 |
7 3 |
36 |
121 |
34 8 |
41 |
5 |
5 |
5 |
5 |
118 |
bj |
30 |
22 |
15 |
34 |
|
|
||||
Строки разностей |
16 |
8 |
32 |
22 |
|
|
||||
16 |
26 |
76 |
22 |
|||||||
16 |
26 |
21 |
22 |
|||||||
16 |
- |
21 |
22 |
|||||||
16 |
- |
21 |
- |
1. Вычисление разностей в каждой отроке и в каждом столбце матрицы между наименьшей стоимостью и ближайшей к ней по величине (табл.3.12). Разности по строкам записываются справа в столбце разностей, разности по столбцам - внизу в строке разностей. Например, для строки A1 разность равна A1B2- A1B3 =38-24=14 и т.д.
2. Поиск из всех разностей, как по строкам, так и по столбцам максимальной. В примере эта разность равна 38.
3. Помещение в клетку, где находится наименьшая стоимость перевозки (A2B2 =18) в отроке о наибольшей разностью максимально возможного количества ресурсов (20). Поскольку при этом все ресурсы отправителя A2 исчерпаны эту отроку из дальнейшего рассмотрения исключаем.
4. Вычисление разностей по столбцам и отрокам, не принимая во внимание стоимости в клетках, имеющих ресурсы, и клетках исключенной строки, и определение максимальной разности в строке или столбце (B3=76).
5. Поиск минимального элемента в строке или столбце с максимальной разностью A1B3 =24 и размещение в данную клетку максимально возможного количества ресурса. Затем возвращаемся к этапу 4.
Окончательное значение целевой функции F=1546.
3.6. Транспортная задача с промежуточными пунктами
В этом случае допускается "перевозка груза" и через другие исходные пункты транзитом прежде, чем они достигнут установленного пункта назначения. Каждую вершину транспортной сети (как исходный пункт, так и пункт назначения) можно рассматривать и как исходный пункт и как пункт назначения.
Д
ля
пояснения этого рассмотрим задачу на
примере. Имеются три завода по производству
связного оборудования и два центра его
распределения (A,
B,
С и 1, 2). В модели с промежуточными пунктами
будет пять исходных пунктов и пять
пунктов назначения. На рис. 3.1 изображена
соответствующая сеть. Для того чтобы
учесть транзитные перевозки, в каждом
исходном пункте назначения предусматривается
буфер емкостью D
(буфер - это своего рода склад, емкость
которого должна быть не меньше суммарного
объема производства). Предположим,
что объемы производства составляют А-
1000 ед., B-
1500 ед., С- 1200 ед., тогда емкость буфера
составит 3700 ед.
Рис. 3.1
Таблица 3.13
|
A |
B |
C |
1 |
2 |
|
A |
3700 0 |
130 |
90 |
1000 80 |
215 |
4700 |
B |
135 |
3700 0 |
200 101 |
1300 100 |
108 |
5200 |
C |
95 |
105 |
3500 0 |
102 |
1400 68 |
4900 |
1 |
79 |
99 |
110 |
3700 0 |
205 |
3700 |
2 |
200 |
107 |
72 |
205 |
3700 0 |
3700 |
|
3700 |
3700 |
3700 |
6000 |
5100 |
|
В табл. 3.13 представлено оптимальное решение рассмотренной задачи. Диагональные элементы получены в результате использования буфера. Они не дают никакой информации об окончательном решении. На рис. 3.2 приведена схема окончательного решения.
Помимо рассмотренной выше ситуации могут быть и более сложные варианты. Например, кроме двух центров распределения продукции имеется пять потребителей (3, 4, 5, б, 7). Спрос у потребителей характеризуется следующими цифрами: 600, 500, 750, 1000, 650 ед. В такой ситуации, как показано на рис. 3.3, промежуточными пунктами могут быть только центры распределения. Построенная c учетом этого модель приведена в табл. 3.14. Заштрихованные клетки говорят о том, что перевозки c завода непосредственно потребителю не предусмотрены.
Рис. 3.2
Рис. 3.3
Таблица 3.14
|
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
1 |
|
|
|
|
|
|
|
1000 |
2 |
|
|
|
|
|
|
|
1500 |
3 |
|
|
|
|
|
|
|
1200 |
4 |
|
|
|
|
|
|
|
3700 |
5 |
|
|
|
|
|
|
|
3700 |
|
3700 |
3700 |
800 |
500 |
750 |
1000 |
650 |
|
Нужно отметить, что транспортная задача и ее варианты составляют единый класс обобщенных сетевых задач, что чрезвычайно важно для хозяйства связи.
Так, задачу о кратчайшем пути на сети связи можно сформулировать как транспортную задачу с промежуточными пунктами. Сеть, на которой отыскивается кратчайший путь, можно считать транспортной сетью с одним исходным пунктом и одним пунктом назначения. Величина предложения в исходном пункте и величина спроса в пункте назначения равна I. Единица груза (единица информации) передается из исходного пункта в пункт назначения по допустимым маршрутам сети. Задача состоит в минимизации пути, проделанном единицей информации.
Для иллюстрации модели рассмотрим сеть, приведенную на рис. 3.4. В отличие от алгоритма для сетей без циклов, при котором автоматически вычисляются кратчайшие пути между узлом 1 всеми другими узлами, в модели с промежуточными пунктами находится кратчайшее расстояние лишь между двумя пунктами. В табл. 3.15 представлена модель с промежуточными пунктами, соответствующая задаче, в которой требуется определить кратчайшее расстояние между узлами 1 и 7. В этом случае емкость буфера равна 1, поскольку в любой момент через любой узел сети проходит не более одной единицы груза. Заметим также, что узел 1 не может рассматриваться в качестве промежуточного пункта назначения, поскольку он является исходным пунктом для всей сети. Аналогично узел 7 не может быть промежуточным пунктом, поскольку он является конечным пунктом доставки информации. "Стоимости перевозки" полагаются равными соответствующим расстояниям на сети. Заштрихованные ячейки таблицы означают, что такого маршрута не существует и, следовательно, при решении задачи им следует пробежать очень большое расстояние. Расстояние от некоторого узла до него самого полагается равным нулю.
Рис. 3.4
Таблица 3.14
|
2 |
3 |
4 |
5 |
6 |
7 |
|
1 |
1 2 |
8 |
5 |
9 |
|
|
1 |
2 |
0 |
3 |
|
5 |
1 1 |
|
0+D |
3 |
4 |
1 0 |
|
|
2 |
|
0+D |
4 |
|
9 |
1 0 |
|
2 |
23 |
0+D |
5 |
|
|
|
0 |
7 |
1 9 |
0+D |
6 |
8 |
3 |
5 |
1 1 |
0 |
10 |
0+D |
|
0+D |
0+D |
0+D |
0+D |
0+D |
1 |
|
Задача решается как типичная транспортная задача. Из таблицы следует, что
x12=1, x26=1, x33=1, x44=1, x57=1, x65=1.
Величины x33=x44=1 не дают вклада в решение, поскольку они соответствуют петлям в узлах 3 и 4. Остальные величины можно упорядочить следующим образом:
x12=1, x26=1, x65=1, x57=1
Поэтому оптимальный маршрут выглядит так:
12657.