Постановка транспортной задачи общего вида

Наиболее часто в практической деятельности человеку приходится встречаться с задачами о распределении транспортных потоков. Пример простейшей задачи транспортного типа рассмотрен в § 2.2.

Классическая постановка транспортной задачи общего вида такова.

Имеется Постановка транспортной задачи общего вида - student2.ru пунктов отправления – «поставщиков» и Постановка транспортной задачи общего вида - student2.ru пунктов потребления – «потребителей» некоторого одинакового товара. Для каждого пункта определены:

Постановка транспортной задачи общего вида - student2.ru объемы производства -го поставщика, Постановка транспортной задачи общего вида - student2.ru

Постановка транспортной задачи общего вида - student2.ru спрос Постановка транспортной задачи общего вида - student2.ru -го потребителя, Постановка транспортной задачи общего вида - student2.ru ;

Постановка транспортной задачи общего вида - student2.ru стоимость перевозки одной единицы продукции из пункта Постановка транспортной задачи общего вида - student2.ru – i-го поставщика, в пункт Постановка транспортной задачи общего вида - student2.ru – j-го потребителя.

Обычно данные удобно представлять в виде таблицы, которую называют таблицей стоимостей перевозок

Постановка транспортной задачи общего вида - student2.ru   Поставщики Потребители В1 В2 Вn запасы
А1 C11 C12   C1n a1
А2 C21 C22   C2n a2
Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru
Аm Cm1 Cm2   Cmn am
Потребности b1 b2   bn  

Требуется в задаче найти план перевозок, при котором бы полностью удовлетворялся спрос всех потребителей, при данных запасах поставщиков, и суммарные транспортные расходы были бы минимальными.

Под планом перевозок понимают объем перевозок – количество товара, которое необходимо перевезти от Постановка транспортной задачи общего вида - student2.ru -го поставщика к Постановка транспортной задачи общего вида - student2.ru -му потребителю. Для построения математической модели задачи необходимо ввести Постановка транспортной задачи общего вида - student2.ru штук переменных Постановка транспортной задачи общего вида - student2.ru каждая переменная Постановка транспортной задачи общего вида - student2.ru обозначает объем перевозок из пункта Постановка транспортной задачи общего вида - student2.ru в пункт Постановка транспортной задачи общего вида - student2.ru . Набор переменных Постановка транспортной задачи общего вида - student2.ru и будет планом, который необходимо найти, исходя из постановки задачи.

Ограничения задачи примут вид (3.1):

Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru

Очевидно, что для разрешимости задачи (3.1) необходимо, чтобы суммарный спрос не превышал объемы производства у поставщиков: Постановка транспортной задачи общего вида - student2.ru . Если это неравенство выполняется строго, то задача называется «открытой» или «несбалансированной». Если же Постановка транспортной задачи общего вида - student2.ru , то задача называется «закрытой» транспортной задачей.

Мы остановимся сейчас на решении закрытых транспортных задач (ЗТЗ).

В силу ограничений (3.1) нетрудно увидеть, что ТЗ является задачей ЛП и может быть решена симплекс–методом после приведения ее к специальному виду. Но структура системы ограничений имеет некоторую специфику, а именно каждая переменная Постановка транспортной задачи общего вида - student2.ru входит ровно два раза в неравенства системы и все переменные входят в неравенства системы с коэффициентом 1. В силу этой специфики разработан собственный метод решения, называемый методом потенциалов. По–прежнему идеей является переход от одного опорного плана к другому, обязательно «лучшему», с точки зрения значения целевой функции. Здесь целевая функция последовательно уменьшает свои значения, т.к. цель задачи – минимизировать расходы. Каждому опорному плану также соответствует своя распределительная таблица. Переход осуществляется, пока полученный план не будет удовлетворять условию оптимальности. Сначала необходимо построить первоначальный опорный план. В качестве первоначального плана годится любое решение системы уравнений (3.1). Заметим, что это система линейных уравнений, состоящая из Постановка транспортной задачи общего вида - student2.ru уравнений, с Постановка транспортной задачи общего вида - student2.ru неизвестными. Можно доказать, что линейно–независимых уравнений в системе (3.1) Постановка транспортной задачи общего вида - student2.ru , ввиду условия сбалансированности, т.е. базисных переменных должно быть Постановка транспортной задачи общего вида - student2.ru , остальные будут нулевыми. Итак, в качестве плана будем представлять себе таблицу размера Постановка транспортной задачи общего вида - student2.ru , в которой должно быть занято ровно Постановка транспортной задачи общего вида - student2.ru клеток, отвечающих базисным переменным Постановка транспортной задачи общего вида - student2.ru . Стоимости перевозок Постановка транспортной задачи общего вида - student2.ru всегда будем записывать в правом верхнем углу ячейки таблицы, естественно считая их постоянными на протяжении решения задачи.

