Ekonomiko-matematicheskoe_modelirovanie_v_servise / курс лекций по ЭММ / лекции ЭММ!!!
.pdf
|
|
|
71 |
|
|
|
|
|
|
|
|
|
Таблица 10 |
ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
|
ПО |
Запасы |
|||||
|
|
|
|
|
|
|
|
2 |
3 |
4 |
2 |
|
4 |
A1 |
|
|
|
|
|
140 |
|
x11 |
x12 |
x13 |
x14 |
x15 |
|
|
8 |
4 |
1 |
4 |
|
1 |
A2 |
|
|
|
|
|
180 |
|
x21 |
x22 |
x23 |
x24 |
x25 |
|
|
9 |
7 |
3 |
7 |
|
2 |
A3 |
|
|
|
|
|
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
при ограничениях
ìx11 + x12 + x13 + x14 + x15 =140 ïïx21 + x22 + x23 + x24 + x25 =180 ïïx31 + x32 + x33 + x34 + x35 =160 ïx11 + x21 + x31 = 60
ïíx12 + x22 + x32 = 70 ïïx13 + x23 + x33 =120
ïx14 + x24 + x34 =130 ïïx15 + x25 + x35 =100
ïîxij ³ 0 (i =1,2,3; j =1,2,3,4,5).
72
Число неизвестных переменных 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. Если ограничения, представляемые столбцом и строкой, выполня- ются одновременно, то вычеркивают либо столбец, либо строку.
Процесс продолжается до тех пор, пока не будут удовлетворены все по- требители за счет запасов поставщиков. Применительно к данной ТЗ эта проце-
дура приводит к виду, представленному в табл. 11. |
|
||||||||
В результате получаем опорный план |
|
0 |
(семь занятых клеток таблицы): |
||||||
X |
|||||||||
æ |
60 |
70 |
10 |
0 |
0 |
ö |
|||
|
|
ç |
0 |
0 |
110 |
70 |
0 |
÷ |
|
|
|||||||||
|
X 0 = ç |
÷. |
|||||||
ç |
0 |
0 |
0 |
60 |
100 |
÷ |
|||
è |
ø |
Согласно полученному опорному плану общая стоимость перевозки груза составляет
73
Z (X 0 ) = 2 × 60 + 3×70 + 4 ×10 +1×110 + 4 ×70 + 7 ×60 + 2 ×100 = 1380.
Примечание. Если одновременно и столбец, и строка удовлетворяют ог- раничениям, очередная переменная, включаемая в базисное решение, обяза- тельно имеет нулевое значение.
|
|
|
|
|
|
|
Таблица 11 |
ПН |
B1 |
B2 |
B3 |
|
B4 |
B5 |
|
ПО |
|
Запасы |
|||||
|
|
|
|
|
|
|
|
|
2 |
|
3 |
4 |
2 |
4 |
(140) |
A1 |
60 |
70 |
10 |
|
- |
- |
(80) |
|
|
(10) |
|||||
|
|
|
|
|
|
|
|
|
8 |
|
4 |
1 |
4 |
1 |
(180) |
A2 |
- |
- |
110 |
|
70 |
- |
(70) |
|
|
|
|||||
|
9 |
|
7 |
3 |
7 |
2 |
(160) |
A3 |
- |
- |
- |
|
60 |
100 |
(100) |
|
|
|
|||||
Потреб- |
(60) |
(70) |
(120) |
|
(130) |
(100) |
|
|
|
(110) |
|
(60) |
|
480 |
|
ности |
|
|
|
|
Построение опорного плана ТЗ методом наименьшей стоимости
Согласно данному методу, выбирается переменная xij , которой соответ-
ствует наименьшая стоимость перевозки во всей таблице, и ей придается воз- можно большее количество перевезенного груза. Вычеркивается соответст- вующий столбец или строка. Если ограничения по столбцу (потребности, спрос) и строке (запасы, предложение) выполняются одновременно, то вычер- кивается либо столбец, либо строка. После вычисления новых значений по- требностей и запасов для всех невычеркнутых строк и столбцов процесс повто- ряется при возможно большем значении той переменной xij , которой соответ-
ствует наименьшая стоимость перевозки среди невычеркнутых. Процедура за- вершается, когда остается одна строка или один столбец (табл. 12).
В результате получаем опорный план X 0 (семь занятых клеток таблицы):
|
|
|
|
|
|
74 |
|
|
|
|
|
|
|
|
æ |
60 |
0 |
0 |
80 |
0 |
ö |
|
|
|
|
X 0 |
ç |
0 |
0 |
120 |
0 |
60 |
÷ |
|
|
|
|
= ç |
÷ . |
|
|
||||||
|
|
|
ç |
0 |
70 |
0 |
50 |
40 |
÷ |
|
|
|
|
|
è |
ø |
|
|
|||||
Согласно полученному опорному плану, общая стоимость перевозок гру- |
|||||||||||
за составляет |
|
|
|
|
|
|
|
|
|
|
|
|
Z (X 0 ) = 2 × 60 + 2 ×80 +1×120 +1× 60 + 7 × 70 + 7 ×50 + 2 × 40 = 1380. |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
Таблица 12 |
ПН |
B1 |
B2 |
|
|
B3 |
|
B4 |
B5 |
|
||
ПО |
|
|
|
Запасы |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
|
|
4 |
|
|
2 |
4 |
(140) |
A1 |
60 |
- |
|
|
- |
|
|
80 |
|
- |
(80) |
|
|
|
|
|
|
|
|||||
|
8 |
|
4 |
|
|
1 |
|
|
4 |
1 |
(180) |
A2 |
- |
- |
|
|
120 |
|
- |
|
60 |
(60) |
|
|
|
|
|
|
|
||||||
|
9 |
|
7 |
|
|
3 |
|
|
7 |
2 |
(160) |
A3 |
- |
70 |
|
|
- |
|
|
50 |
|
40 |
(120) |
|
|
|
|
|
|
(50) |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
Потреб- |
(60) |
(70) |
|
|
(120) |
|
(130) |
(100) |
|
||
|
|
|
|
|
|
|
(50) |
(40) |
480 |
||
ности |
|
|
|
|
|
|
|
||||
|
Поиск опорного плана ТЗ методом Фогеля |
|
На каждом шаге метода Фогеля для каждой i -й строки вычисляются штрафы di как разность между двумя наименьшими тарифами строки. Таким же образом вычисляются штрафы d j для каждого j -го столбца. После чего
выбирается максимальный штраф из всех штрафов строк и столбцов. В строке или столбце, соответствующем максимальному штрафу, для заполнения выби- рается не вычеркнутая клетка с минимальной стоимостью перевозки (табл. 13).
Если в таблице существует несколько одинаковых по величине макси- мальных штрафов, то в соответствующих строках или столбцах выбирается од- на невычеркнутая с минимальной стоимостью перевозки.
75
Если клеток с минимальной стоимостью также несколько, то из них вы- бирается клетка (i, j) с максимальным суммарным штрафом, т.е. суммой штра- фов по i -й строке и j -му столбцу.
Если в таблице существует несколько клеток с минимальной стоимостью и соответствующими им одинаковыми максимальными суммарными штрафа- ми, то выбирается клетка, обеспечивающая перевозку максимального количе- ства груза из возможных вариантов.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 13 |
ПН |
|
|
|
|
|
|
|
|
|
|
|
Запа- |
Штрафы для строк, |
|
|
B1 |
|
|
B2 |
|
B3 |
|
B4 |
|
|
B5 |
|
||
|
|
|
|
|
|
|
|
сы |
||||||
ПО |
|
|
|
|
|
|
|
|
|
|
|
di |
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
2 |
|
3 |
|
4 |
|
2 |
|
4 |
(140) |
0 1 1 1 1 − − |
|||
A1 |
|
|
|
|
|
|
|
|
|
|
|
|
(80) |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
60 |
|
|
− |
|
− |
80 |
|
|
− |
|
|
|
|
8 |
4 |
1 |
4 |
1 |
(180) |
|
|
|
|
|
|
|
A2 |
− |
10 |
120 |
50 |
− |
(60) |
0 |
0 |
3 |
0 |
0 |
0 |
− |
|
|
(10) |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
7 |
3 |
7 |
2 |
(160) |
|
|
|
|
|
|
|
A3 |
− |
60 |
− |
− |
100 |
(60) |
1 |
1 |
5 |
0 |
0 |
0 |
− |
|
|
|
|
|
|
|
|
|
|
||||
Потреб- |
(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 |
− |
− |
− |
|
|
|
|
|
− |
− |
− |
− |
− |
|
|
|
В результате получается опорный план X 0 (семь занятых клеток табли-
цы):
|
|
|
|
76 |
|
|
|
æ |
60 |
0 |
0 |
80 |
0 |
ö |
|
|
ç |
0 |
10 |
120 |
50 |
0 |
÷ |
|
|||||||
X 0 = ç |
÷. |
||||||
ç |
0 |
60 |
0 |
0 |
100 |
÷ |
|
è |
ø |
Согласно полученному опорному плану, общая стоимость перевозок гру-
за составляет
Z(X0 ) = 2×60 + 4 ×10 + 7 ×60 +1×120 + 2 ×80 + 4×50 + 2×100 =1260.
Определение оптимального плана ТЗ методом потенциалов
Один из эффективных методов решения ТЗ, получивший название метода потенциалов, был предложен в 1949 г. советскими математиками Л.В. Кан- торовичем и М.К. Гавуриным. Позже аналогичный метод разработал Дж. Дан- циг, основываясь на общих идеях линейного программирования.
Подобно тому, как ТЗ - частный случай ЗЛП, так и метод потенциалов является разновидностью симплекс-метода. Он представляет собой итератив- ный процесс, на каждом шаге которого рассматривается некоторый текущий базисный план, проверяется его оптимальность и, если необходимо, определя-
ется переход к следующему - лучшему базисному плану [20]. |
|
|
|
|||||||||||||
Теорема. Если для некоторого опорного плана ТЗ |
|
|
* = (x* ) |
|
существу- |
|||||||||||
X |
mn |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ij |
|
|
|
ют такие числа u* , u* , …, u* |
, v* , v* , …, v* , что u* + v* = c |
ij |
- для базисных пе- |
|||||||||||||
1 2 |
|
m |
1 |
2 |
n |
i |
j |
|
|
|
|
|
|
|||
ременных (занятых клеток), |
|
ui* + v*j |
£ cij |
- для остальных переменных (свобод- |
||||||||||||
ных клеток), то |
|
* = (x* ) |
|
- оптимальный план ТЗ. |
|
|
|
|
|
|
|
|
||||
X |
mn |
|
|
|
|
|
|
|
|
|||||||
|
|
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Доказательство теоремы приведено в [9]. Числа u* и u* называются по- |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
i |
|
i |
|
|
|
|
тенциалами поставщиков и потребителей соответственно. |
|
|
|
|
||||||||||||
Данная теорема позволяет получить решение ТЗ. После нахождения |
||||||||||||||||
опорного плана необходимо вычислить значения потенциалов u* |
и u* . Так как |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
i |
для базисных переменных имеет место система m + n −1 уравнений с m + n не-
известными
D*ij = ui* + v*j - cij = 0 ,
то одну из неизвестных переменных можно приравнять к нулю и затем после- довательно найти значения остальных неизвестных.
Далее вычисляют симплексные разности для всех остальных переменных по формуле
77
ij = ui + v j − cij .
Если среди них нет положительных значений, то найденный опорный план является оптимальным. В противном случае выбирают lk = max{ ij } и
переменную xlk включают в базис. Для определения переменной, исключаемой из базиса, строят замкнутый цикл и перераспределяют поставки.
Определение. Циклом называется ломаная линия, вершины которой рас- положены в занятых клетках таблицы (рис. 10).
|
xlk |
|
+ |
− |
x pq |
|
|
+ −
− +
Рис. 10. Примеры циклов
Цикл начинается и заканчивается клеткой, соответствующей включаемой в базис переменной xlk . Перемещение поставок в цикле производится по сле- дующему правилу:
1.Заполняемой клетке, соответствующей переменной xlk , приписывается знак «+», а всем остальным клеткам − поочередно знаки «−» и «+».
2.В заполняемую клетку переносят меньшее из чисел xij , стоящих в клетках со знаком «−». Одновременно это число прибавляют к соответ- ствующим числам, стоящим в клетках со знаком «+», и вычитают из чисел, стоящих в клетках со знаком «−».
3.Клетка со знаком «−», в которой стояло минимальное число, считается свободной, а соответствующая ей переменная xpq исключается из бази-
са.
Примечание. Если минимальное число xpq достигается более чем в одной
клетке, то освобождают лишь одну из них, а остальные оставляют занятыми нулевыми поставками.
78
Поиск оптимального плана ТЗ. Перейдем к определению опти-
мального плана перевозок для рассматриваемой ТЗ.
Итерация 1. Пусть получен первоначальный опорный план, соответст- вующий табл. 11, т.е. опорный план, полученный методом СЗУ. В соответствии с количеством поставщиков и потребителей рассмотрим три переменные u1 , u2 ,
u3 − потенциалы поставщиков и пять переменных v1 , v2 , v3, v4 , v5 − потенциалы потребителей. Для каждой занятой клетки в табл. 4.2 запишем уравнения вида
ui + vj = cij ,
где cij − стоимость перевозки единицы груза для данной клетки; ui и vj − соот- ветственно потенциалы поставщика и потребителя.
u1 + v1 = 2 ; |
u2 + v3 = 1; |
u3 + v4 |
= 7; |
u1 + v2 = 3; |
u2 + v4 = 4 ; |
u3 + v5 |
= 2 . |
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 + vj − 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. |
|
|
|
79
Таким образом, имеем следующие значения симплексных разностей: ij = {5, − 2, − 9, − 4,− 2, − 7, − 4,1}.
lk = max{ ij } = 14 = 5, xlk = x14 = 10 .
Подставляем полученные значения в таблицу с опорным планом и полу- чаем табл. 14 (на сером фоне представлены значения симплексных разностей для соответствующих значений потенциалов поставщиков и потребителей).
|
|
|
|
|
|
|
Таблица 14 |
|
ПН |
B1 |
B2 |
B3 |
B4 |
B5 |
|
ПО |
|
Запасы |
|||||
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 |
|
|
|
||||
|
|
|
|
|
|
|
|
|||||||
|
|
9 |
|
7 |
|
3 |
|
7 |
100 |
|
2 |
|
||
|
|
|
|
|
|
|
|
|
60 |
|
|
|
|
|
A3 |
− |
-4− |
|
1− |
|
|
|
160 |
||||||
|
|
|
|
|
|
|||||||||
u3 = 0 |
-7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потреб- |
60 |
70 |
120 |
130 |
100 |
480 |
||||||||
ности |
Пометим заполняемую клетку (1, 4) знаком «+», а затем поочередно клет- ки (2, 4), (2, 3) и (1, 3) − соответственно знаками «+», «−» и «+». Среди клеток таблицы, образующих цикл и помеченных знаком «−», меньшее значение (10) содержится в клетке (1, 3). Прибавим это значение к соответствующим числам, стоящим в клетках цикла, помеченных знаком «+», и вычтем из чисел, стоящих в клетках, помеченных знаком «−».
Освободим клетку (1, 3), в которой стояло минимальное число, а соответ- ствующую ей переменную x13 исключим из базиса. Получаем новый опорный план ТЗ:
|
|
|
|
|
|
80 |
|
|
|
|
|
|
æ |
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. Для каждой занятой клетки табл. 14 (с учетом сделанной перестановки) снова рассчитаем значения потенциалов поставщиков и потреби- телей.
u1 + v1 = 2 ; |
u2 + v3 = 1; |
u3 + v4 |
= 7; |
u1 + v2 = 3; |
u2 + v4 = 4 ; |
u3 + v5 |
= 2 . |
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 .