Элементы линейного программирования и транспортная задача. Учебное пособие
.pdf
Составляем по числам транспонированной матрицы систему неравенств с новыми переменными для двойственной задачи:
|
4y |
4y |
|
|
8, |
|
|
|
|||
|
1 |
|
|
|
|
2 |
14, |
F Z M (y1, y2) 0 800y1 1400y2 min. |
|||
2y1 |
6y2 |
|
|||||||||
5y |
5y |
2 |
|
10, |
F 800y 1400y |
2 |
min. |
||||
|
1 |
|
|
|
|
|
1 |
|
|||
|
|
y , |
2 |
|
|
0. |
|
|
|
||
|
|
1 |
|
|
|
|
|
|
|
|
|
Мы имеем теперь две системы неравенств в стандартной форме. Перейдем к канонической форме задания систем ограничений:
Основная
4x1 2x2 5x3 x4 800,4x1 6x2 5x3 x5 1400,
|
x1,2 ,3 0. |
|
|
|
|
|
|
|
|
|
|
||
Z 8x1 14x2 10x3 |
max. |
|
||||
x |
800 4x |
2x |
5x |
, |
||
4 |
1 |
|
2 |
3 |
|
. (*) |
x |
1400 4x |
6x |
5x |
|
||
|
1 |
|
2 |
3 |
|
|
5 |
|
|
||||
Z 0 8x1 14x2 |
10x3 max. |
|||||
|
|
|
|
|
|
Двойственная |
|||
4y |
4y |
2 |
y |
8, |
|
|
|||
|
|
1 |
|
|
3 |
|
|
|
|
2y1 |
6y2 |
y4 |
14, |
|
|
||||
5y |
|
5y |
2 |
y |
10, |
|
|
||
|
1 |
|
5 |
|
|
|
|||
|
|
|
y1,2 0. |
|
|
|
|||
|
|
|
|
|
|
||||
F 0 800y1 1400y2 |
|
min. |
|||||||
y3 8 4y1 4y2 , |
|||||||||
y |
4 |
14 2y 6y |
2 |
, (**) |
|||||
|
|
|
|
|
|
1 |
. |
||
y 10 5y 5y |
2 |
||||||||
|
5 |
|
|
|
|
|
1 |
|
|
F 0 800y1 1400y2 min.
В качестве основной системы берем систему (*), так как систему (**) необходимо решать методом искусственного базиса (поскольку знаки в системе ограничений ≥), и первое допустимое решение (*) при x1 x2 x3 0 получается (0;
0; 0; 800; 1400), т. е. все Bi – положительные [чего мы не можем наблюдать в системе (**)]. Поэтому решаем систему (*).
Симплекс-таблица № 1.
|
|
Св. |
y3 |
y4 |
y5 |
F |
|
|
|
|
|
|
|
Баз. |
|
|
x1 |
x2 |
x3 |
Bi |
|
|
|
|
|
|
|
y1 |
|
x4 |
4 |
2 |
5 |
800 |
|
|
|
|
|
|
|
y2 |
|
x5 |
4 |
6 |
5 |
1400 |
|
|
|
|
|
|
|
|
Z |
– 8 |
– 14 |
– 10 |
0 |
|
|
|
|
|
|
|
|
Используя решение основной задачи, сразу находим решение двойственной, т. е. меняются местами базисные и свободные переменные. (Сделаем обозначения в симплекс-таблице № 1).
21
|
800 |
|
1400 |
|
|
1400 |
|
||
min |
; |
|
. |
||||||
2 |
|
6 |
6 |
||||||
|
|
|
|
|
|
||||
|
|
|
|||||||
Симплекс-таблица № 2.
Баз. |
Св. |
y3 |
y2 |
y5 |
F |
|
x1 |
x5 |
x3 |
Bi |
|
|
|
||||
y1 |
x4 |
8/3 |
– 1/3 |
10/3 |
1000/3 |
|
|
|
|
|
|
y4 |
x2 |
2/3 |
1/6 |
5/6 |
1400/6 |
|
|
|
|
|
|
Z |
|
4/3 |
7/3 |
5/3 |
19600/6 =9800/3 |
|
|
|
|
|
|
Итак, найдено оптимальное решение, так как строка Z неотрицательна, поэтому записываем решение, как основной задачи, так и двойственной.
Решение основной задачи берем по горизонтали в симплекс-таблице № 2, а решение двойственной задачи – по вертикали.
Таким образом:
Решение основной задачи |
Решение двойственной задачи |
|||||||||||||||||||
|
0; |
1400 |
; 0; |
1000 |
; 0 |
|
|
0; |
7 |
; |
4 |
; 0; |
5 |
|
||||||
X |
|
|
|
|
|
Y |
|
|
|
|
|
|||||||||
6 |
3 |
3 |
3 |
3 |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Z |
|
|
9800 |
3 |
|
3267 |
|
F |
9800 |
3 |
|
3267 |
||||||||
|
max |
|
|
|
|
|
|
|
min |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Задание для решения в аудитории
Составить и решить двойственную задачу линейного программирования. 1. ОАО молочный комбинат «Ставропольский» выпускает плавленый сыр двух видов – шоколадный и сливочный. Для его изготовления используется 4 исходных продукта: молоко, сыр, какао-порошок и творог, расходы которых на единицу продукции и суточные запасы даны в таблице:
|
Молоко |
Сыр |
Какао-порошок (кг) |
Творог |
|
(л) |
(кг) |
(кг) |
|
Сливочный |
1 |
2 |
0 |
1 |
Шоколадный |
3 |
1 |
1 |
0 |
Запасы сырья |
180 |
160 |
50 |
70 |
Ценареализациисливочногосырасоставляет2у.д.е.,ашоколадного–3у.д.е. Предположим, что ОАО МКС требуется закупить сырье не для изготовления продукции, а для того чтобы его перепродать. Необходимо подобрать такой набор цен на сырье, чтобы комбинату реализовать его было выгоднее, чем про-
изводить из него продукцию.
2. Производитель выпускает два продукта P и Q, продаваемые соответственно по2000и1000ус.ед..за1т.Продуктымогутпроизводитьсяиздвухтиповсырья: А по 600 и В по 900 ус. ед. за 1 т. Из каждых 100 т. сырья А производят 30 т. продукта P и 50 т продукта Q, а из 100 т сырья В: 60 т P и 10 т Q.
Фабрика способна обрабатывать не более 10000 т сырья ежегодно. Поставщики могут обеспечить не более 6000 т сырья А и не более 8000 т сырья B в год.
22
Производитель может продавать ежегодно по 5000 т продукта P и по 3200 т продукта Q. Определите, сколько сырья А и В должно быть заказано для максимизации его прибыли.
23
РАЗДЕЛ 2. Транспортные задачи линейного программирования
2.1. Постановка транспортной задачи
Транспортные модели (задачи) — специальный класс задач линейного программирования. В классической постановке эти модели описывают перемещение (перевозку) какого – либо товара из пункта отправления (например, места производства продукции) в пункт назначения (склад, магазин и т. п.). Назначение транс- портнойзадачи–определениеобъемовперевозокизпунктовотправлениявпункты назначения с минимальной суммарной стоимостью перевозок. При этом должны быть учтены ограничения, связанные с объемом предложения (производства) и спроса (потребности). Предполагается, что стоимость перевозки по маршруту прямо пропорциональна объему груза, перевозимого по этому маршруту.
В общем виде задача транспортного типа может быть сформулирована следующим образом.
Имеется m пунктов производства (иногда их называют пунктами отправления) с объемами производства, равными a1, , am соответственно. Рассматрива-
ется также n пунктов потребления (пунктов назначения) с объемами потребления (спросом) b1, , bn соответственно. Известны транспортные издержки (затраты)
по перевозке единицы продукции из каждого пункта производства в каждый из пунктовпотребления: cij –стоимостьперевозкиединицыпродукцииизпунктапро-
изводства i впунктпотребления j (i 1,m; j 1,n ).Задачасостоитвопределении
плана перевозки продукции из пунктовпроизводства в пункты потребления, минимизирующего суммарные транспортные расходы и удовлетворяющего ограничениям на объемы предложения и спроса.
Для наглядности модель транспортного типа можно представить в виде таб-
лицы (называемой также транспортной или распределительной таблицей):
Пункт |
|
Пункт потребления |
|
|
Объем производ- |
||
производ- |
B1 |
B2 |
|
… |
Bn |
|
ства |
ства |
|
|
|
|
|
|
|
A1 |
c11 |
|
c12 |
… |
|
c1n |
a1 |
|
|
|
|
||||
x11 |
x12 |
|
x1n |
|
|||
|
|
|
|
|
|||
A2 |
c21 |
|
c22 |
… |
|
c2n |
a2 |
|
|
|
|
||||
x21 |
x22 |
|
x2n |
|
|||
|
|
|
|
|
|||
… |
… |
… |
|
|
… |
|
... |
|
|
|
|
|
|
|
|
Am |
cm1 |
|
cm2 |
… |
|
cmn |
am |
|
|
|
|
||||
xm1 |
xm2 |
|
xmn |
|
|||
|
|
|
|
|
|||
|
|
Объем потребления |
|
|
|
||
|
b1 |
b2 |
|
… |
bn |
|
|
Транспортную таблицу называют иногда табличной или матричной моделью транспортной задачи.
24
Задачи транспортного типа часто представляют в сетевой постановке, в которой каждому пункту производства или потребления соответствует своя вершина, а возможным способам перевозки – ребро сети с указанной стоимостью перевозки единицыпродукции.Длясетевыхмоделей(задачократчайшемпути,максимальном потокеит.д.)разработаныспециальныеэффективныеметодырешения(см.рабочую тетрадь «Элементы теории графови сетевого планирования»).
Необходимоотметитьцелочисленныйхарактертранспортнойзадачи(впервую очередь ее решения), поэтому транспортные задачи относятся также к целочисленному программированию, для которого тоже существуют специальные алгоритмы решения.
Для того чтобы транспортная задача имела допустимые планы, необходимо и
m n
достаточно выполнение равенства ai bj .
i 1 j 1
Это условие называют также условием баланса, если оно выполнено, то транспортную задачу называют сбалансированной. Транспортную модель также называют закрытой, если суммарный объем производства равен суммарному спросу, т. е. выполняется условие баланса.
Если выполняется одно из условий
|
m |
n |
а) перепроизводство ai |
bj ; |
|
|
i 1 |
j 1 |
m |
n |
|
б) дефицит ai |
bj , |
|
i 1 |
j 1 |
|
то модель транспортной задачи называют открытой (несбалансированной). Для разрешимости транспортной задачи с открытой моделью необходимо преобразовать ее в закрытую:
1. При выполнении условия a) необходимо ввести (n 1)-й фиктивный пункт
m n
потребления, объем спроса которого равен величине дисбаланса bn 1 ai bj .
i 1 j 1
Соответствующие стоимости перевозок ci n 1 (i 1,m) полагаются равными нулю
или,приналичиедополнительной информации, соответствующимзначениям штрафов за хранение продукции на складе производителя и т.п.
2. При выполнении условия б) вводится фиктивный пункт производства Am 1,
n m
объем производства которого равен величине дисбаланса am 1 bj ai . Стои-
j 1 i 1
мости перевозок cm 1 j ( j 1,n) от этого фиктивного поставщика полагаются рав-
ными нулю или, при наличии дополнительной информации, соответствующим значениям штрафов за недопоставку продукции и т. п. Например, чтобы гарантировать удовлетворение спроса некоторого пункта потребления в задаче с условием дефицита можно назначить очень высокую стоимость перевозок (штраф) от фиктивного пункта производства до этого пункта потребления.
25
Транспортная задача, как задача линейного программирования, может быть решенасимплекснымметодом,однаконаличиебольшогочислапеременныхиограничений делает вычисления громоздкими. Поэтому для решения транспортных задач разработан специальный метод, имеющий те же этапы, что и симплексный метод, а именно:
1)нахождение исходного опорного решения;
2)проверка этого решения на оптимальность;
3)переход от одного опорногорешения к другому.
Если m – число пунктов отправления, а n – число пунктов назначения, то уравнений составленоm +n, а переменных – m n.
Можно также показать, что если одно изуравнений системы лишнее(оно является следствием остальных), то его можно исключить из системы.
Таким образом, в общем случае система транспортной задачи должна иметь m + n – 1 – уравнений с m n – переменными.
План перевозок, в которых число базисных неизвестных равно m n 1 называетсяневырожденным.Еслименьшеэтогочисла,топланвырожденный,изначит, ввести перевозку с нулевым тарифом.
2.2.Построениеисходногодопустимогопланавтранспортнойзадаче методомминимальногоэлемента
По аналогии с другими задачами линейного программирования решение транспортной задачи начинается спостроения допустимого базисного плана.
1.В плане заполняется клетка, которая соответствует min тарифу.
2.Затем заполняется клетка с min тарифом среди оставшихся и т.д.
3.Если на некотором шаге возникнет ситуация, когда несколько min элементов одинаковых, то выбираем тот, у которого меньше индекс i.
Пример1.НаскладахА1,А2,А3 имеютсязапасыпродукции.ПотребителиВ1,В2, В3 должны получить эту продукцию.
Найти такой вариант прикрепления поставщиков к потребителям, при котором сумма затратнаперевозкибылабы минимальной.Данныепозапасам, потреблению и расходы по перевозке 1 т продукции заданы в таблице (усл. ед.)
Поставщик |
Потребитель |
|
Запасы |
|||
B1 |
B2 |
|
B3 |
|
груза |
|
A1 |
2 |
|
3 |
|
4 |
25 |
|
|
|
|
|
|
|
A2 |
3 |
|
6 |
|
5 |
30 |
|
|
|
|
|
|
|
A3 |
8 |
|
9 |
|
11 |
45 |
|
|
|
|
|
|
|
Потребность |
20 |
35 |
|
40 |
|
|
Решение. Транспортная задача является открытой, так как запас груза больше потребностей на 5 единиц. Приведем задачу к закрытому типу введем фиктивного потребителя B4.
26
Поставщик |
|
|
Потребитель |
|
Запасы |
||
B1 |
|
B2 |
|
B3 |
B4 |
груза |
|
|
|
|
|||||
A1 |
|
2 |
|
3 |
4 |
0 |
25 |
|
|
|
|
|
|
|
|
A2 |
|
3 |
|
6 |
5 |
0 |
30 |
|
|
|
|
|
|
|
|
A3 |
|
8 |
|
9 |
11 |
0 |
45 |
|
|
|
|
|
|
|
|
Потребность |
20 |
|
35 |
|
40 |
5 |
|
Введем некоторые обозначения:
Ai* – излишек нераспределенного груза от поставщика Ai. Bj* – недостача в поставке груза потребителю Bj.
Находим опорный план по правилу минимального элемента: временно исключаем из рассмотрения клетки фиктивного потребителя.
Находим незанятую клетку с минимальным тарифом: (1, 1). Помещаем туда меньшее из чисел A1*= 25 и B1*= 20.
Находим незанятую клетку с минимальным тарифом: (1, 2). Помещаем туда меньшее из чисел A1*= 5 и B2*= 35.
Находим незанятую клетку с минимальным тарифом: (2, 3). Помещаем туда меньшее из чисел A2*= 30 и B3*= 40.
Находим незанятую клетку с минимальным тарифом: (3, 2). Помещаем туда меньшее из чисел A3*= 45 и B2*= 30.
Находим незанятую клетку с минимальным тарифом: (3, 3). Помещаем туда меньшее из чисел A3*= 15 и B3*= 10.
Теперь распределим оставшийся груз между поставщиками и фиктивным потребителем B4. Поместим в клетку (3, 4) 5 единиц груза.
Поставщик |
|
|
Потребитель |
|
Запасы |
||
B1 |
|
B2 |
|
B3 |
B4 |
груза |
|
|
|
|
|||||
A1 |
20 |
2 |
5 |
3 |
4 |
0 |
25 |
|
|
|
|
|
|
||
A2 |
|
3 |
|
6 |
5 |
0 |
30 |
|
|
|
|
|
30 |
|
|
A3 |
|
8 |
30 |
9 |
11 |
0 |
45 |
|
|
|
|
10 |
5 |
|
|
Потребность |
20 |
|
35 |
|
40 |
5 |
|
Z 20 2 5 3 30 5 30 9 10 11 5 0 585 усл. ед.5 единиц груза из храни-
лища A3 осталось нераспределенным.
Пример 2. На складах А1, А2, А3 имеются запасы продукции в количествах 90, 400, 110 т соответственно. Потребители В1, В2, В3 должны получить эту продукцию в количествах 140, 300, 160 т соответственно.
27
Найти такой вариант прикрепления поставщиков к потребителям, при котором сумма затрат на перевозки была бы минимальной. Расходы по перевозке
|
2 |
5 |
2 |
1 т продукции заданы матрицей (усл. ед.) |
4 |
1 |
5 |
3 |
6 |
8 |
|
Решение. Запишем исходные данные в распределительную таблицу:
Uj |
U1 |
U2 |
U3 |
|
Запасы |
Ai |
|
||||
|
|
|
|
|
|
A1 |
2 |
5 |
|
2 |
90 |
90 |
– |
– |
|
||
|
|
|
|||
A2 |
4 |
1 |
|
5 |
400 |
– |
300 |
100 |
|
||
|
|
|
|||
A3 |
3 |
6 |
|
8 |
110 |
50 |
– |
60 |
|
||
|
|
|
|||
Потребности |
140 |
300 |
160 |
|
600 |
Z 90 2 300 1 100 5 50 3 60 8 1610 усл. ед.
Посмотрим, сколько заполнено клеток: m + n – 1 = 3 + 3 – 1 = 5.
Задания для решения в аудитории
1.На складах завода ОАО «Азот» имеется селитра в количествах 30, 50, 80
и110 т. Ее нужно доставить потребителям в г. Ставрополь в размере 60 т, г. Михайловск – 70 т, г. Кисловодск – 80 т и в с. Татарка – 60 т. Расходы на перевозку 1 т селитры представлены в матрице. Необходимо найти оптимальный план транспортировки, если матрица расходов следующая:
|
3 |
5 |
8 |
2 |
|
|
1 |
1 |
9 |
5 |
|
|
6 |
4 |
7 |
2 |
. |
|
|
||||
5 |
1 |
8 |
11 |
||
2. ОАО«Арнест»вг.Невинномысскеимеетскладыслакамидляволоссерии «Прелесть». На каждом из них находится 80, 60, 10 и 90 тыс. шт. Всю эту продукциюнеобходимодоставитьмагазинамкраявразмерах20,20,10,190тыс.шт.Найти оптимальное решение, учитывая тарифы, заданные матрицей
|
2 |
1 |
9 |
8 |
|
|
7 |
5 |
3 |
1 |
|
|
|
||||
|
8 |
10 |
4 |
6 |
. |
|
|
||||
|
4 |
2 |
13 |
2 |
|
|
|
3. Четыре филиала фирмы «H2O&Ничего», производящей фильтры высокой степени очистки воды, снабжают своей продукцией шесть предприятий. Ко-
28
личество фильтров, в котором нуждаются предприятия, и производимое количество, а также данные о стоимости доставки от конкретного поставщика к конкретному потребителю даны в таблице. Составить оптимальный с точки зрения затрат план перевозок.
4. Компания «I24RICH» обслуживает четыре суши бара, доставляя деликатесные морские продукты со своих трех баз хранения. Количество имеющихся в наличии и требующихся деликатесов, а также стоимость доставки иллюстрирует таблица. Составить оптимальный с точки зрения затрат план перевозок.
2. 3. Метод потенциалов решения транспортных задач
Как уже отмечалось ранее, математическая модель транспортной задачи имеет ряд особенностей:
1)все ограничения представлены уравнениями;
2)коэффициенты при неизвестных в ограничениях равны либо 0, либо 1. Поэтому данные особенности позволили преобразовать симплекс-метод в
метод потенциалов, и тем самым существенно упростить решение транспортной задачи. Таким образом, найденное исходное опорное решение (методом min элемента либо методом северо-западного угла) проверяется на оптимальность методом потенциалов по следующему критерию: если опорное решение транспортной задачи является оптимальным, то ему соответствует система m + n действительных чисел Ui и Vj, удовлетворяющих условиям:
1)Ui + Vj = Cij – для всех заполненных клеток xij;
2)Ui + Vj ≤ Cij – для свободных клеток.
Числа Ui и Vj называются потенциалами. В распределительную таблицу добавляют строку Vj и столбец Ui.
Пример 1. Решить задачу примера 2 пункта 2.2. методом потенциалов. Решение. Выбираем из двух опорных решений то, которое имеет минималь-
ные затраты, т. е. метод min элемента и проверим его на оптимальность, добавив в распределительную таблицу строку Vj и столбец Ui .
|
В1 |
В2 |
В3 |
|
Запасы |
А1 |
2 |
5 |
|
2 |
90 |
90 |
– |
– |
|
||
|
|
|
|||
А2 |
4 |
1 |
|
5 |
400 |
– |
300 |
100 |
|
||
|
|
|
|||
А3 |
3 |
6 |
|
8 |
110 |
50 |
– |
60 |
|
||
|
|
600 |
|||
Потребности |
140 |
300 |
160 |
|
Составим систему для заполненных клеток по критерию Ui Vj Cij :
U1 V1 2,
U2 V2 1,
U2 V3 5, 5 уравнений, 6 неизвестных.
U3 V1 3,
U3 V3 8.
29
Одному из потенциалов дается произвольное значение, например, полагаем U1 = 0.
U1 0.
V1 2.
U3 1.
V3 7.
U2 2.
V2 3.
Найденные значения потенциалов заносим в таблицу и проверяем потенциальность незаполненных клеток по критерию Ui – Vj ≤ Cij.
|
|
В1 |
|
В2 |
|
В3 |
|
Запасы |
|
Vi |
2 |
|
3 |
|
7 |
|
|
|
Ui |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
А1 |
0 |
90 |
2 |
– |
5 |
– |
2 |
90 |
|
|
|
|
|
|
|||
А2 |
– 2 |
– |
4 |
300 |
1 |
100 |
5 |
400 |
|
|
|
|
|
|
|||
А3 |
1 |
50 |
3 |
– |
6 |
60 |
8 |
110 |
|
|
|
|
|
|
|||
Потребности |
|
140 |
|
300 |
|
160 |
|
600 |
U1U1U2
U3
V2 5, 3 5 потенциальна.
V3 2, 7 2 непотенциальна.
V1 4, 0 4 потенциальна.
V2 6. 4 6 потенциальна.
Таккакоднаклеткаоказаласьнепотенциальной,тоданноеопорноерешение не является оптимальным и его можно улучшить.
Для улучшения плана составляется цикл с одной из непотенциальных клеток, причем эта непотенциальная клетка должна являться одной из вершин цикла, а остальные вершины должны обязательно соответствовать перевозкам.
Цикл перераспределения ресурсов составляют по следующим правилам:
1.Этот цикл представляет собой замкнутый многоугольник с вершинами в загруженных клетках (за исключением вершины, которая является не потенциальной клеткой), и звеньями, лежащими вдоль строк и столбцов матрицы.
2.Ломаная линия должна быть связанной в том смысле, что из любой ее вершины можно попасть в любую другую вершину по строке или столбцу.
3.В каждой вершине цикла встречаются только два звена, одно из них располагается по строке, другое – по столбцу.
4.Число вершин цикла четное, все они в процессе перераспределения делятся на загружаемые и разгружаемые.
5.В каждой строке (столбце) имеются две вершины: одна загружаемая, другая – разгружаемая.
30