Алгоритм метода потенциалов

Алгоритм состоит из трех основных шагов:

1) построение первоначального опорного плана.

2) проверка плана на оптимальность.

3) улучшение плана.

Шаг 1. Построение первоначального опорного плана.

Существует два наиболее часто применяемых метода для нахождения первого плана: метод наименьшей стоимости и метод северо-западного угла. Метод наименьшей стоимости позволяет найти план, наиболее близкий к оптимальному, метод северо-западного угла легче программируется, и поэтому до сих пор «живет». Но, если вы решаете задачу «вручную», то применение метода наименьшей стоимости, как правило, уменьшает количество итераций.

Идея метода наименьшей стоимости проста и отражается в названии метода. Сначала следует организовать перевозки к тем поставщикам, где стоимость минимальна. Рассмотрим конкретный пример.

Транспортная задача. Пусть имеется 4 поставщика некоторой продукции и 5 потребителей. Стоимости перевозок от i-го поставщика к j-му потребителю, а также потребности потребителей и возможности поставщиков заданы табл. 3.1

Таблица 3.1

  В1 В2 В3 В4 В5 запасы
А1
А2
А3
А4
потребности

Эта транспортная задача является закрытой или сбалансированной, т.к. 24+12+18+16=60 и 11+13+26+10+10=60 – потребности равны запасам. Будем заполнять первую распределительную таблицу. Стоимости перевозок в новой таблице будем располагать в правом верхнем углу клеток, а в центр клеток помещать числа, соответствующие первоначальному опорному плану перевозок.

Итак, минимальная стоимость перевозки – это число 1, оно встречается на двух местах, с номерами (2, 4) и (3, 2). Выберем любое, к примеру, (2, 4). Рассуждаем: у поставщика Постановка транспортной задачи общего вида - student2.ru имеется запас товара 12 ед., а потребителю Постановка транспортной задачи общего вида - student2.ru требуется 10 ед., можем удовлетворить его потребности и привезти ему 10. Тогда у Постановка транспортной задачи общего вида - student2.ru останется в запасах 12-10=2 ед. Поместим в клетку (2, 4) наименьшее из чисел 10 и 12, т.е. перевозку 10. При этом заметим, потребности потребителя Постановка транспортной задачи общего вида - student2.ru удовлетворены, можем вычеркнуть 4-й столбец из рассмотрения, запомнив сбоку, что запасов осталось на втором складе 2 ед. (см.табл. 3.2).

Таблица 3.2

  В1 В2 В3 В4 В5 запасы
А1 21 19 11 -12 12
А2 26 29 14 10 1 26 12/2
А3 39 1 22 - 8 25
А4 53 23 40 -26 28
потребности 10/0  

В табл. 3.2 теперь снова ищем минимальный по стоимости элемент, это опять 1 на месте (3, 2). Записываем в эту клетку число 13, как наименьшее из чисел 13 и 18 и вычеркиваем 2-й столбец, потребности В2 удовлетворены (табл. 3.3).

