Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Экономико-математические методы и модели. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
C y1
y2
x3
L
4
181
2
1
4
1
4
1
x1
4
19
2
1
4
1
4
3
x2
2
81
0
2
1
2
3
y3
2
1
0
2
1
2
3
Во втором случае получаем
.0
2
3
2
1
2
1
~
;41
2
3
2
1
2
81
32332
xyyxy
C y1
y2
x3
L
4
181
2
1
4
1
4
1
x1
4
19
2
1
4
1
4
3
x2
2
81
0
2
1
2
3
3
~
y
2
1
0
2
1
2
3
Далее решаем таким же образом две полученные задачи.
1.6. Транспортная задача
1.6.1. Постановка транспортной задачи
Транспортная задачей называется следующая задача линейного программи­рования: имеются пункты отправления груза A1, A2, . . ., Am и пункты назначе­ния груза B1, B2, ..., Bn. Запасы груза на пункте отправления A единиц, а заявка пункта назначения Bj равна b
единицам. Будем полагать, что
j
составляют a
i
31
i
сумма всех запасов равна сумме всех заявок. Стоимость перевозки единицы
 
 
....
...
,...
,...
21
222221
111211
mmnmm
n
n
axxx
axxx
axxx
 
 
....
...
,...
,...
21
222212
112111
nmnnn
m
m
bxxx
bxxx
bxxx
B1
B2
...
Bn
Всего
A1
c11
c12
...
c1n
a1
A2
c21
c22
...
c2n
a2
...
...
...
...
...
...
Am
cm1
cm2
...
cmn
am
Всего
b1
b2
...
bn
a
груза из пункта отправления Ai в пункт назначения Bj составляет c
единиц.
ij
Требуется найти план перевозок, при котором общая стоимость всех перевозок будет минимальной. Эту задачу можно записать в следующем виде.
L = c11x
+ c12x
11
+ . . . + cmnxmn min;
12
x11 0, x
 0, ... , xmn  0.
