На двух складах А и В имеются соответственно 50 и 40 т груза. Требуется спланировать перевозки к трем потребителям С, Д и Е так, чтобы потребитель С получил 30 т, Д – 20 т, Е – 40 т, а затраты на перевозку были минимальными. Стоимость перевозок от складов к потребителям заданы в табл.1.
Таблица 1
Стоимость перевозок
потребители склады | С | Д | Е | |
А | x11 | x12 | x13 | |
В | x21 | x22 | x23 | |
1. Составим математическую модель задачи
На множестве решений системы:
При этом количество пунктов отправления m = 2, а количество пунктов назначения n =3.
Найти минимальное значение целевой функции F = 3 x11 + 2 x12 + x13 +
3 x21 + 5 x22 + 6 x23 .
2. Составим первое распределение поставок методом “северо-западного угла”, начиная заполнение транспортной таблицы с левого верхнего (“северо-западного”) угла.
Потребитель С подал заявку на 30 т груза, выполним эту заявку из запасов склада А. При этом, заказ потребителя С полностью выполнен и его можно исключить из дальнейшего рассмотрения.
|
|
Найдем новый северо-западный угол – это клетка АД. Из условий задачи известно, что потребитель Д заказал 20 т груза. На складе А осталось: 50 – 30 = 20 т груза. Направим этот груз потребителю Д. В этом случае, весь груз со склада А перевезен, и первую строчку можно исключить из дальнейшего рассмотрения. Заказ потребителя Д также полностью выполнен и столбик Д транспортной таблицы можно исключить из дальнейшего рассмотрения.
В оставшейся части таблицы найдем новый северо-западный угол – это клетка ВЕ. Заказ потребителя Е – 40 т груза полностью удовлетворим со склада В. Тогда исходным распределением поставок будет: x11 = 30; x12 = 20; x23 = 40 и транспортная таблица примет следующий вид (табл.2).
Таблица 2
потребители склады | С | Д | Е | |
А | ||||
В | ||||
По таблице определим значение целевой функции F1 = 30·3 +20·2 + 40·5 = 370 руб.
Данный план является допустимым, т.к. сумма перевозок по строке равна запасу соответствующего пункта отправления (склада), а сумма перевозок по столбцу – заявке соответствующего пункта назначения (потребителя).
Проверим, является ли план перевозок опорным. Определим величину
m + n – 1 = 2 + 3 – 1 = 4, и сравним ее со значение с количеством базисных перевозок, отличных от нуля (p = 3). Условие m + n – 1 ≥ p выполняется, т.е. план перевозок является опорным.
3. Проверим, является ли полученный план оптимальным. Сформулируем математическую модель задачи, двойственной исходной. Для этого введем пять переменных: u1, u2 (по числу складов) и v1, v2, v3 (по числу потребителей). Результаты внесем в таблицу 3.
|
|
Таблица 3
1 план | |||||||
x11 | x12 | x13 | x21 | x22 | x23 | ||
u1 | |||||||
u2 | |||||||
v1 | |||||||
v2 | |||||||
v3 | |||||||
Теперь двойственную задачу можно сформулировать так: требуется найти максимальное значение целевой функции F = 50u1 + 40u2 + 30v1 + 20v2 + 40v3, на множестве решений системы:
u1 + v1 ≤ 3
u1 + v2 ≤ 2
u1 + v3 ≤ 1
u2 + v1 ≤ 3
u2 + v2 ≤ 5
u2 + v3 ≤ 6.
Заметим, что если все ограничения исходной задачи имели вид равенств, то переменные двойственной задачи (u1, u2, v1, v2, v3) могут принимать и отрицательные значения.
Проверка оптимальности полученного плана перевозок состоит в следующем:
если некоторые переменные исходной задачи строго больше нуля (xij>0), то соответствующие им условия двойственной задачи выполняются как строгие равенства. При этом получаем систему из (m + n -1) уравнений с (m + n) переменными: u1, u2,…, um; v1, v2,…, vn;
если найти одно из решений полученной системы и подставить его в оставшиеся неравенства системы ограничений двойственной задачи, не вошедшие в систему (m + n – 1) уравнений, и эти неравенства выполняются, то проверяемый план является оптимальным;
если часть неравенств системы ограничений двойственной задачи не выполняются, то возможно дальнейшее улучшение плана.
Тогда для нашей задачи, в соответствии с табл.3, занятым клеткам транспортной таблицы соответствует следующая система уравнений:
u1 + v1 = 3
u1 + v2 = 2
u2 + v3 = 6.
Положим u1 равным нулю и решим данную систему. Из первого уравнения находим v1 = 3, из второго - v2 = 2. Третье уравнение не имеет однозначного решения, так как в рассматриваемой системе три уравнения, но четыре переменных. Поэтому введем так называемую “условную подстановку”, для чего будем считать клетку x13 (или x22) занятой, поместив в нее число “0”.
Получим следующую систему уравнений:
u1 + v1 = 3 Решением данной системы будет следующее:
u1 + v2 = 2 u1 = 0; u2 = 5; v1 = 3; v2 = 2; v3 = 1.
u1 + v3 = 1
u2 + v3 = 6.
Подставим полученные значения в оставшиеся неравенства системы ограничений двойственной задачи:
u2 + v1 ≤ 3 5 + 3 ≤ 3 8 ≤ 3
u2 + v2 ≤ 5 5 + 2 ≤ 5 7 ≤ 5
Условия не выполняются, т.е. первоначальный план можно улучшить.
4. Проведем циклическую перестановку в транспортной таблице. При этом, чтобы план оставался опорным, необходимо сделать одну из свободных клеток плана базисной, а одну из базисных – свободной.
В теории линейного программирования доказывается, что при опорном плане для каждой свободной клетки транспортной таблицы существует цикл, и притом единственный, одна вершина которого (первая) лежит в данной свободной клетке, а остальные – в базисных клетках.
При этом нечетные вершины цикла (1, 3, 5 и т.д.) отмечаются знаком “+” – это значит, что перевозки в этих клетках увеличиваются. А четные вершины (2, 4, 6 и т.д.) отмечаются знаком “-“, так как перевозки в них уменьшаются.
Так как свободных клеток в таблице несколько, то и возможных циклов также будет несколько. Приступая к оптимизации и выбирая цикл (контур) перераспределения поставок, необходимо определить “цену цикла”, подсчитав сумму стоимостей перевозок, стоящих в вершинах цикла, учитывая знак (+ или -), которым данная вершина отмечена.
Для нашего примера существует две свободные клетки (ВС и ВД) в транспортной таблице и, соответственно два возможных цикла (табл.4).
Таблица 4
потребители склады | С | Д | Е | ||||
А | -- |
-- | + + | ||||
В |
+ | 5 + | -- -- | ||||
Первый цикл: ВД АД АЕ ВЕ ВД, его цена: 5 – 2 + 1 – 6 = -2.
Второй цикл: ВС АС АЕ ВЕ ВС, его цена: 3 – 3 + 1 – 6 = -5.
Поэтому выбираем второй цикл и проводим перераспределение поставок. Результат показан в таблице 5.
|
|
Таблица 5
потребители склады | С v1 | Д v2 | Е v3 | |
А u1 | ||||
В u2 | ||||
Из таблицы видно, что решением является: x12 = 20; x13 = 30; x21 = 30;
x23 = 10. F2 = 20·2 +30·1 + 10·6 +30·3 = 220 рублей.
Можно рассчитать и иначе: F2 = F1 – (цена цикла х величина перемещаемых перевозок) = 370 - 5·30 = 220 рублей.
5. Проверим оптимальность полученного плана. Для этого решим систему уравнений:
u1 + v2 = 2 Решением данной системы будет следующее:
u1 + v3 = 1 u1 = 0; u2 = 5; v1 = -2; v2 = 2; v3 = 1.
u2 + v1 = 3
u2 + v3 = 6.
Проверим выполнение неравенств:
u1 + v1 ≤ 3 0 + (-2) ≤ 3 -2 ≤ 3
u2 + v2 ≤ 5 5 + 2 ≤ 5 7 ≤ 5
Условия не выполняются, т.е. план можно улучшить.
6. Проведем вторую циклическую перестановку в транспортной таблице.
Возможны два цикла (табл.6).
Первый цикл: ВД АД АЕ ВЕ ВД, его цена: 5 – 2 + 1 – 6 = -2.
Второй цикл: АС АЕ ВЕ ВС АС, его цена: 3 – 1 + 6 – 3 = 5, т.е. он увеличит общую цену перевозки.
Таблица 6
потребители склады | С | Д | Е | ||||
А | + |
-- | -- + | ||||
В |
-- | 5 + | -- + | ||||
Поэтому выбираем первый цикл и проводим перераспределение поставок. Результат перераспределения приведен в таблице 7.
Таблица 7
потребители склады | С v1 | Д v2 | Е v3 | |
А u1 | ||||
В u2 | ||||
Из таблицы видно, что решением является: x12 = 10; x13 = 40; x21 = 30;
x22 = 10. F3 = 10·2 +40·1 + 30·3 +10·5 = 200 рублей.
7. Проверим оптимальность плана. Для этого решим систему уравнений:
u1 + v2 = 2 Решением данной системы будет следующее:
u1 + v3 = 1 u1 = 0; u2 = 3; v1 = 0; v2 = 2; v3 = 1.
u2 + v1 = 3
u2 + v2 = 5.
Проверим выполнение неравенств:
u1 + v1 ≤ 3 0 + 0 ≤ 3 0 ≤ 3
u2 + v3 ≤ 6 3 + 1 ≤ 6 4 ≤ 6.
Условия выполняются, т.е. план является оптимальным.
Если число складов и потребителей значительно больше, для решения задачи используют специальные программы, реализованные на ЭВМ.