Таблица 3.3

  В1 В2 В3 В4 В5 запасы
А1 21 19 11 - 12 12
А2 26 29 14 10 1 26 12/2
А3 39 131 22 - 8 25 18/5
А4 53 23 40 26 28
потребности 13/0 10/0  

Следующее минимальное число по стоимости в таблице после двух вычеркиваний – это число 11 на месте (1, 3). Вписываем в клетку перевозку 24 и вычеркиваем 1-ю строку, запасы у поставщика Постановка транспортной задачи общего вида - student2.ru исчерпаны. Переходим к клетке (2, 3) с минимальной стоимостью 14. Помещаем туда число 2, т.к. в Постановка транспортной задачи общего вида - student2.ru имеется 12 единиц продукции, но 10 из них мы уже вывезли в Постановка транспортной задачи общего вида - student2.ru , осталось 2 ед. При этом вычеркиваем и столбец, и строку. Далее заполняем клетку (3, 5), сюда мы можем перевезти 5 единиц груза, т.к. 13 уже вывезли в Постановка транспортной задачи общего вида - student2.ru , и у Постановка транспортной задачи общего вида - student2.ru возможности исчерпаны, вычеркиваем 3-ю строку. Затем заполняем клетку (4, 5), поместим туда 5 единиц груза, т.к. 5 уже вывезли в Постановка транспортной задачи общего вида - student2.ru , а ему всего необходимо 10. После всех вычеркиваний в таблице осталась одна клетка (4, 1), поместим туда число 11, что соответствует потребностям Постановка транспортной задачи общего вида - student2.ru и возможностям Постановка транспортной задачи общего вида - student2.ru . Имеем табл. 3.4.

Проверим, что сумма чисел построчно и по столбцам совпадает с возможностями и потребностями. Число занятых клеток соответствующих базисным переменным Постановка транспортной задачи общего вида - student2.ru опорного плана, обязано равняться Постановка транспортной задачи общего вида - student2.ru . Но иногда занятых клеток может оказаться меньше. У нас клеток, занятых перевозками 7. В этом случае на втором шаге алгоритма добавляют в одну из ячеек таблицы фиктивную нулевую перевозку, например в (3, 4), смотри табл.3.4. При выборе клетки руководствуются соображениями минимальной стоимости, а также, чтобы в каждой строке и каждом столбце была по крайней мере одна занятая клетка.

Таблица 3.4

  В1 В2 В3 В4 В5 запасы
А1 21 19 11 24 12 12
А2 26 29 14 1 26
А3 39 1 22 8 25 5
А4 53 23 40 26 28
потребности  

Итак, первоначальный план построен. Обычно, проводя построение плана, всё делают в одной таблице, производя в ней все необходимые вычеркивания. Чтобы не загромождать запись, рассуждения проводятся устно.

Шаг 2. Проверка плана на оптимальность.

При построении первоначального плана мы ставим задачу найти хоть какой-нибудь, не обязательно лучший план, удостоверяющий ограничениям задачи. Теперь нам хотелось бы уметь отвечать на вопрос: является ли найденный опорный план оптимальным И если не является, то как «улучшать» его. Эту задачу решает метод потенциалов, предложенный в 1949 г. советскими учеными Л.В. Канторовичем и М.К. Гавуриным, теоретической основой метода является теорема.

Теорема. Если для некоторого опорного плана Постановка транспортной задачи общего вида - student2.ru транспортной задачи можно подобрать систему из Постановка транспортной задачи общего вида - student2.ru чисел Постановка транспортной задачи общего вида - student2.ru Постановка транспортной задачи общего вида - student2.ru , называемых потенциалами, то план оптимален тогда и только тогда, когда выполняются условия:

1) Постановка транспортной задачи общего вида - student2.ru для всех Постановка транспортной задачи общего вида - student2.ru (*)

2) Постановка транспортной задачи общего вида - student2.ru для всех Постановка транспортной задачи общего вида - student2.ru (**)

