Глава 6 Решение транспортной задачи по распределению СПГ
Общая постановка задачи
В общей постановке транспортная задача состоит в отыскании оптимального плана перевозок некоторого однородного груза с m баз
A1, A2,…, Am n потребителям В1, В2,..., Вn. Обозначим количество груза, имеющегося на каждой из m баз (запасы), соответственно a1, a2, …, am, а общее количество имеющегося в наличии груза – а:
a = a1 + a2 + … + am,
заказы каждого из потребителей (потребности) обозначим соответственно
b1, b2, …, bn, а общее количество потребностей – b:
b = b1 + b2 + … + bn.
Тогда при условии
a = b
мы имеем закрытую модель, а при условии
a ≠ b
– открытую модель транспортной задачи.
Очевидно, в случае закрытой модели весь имеющийся в наличии груз развозится полностью, и все потребности заказчиков полностью удовлетворены; в случае же открытой модели либо все заказчики удовлетворены, и при этом на некоторых базах остаются излишки груза (а > b), либо весь груз оказывается израсходованным, хотя потребности полностью не удовлетворены (а < b).
Также существуют одноэтапные модели задач, где перевозка осуществляется напрямую с базы или завода изготовителя к потребителю, и двухэтапные, где между ними имеется «перевалочный пункт», например, склад.
План перевозок с указанием запасов и потребностей удобно записывать в виде следующей таблицы, называемой таблицей перевозок:
Таблица 6.1 – Таблица перевозок
Пункты отправления | Пункты назначения | Запасы | |||
B1 | B2 | … | Bn | ||
A1 | x11 | x12 | … | x1n | a1 |
A2 | x21 | x22 | … | x2n | a2 |
… | … | … | … | … | … |
Am | xm1 | xm2 | … | xmn | am |
Потребности | b1 | b2 | … | bn | a = b или a ≠ b |
Условие а = b или a ≠ b означает, с какой задачей мы имеем дело: с за- крытой моделью или открытой моделью транспортной задачи. Переменное xij означает количество груза, перевозимого с базы Аi потребителю Вj: совокупность этих величин образует матрицу (матрицу перевозок).
Очевидно, переменные хij должны удовлетворять условиям:
![]() | (6.1) |
![]() | (6.2) |
Система (6.1) содержит m + n уравнений с mn неизвестными. Её особенность состоит в том, что коэффициенты при неизвестных всюду равны единице. Кроме того, все уравнения системы (6.1) могут быть разделены на две группы: первая группа из m первых уравнений («горизонтальные» уравнения) и вторая группа из n остальных уравнений («вертикальные» уравнения). В каждом из горизонтальных уравнений содержатся неизвестные с одним и тем же первым индексом (они образуют одну строку матрицы перевозок), в каждом из вертикальных уравнений содержатся неизвестные с одним и тем же вторым индексом (они образуют один столбец матрицы перевозок). Таким образом, каждая неизвестная встречается в системе (6.1) дважды: в одном и только одном горизонтальном и в одном и только одном вертикальном уравнениях. Для решения транспортной задачи необходимо, кроме запасов и потребностей, знать также и тарифы сij, т. е. стоимость перевозки единицы груза с базы Аi потребителю Вj. Совокупность тарифов сij также образует матрицу, которую можно объединить с матрицей перевозок и данными о запасах и потребностях в одну таблицу:
Таблица 6.2
Пункты отправления | Пункты назначения | Запасы | |||
B1 | B2 | … | Bn | ||
A1 | x11 | c11 | x12 | c12 | … | x1n | c1n | a1 |
A2 | x21 | c21 | x22 | c22 | … | x2n | c2n | a2 |
… | … | … | … | … | … |
Am | xm1 | cm1 | xm2 | cm2 | … | xmn | cmn | am |
Потребности | b1 | b2 | … | bn | a = b или a ≠ b |
Сумма всех затрат, т.е. стоимость реализации данного плана перевозок, является линейной функцией переменных хij:
![]() | (6.3) |
Требуется в области допустимых решений системы уравнений (6.1) и (6.2) найти решение, минимизирующее линейную функцию (6.3).
Таким образом, мы видим, что транспортная задача является задачей линейного программирования. Для её решения применяют симплекс-метод и метод потенциалов.
6.2 Методы составления начального опорного плана
Как и в общем случае, решение транспортной задачи начинается с отыскания первого опорного плана (исходного базиса). Мы рассмотрим два наиболее распространённых метода построения такого базиса. Суть этих методов состоит в том, что базисный план составляется последовательно, в несколько шагов (точнее, m + n – 1шагов). На каждом из этих шагов заполняется одна клетка, при том так, что, либо полностью удовлетворяется один из заказчиков (тот, в столбце которого находится заполняемая клетка), либо полностью вывозится весь запас груза с одной из баз (стой, в строке которой находится заполняемая клетка).
В первом случае мы можем исключить столбец, содержащий заполненную на этом шаге клетку, и считать, что задача свелась к заполнению таблицы с числом столбцов, на единицу меньшим, чем было перед этим шагом, но с тем же количеством строк и с соответственно изменённым запасом груза на одной из баз (на той базе, которой был удовлетворён заказчик на данном шаге).
Во втором случае исключается строка, содержащая заполняемую клетку, и считается, что таблица сузилась на одну строку при неизменном количестве столбцов и при соответствующем изменении потребности заказчика, в столбце которого находится заполняемая клетка.
Начиная с первоначально данной таблицы и повторив m + n – 2 раз описанный шаг, мы придём к «таблице», состоящей из одной строки и одного столбца (иначе говоря, из одной пустой клетки). Другими словами, мы пришли к задаче с одной базой и с одним потребителем, причём потребности этого единственного заказчика равны запасу груза на этой единственной базе. Заполнив последнюю клетку, мы освобождаем последнюю базу и удовлетворяем потребность последнего заказчика. В результате, совершив
m + n – 1 шагов, мы и получим искомый опорный план.
Различие методов отыскания первого опорного плана состоит в различии способов набора заполняемой клетки.
Для рассматриваемого примера начальная транспортная таблица имеет вид:
Таблица 6.3
Пункты отправления | Пункты назначения | Запасы | ||
B1 | B2 | B3 | ||
A1 | | 10 | | 20 | | 30 | 30 |
A2 | | 30 | | 10 | | 20 | 15 |
A3 | | 5 | | 15 | | 10 | 25 |
Потребности | 20 | 5 | 45 | 70 |
В колонке справа, в нижней строке расположены соответственно объёмы груза в пунктах производства и пунктах потребления. Внутри таблицы в маленьких квадратах расположены тарифы перевозок единицы груза. В результате реализации начального опорного плана должны быть заполнены
m + n – 1 = 3 + 3 – 1 = 5 клеток с базисными переменными, а остальные
(m – 1) · (n – 1) = (3 – 1) · (3 – 1) = 4 клетки с небазисными переменными не заполняются.
Метод северо-западного угла
Решение транспортной задачи начинается с отыскания первого опорного плана. На каждом шаге построения первого опорного плана заполняется левая верхняя клетка (северо-западный угол) оставшейся части таблицы. При таком методе заполнение таблицы начинается с клетки неизвестного х11 и заканчивается в клетке неизвестного хmn, т. е. идёт как бы по диагонали таблицы перевозок.
Первая база А1 может полностью удовлетворить потребность первого заказчика В1 (a1 = 30, b1 = 20, a1> b1). Полагая x11 = 20, вписываем это значение в клетку x11 и исключаем из рассмотрения первый столбец.
Рисунок 6.1 – Пояснение №1 методу северо-западного угла
На базе А1 остаётся изменённый запас а' = 10. В оставшейся новой таблице с тремя строками A1, A2, A3 и двумя столбцами B2, B3 северо-западным углом будет клетка для неизвестного х12. Первая база с запасом а'1 = 10 может полностью удовлетворить потребность второго заказчика В2 (а'1 = 10, b2 = 5, a'1>b2).
Полагаем x12 = 5, вписываем это значение в клетку х12 и исключаем из рассмотрения второй столбец. На базе А1 остаётся новый остаток (запас)
a''1 = 5.
Рисунок 6.2 – Пояснение №2 методу северо-западного угла
В оставшейся новой таблице с тремя строками A1, A2, A3 и одним столбцом B3 северо-западным углом будет клетка для неизвестного x13. Теперь третий заказчик B3 может принять весь запас с базы А1 (а"1 = 5, b3 = 45,
а"1 < b3).
Полагаем x13 = 5, вписываем это значение в клетку x13 и исключаем из рассмотрения первую строку. У заказчика из В3 осталась ещё не удовлетворённой потребность b'3 = 40.
Рисунок 6.3 – Пояснение №3 методу северо-западного угла
Теперь переходим к заполнению клеток для неизвестного х23 и х33. Потребности B3 будут полностью удовлетворены базами А2, и А3. Исключаем третий столбец.
Рисунок 6.4 – Пояснение №4 методу северо-западного угла
План составлен. Базис образован неизвестными x11, x12, x13, x23, x33. Правильность составленного плана легко проверить, подсчитав суммы чисел, стоящих в заполненных клетках по строкам и столбцам.
Общий объём перевозок для этого плана составит:
S1 = 20·10 + 5·20 + 5·30 + 15·20 + 25·10 = 1000.