12
Первая система выражает ограничения на количества запасов груза на пунк­тах отправления, а вторая – ограничения на количества заявок пунктов назна­чения. Рассмотрим метод потенциалов решения этой задачи.
Составим следующую таблицу.
1.6.2. Нахождение опорного плана методом «северо-западного» угла
Опорным планом транспортной задачи называется любой план перевозок, удовлетворяющий всем ограничениям. Метод “северо-западного” угла состоит в заполнении таблицы плана перевозок от левого верхнего угла к правому ниж­нему. Полагаем x
– минимальным из чисел a1 и b1. Если b1 = a1, то переходим
11
32
к определению переменной x21, в противоположном случае – к x12. Для опреде-
i
a
~
j
b
~
.0~
i
a
ления значения x21 выберем минимальное из чисел a2 и b1 – x11. Аналогично, для определения значения x12 выберем минимальное из чисел b2 и a1 – x11.
Передвигаясь таким образом по таблице, придём в правый нижний угол. Если на каждом шаге минимальное число определялось однозначно, заполнен­ными окажутся m + n – 1 клеток таблицы. В этом случае мы получаем невыро­жденный план. Если же при выборе минимальных чисел некоторые числа ока­зались равными, непустых клеток будет меньше. В этом случае в таблицу мож­но внедрить “малые положительные числа” и решать задачу нижеописанным способом. То же самое можно сделать, если такая ситуация возникнет на каком­либо шаге.
1.6.3. Вычисление псевдоплатежей и псевдостоимостей
Заполненные клетки таблицы мы будем называть базисными, а пустые – свободными. Введём для всех пунктов отправления и назначения псевдоплате­жи, которые могут быть и отрицательными. Понятия псевдоплатежей и псевдо­стоимостей будут играть для нас вспомогательную роль.
Обозначим
– псевдоплатежи пункта отправления Ai и
– псевдоплате-
жи пункта назначения Bj. Будем выбирать псевдоплатежи так, чтобы для всех базисных (непустых) клеток таблицы их сумма равнялась стоимости соответ­ствующей перевозки единицы груза. Мы получаем систему линейных уравне­ний, в которой неизвестных на одну меньше, чем уравнений. Следовательно, одну неизвестную мы можем выбрать произвольно, например, полагая
В
этой системе можно последовательно найти все неизвестные. После нахожде­ния псевдоплатежей находим псевдостоимости для свободных (пустых) клеток таблицы, складывая соответствующие псевдоплатежи. Для базисных клеток псевдостоимости равны стоимостям соответствующих перевозок.
33
1.6.4. Проверка оптимальности плана
Проверка оптимальности плана состоит в сравнении полученных псевдо­стоимостей со стоимостями. Если все псевдостоимости для свободных клеток не превосходят стоимостей, оптимальный план найден, и общую стоимость пе­ревозок понизить нельзя. Если же есть свободная клетка для которой псевдо­стоимость больше стоимости, она выбирается в качестве разрешающей. В слу­чае нескольких таких клеток разрешающей можно взять любую из них. Ещё раз отметим, что для базисных клеток псевдостоимости совпадают со стоимостями.
1.6.5. Нахождение цикла и пересчёт таблицы
Возьмём разрешающую клетку таблицы. Для неё можно найти замкнутую ломаную линию, отрезки которой горизонтальны или вертикальны, с вершина­ми в клетках таблицы. Все вершины этой ломаной, кроме находящейся в раз­решающей клетке, должны быть в базисных клетках таблицы. Заметим, что та­кая ломаная всегда существует и является единственной, и будем называть её циклом пересчёта. Далее можно расставить в вершины цикла пересчёта знаки «+» и «–» таким образом: в разрешающую клетку поставить знак «+» и далее чередовать знаки, двигаясь по вершинам цикла. В клетки со знаком «+» будут добавлены единицы груза, а в клетках со знаком «–» количество перевозимого груза будет уменьшено. Количество груза, перевозимого по циклу, определяет­ся как минимальное из чисел в клетках со знаком «–». После этого совершаем пересчёт таблицы, добавляя в клетки со знаком «+» найденное число, а из кле­ток со знаком «–» вычитая его, остальные клетки остаются при этом неизмен­ными. В результате получаем новую таблицу, для которой находим псевдопла­тежи и повторяем описанные выше процедуры.
34
1.6.6. Пример
B1
B2
B3
B4 Всего
A1
4
2
4
5
27
A2
4
2
1
2
22
A3
3
2
5
2
33
Всего
19
26
29
8
82
B1
B2
B3
B4 Всего
A1
19
4
8 2
4
5
27
A2
4
18
2
4 1
2
22
A3
3
2
25
5
8 2
33
Всего
19
26
29
8
82
,0
~
1
a
Дана транспортная задача в следующей формулировке: имеются пункты от­правления груза A1, A2, A3 и пункты назначения груза B1, B2, B3, B4. Стоимости перевозки единицы груза из пункта отправления Ai в пункт назначения Bj зане­сём в таблицу, в которой также укажем количество груза на каждом пункте от­правления и заявку каждого пункта назначения.
Найдём опорный план методом «северо-западного» угла. Записываем ми­нимальное из чисел 27 и 19 – число 19 в первую строку и первый столбец. Первый столбец теперь заполнен, и мы переходим ко второму. В первую строку осталось записать 8 единиц груза, а во второй столбец – 26. Выбираем мини­мальное из них – 8 и записываем его в первую строку и второй столбец. Первая строка заполнена. Таким же образом находим и остальные базисные клетки таблицы.
Вычислим теперь псевдоплатежи. Полагая
получаем
35
404
~
~
1111
acb
и
.202
~
~
1122
acb
,022
~
~
2222
bca
,101
~
~
2233
acb
,415
~
~
3333
bca
.242
~
~
3344
acb
,440
~
~~
1111
bac
,220
~
~~
2112
bac
,110
~
~~
3113
bac
,220
~
~~
4114
bac
,440
~
~~
1221
bac
,220
~
~~
2222
bac
,110
~
~~
3223
bac
,220
~
~~
4224
bac
,844
~
~~
1331
bac
,624
~
~~
2332
bac
,514
~
~~
3333
bac
.224
~
~~
4334
bac
B1
B2
B3
B4
a
~
A1
4
19
4
2 8 2
1 4
-2 5
0
A2
4 4
2
18
2
1 4 1
-2 2
0
A3
8 3
6 2
5
25
5
2 8 2
4
b
~
4
2
1
–2
B1
B2
B3
B4
a
~
A1
4
19
4
2 8 2
1 4
-2 5
0
A2
4 4
2
18
2
1 4 1
-2 2
0
A3
8 3
6 2
5
25
5
2 8 2
4
b
~
4
2
1
–2
Далее найдём
Сложив псевдоплатежи, получим псевдостоимости.
Занесём их в следующую таблицу.
Подчёркнутые псевдостоимости больше стоимостей, поэтому оптимальный план не достигнут. Построим цикл пересчёта для клетки с псевдостоимостью 6. Надо выйти из этой клетки и, пройдя по некоторым непустым клеткам, вер­нуться назад. Получаем следующий цикл пересчёта.
36
Находим число единиц груза, которое можно перевезти по этому циклу. В
B1
B2
B3
B4
a
~
A1
19
4
8 2
4
5
A2
4
2
22
1
2
A3
3
18
2
7 5
8 2
b
~
B1
B2
B3
B4
a
~
A1
4
19
4
2 8 2
5 4
2 5
0
A2
0 4
-2 2
1
22
1
-2 2
–4
A3
4 3
2
18
2
5 7 5
2 8 2
0
b
~
4
2
5
2
B1
B2
B3
B4
a
~
A1
1 4
26
2
4
5
A2
4
2
22
1
2
A3
18
3
2
7 5
8 2
b
~
клетках с числами 0 и 4 количество единиц груза будет увеличено, а в клетках с числами 18 и 25 – уменьшено. Количество груза перевозимого по циклу опре­деляется как минимальное из чисел 18 и 25 равно 18. Сделаем пересчёт табли­цы. Заметим, что при этом и следующих пересчётах число непустых клеток (как и суммы единиц груза по строкам и столбцам) в таблице не меняется.
Для полученной таблицы определяем псевдоплатежи и псевдостоимости.
Подчёркнутые псевдостоимости больше стоимостей, поэтому оптимальный план не найден. Строим цикл пересчёта. После вычислений получаем таблицу.
37
Проводя аналогичные вычисления, получим такие таблицы.
B1
B2
B3
B4
a
~
A1
4 1 4
2
26
2
6 4
3 5
0
A2
-1 4
-3 2
1
22
1
-2 2
–5
A3
3
18
3
1 2
5 7 5
2 8 2
–1
b
~
4
2
6
3
B1
B2
B3
B4
a
~
A1
2 4
2
26
2
4 1 4
1 5
0
A2
-1 4
-1 2
1
22
1
-2 2
–3
A3
3
19
3
3 2
5 6 5
2 8 2
1
b
~
2
2
4
1
B1
B2
B3
B4
a
~
A1
3 4
2
20
2
4 7 4
2 5
0
A2
0 4
-1 2
1
22
1
-1 2
–3
A3
3
19
3
2 6 2
4 5
2 8 2
0
b
~
3
2
4
2
.175282631912247220
min
L
Все псевдостоимости в последней таблице не превосходят стоимостей, по­этому оптимальный план найден. Находим значение целевой функции, умно­жая количество груза в непустых клетках таблицы на стоимости перевозки еди­ницы груза и суммируя по всей таблице.
38
1.7. Вырожденные случаи метода потенциалов
B1
B2
B3
B4 Всего
A1
5
10
5
20
A2
5
20
25
A3
15
15
Всего
20
25
10
5
60
B1
B2
B3
B4 Всего
A1
10
5
15
A2
15
5
20
A3
5
10 15
Всего
15
10
10
15 50
Вырожденный случай транспортной задачи возникает, когда минимальное значение при нахождении опорного плана или пересчёте цикла достигается в нескольких значениях. Преодолеваются вырожденные случаи двумя способами:
1) можно попытаться выбрать другой опорный план или другой цикл;
2) ввести в некоторые клетки , считая по ходу решения задачи  > 0 и до-
статочно малыми, а затем положить = 0.
Рассмотрим примеры решения транспортной задачи в случае вырожденных планов на примерах. Стоимости перевозок единиц груза здесь не имеют значе­ния, поэтому в таблицах они не указаны.
Пример 1.
Пример 2.
В отличие от первых двух примеров, в следующем примере необходимо вводить фиктивные величины уже для опорного плана.
39
Пример 3.
B1
B2
B3 Всего
A1
20
2
 4
1
20+
A2
2
20–
3
 5
20
A3
3
2
20–4 20–
Всего
20
20
20 60
B1
B2
B3
a
~
A1
2
20
2
3  4
6 1
0
A2
1 2
3
20 – 
3
5
2
5
–1
A3
0 3
2 2
4
20 – 2
4
–2
b
2
4
6
B1
B2
B3
a
~
A1
2
20
2
-1
4
1
1
0
A2
6 2
3
20
3
5  5
4
A3
5 3
2 2
4
20 – 2
4
3
b
~
2
–1
1
Поскольку цикл получается вырожденным, введём в него еще фиктивную величину. Для этого добавим в клетку на пересечении второй строки и третье­го столбца и вычтем в клетке на пересечении третьей строки и третьего столбца. После этой операции цикл становится невырожденным и его можно
использовать для пересчёта таблицы.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]