где Постановка транспортной задачи общего вида - student2.ru – матрица стоимостей перевозок.

Доказательство теоремы опускаем, оно основывается на рассмотрении двойственной задачи к исходной транспортной. Числа, называемые потенциалами, в точности являются переменными двойственной задачи, а сформулированные условия (**) –суть второй теоремы двойственности.

Покажем, как находить числа, называемые потенциалами. Отведем им место в таблице – правый столбец и нижняя строка. Условие (*) представляет собой систему из Постановка транспортной задачи общего вида - student2.ru линейных уравнений с Постановка транспортной задачи общего вида - student2.ru неизвестными потенциалами. Поэтому одно из неизвестных полагаем равным 0 для определенности, затем последовательно находим остальные потенциалы.

Проведем эти вычисления, записывая найденные потенциалы в дополнительно зарезервированный столбец и строку (табл.3.5).

Таблица 3.5

  В1 В2 В3 В4 В5 uj
А1 21 19 11 24 12 12
А2 26 29 14 2 1 10 26
А3 39 1 13 22 8 0 25 5
А4 53 11 40 26 28 5
vi –49 –29 –42 –25  

Проводя вычисления, смотрим только на занятые клетки и на числа, стоящие в правом верхнем углу, – стоимости перевозок.

1. Полагаем один из потенциалов равным 0. Пусть Постановка транспортной задачи общего вида - student2.ru найдем из условия (*) остальные, последовательно обходя занятые клетки:

для занятой клетки (4,1): Постановка транспортной задачи общего вида - student2.ru т.е. Постановка транспортной задачи общего вида - student2.ru ,

для занятой клетки (4,5): Постановка транспортной задачи общего вида - student2.ru т.е. Постановка транспортной задачи общего вида - student2.ru ,

для клетки (3,5): Постановка транспортной задачи общего вида - student2.ru , т.к. Постановка транспортной задачи общего вида - student2.ru ,

затем можем найти из (3,2): Постановка транспортной задачи общего вида - student2.ru , т.к. Постановка транспортной задачи общего вида - student2.ru ,

после из (3,4): Постановка транспортной задачи общего вида - student2.ru , т.к. Постановка транспортной задачи общего вида - student2.ru ,

из (4,2): Постановка транспортной задачи общего вида - student2.ru , т.к. Постановка транспортной задачи общего вида - student2.ru

и, наконец, из (2,3): Постановка транспортной задачи общего вида - student2.ru , т.к. Постановка транспортной задачи общего вида - student2.ru ,

из (3,1): Постановка транспортной задачи общего вида - student2.ru т.к. Постановка транспортной задачи общего вида - student2.ru

Все потенциалы Постановка транспортной задачи общего вида - student2.ru найдены. Вычисления обычно проводятся устно, с особой внимательностью, не путая стоимости перевозок Постановка транспортной задачи общего вида - student2.ru стоящие в правых верхних углах клеток, с самими перевозками Постановка транспортной задачи общего вида - student2.ru стоящими в клетках. Их значения на этом шаге нам не нужны, важно лишь, что они определяют занятость клетки.

2. После нахождения системы потенциалов можно собственно и заняться проверкой плана на оптимальность, ради чего мы и вычисляли потенциалы. Для проверки плана на оптимальность необходимо проверить условие (**). Нужно для свободных клеток посчитать суммы Постановка транспортной задачи общего вида - student2.ru и сравнить их с числами Постановка транспортной задачи общего вида - student2.ru – стоимостями перевозок. Если Постановка транспортной задачи общего вида - student2.ru то по теореме, план является оптимальным, задача решена. Иначе, если хотя бы для одной клетки Постановка транспортной задачи общего вида - student2.ru план нужно улучшать. Переходить к 3-му шагу алгоритма. Сделаем проверку условия (**) для нашей таблицы, записывая в правом верхнем углу выполнение неравенств (табл.3.6).

