ЭМиКМ (пособие)
.pdf
|
|
64 |
|
|
|
|
|
|
|
|
Таблица 4.1 |
ПН |
B2 |
B3 |
B4 |
B5 |
|
B1 |
Запасы |
||||
ПО |
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
4 |
2 |
|
4 |
A1 |
|
|
|
|
140 |
x11 |
x12 |
x13 |
x14 |
x15 |
|
A2 |
8 |
|
4 |
|
1 |
|
4 |
|
1 |
180 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
x21 |
x22 |
x23 |
x24 |
|
x25 |
A3 |
9 |
7 |
3 |
7 |
2 |
|
|
|
|
160 |
|
x31 |
x32 |
x33 |
x34 |
|
x35 |
Потреб- |
60 |
70 |
120 |
130 |
100 |
480 |
|
ности |
|||||||
|
|
|
|
|
|
Решение. Построим математическую модель данной ТЗ. Обозначим через xij количество единиц груза, которое планируется перевести из пункта отправ-
ления Ai (i = 1, 2,3) в пункт назначения |
Bj |
( j = 1, 2,3, 4,5). Тогда целевая |
|||||
функция для ТЗ запишется как |
|
|
|
|
|
||
2x11 + 3x12 + 4x13 + 2x14 + 4x15 + |
|||||||
8x21 + 4x22 + x23 + 4x24 + x25 + |
|||||||
9x31 + 7x32 + 3x33 + 7x34 + 2x35 ® min |
|||||||
при ограничениях |
|
|
|
|
|
|
|
ì |
+ x12 |
+ x13 + x14 + x15 = 140, |
|||||
ïx11 |
|||||||
ïx21 + x22 + x23 + x24 + x25 =180, |
|||||||
ïx |
+ x |
+ x |
+ x |
|
+ x =160, |
||
ï 31 |
|
32 |
33 |
34 |
|
35 |
|
ïx11 + x21 + x31 = 60, |
|
|
|||||
ï |
+ x22 |
+ x32 = 70, |
|
|
|||
íx12 |
|
|
|||||
ïx |
+ x |
23 |
+ x |
=120, |
|
||
ï 13 |
|
33 |
|
|
|
|
|
ïx14 + x24 + x34 = 130, |
|
||||||
ïx |
+ x |
25 |
+ x |
=100, |
|
||
ï 15 |
|
35 |
|
|
|
|
|
ïx |
³ 0 |
|
(i = 1, 2,3; |
j = 1, 2,3, 4,5). |
|||
î ij |
|
|
|
|
|
|
|
65
Число неизвестных переменных xij в ТЗ с m поставщиками и n потре-
бителями равно m × n , а число уравнений в системе (4.2)−(4.3) равно m + n. Так как ТЗ является сбалансированной, т.е. выполняется условие (4.5), число ли- нейно независимых уравнений равно m + n −1. Следовательно, опорный план ТЗ может иметь не более m + n −1 отличных от нуля неизвестных.
Существуют несколько схем построения первоначального опорного пла- на: метод «северо-западного угла» (СЗУ), метод наименьшей стоимости, метод Фогеля. Эффективность данных методов различается: в общем случае метод Фогеля дает наилучшее решение (в ряде случаев − оптимальное), а метод СЗУ − наихудшее.
Все методы, используемые для нахождения первоначального опорного плана, отличаются только способом выбора клетки для заполнения, а само за- полнение происходит одинаково независимо от используемого метода. Следу- ет помнить, что перед нахождением опорного плана транспортная задача долж- на быть сбалансирована.
Построение опорного плана ТЗ методом СЗУ
В данной ТЗ m = 3, n = 5, следовательно, опорный план должен иметь не более m + n −1 = 3 + 5 −1 = 7 отличных от нуля переменных. Следуя мето-
ду СЗУ, начинают с того, что приписывают переменной x11 , расположенной в
верхней левой клетке (СЗУ) таблицы, максимально возможное значение.
После этого вычеркивают соответствующий столбец (строку), фиксируя этим, что остальные переменные вычеркнутого столбца (строки) полагаются равными 0. Если ограничения, представляемые столбцом и строкой, выполня- ются одновременно, то вычеркивают либо столбец, либо строку.
Процесс продолжается до тех пор, пока не будут удовлетворены все по- требители за счет запасов поставщиков. Применительно к данной ТЗ эта проце- дура приводит к виду, представленному в таблице 4.2.
В результате получаем опорный план X 0 (семь занятых клеток табли-
цы): |
60 |
70 |
10 |
0 |
0 |
|
||
æ |
ö |
|||||||
|
|
ç |
0 |
0 |
110 |
70 |
0 |
÷ |
|
||||||||
|
X 0 = ç |
÷. |
||||||
ç |
0 |
0 |
0 |
60 |
100 |
÷ |
||
è |
ø |
Согласно полученному опорному плану общая стоимость перевозки груза составляет
Z(X0 ) = 2 ×60 + 3×70 + 4×10 +1×110 + 4 ×70 + 7 ×60 + 2 ×100 =1380.
Примечание. Если одновременно и столбец и строка удовлетворяют ог- раничениям, очередная переменная, включаемая в базисное решение, обяза- тельно имеет нулевое значение.
66
Таблица 4.2
ПН
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
|
|
|
|
|
ПО
A1 |
2 |
|
3 |
4 |
2 |
4 |
(140) |
60 |
70 |
10 |
− |
− |
|
(80) |
|
|
|
(10) |
|
|
8 |
|
4 |
|
1 |
|
4 |
|
1 |
(180) |
||||
A2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(70) |
− |
− |
110 |
|
70 |
|
|
− |
|
|||||||
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
7 |
|
3 |
|
7 |
|
2 |
(160) |
||||
A3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(100) |
|
− |
|
− |
|
− |
|
|
60 |
|
100 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потреб- |
(60) |
(70) |
(120) |
(130) |
(100) |
|
|
||||||||
|
|
|
|
(110) |
(60) |
|
|
|
480 |
||||||
ности |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Построение опорного плана ТЗ методом наименьшей стоимости
Согласно данному методу, выбирается переменная xij , которой соответ-
ствует наименьшая стоимость перевозки во всей таблице, и ей придается воз- можно большее количество перевезенного груза. Вычеркивается соответст- вующий столбец или строка. Если ограничения по столбцу (потребности, спрос) и строке (запасы, предложение) выполняются одновременно, то вычер- кивается либо столбец, либо строка. После вычисления новых значений по- требностей и запасов для всех невычеркнутых строк и столбцов процесс повто-
ряется при возможно большем значении той переменной xij , которой соответ-
ствует наименьшая стоимость перевозки среди невычеркнутых. Процедура за- вершается, когда остается одна строка или один столбец (таблица 4.3).
В результате получаем опорный план X 0 (семь занятых клеток табли-
цы):
æ |
60 |
0 |
0 |
80 |
0 |
ö |
|
|
ç |
0 |
0 |
120 |
0 |
60 |
÷ |
|
|||||||
X 0 = ç |
÷. |
||||||
ç |
0 |
70 |
0 |
50 |
40 |
÷ |
|
è |
ø |
Согласно полученному опорному плану, общая стоимость перевозок гру-
за составляет
Z(X0 ) = 2 ×60 + 2 ×80 +1×120 +1×60 + 7 ×70 + 7 ×50 + 2 × 40 =1380.
67
Таблица 4.3
ПН
B1 |
B2 |
B3 |
B4 |
B5 |
Запасы |
|
|
|
|
|
ПО
A1 |
|
2 |
3 |
4 |
2 |
4 |
(140) |
60 |
− |
|
− |
80 |
− |
(80) |
|
|
|
|
|
|
8 |
|
4 |
|
1 |
|
4 |
|
1 |
(180) |
||
A2 |
|
|
|
|
|
|
|
|
|
|
|
|
(60) |
− |
− |
120 |
|
− |
60 |
|
|
||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
7 |
|
3 |
|
7 |
|
2 |
(160) |
||
A3 |
− |
|
|
|
− |
|
|
|
|
|
|
|
(120) |
|
|
70 |
|
|
50 |
|
40 |
|
(50) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потреб- |
(60) |
(70) |
(120) |
(130) |
(100) |
|
|
||||||
|
|
|
|
|
|
(50) |
(40) |
480 |
|||||
ности |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Поиск опорного плана с помощью метода Фогеля
На каждом шаге метода Фогеля для каждой i -й строки вычисляются штрафы di как разность между двумя наименьшими тарифами строки. Таким
же образом вычисляются штрафы d j для каждого j -го столбца. После чего
выбирается максимальный штраф из всех штрафов строк и столбцов. В строке или столбце, соответствующем максимальному штрафу, для заполнения выби- рается не вычеркнутая клетка с минимальной стоимостью перевозки (таблица
4.4).
Если в таблице существует несколько одинаковых по величине макси- мальных штрафов, то в соответствующих строках или столбцах выбирается од- на не вычеркнутая с минимальной стоимостью перевозки.
Если клеток с минимальной стоимостью также несколько, то из них вы- бирается клетка (i, j) с максимальным суммарным штрафом, т.е. суммой штрафов по i -й строке и j -му столбцу.
Если в таблице существует несколько клеток с минимальной стоимостью и соответствующими им одинаковыми максимальными суммарными штрафа- ми, то выбирается клетка, обеспечивающая перевозку максимального количе- ства груза из возможных вариантов.
68
|
|
|
|
|
|
Таблица 4.4 |
ПН |
B2 |
B3 |
B4 |
B5 |
Запа- |
Штрафы для строк, |
B1 |
||||||
ПО |
|
|
|
|
сы |
di |
|
|
|
|
|
2 |
3 |
4 |
2 |
4 |
(140) |
|
|
|
|
|
− |
− |
A1 |
|
|
|
|
(80) |
0 |
1 |
1 |
1 |
1 |
||
60 |
− |
− |
80 |
− |
|
|
|
|
|
|
|
|
8 |
4 |
1 |
|
4 |
1 |
(180) |
|
|
|
|
|
|
− |
A2 |
|
|
|
− |
|
(60) |
0 |
0 |
3 |
0 |
0 |
0 |
|
− |
10 |
120 |
50 |
|
(10) |
|
|
|
|
|
|
|
|
9 |
7 |
3 |
|
7 |
2 |
(160) |
|
|
5 |
|
|
|
− |
A3 |
|
|
|
|
|
(60) |
1 |
1 |
0 |
0 |
0 |
|
− |
60 |
|
− |
|
|
− |
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потреб- |
(60) |
(70) |
(120) |
|
(130) |
(100) |
|
|
|
|
|
|
|
|
|
||
|
(60) |
|
|
|
(50) |
|
|
|
|
480 |
|
|
|
||||
ности |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
1 |
2 |
|
|
2 |
1 |
|
|
|
|
|
|
|
|
|
|
Штрафы |
− |
1 |
2 |
|
|
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Из двух столбцов с одинаковой |
|
|||||||||
− |
1 |
|
− |
|
|
2 |
1 |
|
|
|
|
|
|
||||
для |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
величиной штрафа выбираем |
|
||
столбцов, |
− |
1 |
|
− |
|
|
2 |
− |
|
|
|
||||||
|
|
|
|
|
|
|
|
тот, у которого есть клетка с |
|
||||||||
d j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
− |
1 |
|
− |
|
|
2 |
− |
|
|
|
|
|
минимальной стоимостью пере- |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
возки |
|
||
|
− |
3 |
|
− |
|
|
− |
− |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
− |
− |
|
− |
|
|
− |
− |
|
|
|
|
|
|
|
|
|
В результате получается опорный план |
|
0 (семь занятых клеток табли- |
|||||||||||||||
X |
|||||||||||||||||
цы): |
|
|
|
|
|
60 0 |
0 |
80 |
0 |
|
|
|
|||||
|
|
|
|
|
æ |
ö |
|
|
|||||||||
|
|
|
|
|
ç |
|
|
|
|
|
|
|
|
|
÷ |
|
|
|
|
|
X 0 = |
0 |
10 |
120 |
50 |
0 |
|
|
|||||||
|
|
|
ç |
÷. |
|
||||||||||||
|
|
|
|
|
ç |
0 |
60 |
0 |
0 |
100 |
÷ |
|
|
||||
|
|
|
|
|
è |
ø |
|
|
Согласно полученному опорному плану, общая стоимость перевозок гру-
за составляет
Z(X 0 ) = 2 × 60 + 4 ×10 + 7 × 60 +1×120 + 2 ×80 + 4 ×50 + 2 ×100 = 1260.
69
Определение оптимального плана ТЗ методом потенциалов
Один из эффективных методов решения ТЗ, получивший название метода потенциалов, был предложен в 1949 г. Л.В. Канторовичем и М.К. Гавуриным. Позже аналогичный метод разработал Дж. Данциг, основываясь на общих иде- ях линейного программирования.
Подобно тому, как ТЗ − частный случай ЗЛП, так и метод потенциалов является разновидностью симплекс-метода. Он представляет собой итератив- ный процесс, на каждом шаге которого рассматривается некоторый текущий базисный план, проверяется его оптимальность и, если необходимо, определя- ется переход к следующему − лучшему базисному плану [20].
Теорема. Если для некоторого опорного плана ТЗ X * = (xij* )mn сущест- вуют такие числа u1* , u2* , …, um* , v1* , v2* , …, vn* , что ui* + v*j = cij − для базис- ных переменных (занятых клеток), ui* + v*j ≤ cij − для остальных переменных
(свободных клеток), то X * = (xij* )mn − оптимальный план ТЗ.
Доказательство теоремы приведено в [9]. Числа ui* и v*j называются по-
тенциалами поставщиков и потребителей соответственно.
Данная теорема позволяет получить решение ТЗ. После нахождения опорного плана необходимо вычислить значения потенциалов ui* и v*j . Так как
для базисных переменных имеет место система m + n −1 уравнений с m + n
неизвестными
*ij = ui* + v*j − cij = 0 ,
то одну из неизвестных переменных можно приравнять к нулю и затем после- довательно найти значения остальных неизвестных.
Далее вычисляют симплексные разности для всех остальных переменных по формуле
ij = ui + v j − cij .
Если среди них нет положительных значений, то найденный опорный план является оптимальным. В противном случае выбирают lk = max{ ij}и
переменную xlk включают в базис. Для определения переменной, исключаемой
из базиса, строят замкнутый цикл и перераспределяют поставки.
Определение. Циклом называется ломаная линия, вершины которой расположены в занятых клетках таблицы (рисунок 9).
70
xlk
+ −
x pq
+ −
− +
Рисунок 9 − Примеры циклов
Цикл начинается и заканчивается клеткой, соответствующей включаемой в базис переменной xlk . Перемещение поставок в цикле производится по сле- дующему правилу:
1.Заполняемой клетке, соответствующей переменной xlk , приписывается знак «+», а всем остальным клеткам − поочередно знаки «−» и «+».
2.В заполняемую клетку переносят меньшее из чисел xij , стоящих в клетках со знаком «−». Одновременно это число прибавляют к соответ- ствующим числам, стоящим в клетках со знаком «+», и вычитают из чисел, стоящих в клетках со знаком «−».
3.Клетка со знаком «−», в которой стояло минимальное число, считается свободной, а соответствующая ей переменная xpq исключается из ба-
зиса.
Примечание. Если минимальное число xpq достигается более чем в од-
ной клетке, то освобождают лишь одну из них, а остальные оставляют заняты- ми нулевыми поставками.
Поиск оптимального плана ТЗ. Перейдем к определению опти-
мального плана перевозок для рассматриваемой ТЗ.
Итерация 1. Пусть получен первоначальный опорный план, соответст- вующий таблице 4.2, т.е. опорный план, полученный методом СЗУ. В соответ-
ствии с количеством поставщиков и потребителей рассмотрим три переменные u1, u2 , u3 − потенциалы поставщиков и пять переменных v1, v2 , v3, v4 , v5 −
потенциалы потребителей. Для каждой занятой клетки в таблице 4.2 запишем уравнения вида:
ui + v j = cij ,
где cij − стоимость перевозки единицы груза для данной клетки; ui и v j − соот-
ветственно потенциалы поставщика и потребителя. |
|
|
u1 + v1 = 2; |
u2 + v3 =1; |
u3 + v4 = 7 ; |
u1 + v2 = 3; |
u2 + v4 = 4 ; |
u3 + v5 = 2. |
71
u1 + v3 = 4 ;
Полагая u1 = 0 (так как имеются 8 переменных и 7 уравнений), получаем v1 = 2 , v2 = 3, v3 = 4. Подставляем полученные значения в другие уравнения
системы: |
|
u2 + 4 =1; |
u2 = −3; |
− 3 + v4 = 4; |
v4 = 7; |
u3 + 7 = 7 ; |
u3 = 0; |
0 + v5 = 2; |
v5 = 2 . |
Таким образом, имеем следующие значения потенциалов поставщиков и потребителей:
u1 = 0; |
u2 = −3; |
u3 = 0; |
|
|
v1 = 2 ; |
v2 = 3; |
v3 = 4; |
v4 = 7; |
v5 = 2 . |
Далее вычисляем симплексные разности для остальных переменных по следующей формуле:
ij = ui + v j − cij .
14 = 0 + 7 − 2 = 5; |
15 = 0 + 2 − 4 = −2; |
21 = −3 + 2 − 8 = −9; |
22 = −3 + 3 − 4 = −4; |
25 = −3 + 2 −1 = −2; |
|
31 = 0 + 2 − 9 = −7; |
32 = 0 + 3 − 7 = −4; |
33 = 0 + 4 − 3 =1. |
|
Таким образом, имеем следующие значения симплексных разностей:
ij = {5, − 2, − 9, − 4, − 2, − 7, − 4,1}. lk = max{ ij} = 14 = 5,
xlk = x14 =10.
Подставляем полученные значения в таблицу с опорным планом и полу- чаем таблицу 4.5 (на сером фоне представлены значения симплексных разно- стей для соответствующих значений потенциалов поставщиков и потребите- лей).
72
Таблица 4.5
|
ПН |
B2 |
B3 |
B4 |
B5 |
|
|
|
B1 |
Запасы |
|||||
ПО |
v1 = 2 |
v2 = 3 |
v3 = 4 |
v4 = 7 |
v5 = 2 |
||
|
|
|
2 |
3 |
4 |
2 |
− |
4 |
A1 |
60 |
70 |
10 |
|
− |
140 |
|
u1 = 0 |
|
|
− |
+ |
5 |
-3 |
|
A2 |
− |
8 |
− |
4 |
|
1 |
|
|
4 |
− |
|
1 |
180 |
|||
|
|
|
110 |
|
|
70 |
|
|
|
|
||||||
u2 = −3 -9 |
-4 |
|
+ |
|
|
|
|
-2 |
|
|
|
|||||
|
|
|
− |
|
|
|
||||||||||
A3 |
− |
9 |
− |
7 |
|
3 |
|
|
7 |
100 |
|
2 |
160 |
|||
|
|
|
− |
|
|
60 |
|
|
|
|
||||||
u3 = 0 |
-7 |
|
-4 |
|
1 |
|
|
|
|
|
|
|
|
|
||
Потреб- |
60 |
70 |
120 |
130 |
100 |
480 |
||||||||||
ности |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пометим заполняемую клетку (1, 4) знаком «+», а затем поочередно клет- ки (2, 4), (2, 3) и (1, 3) − соответственно знаками «+», «−» и «+». Среди клеток таблицы, образующих цикл и помеченных знаком «−», меньшее значение (10) содержится в клетке (1, 3). Прибавим это значение к соответствующим числам, стоящим в клетках цикла, помеченных знаком «+», и вычтем из чисел, стоящих в клетках, помеченных знаком «−».
Освободим клетку (1, 3), в которой стояло минимальное число, а соответ- ствующую ей переменную x13 исключим из базиса. Получаем новый опорный план ТЗ:
|
|
|
æ |
60 |
70 |
0 |
10 |
0 |
ö |
|
|
|
ç |
|
|
|
|
|
÷ |
X1 |
= ç |
0 |
0 |
120 |
60 |
0 |
÷. |
||
|
|
|
ç |
0 |
0 |
0 |
60 |
100 |
÷ |
|
|
|
è |
ø |
Z(X1) = 2 ×60 + 3×70 + 2×10 +1×120 + 4×60 + 7 ×60 + 2 ×100 =1330.
Среди полученных симплексных разностей для переменных в свободных клетках имеется положительное число: 1 в клетке (3, 3). Это означает, что най- денный опорный план не является оптимальным.
Итерация 2. Для каждой занятой клетки таблицы 4.5 (с учетом сделан- ной перестановки) снова рассчитаем значения потенциалов поставщиков и по- требителей.
u1 + v1 = 2; |
u2 + v3 =1; |
u3 + v4 = 7 ; |
u1 + v2 = 3; |
u2 + v4 = 4 ; |
u3 + v5 = 2. |
73
u1 + v4 = 2;
Полагая u1 = 0, получаем v1 = 2 , v2 = 3, v4 = 2 . Подставляем получен- ные значения в другие уравнения системы:
u2 + 2 = 4; |
u2 = 2 ; |
2 + v3 =1; |
v3 = −1; |
u3 + 2 = 7 ; |
u3 = 5; |
5 + v5 = 2; |
v5 = −3. |
Таким образом, имеем следующие значения потенциалов поставщиков и потребителей:
u1 = 0; |
u2 = 2 ; |
u3 = 5; |
|
|
v1 = 2 ; |
v2 = 3; |
v3 = −1; |
v4 = 2 ; |
v5 = −3. |
Вычислим симплексные разности для остальных переменных:
13 = 0 −1− 4 = −5; |
15 = 0 − 3 − 4 = −7; |
|
21 = 2 + 2 − 8 = −4; |
22 = 2 + 3 − 4 =1; |
|
25 |
= 2 − 3 −1 = −2; |
|
31 = 5 + 2 − 9 = −2; |
32 = 5 + 3 − 7 =1; |
|
33 |
= 5 −1− 3 =1. |
|
Таким образом, имеем следующие значения симплексных разностей:
ij = {−5, − 7, − 4,1, − 2, − 2,1,1}. lk = max{ ij} = 22 =1,
xlk = x22 = 60.
Подставляем полученные значения в таблицу с опорным планом X1 и
получаем таблицу 4.6.
Пометим заполняемую клетку (2, 2) знаком «+», а затем поочередно клет- ки (1, 2), (1, 4) и (2, 4) − соответственно знаками «−», «+» и «−». Среди клеток,
образующих цикл и помеченных знаком «−», меньшее значение (60) содержит- ся в клетке (2, 4). Прибавим это значение к соответствующим числам, стоящим в клетках цикла, помеченных знаком «+», и вычтем из чисел, стоящих в клет- ках, помеченных знаком «−».