
Системный анализ, оптимизация и принятие решений
..pdf5. Оптимизация в задачах транспортного типа
5.1. Постановка задачи
Транспортные задачи представляют собой особый класс задач линейного программирования. Эти задачи, как и любые задачи линейного программирования, могут решаться с использованием симплекс-метода. Однако для решения транспортных задач существуют специальные, более простые методы. Общая постановка транспортной задачи следующая. Имеются m поставщиков некоторого товара. Количество товара, имеющееся у поставщиков, составляет a1, a2 ,..., am единиц. Имеются n потребителей этого товара; их
спрос составляет b1,b2 ,...,bn единиц. Сумма запасов товара, имеющихся у поставщиков, равна сумме величин спроса всех потребителей:
Известны затраты на перевозку единицы товара от каждого поставщика каждому потребителю (стоимости перевозок):
m |
n |
ai bj . |
|
i 1 |
j 1 |
Требуется составить оптимальный план перевозок, т.е. определить, сколько товара каждый поставщик должен доставлять каждому из потребителей, чтобы общие затраты на перевозки были минимальными. При этом, конечно, каждому потребителю должно быть доставлено необходимое количество товара.
Пример 5.1. С четырех складов (СК1, СК2, СК3, СК4) доставляется товар в три магазина (МГ1, МГ2, МГ3). На складе СК1 имеется 40 тонн товара, на складе СК2 — 50 тонн, на складе СК3 — 60 тонн, на складе СК4 — 30 тонн. Магазину МГ1 требуется 60 тонн товара, магазину МГ2 — 80 тонн, магазину МГ3 — 40 тонн. Затраты (в ден. ед.), связанные с перевозкой одной тонны товара с каждого склада в каждый магазин, приведены в табл. 5.1.
Таблица 5.1
Склады |
|
Магазины |
|
||
|
МГ |
|
МГ2 |
|
МГ3 |
СК1 |
4 |
|
3 |
|
5 |
СК2 |
6 |
|
2 |
|
1 |
СК3 |
10 |
|
4 |
|
7 |
СК4 |
8 |
|
6 |
|
3 |
Требуется определить, сколько товара необходимо перевезти с каждого склада в каждый магазин, чтобы доставить всем магазинам необходимое количество товара с минимальными затратами.
Данную задачу можно представить как задачу линейного программирования. Для построения математической модели этой задачи введем переменные xij , i 1,..., 4, j 1,..., 3 ,
обозначающие количество товара, перевозимого с i -го склада в j -й магазин.
На складах имеется 180 единиц товара; магазинам требуется также 180 единиц товара. Поэтому для удовлетворения спроса всех магазинов потребуется вывезти со складов весь товар. Ограничения, выражающие это требование, имеют следующий вид:
x11 x12 x13 40 x21 x22 x23 50 x31 x32 x33 60 x41 x42 x43 30.
41
Каждый магазин должен получить ровно столько товара, сколько ему требуется. Ограничения, выражающие это условие, следующие:
x11 x21 x31 x41 60 x12 x22 x32 x42 80
x13 x23 x33 x43 40.
Так как переменные обозначают количество перевозимого товара, на них накладывается требование неотрицательности:
xij 0, i 1,..., 4, j 1,...,3.
Целевая функция представляет собой затраты на выполнение всех перевозок:
E 4x11 3x12 5x13 6x21 2x22 1x23 10x31 4x32 7x33 8x41 6x42 3x43 min.
Такую задачу можно решить симплекс-методом, как и любую задачу линейного программирования. Однако такое решение окажется достаточно сложным из-за большого количества переменных и ограничений, входящих в математическую модель задачи. Для решения задач такого вида существуют специальные, более простые методы.
При решении транспортной задачи удобно пользоваться расчетной таблицей, содержащей стоимости перевозок, запасы товара у поставщиков и величины спроса потребителей. По ходу решения задачи в нее заносятся величины перевозок (значения переменных xij ), а также вспомогательные величины, используемые для решения задачи.
Расчетная таблица для примера 5.1 показана в табл. 5.2.
Таблица 5.2
Склады |
Магазины |
|
|
|
|
|
|
|
МГ |
МГ2 |
мгз |
СК1 |
4 |
3 |
5 |
|
|
|
|
СК2 |
6 |
2 |
1 |
|
|
|
|
СК3 |
10 |
4 |
7 |
|
|
|
|
СК4 |
8 |
6 |
3 |
|
|
|
|
Решение транспортной задачи включает два этапа:
•поиск допустимого решения, т.е. плана перевозок, при котором каждый потребитель получит весь необходимый товар, однако затраты на такие перевозки могут не быть минимальными;
•поиск оптимального решения, т.е. плана перевозок с минимальными затратами.
5.2.Допустимое решение
Имеется несколько методов поиска допустимого решения: метод северо-западного угла, метод минимального элемента, метод Фогеля [1,4].
Рассмотрим поиск допустимого решения на основе метода минимального элемента. Принцип работы этого метода состоит в том, что в первую очередь планируются перевозки, требующие минимальных затрат. Метод минимального элемента реализуется следующим образом. Выбирается минимальная стоимость перевозки единицы груза, т.е. минимальный из
коэффициентов целевой |
функции cij , i 1,..., m, j 1,..., n . |
Если |
запас i -го поставщика |
превосходит спрос j -го |
потребителя (ai bj ) , то спрос |
j -го |
потребителя полностью |
42
удовлетворяется за счет перевозок от i-го поставщика: xij bj . При этом запас i -го поставщика уменьшается на величину bj (ai ai b j ) , а j-й потребитель исключается из дальнейшего рассмотрения, так как он уже получил необходимое количество товара ( j -й столбец вычеркивается из расчетной таблицы). Если, наоборот, спрос j -го потребителя превосходит запас, имеющийся у i-го поставщика (ai bj ) , то i -й поставщик перевозит весь имеющийся у него товар j -му потребителю: xij ai . При этом спрос j -го потребителя уменьшается на величину ai (b j bj ai ) , а i -й поставщик исключается из дальнейшего
рассмотрения, так как весь имеющийся у него запас израсходован ( i -я строка вычеркивается из расчетной таблицы). В сокращенной расчетной таблице снова выбирается минимальная стоимость перевозок, и выполняются действия, аналогичные рассмотренным выше. Процесс продолжается, пока не будут распределены все запасы и удовлетворены все потребности.
Примечание. Если запас i -го поставщика оказывается равным спросу потребителя (ai bj ) , то из рассмотрения исключается или поставщик, или потребитель (но
не оба вместе). Если исключается поставщик, то предполагается, что неудовлетворенный спрос потребителя составляет 0 единиц товара. Если исключается потребитель, то предполагается, что у поставщика остается запас товара в размере 0 единиц. Дальнейшие действия выполняются обычным образом согласно алгоритму метода минимального элемента. Подробнее такой случай рассмотрен в подразделе 5.5.
Рассмотрим поиск допустимого плана для примера 5.1. Наиболее дешевыми являются перевозки от второго поставщика третьему потребителю, т.е. со склада СК2 в магазин МГ3. Запас товара на складе СК2 составляет 50 тонн, а спрос магазина МГ3 - 40 тонн. Поэтому склад СК1 поставляет магазину МГ3 40 тонн товара. Запас товара на складе СК1 уменьшается на 40 тонн (на складе остается 10 тонн), а магазин МГ3 исключается из рассмотрения, так как для него уже запланирована перевозка необходимого количества товара (табл. 5.3).
Всокращенной расчетной таблице (см. табл. 5.3) выбирается минимальный элемент. Наиболее дешевыми являются перевозки со склада СК2 в магазин МГ2. Запас товара на складе составляет 10 тонн (так как для этого склада уже запланирована перевозка 40 тонн товара в магазин МГ3), а спрос магазина - 80 тонн. Поэтому склад СК2 поставляет магазину МГ2 весь имеющийся у него товар. Склад СК2 исключается из рассмотрения, а спрос магазина МГ2 уменьшается на 10 тонн (табл. 5.4).
Всокращенной расчетной таблице (см. табл. 5.4) минимальную стоимость имеют перевозки со склада СК1 в магазин МГ2. Запас товара на складе СК1 составляет 40 тонн, а спрос магазина МГ2 - 70 тонн (так как для этого магазина уже запланирована перевозка 10 тонн товара со склада СК2). Поэтому склад СК1 поставляет магазину МГ2 весь имеющийся у него товар. Склад СК1 исключается из рассмотрения, а спрос магазина МГ2 уменьшается на
40 тонн (табл. 5.5).
Всокращенной расчетной таблице (см. табл. 5.5) наиболее дешевыми являются перевозки со склада СК3 в магазин МГ2. Запас товара на складе СК3 составляет 60 тонн, а спрос магазина МГ2 - 30 тонн. Поэтому склад СК3 поставляет магазину МГ2 30 тонн товара. Запас товара на складе СК3 уменьшается на 30 тонн (на складе остается еще 30 тонн), а магазин МГ2 исключается из рассмотрения, так как для него уже запланирована перевозка необходимого количества товара (табл. 5.6).
Всокращенной расчетной таблице (см. табл. 5.6) минимальный элемент соответствует перевозкам со склада СК4 в магазин МГ1. Запас товара на складе СК4 составляет 30 тонн, а спрос магазина МГ1 - 60 тонн. Поэтому склад СК4 поставляет магазину МГ1 весь имеющийся у него товар. Склад СК4 исключается из рассмотрения, а спрос магазина МГ1 уменьшается на 30 тонн (табл. 5.7).
Запас товара (30 тонн) остается только на складе СК3. Такое количество товара
43
требуется магазину МГ1 (для всех остальных магазинов уже запланированы необходимые перевозки). Поэтому склад СК3 поставляет магазину МГ1 30 тонн товара. На этом поиск допустимого решения завершается.
Полученный допустимый план перевозок приведен в табл. 5.8. Склад СК1 поставляет 40 тонн товара магазину МГ2; склад СК2 поставляет 10 тонн товара магазину МГ2 и 40 тонн
— магазину МГ3; склад СК3 поставляет 30 тонн товара магазину МГ1 и 30 тонн — магазину
МГ2; склад СК4 поставляет 30 тонн товара магазину МГ1. |
|
|
||
Другими |
словами, |
переменные |
приняли |
следующие |
значения: x12 40, x22 |
10, x23 40, x31 |
30, x32 30, x41 30 ; |
остальные |
переменные равны |
нулю. Общие затраты на перевозки составят 840 ден. ед. Переменные, принявшие ненулевые значения, называются базисными, остальные (нулевые) — небазисными. Если допустимый план перевозок составлен правильно, то количество базисных переменных всегда равно m n 1, где m — количество поставщиков, n — количество потребителей.
Примечание. Иногда некоторые из базисных переменных также принимают нулевые значе-
ния (см. подраздел 5.5). Однако количество базисных переменных всегда должно быть равно m n 1.
5.3. Метод потенциалов. Оптимальное решение
Оптимальное решение (план перевозок с минимальной стоимостью) определяется методом потенциалов на основе допустимого решения, полученного каким-либо из указанных выше способов. Общий вид расчетной таблицы, используемой при поиске оптимального решения на основе метода потенциалов, показан в табл. 5.9.
Смысл обозначений ui , v j , cij и т.д. будет показан ниже. Рассмотрим поиск
оптимального решения для примера 5.1. |
|
1. Составляются уравнения для |
определения вспомогательных величин ui и |
v j , i 1,..., m, j 1,...,n :ui vj cij , |
(5.1) |
где cij — стоимости перевозок, соответствующие базисным переменным.
Количество таких |
уравнений равно m n 1 (т.е. равно количеству базисных |
переменных). Величины ui |
называются платежами (или потенциалами) поставщиков, а v j — |
платежами (потенциалами) потребителей.
Система уравнений (5.1) для рассматриваемого примера имеет следующий вид: u1 v2 3
u2 v2 2 u2 v3 1 u3 v1 10 u3 v2 4
u4 v1 8.
2. Из системы уравнений (5.1) определяются платежи. Так как количество неизвестных (платежей) равно m n , а система состоит из m n 1 уравнения, один из платежей (обычно u1 ) принимается равным нулю.
Найдем платежи для рассматриваемого примера. Пусть |
u1 0 . |
Тогда v2 3 (из |
первого уравнения). По значению v 2 3 из второго уравнения найдем u2 |
1. Из третьего |
|
уравнения найдем v3 2 . Из пятого уравнения по значению |
v2 3 |
получим u3 1 . |
Продолжая расчеты аналогичным образом, получим: v1 9,u4 1 (платежи указаны в
порядке их вычисления). Для дальнейших расчетов удобно указать значения платежей возле соответствующих строк и столбцов расчетной таблицы (см. табл. 5.9, 5.10).
44
3. Для |
всех |
небазисных |
переменных |
находятся |
суммы |
платежей |
cij ui v j |
(псевдостоимости). |
Например, c11 u1 v1 9, c13 |
u1 v3 2 , |
и т.д. |
Псевдостоимости удобно вычислять по расчетной таблице. Эти величины также следует занести в расчетную таблицу. В табл. 5.10 они указаны в левых верхних углах ячеек.
4.Для всех небазисных переменных находятся разности стоимостей и
псевдостоимостей: dij cij cij . |
Например, |
d11 c11 c11 5, d13 c13 c13 3 , и т.д. |
Втабл. 5.10 они указаны в правых нижних углах ячеек.
5.Если для всех величин dij выполняется условие dij 0 , то оптимальное решение
найдено, и решение задачи завершается. Если имеются величины dij 0 , то выполняется
следующий шаг.
6. Определяется переменная для включения в базис. В качестве такой переменной выбирается переменная, которой соответствует максимальная по модулю отрицательная величина dij . Включение переменной xij в базис означает, что должны выполняться
перевозки от i-го поставщика к j -му потребителю. Соответствующая ячейка расчетной таблицы обозначается знаком «плюс».
В рассматриваемом примере имеются две отрицательные величины d11 5 и d21 2 . Максимальная по модулю из этих величин - d11 . Значит, для включения в базис выбирается переменная x11 .
Примечание. Если имеется несколько максимальных по модулю отрицательных величин dij (равных между собой), то для включения в базис можно выбирать любую из соответ-
ствующих переменных.
7. Определяется переменная для исключения из базиса. Для этого строится цикл. Рассмотрим построение цикла для примера 5.1. Включение в базис переменной x11
означает, что будут выполняться перевозки товара со склада СК1 в магазин МГ1. Так как запас товара на складе СК1 ограничен (составляет только 40 тонн), потребуется снизить поставки магазину МГ2, т.е. переменную x12 . Для того чтобы магазин МГ2 получил
необходимое количество товара (80 тонн), необходимо, чтобы какой-либо из складов, уже поставляющих товар этому магазину, увеличил свои поставки. Магазину МГ2 поставляют товар два склада: СК2 и СК3. Однако склад СК2 не может увеличить поставки магазину МГ2, так как в таком случае этот склад должен был бы уменьшить поставки магазину МГ3, а этот магазин получает весь необходимый товар (40 тонн) только со склада СК2. Поэтому поставки магазину МГ2 увеличивает склад СК3 (переменная x32 увеличивается). Так как
запас товара на складе СК3 ограничен, из-за увеличения поставок магазину МГ2 этот склад должен уменьшить поставки какому-либо другому магазину, в данном случае - магазину МГ1 (переменная x31 уменьшается). Для того чтобы магазин МГ1 получил необходимое
количество товара, поставки в этот магазин будет выполнять склад СК1. Таким образом, цикл построен. Переменные, которые требуется увеличить, обозначаются знаком «плюс», а уменьшаемые - знаком «минус». Цикл показан в табл. 5.10.
Примечание. Если в расчетной таблице оказалась хотя бы одна величина dij 0 , то
всегда можно построить цикл, причем только один.
Минимальная из переменных, отмеченных знаком «минус», исключается из базиса. Обозначим эту переменную как xrs . В данном случае это переменная x31 Исключение
переменной xrs из базиса означает, что перевозки от r -го поставщика s -му потребителю
прекращаются.
Примечание. Если несколько переменных, отмеченных знаком «минус», имеют одинаковое минимальное значение, то для исключения из базиса выбирается любая из них.
8. Определяются новые значения базисных переменных (новый план перевозок). Все
45
переменные, отмеченные знаком «плюс», увеличиваются на xrs , а отмеченные знаком
«минус» — уменьшаются на эту же величину. Значения остальных переменных не изменяются.
В данном примере xrs x31 30 (таким образом, перевозки со склада СК3 в магазин
МГ1 выполняться не будут). Переменные, отмеченные в цикле знаком «плюс», увеличиваются на 30; это значит, что соответствующие перевозки увеличиваются на 30 тонн. Переменные, отмеченные знаком «минус», уменьшаются на 30. Новый план перевозок показан в табл. 5.11. Умножив величины перевозок ( xij на соответствующие стоимости пере-
возки единицы груза (cij ) , найдем целевую функцию: E = 690.Таким образом, в результате
перехода к новому решению затраты на перевозки снизились.
Примечание. Если несколько переменных принимают нулевые значения, то из базиса исключается только одна из них - переменная xrs , выбранная на шаге 7. Остальные пере-
менные остаются базисными, хотя и имеют нулевые значения. Подробнее такой случай рассмотрен в подразделе 5.5.
9. Выполняется возврат к шагу 1.
Продолжим поиск оптимального решения для примера 5.1. Для нового базиса составим систему уравнений (5.1), чтобы определить платежи:
u1 v1 4 u1 v2 3 u2 v2 2 u2 v3 1 u3 v2 4
u4 v1 8.
Принимая U1 = 0, найдем остальные платежи: v1 4, v2 3,u2 1, v3 2,u3 1,u4 4
(платежи указаны в порядке их вычисления). Затем определяются значения псевдостоимостей, далее — разности стоимостей и псевдостоимостей. Все эти величины приведены в табл. 5.11.
В таблице имеются отрицательные разности стоимостей и псевдостоимостей: это величины d42 1 и d43 3 . Это означает, что полученное решение не является
оптимальным. Переменная x43 включается в базис. Для определения переменной, исключаемой из базиса, строится цикл.
Включение в базис переменной x43 означает, что будут выполняться перевозки товара
со склада СК4 в магазин МГ3. Поэтому требуется уменьшить перевозки со склада СК4 какому-либо магазину (так как запас товара на складе ограничен). В данном случае можно уменьшить только поставки магазину МГ1. Чтобы магазин МГ1 получил необходимое количество товара, требуется увеличение поставок со склада СК1, т.е. увеличение переменной x11 . Из-за увеличения поставок магазину МГ1 склад СК1 должен уменьшить
поставки магазину МГ2 (уменьшается переменная x12 ). Чтобы магазин МГ2 получил
необходимое количество товара, необходимо, чтобы какой-либо из складов, уже поставляющих товар этому магазину, увеличил свои поставки. Магазину МГ2 поставляют товар склады СК2 и СК3; однако склад СК3 не может увеличить свои поставки, так как он поставляет магазину МГ2 весь имеющийся у него товар (60 тонн). Поэтому поставки магазину МГ2 увеличивает склад СК2 (увеличивается переменная x22 ). Из-за этого склад
СК2 должен снизить поставки магазину МГ3 (уменьшается переменная x23 ). Для того чтобы магазин МГ3 получил необходимое количество товара, поставки в этот магазин будет выполнять склад СК4 (переменная x43 включается в базис). Таким образом, цикл построен
46
(см. табл. 5.11).
Из базиса исключается переменная x12 10 , так как эта переменная — минимальная из
отмеченных знаком «минус». Это значит, что перевозки со склада СК1 в магазин МГ2 выполняться не будут.
Определяется новый план перевозок: переменные, отмеченные в цикле знаком «плюс», увеличиваются на xrs x12 10 , а отмеченные знаком «минус» — уменьшаются на
10. Новый план перевозок показан в табл. 5.12. Целевая функция (стоимость всех перевозок) для этого плана равна E = 660 ден. ед.
Для полученного плана перевозок составим систему уравнений (5.1), чтобы определить платежи:
u1 v1 4 u2 v2 2 u2 v3 1 u3 v2 4 u4 v1 8 u4 v3 3.
В табл. 5.13 приведены платежи ( ui и v j ), псевдостоимости (cij ) , разности стоимостей и псевдостоимостей (dij ) . Все величины dij неотрицательны. Это означает, что
полученное решение оптимально.
Таким образом, оптимальный план перевозок состоит в следующем. Склад СК1 поставляет 40 тонн товара магазину МГ1; склад СК2 поставляет 20 тонн товара магазину МГ2 и 30 тонн — магазину МГ3; склад СК3 поставляет 60 тонн товара магазину МГ2; склад СК4 поставляет 20 тонн товара магазину МГ1 и 10 тонн — магазину МГ3. Другими словами, переменные приняли следующие значения: x11 40, x22 20, x23 60, x41 20, x43 10 ;
остальные переменные равны нулю. Общие затраты на перевозки составят 660 ден. ед.
5.4. Транспортные задачи с неправильным балансом
Транспортные задачи с неправильным балансом — это задачи, в которых сумма запасов товара, имеющихся у поставщиков, неравна сумме величин спроса потребителей.
Все методы решения транспортных задач предназначены для задач с правильным балансом. Поэтому для решения задачи с неправильным балансом ее необходимо привести к правильному балансу, т.е. преобразовать в обычную транспортную задачу с правильным балансом. Способы такого преобразования зависят от постановки задачи. Полученная задача с правильным балансом решается обычными методами, как показано выше.
Пример 5.2. Пусть в условиях примера 5.1 на складе СК3 имеется только 45 тонн товара. Требуется составить план перевозок, при котором затраты на их выполнение будут минимальными.
В данной задаче сумма запасов товара на складах составляет 165 тонн, а потребности магазинов - 180 тонн. Поэтому при любом решении некоторые магазины получат меньше товара, чем им требуется. Задача состоит только в минимизации затрат на доставку имеющегося товара (165 тонн).
Для приведения этой задачи к правильному балансу необходимо добавить фиктивного поставщика. Его запас принимается равным разности между фактическими запасами, имеющимися на складах, и потребностями магазинов, т.е. 15 тонн. Обозначим фиктивный склад как СК5. Стоимости перевозки единицы товара с этого склада в любой магазин будем считать равными нулю. Расчетная таблица для этой задачи показана в табл. 5.14.
Таким образом, получена задача с правильным балансом. Она решается точно так же, как обычная транспортная задача.
47

Сначала требуется найти допустимый план перевозок. Воспользуемся для этого методом минимального элемента. Минимальные стоимости соответствуют перевозкам со склада СК5 (т.е. фиктивного склада) в любой магазин; эти стоимости равны нулю. Выберем перевозки со склада СК5 в магазин МГ1. Запас товара на складе СК5 считается равным 15 тонн, а спрос магазина МГ1 составляет 60 тонн. Поэтому поставки со склада СК5 магазину МГ1 принимаются равными 15 тонн. Склад СК5 исключается из рассмотрения (строка СК5 вычеркивается из расчетной таблицы), а спрос магазина МГ1 уменьшается на 15 тонн.
Аналогично выполняется дальнейшее построение допустимого плана по методу минимального элемента. Полученный допустимый план приведен в табл. 5.15. Значение целевой функции (стоимость перевозок) для этого плана составляет 690 ден. ед.
На основе допустимого плана перевозок определяется оптимальный план. Для этого используется метод потенциалов. Оптимальный план приведен в табл. 5.16.
Оптимальный план перевозок состоит в следующем. Склад СК1 поставляет 40 тонн товара магазину МГ1; склад СК2 поставляет 35 тонн товара магазину МГ2 и 15 тонн - магазину МГ3; склад СК3 поставляет 45 тонн товара магазину МГ2; склад СК4 поставляет 5 тонн товара магазину МГ1 и 25 тонн - магазину МГ3. Поставки с фиктивного склада, вошедшие в оптимальный базис, означают, что соответствующим потребителям будет поставлено меньше товара, чем им требуется. Таким образом, магазину МГ1 будет поставлено на 15 тонн товара меньше, чем ему требуется (т.е. всего 45 тонн вместо 60 необходимых). Общие затраты на перевозки составят 540 ден. ед.
Пример 5.3. В условиях примера 5.2 требуется составить план перевозок с минимальными затратами. При этом необходимо выполнить следующее дополнительное требование: спрос магазина МГ1 должен быть обязательно удовлетворен полностью.
Как и в примере 5.2, для приведения этой задачи к правильному балансу необходимо добавить фиктивного поставщика (склад СК5) с запасом товара в размере 15 тонн. Однако стоимость перевозки единицы товара от фиктивного поставщика в магазин МГ1 следует считать очень большим числом (например, 1000 ден. ед.). Стоимости перевозки единицы товара от фиктивного поставщика в другие магазины будем считать равными нулю. Расчетная таблица для этой задачи показана в табл. 5.17.
Получена задача с правильным балансом. Она решается точно так же, как обычная транспортная задача. Сначала по методу минимального элемента определяется допустимый план (табл. 5.18), затем по методу потенциалов - оптимальный план (табл. 5.19). Эти методы обеспечивают получение плана перевозок с минимальными затратами. Поэтому перевозки с фиктивного склада СК5 в магазин МГ1 не войдут в базис (т.е. примут нулевое значение), так как затраты на эти перевозки предполагаются очень большими.
Для данной задачи получен следующий оптимальный план перевозок. Склад СК1 поставляет 40 тонн товара магазину МГ1; склад СК2 поставляет 20 тонн товара магазину МГ2 и 30 тонн - магазину МГ3; склад СК3 поставляет 45 тонн товара магазину МГ2; склад СК4 поставляет 20 тонн товара магазину МГ1 и 10 тонн - магазину МГ3. Магазину МГ2 будет поставлено на 15 тонн товара меньше, чем ему требуется (т.е. всего 65 тонн вместо 80 необходимых). Общие затраты на перевозки составят 600 ден. ед.
Пример 5.4. В условиях примера 5.2 требуется составить план перевозок с минимальными затратами. При этом необходимо выполнить следующее дополнительное требование: недопоставка товара распределяется равномерно между всеми магазинами. Это означает, что каждый из магазинов должен получить несколько меньше товара, чем ему требуется.
Для приведения такой задачи к правильному балансу предполагается, что спрос всех потребителей снизился. Для этого все величины спроса умножаются на коэффициент
n |
m |
ai |
bj , т.е. на отношение суммы величин спроса к сумме запасов. Вводить фиктивного |
j 1 |
i 1 |
поставщика в этом случае не требуется.
В рассматриваемом примере сумма величин спроса равна 180, сумма запасов -165.
48

Значит, величины спроса умножаются на коэффициент, равный 165/180 = 0,917. Можно сказать, что таким образом спрос магазинов корректируется с учетом возмож-
ностей поставщиков (складов). Уменьшенная величина спроса для магазина МГ1 составит
60·0,917 = 55,02 тонны, для МГ2 - 80·0,917 = 73,36 тонны, для МГ3 - 40·0,917 = 36,68 тонны.
Округлим эти величины до целых чисел (будем считать, что величины спроса магазинов должны выражаться целыми числами). Расчетная таблица для данной задачи приведена в табл. 5.20.
Полученная задача с правильным балансом решается обычным образом. Оптимальный план для рассматриваемой задачи приведен в табл. 5.21.
Таким образом, получен следующий оптимальный план перевозок. Склад СК1 поставляет 40 тонн товара магазину МГ1; склад СК2 поставляет 28 тонн товара магазину МГ2 и 22 тонны - магазину МГ3; склад СК3 поставляет 45 тонн товара магазину МГ2; склад СК4 поставляет 15 тонн товара магазину МГ1 и 15 тонн - магазину МГ3. Недопоставка товара магазину МГ1 составит 60 - 55 = 5 тонн, магазину МГ2 - 80 -73 = 7 тонн, магазину МГ3 - 40-37 = 3 тонны. Общие затраты на перевозки составят 583 ден. ед.
Аналогично решаются транспортные задачи в случаях, когда сумма запасов товара у поставщиков больше, чем сумма величин спроса потребителей. При любом решении таких задач часть товара остается у поставщиков.
Если требуется только обеспечить минимальную стоимость перевозок (без каких-либо дополнительных условий), то для приведения задачи к правильному балансу добавляется фиктивный потребитель; его спрос принимается равным излишку запасов товара, т.е.
m |
n |
величине ai |
bj . Стоимости перевозок к этому потребителю принимаются равными |
i 1 |
j 1 |
нулю. После этого задача решается обычным образом.
Если требуется также обеспечить вывоз всего товара у какого-либо поставщика, то стоимость перевозки товара от этого поставщика фиктивному потребителю принимается равной очень большому числу. Если требуется распределить излишек товара по всем поставщикам, то запасы товара у всех поставщиков искусственно уменьшаются. Для этого
n |
m |
необходимо умножить все величины запасов на коэффициент bj |
ai . Вводить |
j 1 |
i 1 |
фиктивного потребителя в этом случае не требуется. |
|
5.5. Вырожденное решение
Для того чтобы иметь возможность решить систему уравнений (5.1) при поиске оптимального плана перевозок по методу потенциалов, необходимо, чтобы количество базисных переменных всегда было в точности равно m n 1. Если некоторые из базисных переменных принимают нулевые значения, то решение называется вырожденным. Необходимо учитывать некоторые особенности поиска оптимального плана при появлении вырожденного решения. Такое решение возникает в следующих случаях:
•при поиске допустимого плана - в случае, если запас товара у поставщика оказывается в точности равен спросу потребителя;
•при поиске оптимального плана - в случае, если при выборе переменной для исключения из базиса оказывается несколько переменных, имеющих одинаковое минимальное значение. Рассмотрим пример, в котором возникают оба случая вырожденного решения.
Пример 5.5. С двух карьеров (К1 и К2) поставляются стройматериалы на три стройки (С1, С2, С3). Возможности карьеров по поставке стройматериалов (тонны), потребности строек (тонны) и стоимости перевозок одной тонны стройматериалов с каждого карьера на каждую из строек (ден. ед.) приведены в табл. 5.22.
Требуется составить план перевозок стройматериалов с карьеров на стройки, при котором затраты на перевозки будут минимальными.
49
Решим эту задачу, как показано в подразделах 5.2 и 5.3.
Для определения допустимого решения воспользуемся методом минимального элемента. Наиболее дешевыми (6 ден. ед. за тонну) являются перевозки с карьера К2 на стройку С2. Карьер К2 поставляет стройке С2 15 тонн стройматериалов, так как карьер может поставить 45 тонн, а стройке требуется 15 тонн. Стройка С2 исключается из рассмотрения (второй столбец вычеркивается из расчетной таблицы), а в карьере К2 остается 30 тонн стройматериалов.
Всокращенной расчетной таблице минимальный элемент соответствует перевозкам с карьера К2 на стройку С1. Запас стройматериалов в карьере К2 в точности равен потребности стройки С1 (30 тонн). Карьер К2 поставляет стройке С1 30 тонн стройматериалов. Из рассмотрения можно исключить или поставщика (карьер К2), или потребителя (стройку С1), но не обоих вместе. Пусть исключается карьер К2 (вторая строка вычеркивается из расчетной таблицы). При этом считается, что спрос стройки С1 остается неудовлетворенным на 0 тонн стройматериалов.
Воставшейся части расчетной таблицы выбирается минимальный элемент. Он соответствует перевозкам с карьера К1 на стройку С1 (14 ден. ед. за тонну). Карьер может поставить 30 тонн стройматериалов, а стройке требуется 0 тонн. Поэтому величина поставок стройматериалов с карьера К1 на стройку
С1 принимается равной нулю, однако переменная x11 0 включается в базис.
Стройка С1 исключается из рассмотрения.
В карьере СК3 имеется запас стройматериалов в размере 30 тонн. Такое количество стройматериалов требуется стройке С3. Поэтому карьер К1 поставляет стройке С3 30 тонн стройматериалов. На этом поиск допустимого плана перевозок завершается. Он приведен в табл. 5.23.
Полученный допустимый план перевозок состоит в следующем. Карьер К1 поставляет 30 тонн стройматериалов стройке С3; карьер К2 поставляет 30 тонн стройматериалов стройке С1 и 15 тонн - стройке С2. Общие затраты на перевозки составят 1080 ден. ед.
Переменная x11 0 включена в базис только для того, чтобы количество базисных
переменных было равно m n 1 (в данном случае — 4). Никаких перевозок с карьера К1 на стройку С1 не выполняется.
Найдем оптимальный план перевозок, используя метод потенциалов. Составим
систему уравнений для определения платежей: |
|
|
||||
|
|
|
u1 |
v1 |
14 |
|
|
|
|
u1 |
v3 |
25 |
|
|
|
|
u2 |
v1 |
8 |
|
|
|
|
u2 |
v2 |
6. |
|
Принимая |
u1 0 , |
найдем |
платежи: v1 14, v3 25,u2 6, v2 12 . |
Найдем |
||
псевдостоимости cij |
ui v j , затем — разности стоимостей и псевдостоимостей dij |
cij cij . |
Эти величины приведены в табл. 5.24. Величина d23 оказалась отрицательной. Это означает, что имеющийся план перевозок не является оптимальным. Переменная x23 включается в базис. Для определения нового плана перевозок строится цикл (см. табл. 5.24).
Обе переменные, обозначенные знаком «минус» ( x13 и x21 ), имеют одинаковые значения, равные 30. Любую из этих переменных (но только одну) можно исключить из базиса. Пусть исключается переменная x21 . Вычисляются новые значения базисных
переменных: все переменные, отмеченные знаком «плюс», увеличиваются на 30 (т.е. на величину переменной, исключаемой из базиса), а переменные, отмеченные знаком «минус»
— уменьшаются на ту же величину. Переменная x13 становится равной нулю, но остается в базисе (так как исключается из базиса только одна переменная - x21 ). Новый план перевозок
50