Таблица 3.6

  В1 В2 В3 В4 В5 vj
А1 40>21 –9<19 11=11 24 –2<12 15>12
А2 43>26 –6<29 14=14 2 1=1 10 18<26
А3 50<39 1=1 13 21<22 8=8 0 25=25 5
А4 53=53 11 4<23 14<40 11<26 28=28 5
ui –49 –29 –42 –25  

В нашей задаче первоначальный опорный план неоптимален, условие (**) нарушено в клетках (1, 1), (1, 5), (2, 1), (3, 1).

Шаг 3. Улучшение плана.

Для проведения операции улучшения плана нам понадобится понятие цикла – контура перераспределения ресурсов.

Циклом будем называть набор клеток таблицы, в котором две и ровно две соседние клетки расположены в одной строке или в одном столбце, вершины поочередно обозначаются «+» и «-». Цикл начинается со свободной клетки и проходит только по занятым.

Графически нетрудно представить цикл в виде ломаной, каждое звено которой лежит в строке или в столбце, причем в каждой строке или столбце не более чем по одному звену. Звенья ломаной располагаются под прямым углом. Цикл начинается со свободной клетки, в которой нарушено условие оптимальности, и проходит только по занятым.

Примеры циклов:

с11 Постановка транспортной задачи общего вида - student2.ru с12 с13 · с14 ·     с11 Постановка транспортной задачи общего вида - student2.ru с12 с13 с14
с21 с22 · с23 с24 ·     с21 с22 с23 с24
с31 с32 · с33 · с34     с31 с32 с33 с34

С понятием цикла связаны важные свойства планов:

1) допустимый план является опорным, когда из занятых этим планом клеток нельзя образовать ни одного цикла;

2) если имеем опорный план, то для каждой свободной клетки можно образовать единственный цикл, содержащий данную клетку и некоторые из занятых.

Улучшение плана производится по следующей схеме. В подчеркнутых клетках табл. 3.6. находим клетку с наибольшей разностью Постановка транспортной задачи общего вида - student2.ru т.е. где условие (**) нарушается максимально. Затем для этой клетки согласно свойству 2 строим единственный цикл. Набор клеток в цикле помечаем поочередно знаками «+» и «–», начиная с «+» в свободной клетке. Имеем таблицу 3.7

Таблица 3.7

  В1 В2 В3 В4 В5 запасы
А1 40>21 Постановка транспортной задачи общего вида - student2.ru + –9<19 11=11 – 24 2<12 15>12
А2 43>26 –6<29 14=14 + 2 1=1 –10 18<26
А3 50>39 1=1 13 21<22 8=8 + 0 25=25 – 5
А4 53=53 –11 4<23 14<40 11<26 28=28 + 5
потребности  

Начиная с клетки (1, 1), где условие (**) нарушено максимально, строим цикл. Клетку (1, 1) помечаем знаком «+», далее ходим по занятым клеткам, поворачивая под прямым углом, знаки чередуем, пока не попадем в тот столбец или строку, откуда начали. Если вы нашли цикл, то он верный, т.к. цикл единственен. У нас все занятые клетки вошли в цикл, но это необязательно.

Рассмотрим элементы плана Постановка транспортной задачи общего вида - student2.ru , расположенные в клетках цикла со знаком «–» : Постановка транспортной задачи общего вида - student2.ru . Выберем из них наименьший Постановка транспортной задачи общего вида - student2.ru обозначим Постановка транспортной задачи общего вида - student2.ru Строим новый план Постановка транспортной задачи общего вида - student2.ru по правилу

Постановка транспортной задачи общего вида - student2.ru

Новый план записываем в табл. 3.8. Клетка, в которой разница Постановка транспортной задачи общего вида - student2.ru равна 0, у нас (3, 5), теперь будет свободной. Проверьте, что число занятых клеток по-прежнему равно 8.

Таблица 3.8

  В1 В2 В3 В4 В5 запасы
А1
А2
А3
А4
потребности  

Очевидно, что полученный план будет удовлетворять прежним ограничениям, т.к. сдвиг перевозки происходит по циклу, а значит, не нарушает суммарную перевозку по столбцу и по строке (в одном месте прибавили, а в другом – столько же отняли). Общая же стоимость перевозок уменьшается на число, равное Постановка транспортной задачи общего вида - student2.ru где Постановка транспортной задачи общего вида - student2.ru – объем перевозок, перемещаемый по циклу. У нас эта величина равна 5·(40–21)=5·19=95.

Действительно, для плана Х общая суммарная стоимость перевозки: Постановка транспортной задачи общего вида - student2.ru .

Для нового плана Постановка транспортной задачи общего вида - student2.ru

Постановка транспортной задачи общего вида - student2.ru =5·21+19·11+7·14+5·1+13·1+5·8+6·53+10·28=1068.

Итак, мы построили новый «лучший» план, 3-й шаг закончен. И теперь переходим к следующей итерации: находим новые потенциалы, проверяем план на оптимальность, улучшаем, если план неоптимален.

Для нашей задачи проведем дальнейшее решение. Новая система потенциалов записана в табл. 3.9.

Условие (**) не выполняется в клетках (4, 3) и (4, 4). С клетки (4, 4) начинаем строить цикл. Выбираем наименьшее из чисел Постановка транспортной задачи общего вида - student2.ru .

Таблица 3.9

  В1 В2 В3 В4 В5 vj
А1 21 Постановка транспортной задачи общего вида - student2.ru + 5 –19<19 11 – 19 –2<12 4<12  
А2 24<26 –6<29 14 + 7 1 – 5 –1<26
А3 31<39 1 13 21<22 8 5 6<25
А4 53 – 6 23=23 43>40 30>26 + 28 10
ui –30 –10 –23 –25  

Строим новый план, добавляя Δ к клеткам с «+», и вычитая Δ из клеток с «–». Новый план выглядит как показано в табл.3.10.

Таблица 3.10

  В1 В2 В3 В4 В5 vj
A1 21 Постановка транспортной задачи общего вида - student2.ru + 10 –13>19 11 – 14 –6<12 –4<12
A2 24<26 –10<29 14 12 –3<1 –1<26
A3 35<39 1 –25<22 8 10<25
A4 53 – 1 19<23 43>40 + 26 28 10
ui –34 –10 –27 –25  

Найдем новую систему потенциалов, запишем в таблицу 3.10.

Оказывается, план не оптимален, в клетки (4, 3) нарушается неравенство (**), еще раз строим цикл, улучшаем план, Δ=1.

Находим новую систему потенциалов (табл. 3.11), проверяем на оптимальность, убеждаемся, что полученный план оптимален.

Таблица 3.11

  В1 В2 В3 В4 В5 vj
A1 21 11 –10<19 11 13 –3<12 –1<12
A2 24<26 –7<29 14 12 0<1 2<26
A3 32<39 1 13 22=22 8 5 10<25
A4 50<53 19<23 40 1 26 5 28 10
ui ­31 –10 –24 –22 –62

Итак, предложенный таблицей 3.11, план перевозок является оптимальным, при этом суммарная стоимость перевозок Постановка транспортной задачи общего вида - student2.ru .

Действительно, после второй итерации стоимость перевозок уменьшилась на величину (30–26)·5=20, после третьей (43–40)·1=3, т.е. 1068–23=1045, что мы и имеем. Задача решена.

Замечание.Если транспортная задача является задачей открытого типа, в которой условие баланса не выполняется, а именно сумма запасов больше суммы потребностей, то решить такую задачу можно по предложенной схеме методом потенциалов, введя дополнительного потребителя, с потребностью равной разности балансов, и нулевыми стоимостями перевозок от каждого поставщика к этому потребителю.

Наши рекомендации